dist/PaxHeaders.26361/copy0000644000175000017500000000013212233027261013744 xustar000000000000000030 mtime=1382821553.621046948 30 atime=1382821552.781046922 30 ctime=1382821553.621046948 exaile-3.3.2/0000755000000000000000000000000012233027261012762 5ustar00rootroot00000000000000dist/copy/PaxHeaders.26361/exaile.py0000644000175000017500000000012412233027260015642 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.517046945 exaile-3.3.2/exaile.py0000644000000000000000000000376312233027260014613 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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 import os.path import sys try: uid = os.geteuid() except Exception: pass else: if uid == 0: sys.stderr.write('Error: running as root is not supported!\n') sys.stderr.flush() sys.exit(1) # allow disabling of pyc generation. Only works on python >= 2.6 if os.getenv("EXAILE_NO_OPTIMIZE"): try: sys.dont_write_bytecode = True except AttributeError: pass if sys.platform == 'linux2': # Set process name. Only works on Linux >= 2.1.57. try: import ctypes libc = ctypes.CDLL('libc.so.6') libc.prctl(15, 'exaile', 0, 0, 0) # 15 = PR_SET_NAME except Exception: pass # Set visible process name. Requires module "setproctitle" try: from setproctitle import setproctitle setproctitle('exaile') except ImportError: pass # Find out the location of exaile's working directory, and insert it to sys.path basedir = os.path.dirname(os.path.realpath(__file__)) if not os.path.exists(os.path.join(basedir, "exaile.py")): cwd = os.getcwd() if os.path.exists(os.path.join(cwd, "exaile.py")): basedir = cwd sys.path.insert(0, basedir) def main(): from xl import main global exaile exaile = main.Exaile() if __name__ == "__main__": main() # vim: et sts=4 sw=4 dist/copy/PaxHeaders.26361/tests0000644000175000017500000000013212233027261015106 xustar000000000000000030 mtime=1382821553.153046933 30 atime=1382821552.781046922 30 ctime=1382821553.153046933 exaile-3.3.2/tests/0000755000000000000000000000000012233027261014124 5ustar00rootroot00000000000000dist/copy/tests/PaxHeaders.26361/xl0000644000175000017500000000013212233027261015531 xustar000000000000000030 mtime=1382821553.153046933 30 atime=1382821552.789046922 30 ctime=1382821553.153046933 exaile-3.3.2/tests/xl/0000755000000000000000000000000012233027261014547 5ustar00rootroot00000000000000dist/copy/tests/xl/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260017717 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.153046933 exaile-3.3.2/tests/xl/__init__.py0000644000000000000000000000000012233027260016645 0ustar00rootroot00000000000000dist/copy/tests/xl/PaxHeaders.26361/trax0000644000175000017500000000013212233027261016507 xustar000000000000000030 mtime=1382821553.329046939 30 atime=1382821552.793046922 30 ctime=1382821553.329046939 exaile-3.3.2/tests/xl/trax/0000755000000000000000000000000012233027261015525 5ustar00rootroot00000000000000dist/copy/tests/xl/trax/PaxHeaders.26361/test_data.py0000644000175000017500000000012412233027260021106 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.321046939 exaile-3.3.2/tests/xl/trax/test_data.py0000644000000000000000000000116612233027260020052 0ustar00rootroot00000000000000import os TEST_TRACKS = [os.path.abspath( os.path.join(os.path.dirname(__file__), os.pardir, os.pardir, 'data', 'music', 'delerium', 'chimera', '05 - Truly') + os.extsep + ext) for ext in ('aac', 'aiff', 'au', 'flac', 'mp3', 'mpc', 'ogg', 'spx', 'wav', 'wma', 'wv')] def get_file_with_ext(ext): return [x for x in TEST_TRACKS if x.endswith(ext)][0] TEST_TRACKS_SIZE = { get_file_with_ext('.mp3'): 4692, } def test_mp3_exists(): assert get_file_with_ext('.mp3') def test_all_tracks_exist(): for track in TEST_TRACKS: assert os.path.exists(track), "%s does not exist" % track dist/copy/tests/xl/trax/PaxHeaders.26361/test_search.py0000644000175000017500000000012412233027260021442 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.329046939 exaile-3.3.2/tests/xl/trax/test_search.py0000644000000000000000000003411712233027260020410 0ustar00rootroot00000000000000import mox import unittest from xl.trax import search from xl.trax import track def test_search_result_track_get_track(): val = 'foo' search_result_track = search.SearchResultTrack(val) assert search_result_track.track == val, search_result_track.track def get_search_result_track(): tr = track.Track('file:///foo') return search.SearchResultTrack(tr) def clear_all_tracks(): for key in track.Track._Track__tracksdict.keys(): del track.Track._Track__tracksdict[key] class TestMatcher(unittest.TestCase): def setUp(self): self.mox = mox.Mox() self.str = get_search_result_track() self.str.track.set_tag_raw('artist', [u'foo', u'bar']) def tearDown(self): clear_all_tracks() self.mox.UnsetStubs() def test_match_list_true(self): self.mox.StubOutWithMock(search._Matcher, '_matches') search._Matcher._matches(mox.IsA(basestring)).AndReturn(True) self.mox.ReplayAll() matcher = search._Matcher('artist', u'bar', lambda x: x) self.assertTrue(matcher.match(self.str)) self.mox.VerifyAll() def test_match_list_false(self): self.mox.StubOutWithMock(search._Matcher, '_matches') search._Matcher._matches(mox.IsA(basestring)).AndReturn(False) search._Matcher._matches(mox.IsA(basestring)).AndReturn(False) self.mox.ReplayAll() matcher = search._Matcher('artist', u'bar', lambda x: x) self.assertFalse(matcher.match(self.str)) self.mox.VerifyAll() def test_match_list_none(self): self.mox.StubOutWithMock(search._Matcher, '_matches') search._Matcher._matches(None).AndReturn(True) self.mox.ReplayAll() matcher = search._Matcher('album', None, lambda x: x) self.assertTrue(matcher.match(self.str)) self.mox.VerifyAll() def test_matches(self): matcher = search._Matcher('album', None, lambda x: x) self.assertRaises(NotImplementedError, matcher._matches, 'foo') class TestExactMatcher(unittest.TestCase): def setUp(self): self.str = get_search_result_track() def tearDown(self): clear_all_tracks() def test_exact_matcher_true(self): matcher = search._ExactMatcher('album', 'Foo', lambda x: x) self.str.track.set_tag_raw('album', 'Foo') self.assertTrue(matcher.match(self.str)) def test_exact_matcher_false(self): matcher = search._ExactMatcher('album', 'Foo', lambda x: x) self.str.track.set_tag_raw('album', 'FoO') self.assertFalse(matcher.match(self.str)) class TestInMatcher(unittest.TestCase): def setUp(self): self.str = get_search_result_track() def tearDown(self): clear_all_tracks() def test_in_matcher_none(self): matcher = search._InMatcher('album', 'Foo', lambda x: x) self.str.track.set_tag_raw('album', None) self.assertFalse(matcher.match(self.str)) def test_in_matcher_true(self): matcher = search._InMatcher('album', 'hello', lambda x: x) self.str.track.set_tag_raw('album', 'Foohelloworld') self.assertTrue(matcher.match(self.str)) def test_in_matcher_error(self): matcher = search._InMatcher('album', 2, lambda x: x) self.str.track.set_tag_raw('album', 'Foohelloworld') self.assertFalse(matcher.match(self.str)) def test_in_matcher_false(self): matcher = search._InMatcher('album', 'hello', lambda x: x) self.str.track.set_tag_raw('album', 'Fooheloworld') self.assertFalse(matcher.match(self.str)) class TestMetaMatcherClasses(unittest.TestCase): class _Matcher(object): def __init__(self, val): self.val = val def matches(self, val): return self.val def match(self, val): return self.val class TestNotMetaMatcher(TestMetaMatcherClasses): def test_true(self): matcher = self._Matcher(True) matcher = search._NotMetaMatcher(matcher) self.assertFalse(matcher.match('foo')) def test_false(self): matcher = self._Matcher(False) matcher = search._NotMetaMatcher(matcher) self.assertTrue(matcher.match('foo')) class TestOrMetaMatcher(TestMetaMatcherClasses): def test_true_true(self): matcher_1 = self._Matcher(True) matcher_2 = self._Matcher(True) matcher = search._OrMetaMatcher(matcher_1, matcher_2) self.assertTrue(matcher.match('foo')) def test_true_false(self): matcher_1 = self._Matcher(True) matcher_2 = self._Matcher(False) matcher = search._OrMetaMatcher(matcher_1, matcher_2) self.assertTrue(matcher.match('foo')) def test_false_true(self): matcher_1 = self._Matcher(False) matcher_2 = self._Matcher(True) matcher = search._OrMetaMatcher(matcher_1, matcher_2) self.assertTrue(matcher.match('foo')) def test_false_false(self): matcher_1 = self._Matcher(False) matcher_2 = self._Matcher(False) matcher = search._OrMetaMatcher(matcher_1, matcher_2) self.assertFalse(matcher.match('foo')) class TestMultiMetaMatcher(TestMetaMatcherClasses): def test_true(self): matcher = [self._Matcher(True)] * 10 matcher = search._MultiMetaMatcher(matcher) self.assertTrue(matcher.match('foo')) def test_false(self): matcher = [self._Matcher(True)] * 10 + [self._Matcher(False)] matcher = search._MultiMetaMatcher(matcher) self.assertFalse(matcher.match('foo')) class TestManyMultiMetaMatcher(TestMetaMatcherClasses): def test_true(self): matcher = [self._Matcher(True)] * 10 + [self._Matcher(False)] for match in matcher: match.tag = 'artist' matcher = search._ManyMultiMetaMatcher(matcher) self.assertTrue(matcher.match('foo')) def test_false(self): matcher = [self._Matcher(False)] * 10 for match in matcher: match.tag = 'artist' matcher = search._ManyMultiMetaMatcher(matcher) self.assertFalse(matcher.match('foo')) class TestTracksMatcher(unittest.TestCase): def setUp(self): self.str = get_search_result_track() def test_in_matcher(self): matcher = search.TracksMatcher("artist=foo") self.assertEqual(len(matcher.matchers), 1) match = matcher.matchers[0] self.match_is_type(match, search._InMatcher) self.assertEqual(match.tag, 'artist') self.assertEqual(match.content, 'foo') def test_exact_matcher(self): matcher = search.TracksMatcher("artist==foo") self.assertEqual(len(matcher.matchers), 1) match = matcher.matchers[0] self.match_is_type(match, search._ExactMatcher) self.assertEqual(match.tag, 'artist') self.assertEqual(match.content, 'foo') def match_is_type(self, match, expected): self.assertTrue(isinstance(match, expected), match) def test_not_matcher(self): matcher = search.TracksMatcher("! foo", keyword_tags=['artist']) match = matcher # NotMetaMatcher self.assertEqual(len(match.matchers), 1) match = matcher.matchers[0] self.match_is_type(match, search._NotMetaMatcher) # MultiMetaMatcher match = match.matcher self.match_is_type(match, search._MultiMetaMatcher) # ManyMultiMetaMatcher self.assertEqual(len(match.matchers), 1) match = match.matchers[0] self.match_is_type(match, search._ManyMultiMetaMatcher) # InMatcher self.assertEqual(len(match.matchers), 1) match = match.matchers[0] self.match_is_type(match, search._InMatcher) self.assertEqual(match.tag, 'artist') self.assertEqual(match.content, 'foo') def test_or_matcher(self): matcher = search.TracksMatcher("foo | bar", keyword_tags=['artist']) match = matcher # OrMetaMatcher self.assertEqual(len(match.matchers), 1) match = matcher.matchers[0] self.match_is_type(match, search._OrMetaMatcher) # MultiMetaMatcher self.assertTrue(match.left) self.assertTrue(match.right) self.match_is_type(match.left, search._MultiMetaMatcher) self.match_is_type(match.right, search._MultiMetaMatcher) # ManyMultiMetaMatcher self.assertEqual(len(match.left.matchers), 1) self.assertEqual(len(match.right.matchers), 1) match_left = match.left.matchers[0] match_right = match.right.matchers[0] self.match_is_type(match_left, search._ManyMultiMetaMatcher) self.match_is_type(match_right, search._ManyMultiMetaMatcher) # InMatcher self.assertEqual(len(match_left.matchers), 1) self.assertEqual(len(match_right.matchers), 1) match_left = match_left.matchers[0] match_right = match_right.matchers[0] self.match_is_type(match_left, search._InMatcher) self.match_is_type(match_right, search._InMatcher) self.assertEqual(match_left.tag, 'artist') self.assertEqual(match_right.tag, 'artist') if match_left.content == 'foo': if match_right.content != 'bar': self.assertFalse("We lost a search term on an or") elif match_left.content == 'bar': if match_right.content != 'foo': self.assertFalse("We lost a search term on an or") else: self.assertFalse("We lost both parts of an or") def test_paren_matcher(self): matcher = search.TracksMatcher("( foo | bar )", keyword_tags=['artist']) match = matcher # MultiMetaMatcher self.assertEqual(len(match.matchers), 1) match = matcher.matchers[0] self.match_is_type(match, search._MultiMetaMatcher) self.assertEqual(len(match.matchers), 1) match = match.matchers[0] self.match_is_type(match, search._OrMetaMatcher) # This is the same code as the OrMetaMatcher self.assertTrue(match.left) self.assertTrue(match.right) self.match_is_type(match.left, search._MultiMetaMatcher) self.match_is_type(match.right, search._MultiMetaMatcher) # ManyMultiMetaMatcher self.assertEqual(len(match.left.matchers), 1) self.assertEqual(len(match.right.matchers), 1) match_left = match.left.matchers[0] match_right = match.right.matchers[0] self.match_is_type(match_left, search._ManyMultiMetaMatcher) self.match_is_type(match_right, search._ManyMultiMetaMatcher) # InMatcher self.assertEqual(len(match_left.matchers), 1) self.assertEqual(len(match_right.matchers), 1) match_left = match_left.matchers[0] match_right = match_right.matchers[0] self.match_is_type(match_left, search._InMatcher) self.match_is_type(match_right, search._InMatcher) self.assertEqual(match_left.tag, 'artist') self.assertEqual(match_right.tag, 'artist') if match_left.content == 'foo': if match_right.content != 'bar': self.assertFalse("We lost a search term on an or") elif match_left.content == 'bar': if match_right.content != 'foo': self.assertFalse("We lost a search term on an or") else: self.assertFalse("We lost both parts of an or") def test_match_true(self): matcher = search.TracksMatcher("foo", keyword_tags=['artist']) self.str.track.set_tag_raw('artist', 'foo') self.assertTrue(matcher.match(self.str)) self.assertEqual(self.str.on_tags, ['artist']) def test_match_true_tag(self): matcher = search.TracksMatcher("artist=foo") self.str.track.set_tag_raw('artist', 'foo') self.assertTrue(matcher.match(self.str)) self.assertEqual(self.str.on_tags, ['artist']) def test_match_true_case_insensitive(self): matcher = search.TracksMatcher("artist=FoO", case_sensitive=False) self.str.track.set_tag_raw('artist', 'foo') self.assertTrue(matcher.match(self.str)) self.assertEqual(self.str.on_tags, ['artist']) def test_match_true_none(self): matcher = search.TracksMatcher("artist==__null__") self.str.track.set_tag_raw('artist', '') self.assertTrue(matcher.match(self.str)) self.assertEqual(self.str.on_tags, ['artist']) def test_match_false(self): matcher = search.TracksMatcher("foo", keyword_tags=['artist']) self.str.track.set_tag_raw('artist', 'bar') self.assertFalse(matcher.match(self.str)) class TestSearchTracks(unittest.TestCase): def test_search_tracks(self): matcher = search.TracksMatcher("foo", keyword_tags=['artist']) tracks = [track.Track(x) for x in ('foo', 'bar', 'baz', 'quux')] tracks = [search.SearchResultTrack(tr) for tr in tracks] tracks[0].track.set_tag_raw('artist', 'foooo') tracks[2].track.set_tag_raw('artist', 'foooooo') gen = search.search_tracks(tracks, [matcher]) self.assertEqual(gen.next(), tracks[0]) self.assertEqual(gen.next(), tracks[2]) self.assertRaises(StopIteration, gen.next) def test_take_not_srt(self): matcher = search.TracksMatcher("foo", keyword_tags=['artist']) tracks = [track.Track(x) for x in ('foo', 'bar', 'baz', 'quux')] tracks[0].set_tag_raw('artist', 'foooo') tracks[2].set_tag_raw('artist', 'foooooo') gen = search.search_tracks(tracks, [matcher]) self.assertEqual(gen.next().track, tracks[0]) self.assertEqual(gen.next().track, tracks[2]) self.assertRaises(StopIteration, gen.next) def test_search_tracks_from_string(self): matcher = search.TracksMatcher("foo", keyword_tags=['artist']) tracks = [track.Track(x) for x in ('foo', 'bar', 'baz', 'quux')] tracks[0].set_tag_raw('artist', 'foooo') tracks[2].set_tag_raw('artist', 'foooooo') gen = search.search_tracks_from_string(tracks, 'foo', keyword_tags=['artist']) self.assertEqual(gen.next().track, tracks[0]) self.assertEqual(gen.next().track, tracks[2]) self.assertRaises(StopIteration, gen.next) dist/copy/tests/xl/trax/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260020675 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.153046933 exaile-3.3.2/tests/xl/trax/__init__.py0000644000000000000000000000000012233027260017623 0ustar00rootroot00000000000000dist/copy/tests/xl/trax/PaxHeaders.26361/test_track.py0000644000175000017500000000012412233027260021301 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.329046939 exaile-3.3.2/tests/xl/trax/test_track.py0000644000000000000000000005253312233027260020251 0ustar00rootroot00000000000000# -*- coding: utf-8 -*- from __future__ import with_statement import os import shutil import tempfile import unittest import logging import weakref import types import mox import gio import glib try: from nose.plugins.skip import SkipTest except ImportError: SkipTest = None import xl.trax.track as track import xl.settings as settings from tests.xl.trax import test_data LOG = logging.getLogger(__name__) class Test_MetadataCacher(unittest.TestCase): TIMEOUT = 2000 MAX_ENTRIES = 2048 def setUp(self): self.mox = mox.Mox() self.mc = track._MetadataCacher(self.TIMEOUT, self.MAX_ENTRIES) def tearDown(self): self.mox.UnsetStubs() def test_add(self): timeout_id = 1 self.mox.StubOutWithMock(glib, 'timeout_add_seconds') self.mox.StubOutWithMock(glib, 'source_remove') glib.timeout_add_seconds( self.TIMEOUT, self.mc._MetadataCacher__cleanup).AndReturn(timeout_id) self.mox.ReplayAll() self.mc.add('foo', 'bar') self.assertEqual(self.mc.get('foo'), 'bar') self.mox.VerifyAll() def test_double_add(self): timeout_id = 1 self.mox.StubOutWithMock(glib, 'timeout_add_seconds') self.mox.StubOutWithMock(glib, 'source_remove') glib.timeout_add_seconds( mox.IsA(types.IntType), mox.IsA(types.MethodType)).AndReturn(timeout_id) self.mox.ReplayAll() self.mc.add('foo', 'bar') self.assertEqual(self.mc.get('foo'), 'bar') self.mc.add('foo', 'bar') self.assertEqual(self.mc.get('foo'), 'bar') self.mox.VerifyAll() def test_remove(self): timeout_id = 1 self.mox.StubOutWithMock(glib, 'timeout_add_seconds') glib.timeout_add_seconds( self.TIMEOUT, mox.IsA(types.MethodType)).AndReturn(timeout_id) self.mox.ReplayAll() self.mc.add('foo', 'bar') self.mc.remove('foo') self.assertEqual(self.mc.get('foo'), None) self.mox.VerifyAll() def test_remove_not_exist(self): self.assertEqual(self.mc.remove('foo'), None) class TestTrack(unittest.TestCase): def setUp(self): self.mox = mox.Mox() track.Track._Track__the_cuts = ['the', 'a'] for key in track.Track._Track__tracksdict.keys(): del track.Track._Track__tracksdict[key] def tearDown(self): self.mox.UnsetStubs() ## Creation def test_flyweight(self): """There can only be one object based on a url in args""" t1 = track.Track(test_data.TEST_TRACKS[0]) t2 = track.Track(uri=test_data.TEST_TRACKS[0]) self.assertTrue(t1 is t2, "%s should be %s" % (repr(t1), repr(t2))) def test_different_url_not_flyweighted(self): t1 = track.Track(test_data.TEST_TRACKS[0]) t2 = track.Track(uri=test_data.TEST_TRACKS[1]) self.assertTrue(t1 is not t2, "%s should not be %s" % (repr(t1), repr(t2))) def test_none_url(self): self.assertRaises(ValueError, track.Track) def test_pickles(self): tr = track.Track('/foo') tr.set_tag_raw('artist', 'bar') self.assertEqual(tr._pickles(), { '__loc': u'file:///foo', 'artist': [u'bar'] }) def test_unpickles(self): tr1 = track.Track(_unpickles={'artist': [u'my_artist'], '__loc': u'uri'}) self.assertEqual(tr1.get_loc_for_io(), u'uri') def test_unpickles_flyweight(self): tr1 = track.Track(_unpickles={'artist': [u'my_artist'], '__loc': u'uri'}) tr2 = track.Track(_unpickles={'artist': [u'my_artist'], '__loc': u'uri'}) self.assertTrue(tr1 is tr2) def test_takes_nonurl(self): for tr in test_data.TEST_TRACKS: tr = track.Track(tr) self.assertTrue(tr.get_local_path()) self.assertTrue(tr.exists()) ## Information def test_local_type(self): for tr in test_data.TEST_TRACKS: tr = track.Track(tr) self.assertEqual(tr.get_type(), 'file') def test_is_local_local(self): """Tests a local filename -> True""" tr = track.Track('foo') self.assertEqual(tr.is_local(), True) def test_is_local_remote(self): """Tests a remote filename -> False""" tr = track.Track('http://foo') self.assertEqual(tr.is_local(), False) def test_local_filesize(self): for tr_name in test_data.TEST_TRACKS_SIZE: tr = track.Track(tr_name) self.assertEqual(tr.get_size(), test_data.TEST_TRACKS_SIZE[tr_name]) def test_str(self): loc = test_data.TEST_TRACKS[0] tr = track.Track(loc) self.empty_track_of_tags(tr, ('__loc',)) self.assertEqual(str(tr), "'Unknown (%s)' from 'Unknown' by 'Unknown'" % os.path.basename(loc)) tr.set_tag_raw('artist', 'art') tr.set_tag_raw('album', 'alb') tr.set_tag_raw('title', 'title') self.assertEqual(str(tr), "'title' from 'alb' by 'art'") def test_read_tags_no_perms(self): # We test by creating a new file, changing the tags, writing tags # and finally reopening a track with the name and seeing if it stuck for tr_url in test_data.TEST_TRACKS: # We run through this process with each filetype we have suffix = os.extsep + tr_url.split(os.extsep)[-1] # Stuff we can't actually write metadata to if suffix in ('.aac', '.aiff', '.au', '.spx', '.wav'): LOG.info("Skipping tag write test for " + suffix) continue # This fails. i don't feel like reading about it's failing for now if suffix in ('.wma',): LOG.critical("Skipping known failure :" + suffix) continue LOG.info("Testing writes for filetype: " + suffix) with tempfile.NamedTemporaryFile(suffix=suffix) as temp_copy: # Copy and write new file shutil.copyfileobj(open(tr_url, 'r'), temp_copy) tr = track.Track(temp_copy.name) del tr os.chmod(temp_copy.name, 0o000) tr = track.Track(temp_copy.name) # Remove the artist tag and reread from file. This is done # because of the whole flyweight thing tr.set_tag_raw('artist', '') tr.read_tags() self.assertEqual(tr.get_tag_raw('artist'), None) def test_write_tags_no_perms(self): # We test by creating a new file, changing the tags, writing tags # and finally reopening a track with the name and seeing if it stuck for tr_url in test_data.TEST_TRACKS: # We run through this process with each filetype we have suffix = os.extsep + tr_url.split(os.extsep)[-1] # Stuff we can't actually write metadata to if suffix in ('.aac', '.aiff', '.au', '.spx', '.wav'): LOG.info("Skipping tag write test for " + suffix) continue # This fails. i don't feel like reading about it's failing for now if suffix in ('.wma',): LOG.critical("Skipping known failure :" + suffix) continue LOG.info("Testing writes for filetype: " + suffix) with tempfile.NamedTemporaryFile(suffix=suffix) as temp_copy: # Copy and write new file shutil.copyfileobj(open(tr_url, 'r'), temp_copy) os.chmod(temp_copy.name, 0o444) tr = track.Track(temp_copy.name) tr.set_tag_raw('artist', 'Delerium') self.assertFalse(tr.write_tags()) def test_write_tags(self): # We test by creating a new file, changing the tags, writing tags # and finally reopening a track with the name and seeing if it stuck for tr_url in test_data.TEST_TRACKS: # We run through this process with each filetype we have suffix = os.extsep + tr_url.split(os.extsep)[-1] # Stuff we can't actually write metadata to if suffix in ('.aac', '.aiff', '.au', '.spx', '.wav'): LOG.info("Skipping tag write test for " + suffix) continue # This fails. i don't feel like reading about it's failing for now if suffix in ('.wma',): LOG.critical("Skipping known failure :" + suffix) continue LOG.info("Testing writes for filetype: " + suffix) with tempfile.NamedTemporaryFile(suffix=suffix) as temp_copy: # Copy and write new file shutil.copyfileobj(open(tr_url, 'r'), temp_copy) tr = track.Track(temp_copy.name) tr.set_tag_raw('artist', 'Delerium') tr.write_tags() del tr tr = track.Track(temp_copy.name) # Remove the artist tag and reread from file. This is done # because of the whole flyweight thing tr.set_tag_raw('artist', '') tr.read_tags() self.assertEqual(tr.get_tag_raw('artist'), [u'Delerium']) if SkipTest is not None: raise SkipTest("Skipped known failure: .wma") def test_write_tag_invalid_format(self): tr = track.Track('/tmp/foo.foo') self.assertEqual(tr.write_tags(), False) def test_join_tag_empty(self): """Tests get_tag_raw with join=True and an empty tag""" tr = track.Track('foo') self.assertEqual(tr.get_tag_raw('artist', join=True), None) def test_join_tag_one(self): """Tests get_tag_raw with join=True and one element in tag""" tr = track.Track('foo') tr.set_tag_raw('artist', 'foo') self.assertEqual(tr.get_tag_raw('artist', join=True), u'foo') def test_join_tag_two(self): """Tests get_tag_raw with join=True and one element in tag""" tr = track.Track('foo') tr.set_tag_raw('artist', [u'foo', u'bar']) self.assertEqual(tr.get_tag_raw('artist', join=True), u'foo / bar') def empty_track_of_tags(self, track, exclude=None): """Removes all the tags from a track""" for tag in track.list_tags(): if exclude is not None and tag in exclude: continue track.set_tag_raw(tag, None) def test_list_tags(self): loc = test_data.TEST_TRACKS[0] tr = track.Track(loc) tags = {'artist': 'foo', 'album': 'bar', '__loc': loc} self.empty_track_of_tags(tr, tags) for tag, val in tags.iteritems(): tr.set_tag_raw(tag, val) self.assertEqual(set(tr.list_tags()), set(['album', '__loc', 'artist', '__basename'])) def test_rating_empty(self): """Test get_rating when no rating has been set""" tr = track.Track('/foo') self.assertEqual(tr.get_rating(), 0) def test_set_rating(self): tr = track.Track('/foo') tr.set_rating(2) self.assertEqual(tr.get_rating(), 2) def test_set_rating_invalid(self): tr = track.Track('/bar') self.assertRaises(ValueError, tr.set_rating, 'foo') ## Tag Getting helper methods def test_split_numerical_none(self): self.assertEqual(track.Track.split_numerical(None), (None, 0)) def test_split_numerical_str(self): fn = track.Track.split_numerical self.assertEqual(fn('12/15'), (12, 15)) self.assertEqual(fn('foo/15'), (None, 15)) self.assertEqual(fn('12/foo'), (12, 0)) self.assertEqual(fn('12/15/2009'), (12, 15)) def test_split_numerical_list(self): fn = track.Track.split_numerical self.assertEqual(fn(['12/15']), (12, 15)) self.assertEqual(fn(['foo/15']), (None, 15)) self.assertEqual(fn(['12/foo']), (12, 0)) self.assertEqual(fn(['12/15/2009']), (12, 15)) def test_strip_leading(self): # Strips whitespace if it's an empty string value = " `~!@#$%^&*()_+-={}|[]\\\";'<>?,./" retvalue = "`~!@#$%^&*()_+-={}|[]\\\";'<>?,./" self.assertEqual(track.Track.strip_leading(value), retvalue) self.assertEqual(track.Track.strip_leading(value + "foo"), "foo") def test_cutter(self): value = 'the a foo' self.assertEqual(track.Track.the_cutter(value), 'a foo') def test_expand_doubles(self): value = u'ßæijŋœƕdžljnjdzҥҵ' self.assertEqual(track.Track.expand_doubles(value), u'ssaeijngoehvdzljnjdzngts') def test_lower(self): value = u'FooBar' self.assertEqual(track.Track.lower(value), 'foobar FooBar') def test_cuts_cb(self): value = [] settings.set_option('collection/strip_list', value) track.Track._the_cuts_cb(None, None, 'collection/strip_list') self.assertEqual(track.Track._Track__the_cuts, value) value = ['the', 'foo'] settings.set_option('collection/strip_list', value) track.Track._the_cuts_cb(None, None, 'collection/strip_list') self.assertEqual(track.Track._Track__the_cuts, value) def test_strip_marks(self): value = u'The Hëllò Wóþλdâ' retval = u'The Hello Woþλda The Hëllò Wóþλdâ' self.assertEqual(track.Track.strip_marks(value), retval) ## Sort tags def test_get_sort_tag_no_join(self): tr = track.Track('/foo') value = u'hello' retval = [u'hello hello hello hello'] tr.set_tag_raw('artist', value) self.assertEqual(tr.get_tag_sort('artist', join=False), retval) def test_get_sort_tag_discnumber(self): tr = track.Track('/foo') value = '12/15' retval = 12 tr.set_tag_raw('discnumber', value) self.assertEqual(tr.get_tag_sort('discnumber'), retval) def test_get_sort_tag_tracknumber(self): tr = track.Track('/foo') value = '12/15' retval = 12 tr.set_tag_raw('tracknumber', value) self.assertEqual(tr.get_tag_sort('tracknumber'), retval) def test_get_sort_tag_artist(self): tr = track.Track('/foo') value = u'The Hëllò Wóþλdâ' retval = u'hello woþλda the hëllò wóþλdâ ' \ u'The Hello Woþλda The Hëllò Wóþλdâ' tr.set_tag_raw('artist', value) self.assertEqual(tr.get_tag_sort('artist'), retval) def test_get_sort_tag_albumsort(self): tr = track.Track('/foo') value = u'the hello world' val_as = u'Foo Bar' retval = u'foo bar foo bar Foo Bar Foo Bar' tr.set_tag_raw('album', value) tr.set_tag_raw('albumsort', val_as) self.assertEqual(tr.get_tag_sort('album'), retval) def test_get_sort_tag_compilation_unknown(self): tr = track.Track('/foo') tr.set_tag_raw('__compilation', 'foo') # Does not actually modify anything value = u'hello world' retval = u' '.join([u'\uffff\uffff\uffff\ufffe'] * 4) tr.set_tag_raw('artist', value) self.assertEqual(tr.get_tag_sort('artist'), retval) def test_get_sort_tag_compilation_known(self): tr = track.Track('/foo') tr.set_tag_raw('__compilation', 'foo') value = u'foo bar' retval = u'foo bar foo bar foo bar foo bar' tr.set_tag_raw('artist', u'hello world') tr.set_tag_raw('albumartist', u'albumartist') tr.set_tag_raw('artistsort', value) self.assertEqual(tr.get_tag_sort('artist'), retval) def test_get_sort_tag_length(self): tr = track.Track('/foo') tr.set_tag_raw('__length', 36) self.assertEqual(tr.get_tag_sort('__length'), 36) def test_get_sort_tag_playcount(self): tr = track.Track('/foo') tr.set_tag_raw('__playcount', 36) self.assertEqual(tr.get_tag_sort('__playcount'), 36) def test_get_sort_tag_other(self): tr = track.Track('/foo') val = u'foobar' ret = u'foobar foobar foobar foobar' tr.set_tag_raw('coverart', u'foobar') self.assertEqual(tr.get_tag_sort('coverart'), ret) ## Display Tags def test_get_display_tag_loc(self): tr = track.Track('/foo') self.assertEqual(tr.get_tag_display('__loc'), '/foo') tr = track.Track('http://foo') self.assertEqual(tr.get_tag_display('__loc'), 'http://foo') def test_get_display_tag_compilation(self): tr = track.Track('/foo') tr.set_tag_raw('__compilation', u'foo') self.assertEqual(tr.get_tag_display('artist'), track._VARIOUSARTISTSSTR) def test_get_display_tag_discnumber(self): tr = track.Track('/foo') value = '12/15' retval = '12' tr.set_tag_raw('discnumber', value) self.assertEqual(tr.get_tag_display('discnumber'), retval) def test_get_display_tag_tracknumber(self): tr = track.Track('/foo') value = '12/15' retval = '12' tr.set_tag_raw('tracknumber', value) self.assertEqual(tr.get_tag_display('tracknumber'), retval) def test_get_display_tag_length(self): tr = track.Track('/foo') tr.set_tag_raw('__length', 360) self.assertEqual(tr.get_tag_display('__length'), u'360') def test_get_display_tag_bitrate(self): tr = track.Track('/foo') tr.set_tag_raw('__bitrate', 48000) self.assertEqual(tr.get_tag_display('__bitrate'), u'48k') def test_get_display_tag_bitrate_bitrateless_formate(self): tr = track.Track(test_data.get_file_with_ext('.flac')) self.assertEqual(tr.get_tag_display('__bitrate'), u' ') def test_get_display_tag_bitrate_bad(self): tr = track.Track('/foo') tr.set_tag_raw('__bitrate', u'lol') self.assertEqual(tr.get_tag_display('__bitrate'), u' ') def test_get_display_tag_numeric_zero(self): tr = track.Track('/foo') self.assertEqual(tr.get_tag_display('tracknumber'), u'') self.assertEqual(tr.get_tag_display('discnumber'), u'') self.assertEqual(tr.get_tag_display('__rating'), u'0') self.assertEqual(tr.get_tag_display('__playcount'), u'0') def test_get_display_tag_join_true(self): tr = track.Track('/foo') tr.set_tag_raw('artist', [u'foo', u'bar']) self.assertEqual(tr.get_tag_display('artist'), 'foo / bar') def test_get_display_tag_join_false(self): tr = track.Track('/foo') tr.set_tag_raw('artist', [u'foo', u'bar']) self.assertEqual(tr.get_tag_display('artist', join=False), [u'foo', u'bar']) ## Sort tags def test_get_search_tag_loc(self): tr = track.Track('/foo') self.assertEqual(tr.get_tag_search('__loc'), '__loc=="file:///foo"') def test_get_search_tag_artist_compilation(self): tr = track.Track('/foo') tr.set_tag_raw('__compilation', 'foo') retval = u'albumartist=="albumartist" ! __compilation==__null__' tr.set_tag_raw('artist', u'hello world') tr.set_tag_raw('albumartist', u'albumartist') tr.set_tag_raw('artistsort', u'foo bar') self.assertEqual(tr.get_tag_search('artist'), retval) def test_get_search_tag_artist(self): tr = track.Track('/foo') retval = u'artist=="hello world"' tr.set_tag_raw('artist', u'hello world') self.assertEqual(tr.get_tag_search('artist'), retval) def test_get_search_tag_artist_none(self): tr = track.Track('/foo') retval = u'artist==__null__' self.assertEqual(tr.get_tag_search('artist'), retval) def test_get_search_tag_discnumber(self): tr = track.Track('/foo') value = '12/15' retval = 'discnumber=="12"' tr.set_tag_raw('discnumber', value) self.assertEqual(tr.get_tag_search('discnumber'), retval) def test_get_search_tag_tracknumber(self): tr = track.Track('/foo') value = '12/15' retval = 'tracknumber=="12"' tr.set_tag_raw('tracknumber', value) self.assertEqual(tr.get_tag_search('tracknumber'), retval) def test_get_search_tag_length(self): tr = track.Track('/foo') tr.set_tag_raw('__length', 36) self.assertEqual(tr.get_tag_search('__length'), '__length=="36"') def test_get_search_tag_bitrate(self): tr = track.Track('/foo') tr.set_tag_raw('__bitrate', 48000) self.assertEqual(tr.get_tag_search('__bitrate'), '__bitrate=="48k"') ## Disk tags def test_get_disk_tag_length(self): if SkipTest is not None: raise SkipTest("Metadata's do not return length. Might never.") tr_name = test_data.get_file_with_ext('.mp3') tr = track.Track(tr_name) self.assertEqual(tr.get_tag_disk('__length'), test_data.TEST_TRACKS_SIZE[tr_name]) def test_get_disk_tag(self): tr_name = test_data.get_file_with_ext('.mp3') tr = track.Track(tr_name) self.assertEqual(tr.get_tag_disk('artist'), [u'Delerium']) def test_get_disk_tag_invalid_format(self): tr = track.Track('/tmp/foo.bah') self.assertEqual(tr.get_tag_disk('artist'), None) def test_list_disk_tag(self): tr_name = test_data.get_file_with_ext('.ogg') tr = track.Track(tr_name) self.assertEqual(set(tr.list_tags_disk()), set(('album', 'tracknumber', 'artist', 'title'))) def test_list_disk_tag_invalid_format(self): tr_name = '/tmp/foo.foo' tr = track.Track(tr_name) self.assertEqual(tr.list_tags_disk(), None) dist/copy/tests/xl/trax/PaxHeaders.26361/test_util.py0000644000175000017500000000012412233027260021152 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.329046939 exaile-3.3.2/tests/xl/trax/test_util.py0000644000000000000000000001211312233027260020110 0ustar00rootroot00000000000000import unittest import mox import gio try: from nose.plugins.skip import SkipTest except ImportError: SkipTest = None import xl.collection import xl.trax.search import xl.trax.track import xl.trax.util from tests.xl.trax import test_data def test_is_valid_track_valid(): for track in test_data.TEST_TRACKS: if track.endswith('.aac'): continue assert xl.trax.util.is_valid_track(track), track def test_is_valid_track_invalid(): assert not xl.trax.util.is_valid_track('/') assert not xl.trax.util.is_valid_track('/tmp') assert not xl.trax.util.is_valid_track(__file__) assert not xl.trax.util.is_valid_track('http:///tmp') class TestGetTracksFromUri(unittest.TestCase): class DummyClass: def __init__(self, parent, retval): self.parent = parent self.retval = retval def query_info(self, value): self.parent.assertEqual(value, 'standard::type') return self def get_file_type(self): return self.retval def setUp(self): self.mox = mox.Mox() def tearDown(self): self.mox.UnsetStubs() def get_anything(self, file_type): anything = self.mox.CreateMockAnything() anything.get_uri_scheme().AndReturn("file") if file_type == 'f': file_type = gio.FILE_TYPE_REGULAR elif file_type == 'd': file_type = gio.FILE_TYPE_DIRECTORY elif file_type == 'n': # anything.query_exists().AndReturn(False) # return anything pass else: raise NotImplementedError # anything.query_exists().AndReturn(True) anything.query_info('standard::type').AndReturn(anything) anything.get_file_type().AndReturn(file_type) return anything def test_invalid(self): if SkipTest is not None: raise SkipTest("Test is borken because of moxing out error") loc = '/tmp/foo' self.mox.StubOutWithMock(gio, 'File') f_anything = self.get_anything('n') gio.File(loc).AndReturn(f_anything) self.mox.ReplayAll() self.assertEqual(xl.trax.util.get_tracks_from_uri(loc), []) self.mox.VerifyAll() def test_single(self): if SkipTest is not None: raise SkipTest("Test is borken because of moxing out error") loc = '/tmp/foo' self.mox.StubOutWithMock(gio, 'FileInfo') f_anything = self.mox.CreateMockAnything() gio.FileInfo().AndReturn(f_anything) f_anything.get_file_type().AndReturn(gio.FILE_TYPE_REGULAR) self.mox.ReplayAll() self.assertEqual(xl.trax.util.get_tracks_from_uri(loc), [xl.trax.track.Track(loc)]) self.mox.VerifyAll() def test_directory(self): if SkipTest is not None: raise SkipTest("Test is borken because of moxing out error") loc = '/tmp/foo' retval = ['foo', 'bar', 'baz'] # Gio call to find type self.mox.StubOutWithMock(gio, 'File') d_anything = self.get_anything('d') gio.File(loc).AndReturn(d_anything) # scanning self.mox.StubOutWithMock(xl.collection.Library, 'rescan') xl.collection.Library.rescan() self.mox.StubOutWithMock(xl.collection.Collection, 'get_tracks') xl.collection.Collection.get_tracks().AndReturn(retval) self.mox.ReplayAll() xl.trax.util.get_tracks_from_uri(loc) self.mox.VerifyAll() class TestSortTracks(unittest.TestCase): def setUp(self): self.tracks = [xl.trax.track.Track(url) for url in ('/tmp/foo', '/tmp/bar', '/tmp/baz')] for track, val in zip(self.tracks, 'aab'): track.set_tag_raw('artist', val) for track, val in zip(self.tracks, '212'): track.set_tag_raw('discnumber', val) self.fields = ('artist', 'discnumber') self.result = [self.tracks[1], self.tracks[0], self.tracks[2]] def test_sorted(self): self.assertEqual(xl.trax.util.sort_tracks(self.fields, self.tracks), self.result) def test_reversed(self): self.assertEqual(xl.trax.util.sort_tracks(self.fields, self.tracks, reverse=True), list(reversed(self.result))) class TestSortResultTracks(unittest.TestCase): def setUp(self): tracks = [xl.trax.track.Track(url) for url in ('/tmp/foo', '/tmp/bar', '/tmp/baz')] for track, val in zip(tracks, 'aab'): track.set_tag_raw('artist', val) for track, val in zip(tracks, '212'): track.set_tag_raw('discnumber', val) self.tracks = [xl.trax.search.SearchResultTrack(track) for track in tracks] self.fields = ('artist', 'discnumber') self.result = [self.tracks[1], self.tracks[0], self.tracks[2]] def test_sorted(self): self.assertEqual(xl.trax.util.sort_result_tracks(self.fields, self.tracks), self.result) def test_reversed(self): self.assertEqual(xl.trax.util.sort_result_tracks(self.fields, self.tracks, True), list(reversed(self.result))) dist/copy/tests/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260017274 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.153046933 exaile-3.3.2/tests/__init__.py0000644000000000000000000000000012233027260016222 0ustar00rootroot00000000000000dist/copy/tests/PaxHeaders.26361/data0000644000175000017500000000013212233027260016016 xustar000000000000000030 mtime=1382821552.789046922 30 atime=1382821552.793046922 30 ctime=1382821552.789046922 exaile-3.3.2/tests/data/0000755000000000000000000000000012233027260015034 5ustar00rootroot00000000000000dist/copy/tests/data/PaxHeaders.26361/music0000644000175000017500000000013212233027260017136 xustar000000000000000030 mtime=1382821552.789046922 30 atime=1382821552.793046922 30 ctime=1382821552.789046922 exaile-3.3.2/tests/data/music/0000755000000000000000000000000012233027260016154 5ustar00rootroot00000000000000dist/copy/tests/data/music/PaxHeaders.26361/delerium0000644000175000017500000000013212233027260020744 xustar000000000000000030 mtime=1382821552.789046922 30 atime=1382821552.793046922 30 ctime=1382821552.789046922 exaile-3.3.2/tests/data/music/delerium/0000755000000000000000000000000012233027260017762 5ustar00rootroot00000000000000dist/copy/tests/data/music/delerium/PaxHeaders.26361/chimera0000644000175000017500000000013212233027261022355 xustar000000000000000030 mtime=1382821553.317046939 30 atime=1382821552.793046922 30 ctime=1382821553.317046939 exaile-3.3.2/tests/data/music/delerium/chimera/0000755000000000000000000000000012233027261021373 5ustar00rootroot00000000000000dist/copy/tests/data/music/delerium/chimera/PaxHeaders.26361/05 - Truly.ogg0000644000175000017500000000012412233027260024571 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.153046933 exaile-3.3.2/tests/data/music/delerium/chimera/05 - Truly.ogg0000644000000000000000000003131212233027260023531 0ustar00rootroot00000000000000OggSQ vorbisDqOggSQ_!iWqvorbisXiph.Org libVorbis I 20070622 album=Chimera title=Trulyartist=Delerium tracknumber=5vorbis)BCV1L ŀАU`$)fI)(yHI)0c1c1c 4d( Ij9g'r9iN8 Q9 &cnkn)% Y@H!RH!b!b!r!r * 2 L2餓N:騣:(B -JL1Vc]|s9s9s BCV BdB!R)r 2ȀАU GI˱$O,Q53ESTMUUUUu]Wvevuv}Y[}Y[؅]aaaa}}} 4d #9)"9d ")Ifjihm˲,˲ iiiiiiifYeYeYeYeYeYeYeYeYeYeYeYeY@h*@@qq$ER$r, Y@R,r4Gs4s@BDFHJLNP@OggS@&QfRmN/"l{<I5/w ˎ6)׻fo:s]}"NI1C?_bZ6=j X3o%Hg0?~_\~\uǬEG2w13C*d!L` 5Xβ κxU25wϛ+R;q$2j| ʜ"bV^^DXn)3i]!ԻWssF6="~.S=sA ݙNb쌙O/ 7%4C7w"ӆjӸfThR!YSh(؟xknI6Bώgw|GƦ$/vDwZ9r/GGN[>[w+7S`l2m?OWN'9󫎛ԜҊr*[qHLf-?q1^O 9gj]YNFd.tte߀] d_k6 jU3ʕu҃kZVFSk5P?|ZKQRLʄɄkL|3邪ݼ@]b茶+df3vnj>3:aSa zω`ʛlj(X!iӵLN?5Mp>rF'?=N=rϽ/ſmE H#'=rmFBHt`58>fw83~\R=.cFT2/v{ݣD, X:撙SbU>/^e1Z3˪sYW2h^6ܾ g>@2=mD5"ѐb75yd8ڞ]͜FCf&}ge;-YP{dhՉk䬸b>Dٓe^.^3)LP}SY@$d Cn_fT$6=-S]+92;&ozOf]=ERhR+^mn[3-*r}sN pwRsE}C&}AyCI\@^j`:PIL~3Snm-lntX/Tr=ϵ9x x[;iE)AmemTimT&C °@2 Ifus@~am4jJ/wH뼾Q9ĕ&V(9x,.ؾw{8ʴ:F/%lé|؃Ţ8X(@"=I{p|WIS&G)M]o/^ZQtCuA㼻Z3YYՓKOvW{(^!:{T) ~ҪgS4s ouf:Ӈ?/!o3I cAY|!SIQ@e*.SiHY=@5O3sLPY]յcsgiOgnD  c]$Fh$VPѝWr?s1 2 B˻QaqM"(Lt-k=]wvn$RulhkVfTw=c*{j6N:{a׾=ϖuEq}\]/K~&~G#RnJF1^;4+ UY,$9U2ú s 2bF-QqwwC:MuOU6tw%dIk IE<"il0~2\/yM!̚j_! b@U<Ҏs"aY! f ec{|FFX[9$w|ѨcT_Ztu1y,3W?Oj+4Yy^}ssեjGΟ3݃҈lʮ>w%@ެԤw]ڧtvF5'w@Pu9ZJ>6jnLuͯ^d?LOg4u*Z .zs)A::]Eܵ M'Jr>ꁆ/;($Znzl`PEtAO$6V5\j ;3>1$N.x_ȷ(K,. /K'A/r}-@Aq841 Kp/,A(f _ۚZ_UT*r7'ǩ{<*[{Z+>}l~v|it=ӌ|1Vݖ=,2b^y8 Iv*Z׫rD^dVY6j,rs$^TT4yg0u!;Nn|ȉ s1}k4-.NO˺sW,w{a2fRutϜCwtdסV]T33A_~mKa#Ne%3ROfy7#f!3īf*Ǖ&wQ :>fgͶ<{sr ha!ce*2lx.vlWE"n?MAS2ML-(>f]Q'|fB6"JFq3tbquQÇ2N5$={~"IUi?.תr=ȅht1}J7D۳L5WEO1UPs<^ $`CRy)Kf1}4o_Ѥ5Eq `i&oQ/XRs:9缊aԵOR$잧ӭ橨ɭOggS@RQvK\~{3skJ?cv&73S[6f j~6Y|)oSj(s2HwIDo'IK\H3\ys,yCC2rpuV< oŷl >6`tf@' W}hۈjR!H_&.+UU6嶶+?rV}t̯ӯ΄> @TUQo6HS׾aoUd@<Ģşv&2*FsDƖ z_@ (Y8e kWZ]ŧaƛ֭n?V|;mM3sT;)\33|cI#vP +mU3w(/:M2 G2tE.+kI"PfB6=+Fa|uo9ih}MVߐ~Wߝ=!èł-{]܏/ޖ114Ǥ4AzOG{#Ltɡ!1I"i̎HO$f7{跪kyNjTH^N5 Rlbt&WAcЧ'ktԭsi ;Ī銨x#.r6L')N=tL"MMCѧo(N(TTZ0UĽ'fi4g-[Hӥ7 A"R fikW M cDM]->f1vQHY+;ڶV`Mpx7+Sl 0,G;ڎPmXX^SIn䪷|{KMM<`G6q[4MbnFb+oL9S6k^<,FT>MG3:7-sĤO>f&Wƌ[m̶Y۶ڪvV \3HN(O_hLʔ>qM%6yag>QpbȺt7$M.gHU%#1Ϯf*_֬+ cE '+Sa~Moώ+8Tع&*~̩LM4Utf4t"Jj$ZY)vnٞhqCwd@Dkfg }**̽鬇>zrOJ ԝe˸rQP`9qQwU$$d6sg7X9{9EBYG[`Yŋe _ q 2Nci(N>06 pV8 F F >f<@ !߶kTu*M`1t?>KN嫛S$dZTh>ahpQwlI:OO IkR$կgg0ߠ\>ߋZ5C&0Oϩtuծ{ _  OwVkC#';m?]CFdAQԤ{7zp%}kLof?uw3 ], W?YT +F )_tMsL;MtQ~3S gF0`}8KA]c{\F96`3UOh&Al ` bz@"V#K(.p` vpfN+>:6ڨiZ$_&8ǣ4zFu;o?ٲے6v˞mk$W(zhۊY˯eضAjΘY7wܭ!5G6m/Rm$um+ہOjþwƃ95diu90SI'4N(z̛3|{5I<нigӛ0&!'ɄCw1)C},o}lT3鯯1L[4m= {4覆T  6,R Eފ4%jf7ͣ`]gg[kogQ)<ӮR&$bEmNAb5ɜzQTݑ&uwqi9yn\TQ~W S }Nڙ{Ce?lkκ繻S͆,Sig7yډzHb4L0W~kl 'q=y0g?v1u%aDO! #͗5\. GYP}e/Fʖ Ky߿>F":hv(v j暎go{4K(bV"ՎsNo7_OW}St9vjh260,@]G!KT&6fSPCLwÇQU계)C,d}A&) hzV*X:hm):M=D~w ]ʭ& f} q{32j]@gvC]◩ )^x++J }頻 _tve FfK*(J1x.ej{ jopoPV ̩Heq 3]dl$dist/copy/tests/data/music/delerium/chimera/PaxHeaders.26361/05 - Truly.wav0000644000175000017500000000012412233027260024612 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.153046933 exaile-3.3.2/tests/data/music/delerium/chimera/05 - Truly.wav0000644000000000000000000013205412233027260023557 0ustar00rootroot00000000000000RIFF$WAVEfmt D b datahX0@PH`8hhx H@HhPxPxPxX `P( 0p0 p Px`h( X 0 8`x0X@ P 0`x)  ؽ x x!IH!X ! ЏH (XH7B+/.g8 X9XxH:3x P`rPJ8o`~T@80p@$H(JЦȓ(*>pypF(І({`U pj~H0(8hHl@=781P`>w 0,8@Xh?ipb`P6`Gp\pWp^xH(ȎP:y70P8jP*wfd@[L` B@,(/WO8@p8L :x_(H(|0o7@Rk(l`XhXX>@ (hp~x7hGHp~ 88  ~0;A@`uHJ88uYHip8GȭЏP 0x% hNhHHHVHزh<%Gp0Љ H>xvx: +2N ]( [$bxpȃN`hcp 1p(c_`x/v(8ȃHh Pip)X]\j Я%DPfK%zH0p*8 p @]#X.M/H9>$MEt px/'+HȖб@P (/?d+#8!HxP5HP{~`%_P!Ƚ:Tr[4xt%H!96X օPױoH00x?("zX]&hx/ȏ.j0|mHY`BkW?/*KPeZ@PM=Q0cKhH h7Pfb7S`Mx_0h0qUpUqЮ  rxXMXk@XEB&h"N8;+Pzerq-LXЬ8DP׵wņ8mxI;8{ȩ'0N;X[8hkx@@d01H4[b5iP}P^xpNx,<}@@q(dxhmWjD.=HS0hx,`CXN zxhb@2p$cXȍfH࠿`th0+pPxj38Hw0FLX= 5PNX.KA@wHn00袡,80} ixbP'8{̥q, sp~(jјyAH <@CLp(` ghk88`"ࢱdX-ػh;]H:8x3x؛CM Hx`p f(L:@o~23l Ži0E6؇x kP!+l.cȘb6`P~@f`()_1V) 4H+`}Z1X$AH JXbS38"7:^(t6vpi; >k( 1s$5` Lpoͥ8(H8~A!Q0GPg @U@c]@ D@pXώ&1ؚAh7oa*H_IH H0v#h^hxv}rp ,)0xGO4%h%``X(}xp<h@py4P9Д0Bpֲdp6˭u(=%dpʿ8İpmhz3">1n (o@R8>~xHxL;Ii@G ڒ5 /@}PȄM(Tx.H7uR[(JG,/0)XhࡴPQ;(`Ofd([`$Gxi{_ZpY K0xƁpRp< (8hض 2!P0ț@ =:ȑ++X{5Yh0S0xK`]3 BP1(h(c``tHi~( Gm=@ ^.h(~0(g8)(i3H}swx0QA uH 0xtl(4v`2] Xͽ&Bxhma[xH 8  w,x(iXp RtQhʫȢP uXgHFpc0gHHhXx~K*ؕ5``*8_Ћ(HdG~`tn I($xf hax('ȁ'mx؍@^H8,)00iX gILQ3i63hp;pp^"T^pBHxRXx pa IAͷxh4Z8IhDk8>8F3`w xLx&SxP #`o(͛(I0a~xG3ʰh:$v 0=aԚ/HH8тX3pk[(*$z9hܲptU_xQk8%,ƗX8w<kHո+8}@9pmXx 8@< x/TPLw^&@Cq mqHHjpƒ!zhcuȻNXu8~{#ȏ?lm`-pċhXP\T74(pPo%8"Ȕ+V]ǸȰ8H qX8Hhn@e;XEN}5e}77xhPS}8`M81phF*G$@U8X_, h +hu.QسFb_@:A8[}XufȆHHXx`8!,Fpx$%PZja{r`uFX-h;xJ#hEpo@@X%fzP(p $<0$@q9>+^f-m|)PڄЇ[( 0h@!^ȟu~OވX)yFePC qVH18z/XHfx=UH,H[**{09T`UZ$X NH~@-y0X7 u(P0S0`Az8jvPuXuh5DphhTxQp[ FZhA '6!@XEؼ @GCOx{`#x5]+x?<>&HH@Y10:H HWakELC  *8^xpق!IJ9*dF?lX8LޣL+NFXPoA/xH%# X`dp4@@EX0OP<8C@SuPpX;R(<@(n@[t̀_`0Z`ppX*`iDRkxrHenHh#".@` D\:@%H@80h@?Hx,x#hfjXdzpG+{ 0h Msy o#yd6f0G襎6ӡHOxPR?JKZxYpSH `s؛'{PHIM(tHL+wHE@rG0z;̒*zhлRjVh{[a_XH~ f HhrOS @G 0g(@7 >M ^@PxJLxf=1HMx(>]c2`dEx=P!xV` kpSY `8^L5QMupQ6`xAV@b)XIVI(48&%Xt2V A/ˠxvnXxKM8_nY)8'f T[0k.X>cHPh=bUAp V( !x*ේ =Hz8=`S`poFhZ RٙņG"h8Wl (k,egjU4XW8D(@oIGYXwm`{ e`T^Y{ZwX`?`H<Я4pY4)6 P%K0=KhJX][(>ϱJM*8`G@IghZcP5@;.XӁ&(S9NReH_oV9d2^(.NXx~+ GH C`-=T=Xr@^M(mx& _Lp &*8'x+Pn*X8#PB0@@bTZUxČJJpzf.jƴP\(ʢ(8C&x7ɶ*+Ҩ?8X8Ƙ<Yjݠw` S8y9S+v(P: #L0@Nh x58 #1@WˆX8G #@$@(uj$ҐcbJM80t1$xMhx`pe>bpE=(6@C*xo8֛5x0΀_gDP#ފX>/Fa#p05>}ز*>\yxg8{_XA((k 5X*K8Ȥ&(xX3@xڦ F1pDP:ͩ0W׈sF ոB ɯ߀K7@- (B@sZ U(L`qPt]=F@_|1CU`z^18d Xڨƣ;*}$;8PFh+ (<9 *hJ4p,@=(J&d0yí0cmxgȾe򐔫$9<"3ؚmv8IXuhH(ٚx?yL.Иm5=Ѩ0L7xͮH pHR(-Hc DXxȝEӃH QJ߀P<-8ZVP}M77)\N`j@ďdEpMY 9#Xz*0,@TfPSY0:x1@mCw:?2 (C?Dtٱb<U+\Pds=;# jp]41ؖlV`US0.<08(W8sVePlHOx/}0W,蕓a:4h,xApj0l"c1WL;.x lꀠry$oNHޡjHWh:Ȳ&݅`Wp (`sj $8ؽ OE@K8XuNv 0 `[P\P #̴PߐL2-@'ـpD`| pBո2JQ%-0[p()8:Xx&_8,$H|,ȘJHI,? [P9'"ۥ՘zbA0p jPwf@:8%e* (&IP|`(З%X((K6PJ! 0s.BwH/0Sx,hZF  Y <| z08 W'#^(0zL8SȽp >B(R8"@xN;XN@;%2J0$Է Xݞ]XA uX cx dp> 8ozP8HP *H]@Ht)ڥ `_p` b@ X] M D(z(gE g+V6PS82h20h0@x_]p4V8x h(b Px$s(NX(:=(=;pUX7p!Y<Й~]ЯHOHDg( D@;e((&"7C(ilPAb8-H|0J [cxPY%Qc0Ү8i@`0H:1pg؟0#Z( 65Xw|02GΙ0.r ?Duxn]@hh\@aE@{ uj`6u@H& H kXU &0O* 8cCЕ0t}xalhXbx(pH pflO yhTh>ehxX0`8 CwX!XzXMi'x\ Xaȃ/x8I#&@gDpIiP.:Y D`h(eoPl1(ΖX\Ld 0f^x3hĕ uhl2k@GG0-ya`r{qUp,Pm>R(8Z@6g`@}} BSYPTHS@0{9( {A8p?opex /wEX@XI@DJJp38(2p(Jpmp_( T6 RU@(CP0P @ʬ P* yKxH|  `H*p`XwX<XuXPYݠ(,{dX`t(L2/Ы8`BP}Z(@v h!p,0y\@ȻxgCo+`=JȯFpxH)n*Ef.ZMD( 5PO0q2w2O`~8vPJ[8@B:$=`RFrg#(ڝЧ}<;ɣ!3,QP@p$Lp`hh4X~h+YE&(@KPios RMUas8`G 8J`0ho HZxz`:@`/ P l@A1B̡` (r  z@ݢ uwع@}@;H .@!{ XnjK / hȣ2zx-F +^`p ,i@xV^;< 0:8W?4@pq"9U XPoPnP~dp@nG8HAbkxJCOJ8u)iu`AO~  EФ``# @lp #h<P\Gpxph8F6|Pea(x0>* @H.@۩ t`P؀ߙ˜ Pk \x~6@07hQ'x(o^hi0\dp*`9!rŏߘ-Zv# (` UȌW@wFP_( `8X} k:#*p$ 「Бeh% 8W  ?l] ΩHpA?(X@A5 H8(6c80 u 0Y9*ڿ68V젫8w8Mx`W#Ҫ(!c83!|J?0! m8fH H^O츼sqd X^XawȚ0o p5(0P38{7L#Hf8 (lP#Ps ``Ph-sե8is{%Ax  "`8t Ҫ$rPZ10L(}M(9':0D@e&H:0|wHu/@(8Ph4HRHA5R^p@"gx!vd}=P2ɀbi.` G8b*(|4,% ~@8[axB#3P G;x4.SD ĄY m,l@Kڹw U9Q$DZR40'h)rHh)@h0&X֫8Dsp`ȢIoh( hHьh[ثA |Bp#%d R (mX"| o3țBn@| %}hpxF;X2$Ш[(!PΎ9!#p,( ڠ Ő`A0O!P]H7ΔǙ*3κѨ ߨHٰC(1+Pw+0r0QX`0#`Е4Yd?;3!P@[pHCP^FHhR|-zbPLx!P): H;A*Hx3MT+ ? $5Xy6XY`FtG@(RO*8X|lЛl ) Up ̀p $ZGpuuJ_!0*Xoۺ0bTQ 320:H$3@ m#rY* _lLD70(QpI2/Hh U`m%k |~\ގ`5P؟( SWROE";Fo#(qHߏȣ8wP`C︴I 苪2xR,  ejM r(dA|S|3u `E xJ?4Hmm}>[(`@=ܠ(o(-s\]&(8`UW8ikm)PϘ6p *V X}p=Y ^pC0s fטf,&ՈX8pr10I`.f(G6X,kPa!H8H45R5@pJx F_x mhP|e-pR}PNxs먖 P+U5X؈K_ĩ=*'@@;e8OX(go،%Wf>H/. G5 (O 7\w |bp⨥6X*o۴>hӻJ7pݏZYEژZxD h*_ x>镰-_HIRdH hI#afGfO4-hg6n ࠿I`Hk/ޠmiX0j( Xz?p}8Bc`• h n?X3.b=UH4@0'"h2k!OXpW%| ۑwI:x6hH0xA@/(|ְk c'Q#v)KC(Pn6,Ph>F("`q!x;_x8\=ɪhk'eHբPFHI@-btC 0(F)x h_ @!YLQ8:0m6I`a+`o]0H IJ:8j?3 f= k)@e.H¬BL08m尦w &X~C.H%[&p_ƠDPԘHVH脮TP`!X`-hx< h'@7C(XM`&#( -䅌E>Y(#0 p?p!8@L xq[=Wp(~6:$>8E%. Zq`X]@ٻ00x 9.h XxF@xNш?j)J\fMXXjnu(cx/ @$^-H@u Y`6|&8Q(DƒHm&!/i}!8׳2? ,p S@f-p`b0T %080r, eL3MSv>87xVH(:01RȰq+$0P*}(4ʰHLƧȶWЩPɠL-׀H}QYf.0 b&LP4Xx^MS0dX*\xo HP&*$hD@y8XI&`4( Py` CXKqw٘ g@hc6jX0)E8P/B\Qޤ`,G `T(H9`yoOE]p#uWx[MX]\`Y8+8t htsu$&o0B SXT\L[Th벘Jʍ PoFs$.8p)eUU E( ZA hJ87l %cfPXC8%ƓHQ؉$`. C"(`? (^`DOXsMT1Xiȅg:;.`- :XLIP6E(VĠw>8 ٸ=ِCi hk*<`@Z>hdZ^H P"pϧ󀚀x@8EG^vRh%D-E:p7蘂>&up98Y64X$K +@p1g+xn@.<*)7y(d]h.0UxVh`'%@·A((m 9xKנ 87V|tP DuH5(D+S{`F"?=:7h8f`5h[0dA LUbB=ߞ`LxAQPd A 3e]xhOYXӊ0x`o A(xР%cPI?xB9)x/PXQTwpa:KȺGX8')RM;HA5M pUƨM0RPL F2PPLpb Ip'x:XWDXn'CC-X-0f( $W2 Y$@(8'ֶP#ވl"D @mE`m3cPPϮXsh@YrXxEKpNN;zce+,pS@r<7t28g8XmUa $x_>WdpBix-+vZnH!P]PNpQx%8Ƞ|W(6 \HH'Н—xdx+qްmXR8$[̀2pqlu~PJ87f=4 ĬhnBGYHV2 X^*P踼N誁_]P'(jZ$XA&(d8R`0BԠϸD&0Q8}_>f"p;< ၄xȘ5>,I=E P[S#` 0R{8`XPPTP6f[-#KTBJxh鈻iزaxMޥ(D!cPYᰎ0<ະ&EI}`$yX0I)(g->4:Z8$]k0\6b`E;1&zJYq8f"Z 0k)HİB"p*w /dM8R(TX S @DP%L&8/:Oʘax8(P!x? XQҸhW=xaG[8xmKlٰ*?:HJn0DĭhJ'C5衼JP 8N{x+Im(H p+ +d@7TjE08x "`xEisf0A n7XUa V' :gR@7>YTH{O ȰG/)PP#hGvTB EPd5 Y0~xqM9Xrh[@̙Xe%2iHHX;h HMDm0"yhvx8i `&&?XPX!H_ Up-hh0p M,ˀѯHʑ d شO%  3I@Bx6pN6  40DIWP2x,1lto`bL(2onCxΔe-i;x* cxOPˈ@$_- (=(6(G9ȗhC(B V)vv{ِvH/`_H<>0>XxV՞SeO`Hl)| ¹hdJ39h&-Ȼ<O/dYK *Cm?P k(̴d@&BPI=hMLOUrںk;.X,`kmnHVغ)p]p( y H x] @DL--ch5w eSw u夸Kp(XR. Vxw`(:訤 hKExCuʸo?&Ԍ Cǭ8B 3H Lw?[0gpVPں]@BHjJ/T=Nؒ=:w0J?:fm#蠽/01(|Hp6  ŠtKܖ=P!ǀN :[ KVCj9xRp6KYHx*aܜ膁 Q8G^ߠ, U%z~0= A@A@48&Nxպ @8␅r(vo. Z8IknX>2q\ ;x/ H'[mLXa~h4h*S9HY i~c[KH.࠼0ss He*JEȂIXx&H&༝XHBcnX`1.y!j!9xwHȊհ]pXXXU/ :XP .}tRhHFQXp#Hmр@;ӷj";ð;[ 6kS`޿ V繱X;rw#8pgpp+`.`+I8Np%t#d@P TLHi\(:>&xK38VB`](X50[Ȱ&IX18ԳQ%hп+FPV /`` )@ʪ8i(gkC( 0)H8FhyЕLV"0i FբPXx(Hp߷(=86 087([}u_M`:KxD߈f]((Eܸ^%(xx P8MlkV`<Y(II ``t丽PQd?iLJվ؞Th G>@T_@?3s} PH(7U8U_ʸ!wm؏o+cJ`|X}--`FX+稅Րh5Se,hfMՐL'y(L=XRv(*S %Xku:0XjP`H 8pZPq@ R:M0А#<"Щ!{x/$@1ئ^m8m%x9+0x"^0>֠i `L5EP+/Ͷ@o? Xa`W &%;?f^0axD/IPE%L @?x8ZJrQ89p 8x=h7PxpC!PظW=8EhS-a 0C0IeH @bhG֐Lۍ0r"sٽ*{;'P]c0i*=>(y*8-qN@g0Hh4bTho3xg1('M縫z6ͲXWx:v XИY8sht C!nO(aHuL X}y'赩@N`xKx/OЃX=Luh̓p&,8 `U(99Pȶ4mEH/Ƹ@z?[vMwSG *Чa ՐXqLT} LP09u lWkjx>HxhRXC!g!-x5 .0p!(\P߫npl}P1^`R00uY3}N@ mC<'x"Ppq00Hd7p/k@0pe"ЃӠ@_Hp;Y}E6,f&ZYohZX$S ,r uITEhߟ'X Y ?c84,e8';>HTe=5hF(H8Q(l@hȪ!x0XR 6u+bJPȐ5S !*n;(``-I@ `Z6z&pڀ%3B+GЏEPr)X0 TȾ<K%.rh;`6젔P,Xszܠʠ$8 2B-4# 3mr0  GhPh1KIze\0d0^po݀m3=СaةP.HJwP>>ź Ͽp8cݠP֝8g08E6 (!FT}Wx4 UxxPHV|1,h>j؛`kCp1C̯bh`x(0Xx((_W5,8Y)`8Lc/ @+h{u@i )07I ls7c,irD X(P/D/$Sߘ'Cx h0#­G#ΚWo+!ht8BEۗMIMvDp 4 dyXx˲ ( أ}XC0i+1@,G,@ۘY.P p $0x0pJЪ੖@C(p@1 88.}<@'cb07ppZAveOgpG2Xx5pQZ+äؑ୘'ܠX XVxH Ҩg0a(_8UndP&нӐ0۸֛"8a8ۊHPCvH61`܍@W6ط { PRy( w& &|0xJKJ=Ā[ز`H 0*U-*{Lk`򈓂d09Hh/Ad(ݐ p,(H*Tu 7iH&ɘFА CBGcp}ר5Mpr䐝ZaϘ}Z1P75hf#_0`P3(H8 N_Xۻ`tTpת@lWbeHȭ&a(w(*TO͘QȪҠEhKMŮ(~q`Aq)D. #u(z!TKAP8P8ȷxݸ@4 h0th$@P=>!ڐV8@Th6-{I&iN ]d4X0h02 +{8:0Hv! j Wq'%Err"(8^HA)0up`F 0ވh8L6R 8P6F7N؀.*HuvLCx0G#`/A @rXբ H;x"P9_>Ҙc5Ij8@9kHE={$F.W_9,)CW@HO i@)+/AhoФgZ& @F3XCr1(Q_h.7aXB=ЪQDp hN`^6֏RY9 &7sXkp,88H8A~rA>C Jۭ6"UXrwh`PY)-pCh.E۸?ù 8jÍ+8u8z": p(0p,0N_@@yvrPd@bO(pñH3ߴ(8&x Kh.(X(:@DS6,H~Ty(MK`8$xi%XXϬ5B/hКJ0^.3jHhpj?`FN.>@U@ ]=xuQZP6ˊUȴ9[O2آN?@'{1qnpU`͛8yH솰>/$4xm{j!jxRae6Ho!OSДo>k}xh{l理>KP~pcm-R`$c0] Z[OU+Pq `*8@Xd>I;8lW`@M0XU?H @0pf S@ PYx@ȡxbH'0ȧq@ PeJ!HbRT)t"Kӵ<\h0Ӗ̐@HzX*ޞ /`Mt菬;Ƞf(Mw&8-8EBoGX yOmŧ4uÐ99 BP' Vȶ΂0tsgMà xNB$ )P_V (;س0`,HUhP`X*h_82AoJ5Բc9$x W0#L=t,Z@ r-Y+]ъ}8 #=cpl-@(HKnp0Z4HX/0$蚬8ئ]k`q.18}ph_0_8NBux @S%@T*Gx7PE5 ȠGH9I`8'75"9&H"耬ȶ4pHFf,8hp ^m`F^[*Xa7PYp@b&pq@0j! | p(#1X(JHz`n7: S q0=/| pP7uȨ(e˛xd86J8Z3(WvèKyP&`>[툢+_H޸Bp(/(7T}L/D׃@vW+p50x` xB0v\Q0=xC XHeZxBxOx%sĘU8@'H ЇDu=M4  80fY> S߀ LDp%Yɸ-$8z(C6KW898bȠ: ` #!Yij{Ac5ߨF/b8 o@:#Pe8Ő ؆h( E8'H=PR؄{_I8h)h(XřPKVP K 0$gx(p}H a+TR#(T;W!"@[YYz $O88 \pt$R{e݊~I([K H| hxeJ*!X KP&Hذ58|U0ErxNP]`ň ؜v_{\_CU"# )(p0۪PHAtOqEѸ ' Hܴ@'l O,3Ѱl!݀ W0n Ib=`=AM۰  ,kXแ@bڠHRf (m @8H/@t[!/ ) 1xm@x8XMp 9@5S[S@ WęȀ$(J"8GR l~0P u±X!`Nx TA,WL0&%(61|f+Xm)bxP0, j~~ B(32H$(hHiuϕnE$(2ݨm+p"kPx؆G< @(1HLݨ%RЌXhU5P8xJ`M;&0P301P ]P`R1haEU- yK<#Dh*DW$86ZH0Ө ؀ E h|a0IT0X-iH+iN@g iJ`LY `IL"WЍ,&{(XPأ]ݎ({lp`Ɔx6`kR`0x2ۣ8N (!Xthݣ+oEbdHײ_p&#&p{cUG^hSuw^L8yӢ38}JȈjѠ"иBq;:Сh2{HQ P;:މ @I ,`}`&;"/h*P#.0D:8m`܈p77-pb8Ÿ~X.SC`]؛`/d 8xbxx{])SBxB @55*x]0)GWXR70ثs8*@\#84&0A^'a460t&8u}v(A8X4|gSZ @YA#Fa(8؄RnG/hWZO\((v0றHlɸ+pH`HG VpI0\@v,KIxEضM'pREXڪHa)VLI3̐h,Tp`E#PPᖈ$Qc`3p>܂+-"h{ȸ>$`KJEGH(fKl$W$400m]C&L+ ht[(I08Ds!hqI غP6q됆WЩjuT,5h¸طS[ 3Ήp_Xqxl갗hP>0=ޠ`$˰p7 (LevaЛ XJPq4ExTT_xPFR DPfzrHp\Yp/p`PK-TЧ$Xk~vAx!^`m*u0ՀӰ[8=po ,PXʘ9~y :a#zRXf(R wJ͈b## bc%@p&`s`pph8p@hn+öw"K|K-(B5 Pi/kko;Tƞ( Hxf ;|!Pn2N`:@h葲`K G2( p\BX%;!mTneRx9 J !4-p+POK (Na4Θ0뇘Oj.8.vFpX5$ྉ&, УРH?HH qx*܈ H륐i x!pO @d0.LZXտM^yhrowi>%7QdrqK7 (3D#Xm6p^huY<F10JN'A|iȖm 䶗@[ h3 ,⸬?gDj9x[xQ@q| i!N0]XY/@(I ]`hK%P :p٨80V͕U84/X+$>: ʘt-L |}htw]Pпhۘ : H8y5@ 1H tXC8*'L^a fSDDP~)(z` ֐Z X:xJGNPн~eoB~AB0$ 450&ܓaR@ZkFi8*xԒ'찬Q܉8ިxb/X]@@k(A^) 0P .M6`@u d0icp*"(.S1~8y]Pi9B7 ]x H X"1-"7ylrXFPcD_p`/+XN`CWh6HHMЊ\ʨ٧uW8tРx, bB~y>ȧmIlhP Q+ (_L y-;UboR_߸]?`a@ܠNJ@I^ැp=#KP 1UI8q u5,+9b ќyJȺЊ h1U*Lj`&:Ty8Fx.2H{!0ZfH8@cT`xX=xf=֨a! 'ƾ@H.Y:)mX/+P\8Ah<#S`rˀ 8`)٘ps@X6P\vܐGpm Xą0[8 ܊1H 8Bp]5 "x;N Mc$(Mj=TH:3PfSyqŪǢ`|87:@PfX<Y,HHX8OB6 v_'(X,?Hzfh"d ha;h&@C*ɀ2D/@<6W:H`<'x\ND `-@Z`ЇBn>໐:pm|m ј|xxP38PDKpBP$Y I2Lg:7C&$hؾ0!*gE yo>geu !X:@V0J{b׹e'ԽmX JHd`xj0q0hKA~'cx֮D$X#+"yP/ 䘨0! `PM,hbJ*?0JpH0"<`7 5~ ,Հw<F jJ\zeJl҈XSx(8# C 51 pHXtȘxZgp#GpOň6զ`E䰎+X؄8jNHX\;ĻHV Ϻ[`@(H&h3H[CSA_M"E^φR K,0$}7*@ٸڮ嵘a p`MY] ](0ܤ*x=94@.Lh@pѐ Gٽ@;OJȻ"@28xYP: @p^2ʥנo-:'Ȥ1@A7(tgRw)(fQ SȪ&Uwȉ]Lrh@oGX 2^sV |b.Paаrm HH׈ mLf!J#TW8X}m 5QKN' պ Y!鰽EX+/3peΠ.-1J& nB7T ;~pjѨSJXX]H}QLhbrh)hG%T9 L٨텭MhǨPO+/Ipйm[P嚈لS$d `8pۘ2H{%8ࠠ`!(vZTD8\i7XWȫ,;Q Sx _$r[(L*HG ,h}:TDHzҬ?.QPSP(AeLi09p hh:RE3h&HX#,bxpؚ1uq6 D@׫+ا~ @h05X%a(j(|P18?Ym_E.plߨDŽP~bP ,zDhJp<_"- ng15EY (A+!h(~`Q*؋(>Pgh{!x")ĺ  R  ؐH5 ix' -xؕ & v)'TgȚPfap>X)Iv0yܰvkX6pV0`uX~^@0uxe@>7 Bf1q xW2 q0;!0oahp/(m@40Xs *xqpؼ[0\7(htxYp@]Xg4PPKP~l?I?@u0Y!.SX~P}`X Y4@}h@& 8`L HMQ6i@ hmr@3U`hc &VKبС: hE@qh%Jؐ (`?`@0ߙ ao` Y)XNHIpIg 2 4o@L854HBFHb@ 5[P8[^&8@jpxK0h8HȬ9H}P* `<b iY(@pV @ =j u)Zx~ ;z0m6>GjRqD&K `}Q@L80 l0`\ s0n) @ @S`|`ظ/ pm^P|>| @?Lz8H&P g p - @ ^ jVH81 `{6(tXj<.p xYkt,HhL9rE(*8@ Y `,Wj$ ؜A8x؂s0 Ph vW%3 8%z7u'x `RpS+_O.xhRx80e{ц0+uH9|8u`^ȉi`XxP vФcX HFr1p`m #p{0`8Y`0h)10v[ܴ,MhJ@* eMZ.k$չ=h*#(*hexL`0Y؁p}}ޣwOt~`̠ h^ h+8L'P0JeȖx 8OH~+xI `$8fXfXPaH'v tt (f A(^8x1/`\h9|@SC0%aABr``hvHCRp7-08S{S D*XZ75xpK:@v >3pѥH#JC0@,@ ,(;HXW{A(PPgؿg00 ĝzhPckw (gr%dist/copy/tests/data/music/delerium/chimera/PaxHeaders.26361/05 - Truly.flac0000644000175000017500000000012412233027260024722 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.153046933 exaile-3.3.2/tests/data/music/delerium/chimera/05 - Truly.flac0000644000000000000000000004205512233027260023670 0ustar00rootroot00000000000000fLaC"1 Bc^7?U>Ʉl reference libFLAC 1.2.1 20070917 TITLE=TrulyARTIST=Delerium ALBUM=Chimera TRACKNUMBER=5YkN _,x" 2Y11b-JJ,LYjRKQE,ʔbbebK&&-( *-E&\R11IeeRYj,HJQe,YeU,UL&T),,ŪJ*&&YeYbbeJR,*Y2JUe"Y11e,1i)JYe*R,*TũE,RYeLLL,LLFX*ZK]bbeKVLYe,K,bbeLL&))IE-QQ12e&-J,MQbɉ,JTCaiR%\LLLRJRY2)UUTjYiEDUURb0!bԩKReYjUUUebeR)JVLYe&RF1Id)VYe+&&U(UUeba2b0LaL*Xe)JRŔɉZK,Ydɉ a b a a ab ࠠb!aa a!b!b !b!b `! a ` a!a ! a ! a` aa `a ! !! ``! a ` ! ` ! b!aab"aࠢ! "! #! "`""a`!!#%e, f'* ci3a`o#*a)fm(泑vrSYTztVP17tҙ_H>8^e>M{%FLeDzEBe$ZBдVIUyB%?YLú Bc[eתD 4-pC T2 MH~Q'-+ktQW 1+B F6^ )I+J@M/tB-nҜsqָ btaJ+](FWZZ Z `yʫT\!Hݼ(\Vh+B tyhj98@pQO9MœL][$6Tx[ȓ)t}8#dy.C zYiʅ`q #2Ub+aʞ) 62 z*N#Z`;lR6jvf&wZ\`egGbjtN,&m֗e\iri,nZ!&rf$j~J-,,).bH&ag0c!ʥmJ g#އ蒆egn>l#?mn~c:af 7eo%Vbc"$Vja7X ~%W+vW.7䞑3cN^wrak~5^>G!>"`&.snΖgO"C8*( CvqH"v%2>:B QKuv,q/gQ>X5Qilq2ڦ ˞+/➈R(V⢧#kmlK׳b33NgiѓW=hf{ꈥۂ3<^k˜IRt*f]?i+9T愙IH?{vxBt@zˈJ;ngw6#jhu1W :#| nDk𸻬ĸREma/Ƚ4垣p|B՜M9h(4*cR%ba]A,7QdOѦŬGmRzךk~{;#6Hh$௾I+Mo}q6l?Tv@Г>.4N#@`M ް`@E` P0j&`` \נxR8{ A A2P_0nU&@Gd/#AQ@FYe(#4)RIͿw\EyY~ xxHH8RN␒ń^Q=(BfRCYyyEW6LZLlwHaP [ؖHD:uqܫqu ]^l>h7ZFyyOYB6&0lP1YL(Q.hRѮ"cK0a|o%u _0k/&gJ {!bh+N 4$C#- qɆ  q\WI:PT4! @'R7g!HjЎ,S[s)o HfItf(E~p40bfK Q}:I#>eJ&K#U}T2%KkAh0I $&/&NJ7SCE[PD$h\HzOPPUz1kX eb{6P4͇l͜V(|NAq KfvȈY\&'[\GZ|SL)4Ed[1|m6r=Φk.7ajH:;+eI,hfothv)׉UٔeW:皩†SğoޚKݳ"}rzw F̏؝~.v!a^RY*q~C[{<ckal PQF!j>]yЌZ v8 ݄DG? ! 5AZ0?U(s*.N!^BzI+9 N;3QR|UREJ: {$D~aBPZb2pA1tB3a&C"žFgnM|/j_q~8$&ZA0մ(E( 9gݙpFH$@4eeMV]P  B8NVn) &7Ùj1~u$">cQ6Q+]7 \?KU3 nv[ge??9\-rrdFζO1Qk J'-|<4GX3y]f`G2V\ϞXd߂ vEߑ!T8Q=]Cm&bw$|_~,?ԓ𭚦q&݂ (͊<>+%9x6X(4xs㳉4"^Y=@ab{1Y#>G>KAU/g& ͶA0zfcdQ7f 7 ha&y13D;Dso|:* )tpfCEA=6"8nRHةa"2@fH)ROw.9z1 sv t 3K5 0B ;u3ftsn'XqSp]>̂Qrx󩰰8QP']BV!$99L2!Y}BC2Ef 3ȭSf횱ʡ"U[- H F7R/&،:F߁cG[d,BdBx{jn\&5׆)VR)IM`Tc]3sJ [.odf(QC֍5b١;Vضwd&d_cR=^^YQ&mD'[O$<|Yy:z:EHh2(X;\#-GMFEuS\%/}qC;'kns^#XB2RA=7Yh lt}w~f-vxq)aSOm]=ynBX)M$v0:?-p"! E[$8-kHkfuhϒ&KLwbR2GmR}r9#@3$}SX`[B_aǔ&Y1ԝstp9n'-V$#f _k}2wp92JLot{*rN" h˅`%V$BYAIprxŽa`'d"^Ew w$ZDS+/g19Y?e0Z{U$|wA3 `p t0~`kP}#8R2fVs2 2^T2>N͒}%zT`D\$Z7`)Sq*^%:)?&8<\_o)s_TE߰ǯtJfJWK1ef#:25Txm삳.c+%c)]kxcnuu5[]J ^ۛQ^W+hv:UE=CKe޶*5WG|lFq zoTF'ڈOj܄S/ P#ߍerJpWTm~y/&!;n=ĆdD\It(zaD8(k 8SXO BON1G:i^37$%5'Uk~~Eeޜarߋ'"LP1oM5z@Fi7VwQR4Utp7'1_é.g%;8h- \h5bwYr\)C5E|Z>Es# Ti&V 'CJ%mM(续?57} Xc<:jTi`|:g*p߅'%D$$BjBVȹaU>k9jp5$x`/Quyc{'9˺ tlzOnQ0mWԚ?Hj-b,شFm4jV5҂U" o"34TNĂ_/ɞ%iibH G T9" E!J),sZ0Z% TvܟZdA> PƗ6b(3IR{{=Y!B& $= c$P ذ^ H &w(qȜ$`9q  b(&(qLhgȁ< (~BX6X.mP `;@_p9 )D@Bͬ 5a< *EØ N t6 @RgIҪ>i[]E~JR'=18U~ϐKR:P~S-go,tpf &HDT$5lY:;RڟS`,qO~1cFXn8iH0Lt}QwLQ0VcꨁERKGa6Er6ĢxX5}o]@֮v9Whvkq7.}A$\?o 6'T2Z+-ٱ9 ɖKe]eYReMR4G3]bɚpI;bP>GZM2&xKpؼ:GB4Y"`j$f Bl$)a" ATl BG' XE1@g3zg3ÀB1^|^`= ])b@|@^ 5@xyp`]`n@2H 3T&20;ӴD|M/Ƞ5 t#C o  z'aQoF[p c"eD4-5$i'C0r7 q\'iH*] *$ Ga՛ 0`*Y0_RT0T{pT6vY]!ߨPBreiCԲa"IY'Л n!GVq1?y ߢ#@7KВޙϼ 7{̸0!w|r2ɄRw)AE"ٔOS~竐Ά?Cs H-.&1eY Տ'  )BZDbQܤ|~*[q%XER1Li(.D 0ck8łҏ,z m8zP|"q X*$LC! u ;4@5(eВ(B-U8p?( @ t$  ( ?_ xBZP}D*[ X2A 1,2`u ABpwL" BBQrb8@Dt`"WeJE@$$*8hJ:sޛNZxOB٨K3UF:LCd OlKskln/8^ #8yb7IJױh>M&uԖ=EYsLe!$FV3yKjKqQ7$c~8UsDQ9k)$f#}\-+uWNmu#@N|J i@HՓSmR1؎))OT[\4.4%ˆ|%H'[UkNm R'EG0s P>I$gBq^F5+lzK7ٵ)'7{b>$0#Iձ(2/i>-_/]"nrb~žeKU,_`<(Ԓ ص $AfWN<;ߧ%wX(tylĝx (;|w}<t[IB:V2DLi ^J +ud\w|#Lq)MLM"@`Eb@n? 1]_Ն| ϣM6rJv#A t.:1J"dB~M0lv3x;(!EBw"=Ug%Xn,sψhhJBۅ"- L =RڹqPXpJpء h/!XpCY?INDjDPk2,FtJ۪S0ci߲ۗ#ա&!_"PфICl![;u WP/3+_RkN@R+ɼxFvC]nznDZ8fiQK0}i L&4Y**(.@ Q ++#VF*K:D;2;Dn\765،S显Mi‰o E`uDvx >1?]-hF醂dPd#/3*J8*dAy!-(-BwDClS#%1n^"en.^p.9Gq0j~*&8<ϥȎh끝B9ȼ3  OK*8 X#S)do=ԩFGJ|cֲ;h]SKBmz e7=fD\K[|io8 v`xV>JT(OWMKSdkEQ#H%sdB *p&zg .+Rm@kU=>ctTEc-?X\߮Q' )x N^+\Uư곭5w0`'>trY8BKǭ I&_:}>B/cr.Q(?<Q`&˳4Wdɗ?iXև d`+ "UG*_QӆD0\"rrE;G'.G&6"Lm{=BF5tdrvwXIJ5UhԍRV$K _u)&5 &ăL3dT&:1GfQNKuJDShyV: ]RΊ{ɬMNrBK$q|8e/T%_,(5W̐)"ZjX!:3-Y3CBT\R~Ǘ;be$\[z.ĐOKL[{c.1):ܘRE t~Yh JgqPyYJ"˵paݡ _6_NjV_%v5FAfZb]u*Dyc3+ x$tؚYW˪8GJպR{sfTv-zN&|7(H'%5Quݩ^q`Uev8WA^alU:uWy$F\(ED5a>ZÅt3AUT J<L0G}eŒjGez4H WT4R.CԎ,yۚέp]d?hXTh"(#P*/J9A+Q@!S,,nfv/ X=E o*Ԑº^hmK!R^)OG W7i+P묹hNcj,+brzŝ6ZN3Ж*@RQDԑ̙TjonkH#g+Xj+R[/N(z,ig*x+a X#Sq0Jqp92]ЖBlyD UQKXU A u6ab'd-_d3g~eº`)iIezX3g|a;jp W%FIVro5Qj-`B$/pP5dt~L=tdYqIăߵe'RoiȈq3.pbGEe)ڜكew_p3Zˢĝb iYq+Q8O.&]x.R֢aEM)STJO:tTiLb+<.Jjsh}B;t4o r+`b F&HֺB.{xeADKK.K⒤%!?XY%Z 9 #K}h<9}.g, QS4[pS+翱S`,q:Gj.GZɅ~8cVĘ!UHˋ-xP ї@ӭW lS" WdN_sj 4T!>L+sjei80ҭ(J7mgvvQPuVYq_ ЭxYUvtˊ !Um%164:6Vk'q%* M5Nuۼ<־TA  [뽖AWxD ![ Z}>Id~}LzGJW)MךoiS;D 1مrY0G?sHs.ү+w`$ƨJe͊6>;FHyO^ 'n [+"I8lBx#꣦dx!z591'meU=r08F}Xt,4^9m]ƴ\"]OHmG[$(l`̊Vӆ aɨ(a(팃^5`("<߉ptjD@AL Y 1IIch.Td(\` .Abp8A0kg @N2 ",Z%"Q96H^*Pr x'ésΘ2BԘ8O"zHGF ko(D/<@/*kUHXl 9lpdl-"h 0(2Ж /WnpBHm2x ف8G!=U#@g(jDP#ZVP)sD|NRh%Öੈ[GG;lۇBif-()2f9ht IsXx~2$pur@2 Rh{v#gBXoUZH@.e_6Ifr B/M=cQ1h6{J=%3CP= T <3@Ea͏Selxװˌlt׃Ms-2;p~$ CO>E?A %])-SN,9#8NS4MohxBAZ`Db}!P@(GǍ 4@a"oPY) y9DHD?tJ.7c}V0GC^Nxza"^o@vFgwm.,a70Џ̇<&@`lv0= XbP!kB="CY%+rH / +RXX lx8,H=*D*wpAB&ݑR ΁!n4= !5  !2C,92 Iˈ +yjH?*&^(<M`w$S L @  V -A . nm kX4+l| -el6ɰ_D4V-ӊQŐW&.jr#^S1[ȆS-REX*`Y3;`8$V䈈OTq*t 5=y {eH+ @ŬL ZLNzoF131nBAN4NΠ{LPdf8s4bi:^:Ѯe-9@|Um&OBQ(E8 eRoO F?dF`!HK;P $PdK,PK(A|d^ .zrԸAQ;<}TSxOֆ? tޮG>$#}mv=CeFħ|?FB㙭ZH| `p*䝈݌½n`alrOm xU%vTFqxCCNe]0 ƠdJ C$L*w񽀐d)vA1\AFޫ>4p$J7K X47߷kg2fQT%uhlo6r7_j@Q 4su1'N^LWD+73z2R!PUNNCQPN0f6*`T"7l[4Zherk>%}|տK]nT5Z@1; ,APD'&(1], ̔^|kght.;~R\Lhu"_XMMH$$WGjb?\<A^{ơb9?O_~tl$O(|E@T I갿 B|,[nK92[>NC@^Hy䴒?%enM֢._ZYϭ(q$.c*If/"2LL'EQ4 M!(JC򪔾 յ=ۚ}Ks$*1~n7Ss,@Ʒ$ٓZSһ{Jqo5`YC BYۂG 0\ v"5*EܐcFq~4 lL]8|`C,q,$τ&ަiM C ?˫ȋ`%d#@څ[#)}v^MWӍLG$1XQ*ΏDpHYG%QCB썸AXIu˦@hGvNșN-.UqU)/747ko&v$dރ 2HQ+|F¶r({xXWhwI֦z5,4'I#ɂN5 -G.(PQE ^q: x6.j+>SKlLqt54ڥ_G  "!k;Il9ڿRTxTt8O_[tÑ%TQj$R^R_IȎ HkkdRejKv(*k[(b+82h趸_)0[#@H$3!2lyDK.jKQd UHh^ l1rxJ "׎$M>|Rsd% L{zMD`WyYaBAPͫPu?ImG kX8ݐu*VKB̆2_28E+DkDjy)"m_miB8 eqkNY_/f (?)e 7"PlֺR,G9c.O! ,j5ohųHQ8jCZNGÙ!+ru=oM&LQVN,p+ ґd,&}Y5QbUK2}QxpvI$-1 9gAHg KL2mUickRv6xL`d(s4NB|.9<`Jȯ?*dP!)4`DS1j́eZD`4Ы^DNA2i9_2Fhﰙ!}7 $43TpdQ+&|o˱` *YG ^d2g01ğ;dist/copy/tests/data/music/delerium/chimera/PaxHeaders.26361/05 - Truly.spx0000644000175000017500000000012412233027260024627 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.153046933 exaile-3.3.2/tests/data/music/delerium/chimera/05 - Truly.spx0000644000000000000000000000175012233027260023572 0ustar00rootroot00000000000000OggSkIWPSpeex 1.1.12PDOggSkI {lEncoded with GStreamer Speexenc TITLE=TrulyARTIST=Delerium ALBUM=Chimera TRACKNUMBER=5OggSkIeMMMMMMMMtNtttttttKZ:::::::.D%)SbJՓ՝UՅ]]]]XUՅ]]]]\tOP;LdLd:.[cS0{{^ !# O&%aUՅ]]]]XUՅ]]]]\tQڥ4tttt|4|a:::::::" q/a UՍ]]]]XիVXp $|ot>dxJqSKfQ^g/ ( iE1֭x "o*1i(tG /gVA Ҏ ΋?X% |Rn,ɅKI0D(Xg ʣzVOggSkI8MtGoO,+2ٙ|n:7Cq ˜rv(FXOL(ym?T>\'@@ x?Ow9B7y?&Bp} @P( @~at]yQZ* ptо*8B)E #YEdBO#[ 1 0 @P( @y@ybRoIESPU1FF=GAXZH?0X0` ;>xUr?"aT!)UZ\db$1xRd 6d ^E̍ g| npc0*&9IȪ{)BHw+)Ȗ*0<56B. ((>ބP:Uyq@<08DMduXd,\jd4zD=ήp8E8w?\7Qi*z#%3 ؃ab$ڳyf^ԟRHaXo(kT>Q&DPǡ=Yuj)tld͍n/đ)4Ȍ>}>=|2ظnDy%jXj4: K(o}5h v3i`2-`ux oF琖 bMSQ+uzYv)6"̧LoeSGY'?>ʂ<YKo}lf)B" r cEl >YʑNIȀ{C h WH?tw.랁dO5~Nנ]i1j#3!UPeC6Om8l2R'>3Ts3h{iO/)2Guɉv IK-?v(K!Ό亇>Zs[Τ?T6$ 4쒩 3:9UD Zdn ``j, E-<l0AxEK ao!~i8~D<)/r&eɝ/;pJLKLVlMɞmwH,I("a.d29K*UfwC џt[B;vՙ^nUY* 5&J 9vP(!(B'To1&bf:z:fo/Kf(^6M@W߫7꺮ͅ X4Pw1H2(_ٸ}UxگWꥱx]WF:zjò~\M` lЦ."%LAME3.97di  4TAGTrulyDeleriumChimeradist/copy/tests/data/music/delerium/chimera/PaxHeaders.26361/05 - Truly.aac0000644000175000017500000000012412233027260024541 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.153046933 exaile-3.3.2/tests/data/music/delerium/chimera/05 - Truly.aac0000644000000000000000000000706712233027260023513 0ustar00rootroot00000000000000ftypisommp41free mdat6libfaac 1.26.1 (Jan 22 2008) UNSTABLEBUShl0+0( P,I*eԩ.Yӥ-F|t[r::\I V΂ C5@]=~rKjX163#em`ke~g¾y]F">qFYB)So`@ +bX aP %fTuUl Gϫڲ,,-'$|+7B\k@9J؆,Ks-t^ʔ[v79b !W㏜1[tQ<KWxwp!L$2]u%sZn@y_G>?O #p "='8o/{Mv /3S?W_|4]?0˕C^ӊJ̧>g7CawO? yJ-~jd*_,ߤ>H o=+9߯߿ `xF2n{G :SB>e(@f7gC!LzɄcwz $|_y-'<@ZX|r^ 8|p|=kXYxKuxTJuzxon~wh ?W_rb5u5r(i0/ 0r9x>p!L60]BsK UJ8΃qpƍ\FuW"Ul9Ώ)ћɐQ~\}?Ü LY@͎^g{{zyxsWxOgu_mns8A e ׭ZEދ9iTs9;av-&LIP%"7_n3M^poO]jWϫVv.6c9s)ЌCM"U4KRNaJyEGW Ke5|w'o'_˷ѣ}Q1z9?^E .`bALs,l)3<'OvKG^O}{vWG'l9r n^%4X~6i@0ö?'=u\zr<GFss9s;8`@5C3>9[]@1$2J nu,x9}~{{0lw..10wt+3(1U}Y_V]CFۿ'GJd ?5=7-KV0rEI)l[HŲd;vcr&QS\K|OSg Hs ňBG6r1I:2h(s})k@Z[q-7I-3yhl\CO ByzOP_vyDzu/jAO4ORtO>CGn~nYm71jxa=skdžt>:K,tY.WNR/(Ꭳ4ע1gtWErti+< *z{ҲQRWJpy`$I~xZfZ&M4aFyb+ŒzbK\Nkw/ z4v CF~6o4 'R\|()Wlj񽯳 r{O?{>.G).a ~叏/]ʌ<~߅v=9e<.VYoir}iHr<?Y?A=_]mq+)@6Ytz/#/8_iuT|^Wu}_rt4/_@_g;>^d/k9%0+ ?#"IQQ&!;s4&6?"{&//ICW/KZNQi!8fc8TMy`iVqkEC&N+sqLEn<|(8A5j_O,}rxXDTO{b$djIL5Q/Lxo1-~jc<J/\6DVupCKS}b>{,<Lg#.]yDM :~34j6P+.d6gV~[2%K4#^6j<k)2t6qpAQH V^D1Bo*Hw$_})y&&Y~57vemz>?~HM;JH 0~NU8vR\-/R((xj|[ZKR 9!, |5ix 2(ctj=!hsxQBuHuv]!Bh  ,RRugG1h Y*6+HGn%g b((x_0jgJ3jh"U_CXbAZIk3w #pJ~3$ 3[${`k,xk,~:y TPx&qk"O|#ln5p&#,]qofEO~678M2+%, hvQb`A\~f"F[jEz)f&U=/G2YZYV]&tro`^(L E/;,\!dq7o xN%|:FZKl3 FhxarFZ  alEMD JJ*Fl9L+FpB0#ePCuR=o``+ikrn$.A@H,$j {My#6x?KJM+G;+{SV{\b` IOT h)8 _xg2x?2E"W<%t!OkKW}Rm6,q u + wJ<tK[yO%,l3m0 0u  ~6| Xo sa0)ny.Ro]{TTyv&pgh\ yTWD(N*p>Y9_QN7V*VJ<!YD |0a iE "WkA]Mes =s@Zew 4\req-X w it _ R[ n!%2 Akx>VAћwXK8Nn)( f[lcbAV(V* =ĕTFpZS" l,jg4WIGYmwe ^{ZZX@<44Z6 %K>J][>J*N@GgJZc5.&SN:eVod^N/X+HC`==s^Mm&L *(,*#9BP@TUJ.f(]ʑ&*Қ8@Ƣݯ 8y+Sw);L#N 5#1XH#%jҍc髁M1ͱ`>fc=6*p5܁DgX/F#>>+y8{(B 5ߪK&@4G1E;X  7 BZULP=]F|2U1^dڗ;+$ޠ8П+ 9*4,qKdzĘmf%"<JɟIy/5n=ѣL07R.D E Q-"O<<2 ^ x e ?p +^) _ b  NEE,W93x^Vi tX=YPgE;'7l.c&c`:hZ)50HrD]iEk6 k 0* umcIfmy eYD"{N( b0&i.;DifLef4umkGybUn?S7h~BTU{:!{B?pf/xEIJ43q(V)1Q@ zLI| `dM/BZv!oJGy**fZD5O22O[C$R#~3QYFKsMUs J1 { m1  { u~  { 0zF^i_:@r9VpPeo8bC*jv ~ Fa l#Gq|ex */  l7x^drߐZ߁$UXF` !k#+ %f ۀ ]?6  u*7xN#"J" n Otre Xbxp58#L P ta-%| =v'3j (;)ԁre;0X\Ank .V'/(, h,<B*u?++S**E zm hP邯+ fY][ 0qIN &M\Yȿe3ndn"tr%1[ѢM:'DÝ&;w/AQB^R" gv}3.ib+,@8ay3#€4.DY,ߧx9QD4Sh()H&sEo i BB%# S| o4B@|h}Fy;2%[Ă9#"ހ,ں Ž!]8*䩹D(++xsQ`5Z3;! @\͵^H-bzPx"* ;AHTM? 56GtO8l}l*U $ GuJ!+QT23:3$m*YŴ_DL08p2фHVmk& ~}]6֠SOR;"G#r8PD 2 , j MeBS uEK4m~[߀坍=p.]&ڱi)6*ا ӿY=^C g&81Jf6k!55SJ e*=|`N(Sߙ` 3 V?"e:)U-i7T%䌴d|{ֵ 2,7[ $ 4ݍ$CB3q,YQF?m-ep}N UX_L'*;O(Yo%fX?.݃ 5ۛ7wb6ִo>ƻ7ޣYZh + -`dRI#JGgO4-n6I/ތXi {?ɨcC ?.3=c"3!XPX% Ix61B/A'#K)C)6P"!; =\'fգFJ؅b C)G @YLյ;mI7+bo0 :8? 4=)eH0LnwCͽ&[`EHTX!-a h(CM#&ќ- E>Z0#@!@ M=[(6:>%F/q^09 / @GO?Jfھn 0$- &|Rׄ&"/j˻!82?,S-g &0,rւ3>7HR$}5IW-Qfb L4YSNd*]pŮ&P$D&IzCqx@g6XE/B GT9IOo]WuM\\ usu$0oS Y\UMK pF$.)UU (F [ B8 m&fQD״Q%B<s@ap+:󩙬/rOJ,X d>^"a @_OEMsT1:hލ: IMEV>ٳi!<*܍?Ze "y^Rw:F&?v6YK%@+g1+@ۦ<+7z].ih'@݈ۖmKyV7tD!6+{G?7:6\ALV=BQA e4hYxA xPcJ@9C)͙T:bKH'9*R;MAI MƹNLP2FMcI'WYDoC'-D-Xg $2$'$m# E E3cᡮt@rEyײ;e,Ss7<2gaU$`Wei+wn^ Q8W\ eq+SƪDZѥTa rjZ(jW `im?8$\2rm~Kf74= ޭoBYH *N](ױ$&d)ϤR˽Bώ&EQ_"f<թ6,=E[Q#S RϽȣ[#BKxiac!E}Jy1)g- :Z%]Ŭ;&2JΡ" [) B"* ݪ0MRU TD%&M:(x @Rט=b[Knm:?㧭'5J OmIH ,+TE8"yifĀBn8U 'W:R>7TY{ ȯ/PGhvT E59Mr[ڙi2H< Dxw j&X?!YU -ȔґN eP&I6N 4DI2,xl1ouboC-f;j+cP@$-`ޱ69D )Wvv0`>=X?VyПe`m|J94-'=d/ZK*?mk @B=OL篲;X-lnW)] yŞx -L.d xewK٬RV :iEʹ?' ƀCBHL[?gVفkÀ=O:>x:?#m/2}6 K=ǽO [ CV:6pHYa݁G_U z AA85N'8s.oZkq2; /'H[Lm~a59S ~K[/ s*EJ&y'XdY/!!9xՋYXU: . tRQF#Ӫì<k`TWr;w8$q+.Iݲ&#ud TM\&>3 B(0\I%i,Gȷ/׵)ѫjgݖCl *FzV# G߂y=78\uM`K:D]Ҫ(E%_P kYI R?LȾT Ȗ3ӷ~HP7V_mwp,c|--XՕS5,My'=MvSS% :u0P[RM;"<x긦$2_8%9 0,^? E+p & ?;^xb/DIEL 8Q p>P!D=- De cG"*|'c=*>*NqgH5T3gŽ⦰(N{x;w s8uD!na(M 'yK>u,'U`9Q/I@[?Mwή* ² L}TНvWmj>xSg!!闀.߾ۀ\(}^S0Y}NmC'"ݾp1e7k1"܉_Ap;E}6&foZSsIķE'Yc,4e>;eU5>FΟR@"Y 6+vJ *;`I Z&z%4GE)0=&/r`Qzʲ% -B#4Ϳ0rG ڦ1Iez0d̒3n=bwK?>ֻ886 F!~X 5Ux1|>DpCh(x)W6,)c/ hv) 0 I7scŁiD XP/Ǥ0SC ##W!iECMMJDv5dƌز }YC0dist/copy/tests/data/music/delerium/chimera/PaxHeaders.26361/05 - Truly.wv0000644000175000017500000000012412233027260024451 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.153046933 exaile-3.3.2/tests/data/music/delerium/chimera/05 - Truly.wv0000644000000000000000000007704512233027260023426 0ustar00rootroot00000000000000wvpk}3Ւ!RIFF$WAVEfmt D b dataBWWGVH)'oMA er0!n刜 b<(l͟_ovUO|a__ܺr~?Özw;Gw?Ɵ@g3'?3wm?oY|#?v'Q~lj0ay='{.>~ɼ^Og=oğ1m?.K M?&?|kgt{{}6Dr\R/#WֵlgwHy)L^.Mtu_bЮ1 r|'Rr]4G0V{CzLx+f|D~nty7Lo[n'b@Jid<{q왮ģ?+]5W9'|K&ǰç~ޟ< bsHK٪g 0-BUV7^ٻ:.UX:R=|/܉wp~=oq QY"Lx5FO^;_.π5{;jQbPwGgRιONa}_7H&B'bx>ʍ?rE)/mͳ >oaa(gBWt%IvH֌Zθw+.upMݿK'D!ʤ2 o{#I-2?mLskeDžy "W=y}VHeT9gv߇}f' oss>c .:Ƃve|U8d+/z0rn| nSyZÇݙe4NKx_b"sd\)]vine'c2_;KZ$S\y@-@./ns>y*r.YhG,7K,k4<ʇg9lF̓+gkn)DԮ?y˜LBJv;@}q۰KL-&=Cs㾈ڒqROq`.hBsY|r,L샎63$4 Bm3k.mjnدSVHi`N-_RE'EXv8`_V_3>`|U?3*__Fzg&?b9m|2U<Mz2Ƙ yG gC Aks{vrាsI 9xqD$P`ք<%X;cLuxپ0'7F 0`k;M[hV?t? ]pbh)5GJZ@7z6g rD0pqof3E>7 Oc"j)!8gMtHV]Wd$3= o$EIJ6}>_skP-癈* +i0ͼ.?z0 LYIOf s\ކ 3?zK|-[ճ4/ u=6 (9''V4،r MtՙP ?州P:=yIh(ך.f3SZ֦T풓7[31s^X`=v+\a%UTZqvEN J+]i4 U# wrE&"ՖughwLt@@)EO9Nf'mi$q]z ᔶfWjg"hQ{~p;*gyHl5>:浵=|u /i_4&(CZoVpqQCjsܡ蜯nn,h !(:Mج6TCߕsyԫJβϡd\ 𳔡IW%ԙz@[ wv{gFdM5YŅ#oN)iݰ70oƴ߇p)CFĬ<#|GAe"?[WMjӈڊ P¥f߁Pu}U~?b[;Pկ}(Н q8nVqR"wZkCjΓf.=⼿frclY̵^[ xVc,muScI+vPQIs^k9F%&\M=cnlxW3 zH.?+v'} x*rYl?:Uӂvz+ VO|bs*cuR2)uGR°XOigF|nT fk2# /d_G}.Cs=/3?O50 /?8nu|{~#?!m\_G ʹ6OVGN4KqkS2N#E`v+]yb΁z`y~U= ~YyB˒5C79b^:$=k6 iGX{\|{A6&e[1 =vgh>ׯ?tMBN3$hqh |mjYnq= TNo+H`^1l_V&NqYQւ{6}j)a4w!ŵBKbVA9S2r]FugqfsbB=Πiq1e-@tEgOAXp8 XKb1ʀnv0_Q `P3 E{&iS_閹QQ+e+LDv['bK=dqꏛ6c3]O4qyL(5= h_?zy<(K3Rudel?ЂZYL,j<@V6"G~ kYTbc&tO/c;-020&/obr'0n_ә2W(}!wԎ#J%u=9Nvb= \Mh͊,lT?EFjo VILY׵V@_6TYAhe9ţCx{7uIU¦C $,ne l Ŏ@ۘ{*]1i҅Q8ʁ6: I&rۻh,qH 0EvY~ `^-:~1;[4M }s֖n!Iٟ5H[eee ~i M#]YE_m-е.,wDp M]\-':Qr&i 0Ts* !kw +,c՜E v^*nUo7Mb;vT%1l >KyݟH@-v)o~2#%c_␗yBp!sG "p + Wݚ#V_|҅ʰ?(rб88h$3ʀV6,T}1O(2!iR:rv܍kȿ0fTG[}vzKduB>J y_u )QީAO͹]a-JQ^ SBH2Is@NU+eb wаs)V]HHxkIjM=%G,Cٵ L[U(4S#gac,Qd؄V~wxw.r543o/4/q IH{C 5¤A+ٌJ߅(eR 6s1l# юRfqy6H#x8'kQO_3 [ 0qM^*yIRяʈ=/m3`E)َSC-_kKa 6ꁂh 3^?adrISOhotis ?S.: k%<wI|Q:hR zFק5 g4=)NDꒋJb'wTzAJ/At/8)!i"`>u;5-\M!;Nf08mp'/ar/6@r(8yaNݢ7l?f:ǙQ|~1_B 3h,jYQ ɪnB{eQ!h+r$(fv 80 x?h"::Lr3RR4 JC;XDfX䖑2"KyFMS,JtK%ζ$:veN`ylAH 郛v6p3c-i;Ҏ&@*FAh@,j+kra F\gI``T( -Kd(`$# ʼȈj )QQ.KTF N(Nl H*HDg}0a4&_G `M&-<X&×O*4Ȳ(p&.Ζҗ$Jgu8 Z?ii' L@_sM+By*\PcKdX'PAJ0A!9HjI+ na*qT=GN [i6- SBԲ7&ڇdyXh¤xNGrRAloß4$%3-8's/yjSA9ҞaO(/(q.͗,X^.pr{bhlRhuҹfxc[\dAP.U0Sb^JlCRR)uuANMRip$yv 9/p Mu'^fB(>AN>>|f?%lF;qڀ._龫b}&8h$r#:$.V^ lo vo:~l[:H*Q'aR'D4Y3eyIR?Fuy%}P>5ҺQt >:|2㧌'"YdI!ݽuɗ{='[3d#a(٘s٤0|D@r:-)XgN0mB&< l_8@ %U'c2*r-$nSq)i~֪ض%9&#C+6D<ܶe|_K1_A IY]jScv)0rD~/Q&.J+?.9JT)HȻ0᧲~>D{JZՅ{=t]{O+3:©RYk"Uz?5C!g9k;ԀXgxTc a?|]Ǟ3idnAM5S0prG* JVP^$f˽θ-(h+-M9x!o7ep вc0jwnePC?.",1 [3^?+mM$^27hD:KR~]GT Zmv1xp+?ճ\Ky"RţCUq_JngW]Gk3_\LwA|~S5#y@@ Y'P`n${I_ceIռ&K{UY>!r]5^[eҊ߁ć3"#8(P I%Ȭ/(A0ap38!6|A8Zkɫ0 WAg]}7E/$Y^ |>o ۄ06Fł(F<7)q\ǻ7V9g=IퟋDԮ zv܀RXĽuh LwƝAv::u=!_TS TN|^J DscNxsFi-Vc9oH'JVgX]"ђSZ?赎\𥝜zcq*~kO3 +ECnl_;7iE=&Zcr_,'ݗQ;R,X(y`oxugvwApEO*CAs,u˺Fb?*&H DHc@ jHSF@gsSLpT9V_ZJ7à߬K{XvPǮb%~ .,I,Q4p,B)1`-^t51ͽp$Oق=.cKc%t;Cv!%ʺݔfǎmMY:},cS _lxBi`Ua*`J]: MfǜoGjČVtaJ"EFVѯw04>j MlUSskYOŪr1eԿO,x?8Ɛڈ*so\͜s&;ޢ&}P˵Jahy$2-Z\NPG =H%!,miiyu![7)96*193!z?K v2SY 3VIaч O-ʿW$/(r' v2Y"J͎h!Pfcl本[#8lM>|GPֳT-N0SgMWIP4Q e#n!~qyY_3Q02HGN,#s1/Σ*.tkUJ){ 5z@/܇,n #8N6щ(_rH#Ff4Bk\d#G ؗŌ dQԮ!+r.^]$nKK|ROyhxkޭ ݉c˟|ܼJX(턙;d1a!`vϩ?(kmq8_Q/2Dw@>3벟4Nxc-xrhl&s?ξzwğ4$^is]2%-:ỹRhcu#~]`֋`;)(mBz$Ͱ,LȶvhPŜ 8Ep΃t='mcA=x8š~U?ɷZ",}ܕ h, A,S oDVnn$4Y5DMyE贅 x+,"!Hj)g/,u f5-H!]u oPB3.b .Zٙg"!7ޓDN=R?dZZs /WoTk;,YIsAl$2td3[ 妽D""t!<^Ń+mgg*"eQ4V~Xjޟ9aItzgv|{V`w*n:'aT#?4h хrOߍcOz(lxҲLɍWvg$&Yk v@ZL qoy<ߵ-]n%rq`5GR{@|4~l][TZ *d䪮*KY~u >WVϐ PYߏ 7&ғW%Ոo!nKoCwm:u5҉'ٿ}~tb/dX@ZKi6_hIU*>y13Zo(ua wy"m;}A3*Kjq)DժvDA  WI yKؖ]K!JU/Y4d}C_WtD΂ȵsQy)SrKqg hsP& /9Vt!α[6 势oFpg#?SQ1,5F_MCt`<{at(sLkpi)x [?ԇlLzph,M=>LPai3 "zlwsi\X6N& :]K :r(+05oox14 @S$هc(ǿ0(yopHg݉xh|<٘]A%EQ+O_nHRmY9fhkMOo|"lpn44goghouG=$P,2?3[kLa2]nM,#kL<© l5:]-"oe5rNYmxxؠ'dp.ܠL7+, !A|jfCi%߲ x2M!g-?/{ tD'wmEW+}z݊u&,ܬW{Y\|OXzj5b'znC3#UE3c:(?^7m `t@ďqff#/%ʲ"vJ7}$JyQٵxA(Ǟ,l ˵@U:/gmr2;j>|TrAEP:fG{͎jh^e>~=鎹ɔp rܣֺ2Zл˗}oAOUCCg&.;XESNcV]a\:8ŰpBi&RuY>┓$⏼z].|g2w&KĜA'o"Ԩ  8~]tڎ_q \g{KɻRD]( 1r,Ǧ"ڱhXB =+mo -0d]@ LS- `B p_V@A+yOQ@G4Mp*yK_N=!,I2_Rmw3Ǎ7v wͯ5q gXʠTZ%kbL@4[dmbUAI!OWWd GNxxxAڒ0P?ES)oI73=NiewOf 9!U᎔ԨrnQv2 FNTrSF9nTl&66c{Z[AB,TJX4Q9jRd.qٯ$AR2h:!~6g6F8mߥP"9X 0" pCM rsTiQJ-J}|(A~JTyFB NK7[]. :Ü2$XzC.*%'Y?YKKMX%^+$_Zfkt~&Ld7AS^+df<d>r+-x"IUnaDeX]yΈATT=[3wmr6Х杤q!,E|,kzxJ Px`2ҷt)_hd7 6< 60(S"E-D)l-?#\{FT>+lԺ䐮IRƳD05={! IF!F 9 BbW5FwJuod>w,UC] oSOj9@"pz&&h}O Jrx]?,H%L [9 H|uf}5WQ~&sI !N%^/[Uf@rC~Ap.|Iv-c՝%01`D\'IF f.xQt=$jIY2Yk~4Q'uz% xBؽ1,Xe\/  @U0&a @dO/ 2Ɓ..aq륵2an`y쩀J> ,7,% CHw;Pެxe䟦 l]_:If_}O|[U&|sz-לꝆ©TA >7+ ,͒.w| Q}8/qsLW01hxhbȕN˓8.QT1+HN:( SEEݾL''Ԋ >˔CU@Αh bû8{bu-%WIM:7ͅouA%e1,c vp+ ^tPnE6d^SwI:qfV1?SV=Kr]9 ôI muk<9q]/V.;CZZݟ͍ϻ։ZdM>1ZVHqbY6HeG !eZ'9Ͻs5Q1\eZ\Mr0#"ȚU^w?)ѕ:1{'jy M,8*c1|: t)]<,lyam ~liCRϞTkM 9Q O 0;QN;鵆Od.Na,?PfYӪ Xm6^ 6~}e'"@O}=@%x#go6p[pV& $FZV~(lkY*z%>? ֕z7~U [0D}m Hc&Gs4RCTeE{,vߓ/zzؘ/cbe}*eAa G=!$/mQ<, #\Jɵ|P~Κ-E}Ǿn8DŸ79bq#i0<7[y=%bv_zwp*Q>1[+-0#6}1e.ӆtA.&@ ݹ_H(RZUzLyآ ;/)AK8Ȓ}0PL4aEܔpqdi忖du/t $iz[_>/7+(7 Ji8LFAaY/2+j`>W &ٲ/Ƥa]43Q 9šIvmR馳zaw;>=D+)2_ ] <%J&_cfyp;DPi.辈_fjm mVTfە5 kFX$,хs'N{=cxw/QW8~;⎝Hvo Y}GK ^E+_J?A{ר줡b@D/ڷQk`aⷶps:2c $RACeQp.PL)?\בs <˞, jBT.&$8 d_^3Es,A K+"o⪿9p4'q O]n&tLj9Fv}X[^><&(WEPO6ssoqli}܏!`P0 d8}?zڀ%i~ܣYiXinP<PkfbQ Mg?R{j^(>Ib7pdQPrՕM󦕃9L е2vO^ʃϿUpo)%W{M4h`3Q8'bxycv ЉM8$4:?ũyFR4I-;G|̀c.`y_[^ޖJUNaJX""huwp"r $$*Z=h{t";VF2*p)oP9m(I%}y/m=3ŢaoMAZXz=8um:|!ŻĔqä7@Y8+;pe@Vᖢ L}35_|"R#YQ,ߜG9|UJAe(-^VbfkZq(=3g;Z }7:g.vEz-`w2LրE逦}^І&ӟB=ŌcWA9Ωd~GEDl6Į3bM jIL]9JYge~xr'9hn0HU, ;{-uMqz׏]u [-FVL>IkRA`nEk z\!oaxʷV?AYmo5p (Eß^xk۲uw5f7?)/dgڳ 0&\1#d(@ZЃ#!9xx.de;%OKh Ԋ}Dh.~[~``p/$jۮB]^u?_koۜN}p6vhWfd6Qcs"_Z ,W[oqJU^LV(Hh6Fǝ|DDz4bެ#m ƵyI1ǖR1Gn.S)ZP$SF0ht}+6Г?P~.`D8' d hNozSz/E\^_gŔ nOW-/zNSD߹[:5{0}!?ŸYX;dt֡_d)>8ކO!y$~3n/ $X6 O1/ȃBhMr6*@[xX}yjZxUV* *HK{5"c3NLCxFhr0 -^KORJ1N]Z~RzH-n7rP0ڄNi]*ޢ –(>.IlcX{yY_}L|$)zP="(|>B~!ˁDzىבT2NԱ^ø#tJK-pc?l/w%M\TͥzH8p뒉,MS\\uH1Nf&Uz^w#Ne?ϬDcf0X|B3 A_Ap)9Cѻ(x^2hǝpdS W| j.+5t 8\r%4Ф XA83UBLcjz HC{EBu0 ar@jyBYv1ߔ騚|l3NI,ޅX"~]Zο5PsY>ʛpE^ 4bUS|͢Eq^$n嗞/>>;}|]h[Z2Jȋ# Ia\t3}b*dm54G.slvDzJ{۩/"GCZǸ{4'1w{*2b~ankȅY=ư?2fizeB4.?䎐4FNtȏ~q2Ûw3{(![IQj:Ǝ$"*iGw(ѵ tB ¦Liq-n Qo{_d^Z IO$>?{mK(3tE$%Jm:^ӭoJϵ]?23e/x!q!0'2_ebdVȇ-]eP/I 6BvRۢE8iCn4U94.:ցQ6'VU86;\nBwVSSʮF[Ěy ޺D=+}"ԘdUi0$nI&{ŷY%b9_l-PMw t@'PFثEe>B,Vq1'(yxc?=[&7duwrȰI&F 0+{}:Fl(BK`&zU,]NT pE2 L1Jxf+zu֝h8 IB6H~xgp5kPnΛ!tClYΆ;>cOU#Auh0_K4Ą%B͐ 7X-a=YhsR]}h =4t"9)tʁ҇KvvmuQ=-$۫\ fnx_;Zg(y5\nlD5!I<,V0@o@ rQE!,e.5%90IBU'4zihÌ n|naI{@j{lR=޺3Z23Rv,bLvz,b =!):R8ay"@}z CueSx!>E=i NE.lwj2^MW#Q, ?h*KfbqOY OFeU9|T$p؃ܙ 7T hV[^hs ـ0ZQP6N[I4{{R va9芸?,oC%8z3(C1|oY.9|ՓbYS!΍7ޔf1D8GR5RЈC8X(xPiCL{l [{:a~ec'Gt4ݹmlqxv}Ox"qry KO#7劲7r백ْBeDGCc>T{6enlSNI<(dW-,?.K{AE '7Ԇ~r3vOFʫ텬7J ኺ^8}9,tQO$vکDO2͏[لS:⭈U+zR>-<'ARΏ@^l9і"ɘ#ҧQ̞@^6Vѡ+dc''h!03^m2 sDj)ˤ/\;Sf\%\ZW9 +T]yD &y ha%!1 CQ;֠,\M:J8U-(b[uX̺NEJ(Hό/6|3F#R1s*^VFcbk5]~.PH> h 4m=4?& OG~Tf`O≠])+rؤIopF5⿖~n+7|-#U-T1ɑ=~R @2*+0J7 '\;°aOw`.Ep}:p|ȎLY`IEV&c' MGZ+\HQ 0KS z\R&/S<>a2Fϸ34blv!sM[{L)#{yۧ?~\UĮkh`|ڏ0@p. 6Ep|pӯ#)m"C@0Lyctm ^߼,/soR,v)˘'U2*YT^ö:p)$̕v#FT[u4c;5,}y>#Q+s(sH" %%jdǍE$11Ŵxsb-\b "VwvUzuSh:.Y͘=yYӞ_-A\]jR2-v~NFBbsm,:׆E#8PiPk3Jt M֦aʵ߰+3/ NDgeTYxad.y;5.A i*&db3\]_"ԡ;1B(Rq,PX__/esVG23_"Lf]X `SϋRsf\h 5VzNWP<SyV::8r?0R8@~;V-O¥Eh]?C|}l{lRvv+##SyO1'RoqW5uOϟF%p`dT)K">y>Em{)]'<&+7ַb6JW|%Mx$hIp"q9l x $x*JF)ۊ;7 &۲ _UV8L]T#l\\J.2+ŷX!ɽT(}|G36%ՀXAg&GLw5,t ZKM1ӽ~!/X{RX?}9Od#H[.pիCQL:MjW6ޟE[^G-XLy0yY _emҗUlXr}ʢ~5!(=z~pkυ{Z6$4՗>M /}\kO; =ܼ#V &w @V,^j?^ w@ HDhU٤.rZP"ki[ԓD+锖6@ǃj@/ o@dS_chZdUs!<2J73ffVw@u0P Ģh5Cvċ\o(4"n=t0?3z*]Uq<@`Ć\d`ѕJƬGN mT"+t)s-‚%̩zwԐz=I??9svdc*!̞/8LA)'BUtAqtg/=@6f㿨0H텇ǥ#Gc038W },&#N:)\APԋK 43NVrYLI~f6\>aAa]";PWw"B]%{ *o,LR_X=8cw? ADDx*2YC $K)#lGYocjÃ#Q*GY鶫]$:t/lk?X,7-9bf[8îB"PPaBW0z=hpɏ7Ez/e@E Ed=r]*Q AV6,5ly/pMw(dLP#}Mt[ΥA+X {dYIMZxH6U`A *+}y48CLѠ5kW9%Tq&/GyyT }MRyH]NR{OsB/%F-|H3fXYXSJ*)BX_ ZÍ!5†+-HS%Խ wO#y%UW<짲\|'祦`'X {Ss0tD A1!QR*.IHbz+LB%G4ՒA=,P#"y.XR`㧆4 @J*ꂫSoSK4Xcu+ 8I"+BD ӮXoda/[fۧƇ)Ov>ON׉> ٔ"z=}eaf7fgt Tэ<VZK1[AJ_8>o[Jaex Dެ&q4[gҶm-|c6)|*8 .ڱ]pN*>%r9ZVQKxdvu2ח:cbrʞf|_MS HZ#ǒup ZF%jBi6nӗ:zJ6?35o۝$$r^gkMζ)S2(]ܥ ,Gc '75I֫ߟRiq,s`%}UBA ;h :@xYbh5*(`i PNɘnO+#˥Az}qS$*8C=@BrwD977Ea"ZetB@5eێm&$"=B .Y&xI]KLT9]|mGsTO|]$rkW|Rå-KTQzLC{țawNw@Z-nZtuU'7W?Þ] pƻ+oo;-]ΰ7;7$mc@o mVm l!C$_+6Ғ#@$'m$Y#bƅ4TV0:GC3nx=NNAAV  n&N9Cj1<.ڰ+xԟNPD=9\<}c4gd `uܴU!fN|YXAiHIΡQl@͗F3ۻ7ގ2>' ϵN&TGpAYKOgda钅PJJhuQ"{n1TjI APETAGEXntrack5titleTrulyalbumChimeraartistDeleriumAPETAGEXndist/copy/tests/data/music/delerium/chimera/PaxHeaders.26361/05 - Truly.wma0000644000175000017500000000012412233027260024601 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.153046933 exaile-3.3.2/tests/data/music/delerium/chimera/05 - Truly.wma0000644000000000000000000000743012233027260023545 0ustar00rootroot000000000000000&ufblfܫG Seh|>ޱ   _. Sebӫ Se4ů[wHgDL#DIANEpT3&ufbl@ TrulyDeleriumܷ Ser@iM[_\D+Pÿa aD> @Rц1HdARц1HWindows Media Audio V8a@^PhTrackNumber5AlbumTitleChimera6&ufbl ]. ?$x$Op+ *DD 5U5&wp iXPL0J`8BIp67}X`f iu0ISPI&P VUL{ H$U0vg(/X"`JH@)J…5%%01Jj"%JB%5Ra+ *L 5)Ԙ\Y$ &Ԙ&'Ձ$&JH@) 0%X>%nq>Mlq>e+šHH/RQRBI5I`Iy)!j`LI& OTƤi!ǧ0j X J `I H@)TET%Pxl [,S8zQ!x,ؗbCbI M}knU͉ ɶ$wָE1O[Hm&8ń6$RZZ}bCbYm[(OJ86 O[XZo[k&!K AOTNxOq7Rl pHlHlīk(Y ɶpFCbCpqwpdlHq>iD鿧y<鿦z*}ia ppָJ82q"Cb=bCI6ēQIZ^lHć$6%+bOD_82ZHX [|8Ć}iM G XNNNNNNNNNNNNJ )X B$$ ! j ґB H@M%,iXP 05*1)-$jB`&%'f$lI%RN*I%*5CR`hvw@&N2U;'f@A$I=I0$$Ƅ@);cXB$d. kbN2IU)IټqI$I040$0䔤$)$L gdZKI'dēpcM0% IiTvY4;'PsvvqB&$$I`i-;I X$I$`I$L 0d?-d ]m [$=mKHI 6ێmtn; T !,(]Ԓ_R"I,K ym州K%*I$tmն^[I %KmOzp$[,Ho,HlH.[mY%$I)"Z68!6CY,\r$N"lIm9'!8o-q66$6"ClmVpؖ[lbI&BlIq$I$I/ b !ĈQalP2Kb'yI$CS]g}I,,Km&!$$,$6CbE=(u $1$%"I$HNNNNNNNNNNNNNNNNNNNNdist/copy/tests/data/music/delerium/chimera/PaxHeaders.26361/05 - Truly.mpc0000644000175000017500000000012412233027260024574 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.153046933 exaile-3.3.2/tests/data/music/delerium/chimera/05 - Truly.mpc0000644000000000000000000001477212233027260023547 0ustar00rootroot00000000000000MP+\t]5V1̣|]H$M?T4$IRIJ9?'B9 L%\g3!Y! y&8MǑ{>s?sI?{~382K֙|L~}?df?q}ȍGs, ?%%Ls|3?& A&yU=@jDpjңm*yёT pl`Dnpq0L0L @?,pTK'LUQKo>" ?/*H{Z?P+:o3ʋAYLom x}ĵzϿ?/O?~1/jlj8n$~p.9%(좉Hjӳ>.pMRhBSIv jk >ƗF(F= i YFb=+Uv3 *}MOĿ=TZb??A&?=DA4</YC4ɪj$@܈ĮqVuVo?V[1=AgO@>-pe=r37EML}HWK^4ϋ<>EJ=Rs ^._b3YpTc%) T}o P UuJd EQ)W~y@nnX>'9[]bԁ]azo6/^k0p +^hmDž86e V/"?jݛ )eȖ%@syˌicg *u/ֹ@ T[IP83%Lj$>^RmN/?b/l-?~%k;X#3 ]ʶ78^>L[ɾO٬ ê<<6 bFVYȝfVT j,P_t%lm³nn /y niƷ‡% BM$P,s>ǛT|<Z@:F|4A:h./zȊ.fMR 1m)ԡmU}{*&42Hit݈>M0s6R(H]`v0Ü.dp @03 ?=PC6N5sA\Pt]L w  (\d?_ Ma 1;|yj~y$ oˇBĄ5;?vŔ2y2d4j^4桚kȶ'?;r?ۃKo@:$)m BR.?-Ϡ&u!2~O)r+xWIfkq! cBg/Rps .Yac@- NpMFs) Oz[?hګ3z9K"D^\25oB?m0/{{C탏T+R3,~ZIQ?k ٹz_pYfF[w:P*%n> @g :eGA0TkKJ}/ά%)t:[UHNz/wD.2|uv а%FGD/p0R0<38N0K@^RoBSnNBPi~ ('в9Y+_Yv&2od/n/ke<޿HoHDpwܘ(OwoLH__P,'FMjO~\P08G8N Q0zz& !G }Xފt.H_r$L6 =,[SL kz?;o?TN(1)Q[S5n1~}I,пH6=cKg5޷SX0/Irt*FC@d 8PW ZҨHPl>~Fth ZDOY>?(k )y %>fOG]0K5>;@0\Jj߿O0&\@zO'WQoVvGqw ߿On,)+kj.*cf9chkֱt/ o~IViT5,4 {&& ZGtyKlvJ" I$4$m&MM$$I_ /<Xq+kp SO ' 33 p08/ _0@p/qDb. +\b%N8~;!>aX~Oxb'acpQ/-LJ|27 W 2ܱȟ|vnffH_^~Cɤ]hWFm}p~dU ۥ{}lzE4P C􀂀}~hVU3hvQ4޼xkW srz~ Upx}hK{|{eznzUUǙxtmp]S#v״p,J(X֬7i٠g&ggTjv?W, r:aC_[8í#եBaO]}Et{_%|{ffff| (V1쫧~C;(:傊!oW*Gj\K=_wYuC0 0z{XK6"(vs$9-rvnU\%z&˗Ȅr]"[|/"<"?! yziX1~ QM}41*c9 sqiXY Mk-zYgZv^ă  9g#j yFUfP 3+sRs:y(t?A?1O`)& 3ftxk1 =i%5Ƴz/V̜.t7'X y 1D:y2F_71 'ʂ2kPpR%h\ѩ\6cYkLs5 !J$F y!32A*6"zϢ|2%Q=f$sh?;K:)ȠTC[KG1}IGq`-/&<$(?a|fFmhc&֧Hy+H/[묔75^sN=ѬL:8k:ðh *\?xXx𼆮W~3(fv4\/=Nf`-9o;z}wup,wpYβ˗-ݯ-CLpa7s>M:mss9X٦]ɉ_}]QqCTCTt +jȄj ].~=_MH9I:2gH,s<^[Jǔv|:sx$^;Ll$f75F2,{G[hVߐPygshU]$o* M$4 ʞpy~? 9vBTX4rݭt*b8O^RTo2Z~$ A{ Xq΁# ǜv՚u9mEKa*fe:<3m]uJOp6#wwr݁TwwS$ww$fu'jUzV}VU/@ E6MlԅQ/i ۀ6lc޶q~|&~,!=<}k=~9+?~T[pQa*m rJV%ӣ#isx>ԑ=I]kK8V QNiFWG4ŬJRNa8\T>GnA,I~b7R)ـS>K?n}e 8|36ͬ XyF>46Yoti8~r"f/?LqjGwQӞ8g4S'oہo'xslb|Ls<~Dn9]ogV'VLPZkG+aapӑ斬[S^)mdrzV9>cClp#5)&,3nj0/ vֵQȎnFȶI.6,f,F\+ƛZUC"}uo_߫c.g։ş|r|޷6ϒ/ &x}c>y6}>ɏ7HjUhƔ'E$G7e k~mBq<{G2C\(ڟ+En%c (lbtxF }v"yW`[TvXPsIAE7ز7ECv]X;uj~wD -RC~A̒ Jm۶EOƶ6mΐ c];wo2H?jPoJW(NYRDJa{ -gzA;6~`~bUMYpTO߿S`ʟ:vB: ,m˱_?ܶJy{t4@wX#FO7?QG))|(:Z&tLaF_AV]`ܞg;kX-s&OI|Wk7pOr[#Cg-wbB"#cs=+8AD= +Ct3ţWޕiOީD[osNr,w)~w,Sgd(3b.x\;}Cz'#sηJ?Qܹ‡fZI]AϛԜ'N5j2ͷU,͌U@O[|r6(dESY5`ZȯZcKců=q9 lg},ŋYb'Ss?s;_+>Kxg}wϿϡϡ%0+ ?#"IQQ&!;s4&6?"{&//ICW/KZNQi!8fc8TMy`iVqkEC&N+sqLEn<|(8A5j_O,}rxXDTO{b$djIL5Q/Lxo1-~jc<J/\6DVupCKS}b>{,<Lg#.]yDM :~34j6P+.d6gV~[2%K4#^6j<k)2t6qpAQH V^D1Bo*Hw$_})y&&Y~57vemz>?~HM;JH 0~NU8vR\-/R((xj|[ZKR 9!, |5ix 2(ctj=!hsxQBuHuv]!Bh  ,RRugG1h Y*6+HGn%g b((x_0jgJ3jh"U_CXbAZIk3w #pJ~3$ 3[${`k,xk,~:y TPx&qk"O|#ln5p&#,]qofEO~678M2+%, hvQb`A\~f"F[jEz)f&U=/G2YZYV]&tro`^(L E/;,\!dq7o xN%|:FZKl3 FhxarFZ  alEMD JJ*Fl9L+FpB0#ePCuR=o``+ikrn$.A@H,$j {My#6x?KJM+G;+{SV{\b` IOT h)8 _xg2x?2E"W<%t!OkKW}Rm6,q u + wJ<tK[yO%,l3m0 0u  ~6| Xo sa0)ny.Ro]{TTyv&pgh\ yTWD(N*p>Y9_QN7V*VJ<!YD |0a iE "WkA]Mes =s@Zew 4\req-X w it _ R[ n!%2 Akx>VAћwXK8Nn)( f[lcbAV(V* =ĕTFpZS" l,jg4WIGYmwe ^{ZZX@<44Z6 %K>J][>J*N@GgJZc5.&SN:eVod^N/X+HC`==s^Mm&L *(,*#9BP@TUJ.f(]ʑ&*Қ8@Ƣݯ 8y+Sw);L#N 5#1XH#%jҍc髁M1ͱ`>fc=6*p5܁DgX/F#>>+y8{(B 5ߪK&@4G1E;X  7 BZULP=]F|2U1^dڗ;+$ޠ8П+ 9*4,qKdzĘmf%"<JɟIy/5n=ѣL07R.D E Q-"O<<2 ^ x e ?p +^) _ b  NEE,W93x^Vi tX=YPgE;'7l.c&c`:hZ)50HrD]iEk6 k 0* umcIfmy eYD"{N( b0&i.;DifLef4umkGybUn?S7h~BTU{:!{B?pf/xEIJ43q(V)1Q@ zLI| `dM/BZv!oJGy**fZD5O22O[C$R#~3QYFKsMUs J1 { m1  { u~  { 0zF^i_:@r9VpPeo8bC*jv ~ Fa l#Gq|ex */  l7x^drߐZ߁$UXF` !k#+ %f ۀ ]?6  u*7xN#"J" n Otre Xbxp58#L P ta-%| =v'3j (;)ԁre;0X\Ank .V'/(, h,<B*u?++S**E zm hP邯+ fY][ 0qIN &M\Yȿe3ndn"tr%1[ѢM:'DÝ&;w/AQB^R" gv}3.ib+,@8ay3#€4.DY,ߧx9QD4Sh()H&sEo i BB%# S| o4B@|h}Fy;2%[Ă9#"ހ,ں Ž!]8*䩹D(++xsQ`5Z3;! @\͵^H-bzPx"* ;AHTM? 56GtO8l}l*U $ GuJ!+QT23:3$m*YŴ_DL08p2фHVmk& ~}]6֠SOR;"G#r8PD 2 , j MeBS uEK4m~[߀坍=p.]&ڱi)6*ا ӿY=^C g&81Jf6k!55SJ e*=|`N(Sߙ` 3 V?"e:)U-i7T%䌴d|{ֵ 2,7[ $ 4ݍ$CB3q,YQF?m-ep}N UX_L'*;O(Yo%fX?.݃ 5ۛ7wb6ִo>ƻ7ޣYZh + -`dRI#JGgO4-n6I/ތXi {?ɨcC ?.3=c"3!XPX% Ix61B/A'#K)C)6P"!; =\'fգFJ؅b C)G @YLյ;mI7+bo0 :8? 4=)eH0LnwCͽ&[`EHTX!-a h(CM#&ќ- E>Z0#@!@ M=[(6:>%F/q^09 / @GO?Jfھn 0$- &|Rׄ&"/j˻!82?,S-g &0,rւ3>7HR$}5IW-Qfb L4YSNd*]pŮ&P$D&IzCqx@g6XE/B GT9IOo]WuM\\ usu$0oS Y\UMK pF$.)UU (F [ B8 m&fQD״Q%B<s@ap+:󩙬/rOJ,X d>^"a @_OEMsT1:hލ: IMEV>ٳi!<*܍?Ze "y^Rw:F&?v6YK%@+g1+@ۦ<+7z].ih'@݈ۖmKyV7tD!6+{G?7:6\ALV=BQA e4hYxA xPcJ@9C)͙T:bKH'9*R;MAI MƹNLP2FMcI'WYDoC'-D-Xg $2$'$m# E E3cᡮt@rEyײ;e,Ss7<2gaU$`Wei+wn^ Q8W\ eq+SƪDZѥTa rjZ(jW `im?8$\2rm~Kf74= ޭoBYH *N](ױ$&d)ϤR˽Bώ&EQ_"f<թ6,=E[Q#S RϽȣ[#BKxiac!E}Jy1)g- :Z%]Ŭ;&2JΡ" [) B"* ݪ0MRU TD%&M:(x @Rט=b[Knm:?㧭'5J OmIH ,+TE8"yifĀBn8U 'W:R>7TY{ ȯ/PGhvT E59Mr[ڙi2H< Dxw j&X?!YU -ȔґN eP&I6N 4DI2,xl1ouboC-f;j+cP@$-`ޱ69D )Wvv0`>=X?VyПe`m|J94-'=d/ZK*?mk @B=OL篲;X-lnW)] yŞx -L.d xewK٬RV :iEʹ?' ƀCBHL[?gVفkÀ=O:>x:?#m/2}6 K=ǽO [ CV:6pHYa݁G_U z AA85N'8s.oZkq2; /'H[Lm~a59S ~K[/ s*EJ&y'XdY/!!9xՋYXU: . tRQF#Ӫì<k`TWr;w8$q+.Iݲ&#ud TM\&>3 B(0\I%i,Gȷ/׵)ѫjgݖCl *FzV# G߂y=78\uM`K:D]Ҫ(E%_P kYI R?LȾT Ȗ3ӷ~HP7V_mwp,c|--XՕS5,My'=MvSS% :u0P[RM;"<x긦$2_8%9 0,^? E+p & ?;^xb/DIEL 8Q p>P!D=- De cG"*|'c=*>*NqgH5T3gŽ⦰(N{x;w s8uD!na(M 'yK>u,'U`9Q/I@[?Mwή* ² L}TНvWmj>xSg!!闀.߾ۀ\(}^S0Y}NmC'"ݾp1e7k1"܉_Ap;E}6&foZSsIķE'Yc,4e>;eU5>FΟR@"Y 6+vJ *;`I Z&z%4GE)0=&/r`Qzʲ% -B#4Ϳ0rG ڦ1Iez0d̒3n=bwK?>ֻ886 F!~X 5Ux1|>DpCh(x)W6,)c/ hv) 0 I7scŁiD XP/Ǥ0SC ##W!iECMMJDv5dƌز }YC0dist/copy/tests/data/music/delerium/chimera/PaxHeaders.26361/somesweet_albumart_name.jpg0000644000175000017500000000012412233027260030036 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.317046939 exaile-3.3.2/tests/data/music/delerium/chimera/somesweet_albumart_name.jpg0000755000000000000000000000616512233027260027011 0ustar00rootroot00000000000000PNG  IHDR00WgAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxڼZil~׻+ (DP*qVERREʟJ"4R+$(E6ir8&8{Loq;؞ѻ,{h3 @7Pf" ت8Xl$ȼt3 sRьeRf-.AKK=Qgx/*:|(]ʇ"I} x͔:+}^b"HOFG1 !3vzۍ)^L7~P^2BwJP( !FzWq;0iEd+.#;IA${E 0 0x\i ՠƵcjAj0L  y63d0Y$z|hŶP J@^/uJk@k6(+TYf:e LA5c glG:ZGڏ$_/t nd5*9m[X\/4d8AR`$+Pl,nJw^B_fyz21RFL9c9Sz;m{FG]"TLW.e,:<j ʲ{FRy^ɗ7kKDg$ XC۹(akCD/T< A2Zas83$^86 hm]+:Q6QEr.g|Y`ѻG2s;j%^٬/`[s >ZkEUSE\^o-ǣS8qAp 2mY؋' S`&4-T-7TA9^F蒅|s }&n*dEeKVuð)eqKXՌ f#O!. mDct Ybg}N#(Ar;7yO)x%Ќpwq}ooAT4ՌGWvK?TS$I["qz$2P)9 HX>`D\jUr,E04:X"sJ[F/eay!)Xk=}47ꩣxHjqlv|Ĕm}B7 jƌD!{2f5S\mQ[TUbx.+?~t,) Rx]=ce8hpr)\aws3pDL#)ok?.Eveu5X2ue<蚈4|I qFE 0ɎvIENDB`dist/copy/tests/data/music/PaxHeaders.26361/testartist0000644000175000017500000000012012233027260021341 xustar000000000000000030 mtime=1382821552.793046922 20 atime=1382821552 30 ctime=1382821552.793046922 exaile-3.3.2/tests/data/music/testartist/0000755000000000000000000000000012233027260020362 5ustar00rootroot00000000000000dist/copy/tests/data/music/testartist/PaxHeaders.26361/first0000644000175000017500000000013212233027261022474 xustar000000000000000030 mtime=1382821553.153046933 30 atime=1382821552.793046922 30 ctime=1382821553.153046933 exaile-3.3.2/tests/data/music/testartist/first/0000755000000000000000000000000012233027261021512 5ustar00rootroot00000000000000dist/copy/tests/data/music/testartist/first/PaxHeaders.26361/2-white.ogg0000644000175000017500000000012412233027260024526 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.153046933 exaile-3.3.2/tests/data/music/testartist/first/2-white.ogg0000644000000000000000000002116112233027260023467 0ustar00rootroot00000000000000OggSx UvorbisDqOggSx CavvorbisXiph.Org libVorbis I 20070622album=FirstAlbum title=whiteartist=TestArtist tracknumber=2vorbis)BCV1L ŀАU`$)fI)(yHI)0c1c1c 4d( Ij9g'r9iN8 Q9 &cnkn)% Y@H!RH!b!b!r!r * 2 L2餓N:騣:(B -JL1Vc]|s9s9s BCV BdB!R)r 2ȀАU GI˱$O,Q53ESTMUUUUu]Wvevuv}Y[}Y[؅]aaaa}}} 4d #9)"9d ")Ifjihm˲,˲ iiiiiiifYeYeYeYeYeYeYeYeYeYeYeYeY@h*@@qq$ER$r, Y@R,r4Gs4s@BDFHJLNP@OggS@&x vfK\ Gʅ.΄dd8 6cBM&wdgˣG3ҼIы쭺ϝkָrZi%zv|.lz{߯{}9Tem۹a!͡*7{'~IBe&Dfx#ryB~xO^؇pUzڻI\JJ-ݟYGL08munx(]Pwsj3)0SufdθzF`d@Y>ctrh!.PwYh9aj9l?tjȝMOL <x pN[ M{Z =|u~$xy^Ko땶@?/( 0G-jy0` }IfB2^+lմ^5BwH{4O8w=$O,Ӫsoǭ-^fmyė*Ӿ)c0 Q= .&{jrx;$_ fUBS MS ÝvwA+0h($@ĄuC [Ð.7D='d3gh;`k= j'w2Fυs:f,g1ړ&P,)@80"f,5ybu8h\Gȸ!~ޯŗr}YMJgw i6I& Y/%dUKX1TPڲTF@DˆQhmG} 0g ;O7YY!G?e3ėxᲟsPMj:xWK"e, fhjkgCT'g:g^Y3i_ͤrܒl3U} f.OGxPg6U=qj ٞ7-"3Dއ&%&0ާޜ哦!!O=xb q Q(Ț+o7>ӿMHPT[lnXE} {}ck1e|]?`FSR$ #ZqaQ p Pfu@lhf֚EI+r7q2uFs2Sm4>}o]o6gZG}[^Gr&E~f;=N-rjg$~_:5'Z}@+(G"qe(u-OjRnj*ŴKB9ŭfȣ^C{،\_DV^WH[Q>0!;MnjzNQ.5a`titfUu?5?曵uiq6\; ZP{_úTqwB~S+x84bWGX@ET)Aj3lww>cƵ"Q~m yTm´?^ĔaL($f\3xnWmԢڪ&IM m +Ⲭd*J۷_˶1f r^Jfn_$?O8PQ|'j-ec,]!܇6#c,ȋEV9s} k,C$並TԐD)*J3c>j9Ss r[1wss /L t:ȍV us4hM^@TɩIfWԩvr搙ܨA={ss,g<+A~:$ ]dP0 STVot6]z9 ,P5dtSSYgUƽD"~S_V!kANy* yyU+dv3DHpPu @zHK'K)vwPvpWm6| Y5Sj% ̏W_x4fG4hFiջ3v~wTz3^Ϗ/{|ފ}iUUqT X ,dDSٗMQjdO)Db2b*%!& 'ynU! 5evMODYYj}0ե"?bvs39_Nxdĵ:OFxWn6btc}-sY0Bݹ>+院77S4S55ُk<\oݝdW'b~ bkC[vc@u@n{Fܤjc}%t֑u$95ѡj1Y|v_˖@~oH lѶհZ9U"&/Su4ڢgЪŽ{qحnɂVx֕A=]JMrKAt ,v_崳YR{=bLɘٗۙ~O䨝MNUdtNXk/ _S<Ÿbʷ3ՈeOf]uI 1Z-=$_č7n}wQQ> fEمtј O0~)һjq~9F||KJ(>{Ljv2=3c=.N&tB-bI=$sLNz"؞NЙd ~\UM]iNMKiTgGœLOM~K :ty*[zOt\2 )#'D LvO^Po2#%yun=?KߓN*g+=/Ф|Wqi<$ERt}\voh5 )`<F|m=X4@3l @<0@c@/JbDf]2'6<+>0k [k:=Q)/~>سټvQGe-VyVk1'W].~GflWKŞTc;Tw2^3RV*$fVuStϦohW;k&rNٓ]ImKgGM~;&wc׿#$ GjsMݻzjEqP_Uf$c4n&lHN-.^MuוnlH@rLemZu__P ٯ$oeP⏰E /l^J/6F #@u lE %1|{FeSR$<lkh˰Jng{TMV4lމ΢gY]WQM=EOnfv.˯^kINndist/copy/tests/data/music/testartist/first/PaxHeaders.26361/1-black.ogg0000644000175000017500000000012412233027260024461 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.153046933 exaile-3.3.2/tests/data/music/testartist/first/1-black.ogg0000644000000000000000000002122412233027260023422 0ustar00rootroot00000000000000OggSG&=AvorbisDqOggSG/ wvvorbisXiph.Org libVorbis I 20070622album=FirstAlbum title=blackartist=TestArtist tracknumber=1vorbis)BCV1L ŀАU`$)fI)(yHI)0c1c1c 4d( Ij9g'r9iN8 Q9 &cnkn)% Y@H!RH!b!b!r!r * 2 L2餓N:騣:(B -JL1Vc]|s9s9s BCV BdB!R)r 2ȀАU GI˱$O,Q53ESTMUUUUu]Wvevuv}Y[}Y[؅]aaaa}}} 4d #9)"9d ")Ifjihm˲,˲ iiiiiiifYeYeYeYeYeYeYeYeYeYeYeYeY@h*@@qq$ER$r, Y@R,r4Gs4s@BDFHJLNP@OggS@&GV(J ҤwXN}t"rPfg UvW.Z5{|Ʊ=R%d2d =?7V)f51(3e ˯~x_f|hYڶѐ6]1߷wc}vs\7sBxL+muF֞7_"R>R~רe*K2dfHI.%TyN-<3#hD${SdquolKS[T100 YE{a$K=eљ;+*TU7]oj6;=(KgדS/2a✪1:@Y>Š; SXW;T 돛R\L[xfәj'C}0Y KɦP#xpӊ~kpQE@^nΧ HKX6>,ĉ50y@H>F<cō52:H_ַѶiC}/w3Nqge⍥ĕPuX_OHrr3ʭ{,o0b+v~~Eù8G;xcm}CMLNU=JR?$Zql`gwTqr4W i"/ qp`>S[VNO7W4}V/Y%Meo2k6>>}}&5']l%z9CI]صN6cQOUCTԓz2/w)Jr S'7TN@9FѠ b1O FWbp}[ޟ_!$(U0DShڨ%-I" BA>f]s@~+o`amCIdM~5˕g I2}(1M&ndfcQW[/*)'G{3;uZ26`&k$O<3.ʤtC}QGP|r {`N0yjo|\_ޯBآvHx6p@`+[iϯLjA@ާ1(b/.uCR!)YRv>zGʌG ]EimUS K2Ji/wk{w؄3DLm葍_?&1g~bx G|'4>E?ػX kfޞr?509WVc Qmz%.~ C:&fN;sn@Q;˃:{`]r ;k^3XY>^"@ޛgvt3`y1sw,d)ϴSop'vzlxiꬺ"ьw6~1.kkEf9@d|=4-$P6 )z{yi|}0bQVdtI*a6 ;܀lb(>fs@l[6ZmUC%_&ooWޓ}W-i.:/9FqZ≴d igK[,B9җK6=LOdeG Y`tfNx.4wIhe\XoLֲnwv4êZSH*ߎ{p)r:T4 9;' YO݉:L7 u4怘'S5~meqCfAn2Jbb1T1@%{quOB ܀R-`^j =Q$JKPX=Tdl:P( u\7x}N_gcDkZPtbS vGc991˷g̶aeWbŊ,yYo޳TՖM^?.;AcV?ЄGJuJnbDJmMSAy+g^2ee`W'&$BbqrqL]3'_vއblM@yyXMЩJӝ?"KhOPS}'Sz:]ޛTWh4jx.^vf6_ޕ90C% @YÌ/\ "$$` Pۏ[TR"Cxro_xdt—jZܠLζhM0 N vux7@cw߶mZk$_&ٻ%e+g^ŢQW3o;|dM?2XqD^jh{??Wyⱒ+x;NUFhWt~?M$Ltc9X:b4$MfaW!ӚjCUo7{TLȳ@CljD/_39ɓ*w~޺$۳쓨\ߟyܞ;EIMݸ3UBTgt wwu;&lH&bKiJrjpb+wdCP1_pOpe[FCdS[ypAgjJž5S.,MJk K!@_lLS>FچP-vsf?w@Fю6":kP$/vԭ?CAn-~esۘ {:r/k{<.yfmuϗ?NY:~fvqgryda%{i6q դZ>a^iwheCu7sܲt&=@ Ӊ;aWEWgиijϛY6f6nVzJ.ݾnO0ʝh@BDFHJLNP@OggS@&P| J n :?nA]$D>6{/uGOaHG93p>+ 86uZfzʌk~oW/=>۶mkZhG#;u={3}si}vXgE*Y3e6Gޘ6_㋌[`5o<2>Tc-AL!'ɚIbfsmwbPzrEy<4#O,OLN"vL{gL[:u@e3d&hUN\f(vz$w3ON:=Gk:tpfiܭh'O/]hM]Q~CA9I 5YiTu8 b?'3. kz1+88 4+*Iwqm Hn^)l$ۖLj2W,,F;6H\kQR` I>fsdpf|<Rhm2/vHoYs=ќVQLkE~8o=2ԟXQVϰMʾI_eS^{S_UΗڻϢL35j3OgKjy39irS_v@^C_\YDl4`{Bq+'6WYYIly~zW=sq=E&[hr7Mاab^ul^]Yפ-YCdL%y55tlMXzn{mR$U34)TF̚R"!s?gn+]m]n,ͧ}o,F?yg/H¸BA[IGa^oa xK9@Fu9 epO ͶmmU3JlG9hv>if!i=V7~K+V /yv!Vsk.ql ]˝cjͮL0 יʎgVOdja@,;ʤqPEs/sU:rrLϰa33sHvXMF6 !<@̨6GGmjnxGҮ9߿wOGH8eu*Ι)[~sߋm~Q }J{2 ^YZʝ]M:*03NŒ@;;f'>{B8T. VLG{WU]ُ8c?4"MLKVּ3ĨdU2bӣ҃qe?3f@}Al; a|F8|7M\ UK)q;O¾{6a\Xֻ: xb M>4|6Z|F;"{""`, OKm( !>f< Aʎ{n VTL_&gS=*f2 vʅ~?mqq?~}}NsfB=_Q:?sek•eؔ*pHr4JGۘ$*;cJpKN,r79г晣=$OUwsT*:!ofhե)Aw"I)}R+T\GN_ N:atv d1]ue'MD7,]d\u(p;^ݰθv`@SE_ 2۾$(%AF2S|"l^B_,^uhƪD)-I>f^j@y+ 鞀! ڶa% 5S{4d.g5w\sΣ3|8ݦ>Ҩ[;fzxP{7}㛝-קJ2J׹Mk u,>fQc~oj9MĿou\Г֥'ukjψ+L9tJ.jbqi]jLѕn` 꽊9]2Y!+aȧkҐ EBy#<\Uo8 MZ0Ɨ  oP>f@y/nDm}[k5T4*,2䘬 0bdy,zb/KZ3<~x?d7y.ٞ9yTXi>š4ov:57+ڣn-BJߝtt,}?Jfڶmky͔ v|/~xzF̉,kmsYn{e_+⮬?dJͫ{u%k,0 u/2NM{@5t'OXǓ3eBs aZw%JL9Ρ}!jHA6EBh0$~4{sVŴf|aO⊸- LJ*Ӆy3O~9FOggS@RP{ezNQ[[߃P@g;'O;ܺZ(d]yyMËskӘǛE< !i \շ%fnEe9n`f |эh`  9ڑ0&9/DIG" >6oቆ 죣mRAn3=4 0.eWr}?Lz/Zono:yyDQGDQ^b@b^kF}Iiқ{[E$vSWgONuG]b_T : {6M}4(C ̕j's jLJK2K%U*Fg]ʷ姇!bOg3({s qGH!3Nd9={Y麢7}~wpiLU20m$FN1Ĭ[xֺ "?EI#.^=6^@Q:2D=iS$,v]BD!ʌ{|ا7ocQU&/w^hRy 3Wg[<::ms-auOrbe{gP}~mOw1|-fW=sfLϥne8~,ShZԦ:MOaęSۥ3Z;bP#gO5/Nt݆ɢkjӶo'XFTW6T杻K DT2门5UUI,JM=/zg:fi452n/cĎ@D&ќ3F//0eDlH'!]6*9' e(>f]Ran+zxWmvhd)r7}eUj {IǷXv4vm^\:3.+}<. !y&U!yC#^=r`}vzGI3,O;J~鷘{j˾;>4jE5es-=LLGۗlN0C>Vg/M+UN{ Ӵ':>=wۼ~#dSg` =9v@)4|* >W1 E&`@$ "hq fd'|A1  Iah>V I4R }c;Y06CMIM0x[{kM[J&v>`hL&²㫶1vkhҩH>vʌk]n 5 ߶ֈuJ#r7}eurEUuMYpګoS_^O9xܲ^y]O2s/ +^áB&BOpv枇̄ɻa3g/29n:l J*;$+cU*P rȞv|v{!'M+KYic`=R yffܬW[j&ə; \1II%qQ߲O-gL"0T1]7,T==mܚE~ɾ+D({әUPM:j*E!/@1ȯ/ HDȂ  ۲dVRЯ"Ď$e4J5 F\xWmmkDn"C?#;ۨ;%qx`>ؘwwF'?5k8]k?d:ky[9TIz|hg:N1^_onst{( +v23gv~uMhDr(REAZ^߾"Ǖ;.BЙ4u 1tw6"A h >6]Qr  | ahhME TY/wdgl~1fqLu*Yv\M{n-wc+9 ޲YGeådGOQśKU=vEyCSY%ֹZ6!˧gS"Jfkq<h0Vf\s@q/mDMj;н")m Mm=}8:8s2bOX?KWƏp$ZG1Q~SrQtW.kM4dVߋ9M_ELkFຖ~!MrH[ɜ=7 E]gA_  xT4;NvR5Y{Czԑ2:KqAu0nfvi`v]ehqƭ~lwg睊szYə=Z {[M974lj\dCw9Ԑ~QahFT Č l# l[>?(-,2'oYE,*0Bp"L$ 6>f_fh#*jNW% ѨC6,Ù=>j$l,kš) HzU2Qw^CSN$aɪ {F_yGl qi>=\JS}1NLR3q(:w![ Egl=T?vO]&~j3aQEK60ܜ.F3KL? V vAC*Ԗ?Ξ+*39](CS@aYùfSg]4}o9c1%] $Xh)HC  hl${刴ވb.%%*JF G%) f^R@~k lcֶfm5 uf;o{9||Qe@{3|vGlm}b,бn_d?{yQ?EhJdRg ՞?ݹ0LV#vUDDl:#l!c'&:7C8S*]F4O ߂q M2kvfoWpf:"ŭLάb\&1"`]ƻԫ @>6nVQr"(_5":VE2_&g ݣјZ9Ҥ=Qx+FjX+Y|kqjy|YZ|dG|;v.1$i*= g\1 b⦺f0r bO _iLz00t'֔az܆wVZ 據_x;+zv͙LZk6TRo|nzdt>OǍ}OӛIf73}Uy[H\̹>ԩ,P CӹLO/U킪_)jD1 2Ht#5%J^ @_"ߝ]ox^o);v낗ҕ hŪ,IVO1*f<}fo 7@ 9ZZD#Ԕj]q" ]dژBKSGܺgp3jSqyy }%DLUmj-, Z{L˹U',%5ϞmN~D6擷㗐*%ڋߝٳNr9(3Sg|BbYr`맲;h1tͰ!3,Tgs:vom:LOu'$eLu*krc2樛0N E6=\0w @3B ,`m< y],xG%e&-! E-݉.@ ^'ɠ!Ԁ`FisPv|e07Bah[kF, .K襱jqvrџu^-zy$A%foo[Uu!]U.-=r&w_32k%sG:Z[Opq HxQ{M9H[.tu{L~9LC=hãWUP4I̵'gTU(Ȃ&@^\yvqI| T3Af){Si+;0㦸/pv6Q:[oR5);=V^p-"`cZ{5MH`XE#.@,:DJQpw Do0a$OP6eq֑ _ѶQkCCIC]/dsl5$e^-]ŕ;l6~Z0fyUY2.,IMuD5|]I-}x3twuL̡kZ< *rc"*sb9Ly癍2yU=ч"cD&VrON~F v.fs뮑;9zV<︸,ehbjF Bu SOGW#ά;0vfz`| 8{s8 )I}&Ϙ:ZF|cRѮ_1<v;*u0K0<~j߾\s_`cNB!Cf@,dn؞,>v 3cm[kPML)M _e"nwQ=p\tku8Ckvf_'-a4(JG(ENY>W$,>p*mO&s>)#m2akYvٍfJ ]֞:'VLyw>ԢN6{w^>8ulA OQo PnmgqӳN&S4UVMwĨLwɩ>|fb.Z"s2aCӕdvV1x1?s=ha~}.`d-nv '/ ,ēP!s o?%d(>f^ۆ0AyKH_Ѷmkj*?JM(*(s`2u7Z*wki Cywf9䓝@w<2=u8Sk^=3Z6<3Qj3).!˾"Đ{R\S?SESCtbU:jab诓LTea6M;Wֹ;w;I`AټTBxGqWRp + ?/]DHi|_Ts&f6:&P-7< _>6l֌ʌ[]9Dm>4* F]t?ކjW{E1invOÞ,a]jI-k'~I>cp/ǠJn7h$ЃbYᾲ@L'==fWA|ez$g.O3w? GFSt᭚مg]|czjf^bo55uwPU[s0l< jsy;kʺ`~z}͂?c}^i > KjB\ y=}WA +"6& ҩ@ڊoሖ t FچPO(;m@x|Tih5 K\U&r7@zmNoF?ܯ,˚hJIі#d?,l7à;IECKQie"#]pg*INgEo5N9D߁9B]Z}'de]d*7 k?q C/52LN _;&;grXө stjVy6]vy2=T4kZTzj.ji;.\Isixd~*wƛQi(r = -Ō |>'K<2X݆(t{b~ 7zR7LF?3} ,nn#G AlUS7>f eۣWp7|GFkJ %r7}HtWQkshYZzbU,2qpvggJ~w붳uNn{Q(3[I=WGH\(r(ubT? Uq?oaίrpϺD}Lfo\J N.ч]I5EOS9s1 LUlok)j^5}mjLQ'7g~{fGRnzf5Euryna`/=O}5 @BD-1E1}l:bop֐<g& }6 4ӫ)B}~~ '=hJ Ԓoon1< | "Vԭ9ROggS@P5;f^$Pf=w@􃱷mkmԒ`hfc QSq,Zq5ә}7K]i9EZO#9:eyȞ YlZ*2T=8vsb t;VXavh|ȓ ɹ<=9/gao` @ϝSӕ4<@5ɮFTњU4 j&}O]fn7$lT)T~y1Qd'F.lT,dӑ1Lw%3ۼ iY׺m: =5Ceg:UK1}|f|ەIs{?6Lk*]9)YrKz 3ߧ[$L@Oj^yxDLНԛ 3~rb*YG=CFs=@ Uv^s@z o$`mGmFD2Lr7=PV>9/[Wu>֥x1"9;˳us_zKwgWz}KF{!1ܐo{:N ξ%;ko7{Ξ΃1']ԴK==9[](NrüziO~'Y?k,f܃sn칽jHN2̦r|2/)N6~$Qrr>(Eu3ߜ\zQ͒44ݳg&ݓɕU=3s\.W4g,5Q @'GJh(.(`".7_m,mDs@k$D!#!aL %T 5(F]2}ƨմvC|5qNf>^ݛќVw-Dž,G_)FV{`]kޗءt,J,K<VGݏaƜSFcJWvNavb"+ϣ;7(9?{7\JU]C0)z?bL~Ug=[3Zeԏ1oT.̞,{g'T*e+m[w~⮚QY4͡j˯e5n|1 r*Nm΢韡S+dV1 _۲$x,L C11H/w9oίX0 j͐dMa)DVf\s~Uz_#ZjP%Gl^Tl,_ԅ۫}n_8G2ׯoou[d\tDk}3raKέ~e4}ʛ:rL7UfVԓqTr$d޽9E=4Lގ7暮nΨ?9 xULdS\]|-0=yVtM* uw2Lz ;fg V'l{8KNWL2X}N39Pr<13L Sӝx*:)Ψw$lpC)߀d3-xJ!/^nX^h[p Sv$82D) [f^ e۵-H7||[ˢm4´* r73tFX^ylܐ$-;Yr뫮&0؇qYϲLQ.#*8yZOgF$m&+ͨ=W4a*xh-辆0%z~dDtxɗHCz̻4۝ϋd?/SLw/ C 05}`)6^sOEdquDb噮=C!'2ץ!Ӕm\I[\s945:*LC54-(>f{[|ndB-"w4_* B1ЀHIc26NG*u2|9 P Q C4ÐlHE.'FeC͍Pv>ƎpOhںdM`GM'8~W ;i 3v:&_H3PKR9mc +153Lsب55SZIs{=(ײD=C45/Kk{=5PE:3ӇSٕ͐veE啌$! OO/}W 41u"]j /"̴zIwE)% $@ Feo(3ޮ}F`M6»T 靸nBL>nt2Gezd7ƮixZv jtwެ Ov.e\pQnMAS^[]P,[N=m|)ަhN qZ"mx 2O0_!.! ˟n@F!` ( J,(Q>vs@u7)+6VԶm#|Cr7dT*+@Qëh+g#|ʪǢyfoa7d,e?Ui/Ku?~v^l6pMl LLeߕ)dtNerJ6=ES+&.ЕI}Po&h=|M yH2pgÌ'uBD ]4ցkWUuv5N ]F?k2&zDz-}πkQSV$Edv3EnY,Jռ3J3=w"jPRFG=O-Cr..-W cRgVe%mm F\AFcUp.`Fª!Z%&~]WFlc6Fc;ǿvγr/};m|셔ظu?YDe^4C([Hy(55[v2%On[qަu\59=5DB19Eм<3H^O GM™̌4sLᆴ죡]7,Yfŭ,ESem҇JJO7d*έl9w07P]fتL&=;aZ$\+EDUk[,f|OggS@P3*xlO՚L$nfެOK~]éukWq7R5Uf`_ѯ\aU)Hl#,#_./PghBgd +AJ6Z$LWQ+)%T6H P>F_1x p}̶mkYꇚ2_&xڴ#ѽYɈ*kiV{+}&9kcv:mmʻJĕZ:E:Ek6sNw#ivG{Y5UCOP&ٟ@]3'Ce>UY0{~tvgL3d1S͓ޞ\I7GSc JO6d3Bٯ6wM;:9gt A h EIz)V3` l {qV֎NN^0uL1ǠyhJc;'-K?q`P@$i"t=+H ^t-!PvH >6ꆋQq+oY}[h#IU6^~>N8/üx뛁~#=<~yRb&]#D75UVV6uuD#WHr1]S־Cv6Ebmj8"kMf/7]|g$55L/SqyL~|;.j0ߙW4 UUpws[޵vjH &;kzT_2c's N(YXvL㤏0uʆ39ZN|4J@Њ. OB#h)E&b|?,@ $Dt tSlH +K2Z< E=>f:"<?mmjޥbM'I=eWKŴ%,/:I^[?e_Ż8pN{m+ǣ i?_̈́#8hBL->*]➚to}r6ܢ6ɍs)pST/& Ҡ + }O1͋)Uϣʤ7pWÛ.Mw  C74$g cޱ|LswS'!=T{Гsdá\rUi2::3]m'@t$3K1FG>,.WoywKV)9A@ܨЬX>f@~H|Z;Іi}$r79bx:}~^|J-|+jͭ_&X}y>E)/ul6#Wh;{R(YtKSUYbv-LUG;}3)%2!eZvvɇ~;9ŬtD4 3'RNo̔N٧÷3Uzʚ0rkaojsʙf6b~"2IBd;}NwXtlݻfwYfffeS$ɇjNY|y t3=;)cjDlW؍W@??,;@g{~mJ5(,(jm@f\^'|<1/0FmpUnrbi>|?νhߏߞ;s`i +S" =LjkXgu數ijDwD-pn =&AuVTԙÀhMO(+w' ETm drjpSCu{RV/&Mk8uwUZP BtdqO`g:CjO/I*76t$ɴ`{{:)L53Pt˳/~MRاᑦ0JLZq5\`#HSmչ&u7LCS:#TӐv]x{ }66,L5P#r7n]_֟ՄqTFrK9*cw k1yfcl)ו|6Zz@[}y6f:!s]ycʁluLUNdV䙫Hzf%l}:b PCAEO{s+jnJe麙ܚF{lC7z \ɟmA=@{I\ttdށ)SuC֗}}9izeJ\O5fpD2}2f{0|:@ǸI $QP *dצ|#\>qpZp!aP۠NS(D7@Fp>F0*;^cGl#k[߆o5DՂ{4OeENXp5C1Ѷdٱ97W*w-JI{mZZ;Η )G7~NߥseΕ{C,=/U䥚̂$i.UgZp ٙ4 V_jg>1)y _sdvk }MqMtt52# u=fIUәF#[Dݜn):PSYEӅ7t 2y hZ_N^c Wԯ|Vԥ\QJD SDiĚP0 #((ȯnY6PP$$f@hloZ6TX)u/w^h,%M3{^˷;=y6~cNkgL}z\f:q.(>m\t:鿋iZʽê u3Uͬ$$9åJ"|@3iڜόbg#^xtٵys{!݅ckaE!+C5-&CaW ˝ՠ UN5P$]:&~ 8f¨3tQ u7f-UebK v{I[/20T%I [7GId Ĥ c~y @OggS@Pzf$}f^sA@hw7 _"jV v^_x4f'_~t^_zwrN*eL60SݮYyz:yHH"nʪwZ왻=9Sv f oj_ LtG͡' 0fe%TՁɤg-_Ys .,26Sl#҅ X/ -܏)P_"_B!"X Ӎ 0T+ `9L>F>F!$1;>{ VњE5ɤ* w7y|hkct+GXJU3V^8E,}^DNRjgTq91ÃFReQ<=Kq]9Nsq9,:fȈtLz{L_ w8]O_Kf䕺:ݙJj>razs*ԦlN <fZI)UlsUjxOߙzWt[av̽\|쌓'sCv )}f}5kἳA>a@L} lqx@an8WH)t-iHaE>6@7 o6Pu#zf `bFi=yL7=Su5 f%L[ۭxqlۛ>O?r:tYN{cS/2^bǪِ{~L?EXKB_t%0@r.P0FʒG@ 6FBJkg 53{jlMW{w6brO}3Lo̧ Yv?~?sqÕ|*8Ac84D'3$ryu Ch.R_yg 恣tZ=L\idi%ehS]Eyǔ~PPo |kfaΙ52!)Z̙ T~g `gעC2]DѮL7~'I0t3,k0d7A̰#p{Kf$ y5t@OhCh c@~5ДygxKݫzo ]40h>6@!Fe%u{"arb֪V5E0_>$ZC] dC7kd',z=e<-{6ysáǏeҡ]K4GW1J#d9Φj2x06=ev}#{nf;/D?sވ݈Gsr>F+2QI+>|۶m[ dUUMХth ~a[l={:Qnw'I?]ňI|3RKѕGqO߱7UE6@n)zؕ01)&bDwtOpS,t6nUm0ևQŵ12T%y.E@{LQQ霪V̧9(w兙zWJ׳&].&oyhzs!nhK'0z`>Ulsqy]f֠N? l#kA xQviU 8{_ou-/"E)M,!Fl(Qq+죭5j<4(/wHv^28. W=NZ,r7|.gob1`o,-﷫ǿҭ`#cd9"s!I-Y%͈jH lUz"9]!dx r6)R;pWVv'y>Ak2'G7tLq2Lt9ʫa[O1;=ecfJ~+{yi>׮vݪ ܾ?lOݼdg~m_^3Sez&Lgлt~aը3>0 lَ+ 2Z%"z6vl$27J qrNu6MDaHs0h:]RD6rH(6g@gŧRPԗ+ {_$i:9lI&~ iO7h6~.,0<]pάU d:),wJvsɤ)8Ě3E)Kߟia 0'w-bf{Sofa 7luޔLkc,A2Uɗnr%n0/Ŕ*59˕DSx|c|.),rZR(Q6g=4I>ݚ_$>[KS 5ޞ<4jT=$tV|NOͶOggS@&P <2}C7S"/19sꗿAY@^HpFTw2{ OOGN(ߖ Yi۹v:?{J $ҋKQU tT $ܐLf^5xp7$h;5֪6BCIM͟%/BӬ5cvf=,Qmns 3G3nym&AsPxOx^GEkzyGk~{QDT슺L7ӍĨ{/ľknU= al*.(GҒy֫ԈuZvEJMg7sdR6*76₩fXI7+3N ,Iu2N8b}FoVA=$)rG\Т梊=gco=\ڙyj{a*䩻 $Xf]ğ|FtY0FCs9/fy~~/ZRf18U1ɓAH>f]2Z_6ߨo#֨(SJIMp_uϷʲ"Zm2ӝF_U;[,.Gy{jF9De~|,Ο'ݪ(qdNl"=RBkNi4S#i^r'OnCd͹9%k9f]~孋A-Xœ9$^Vׇ+SLD|,*D̵ȡh&PorH,+23f*'P1Ys`:e#W~̸]o_0|~;nk'. $fdg66cWL d^.Qr6/--;5D % @G)=#j[ :8 F 2^;n);mfQu1@Pv|pw_l&.25E]hdhHu[7ªfd|_sCXjQ9yu1v^!]fCinvg4،{;'{at4EsZ?ӽ6qXa/Go\i4ZN>s= F9SGAGMfn$=3|v:3YyƟ%Wϳ髺iJٳ9\fOح{i~N69N7WoMs3IzŐwI\~w7fCrDF"u } l9k橭s%݉xTRyqSwj+s?&w|kas8] Nll7\Op*` \\v[z:@g@q7qJ(f^ՍPf_ki7'z6ca*Mb~V%v!9^Qemҭj4V{<kfyiAJ j%j;493 q3ݙLg{:y+;!;3)gr{"{2oHnqf|k.#Hx=uj`R+$ߢࣥކ⇚z9nx$윧"_zIMA1ʼn¼=,j)y ]u13'3O3%:\Znn(LMwKXr\̗㏳yI~t*$ 燛%a ^ L,wQD_ pdm D/`e^wՎ7 +(0:lֈ!Ϻ oMRK5Nʨ%ΛMd3ll76A_0>”>Y>A-G9wNf]ٓ;$9sak4ݛܚY?efۈ7I!4亏k{MNOnjqC\g*ܜ;=U%SH@{9kz!IHjLw%P _5zXs?$]t~L_C۽//peqǷ;17H=a|r@:…)oS]?<|ax`H `S.% qU%e>h$lݍ@>fBʌGnkm5Zi \$ظǃ{=dIQ录~\SFI޵=|Lꚽ~. HʚTCݳ}3Zyarigw}OM1;)-woPɬ>蝽hYIfn_y nha 7cg&wd'iwLܥ޷?vpz8fQNVqtu>,M20_ܾ5ŵEXlP?aǬ+:z LQ J"OdB4[%=B?l6Ӵy_y_Zk/h)#@ibQ)F^[ `xfmzkժtba. ߘ]]ehm:y,|)\tX?g{*3Eʊv&98l duY28jA2ݪ.j`Qξ=quyDҹ,,Sl?$gbfa{̮̚L7htl+.՛仡@+q$diA0sh)g'-5 ލæt:k덺S1tJ*zC`XXؚ%CײX @A0˱@#I_KV}Q^X1 Blf`e%Qx_@^>F<uQ(3ޟ;@ ֶժFHM]猗{4jcQUSg@/xOW?;tݛ -/x9*מ~+&!9r{Tj)CI66C\Ko{({MdW؋OwTA=s٭]/7s>d LN gm.ne׍)NR4s9L=5b-'| Wuސ'\3oat^M*z~w&w~Oο)eJRV].+/(>]N!ΰ܉ yHIR)̲t^TٖW4Yx+wUw1tX Fٜ!OF[b bTO<_>bc /Οo<b (`0eEhLI5F2 Zm@W>fJƌ[`m۶U߶gn.Soh>-+U>C{z +CcYi&̛Gy~yU79ؾGY۟Hɾl3ek֫^M?Z$4]1S1̷5h-x7StT[&.JfW~b^3 g`7aYI:dP29m0g'k Nꖲ fdist/copy/tests/data/music/testartist/second/PaxHeaders.26361/2-foo.ogg0000644000175000017500000000012412233027260024315 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.153046933 exaile-3.3.2/tests/data/music/testartist/second/2-foo.ogg0000644000000000000000000002121212233027260023253 0ustar00rootroot00000000000000OggSj갛vorbisDqOggSj+GuvorbisXiph.Org libVorbis I 20070622album=SecondAlbum title=fooartist=TestArtist tracknumber=2vorbis)BCV1L ŀАU`$)fI)(yHI)0c1c1c 4d( Ij9g'r9iN8 Q9 &cnkn)% Y@H!RH!b!b!r!r * 2 L2餓N:騣:(B -JL1Vc]|s9s9s BCV BdB!R)r 2ȀАU GI˱$O,Q53ESTMUUUUu]Wvevuv}Y[}Y[؅]aaaa}}} 4d #9)"9d ")Ifjihm˲,˲ iiiiiiifYeYeYeYeYeYeYeYeYeYeYeYeY@h*@@qq$ER$r, Y@R,r4Gs4s@BDFHJLNP@OggS@&j6ؼMx /JGJ!K,lV ׻;6±.Y5rhuOg-Q3=燝?},pS6 ZvkAX3>=wo}}ռoìfQ5(q7c9#,u3YLKrۿ2Lfhg`CȟFRa}´ vca:e:C{PL w'}3׹irUu,t%eB4x+=P㱫 :L2T7b_٭j̧ٙl]T{HʡwMJ?*5MO)3L/k ^>45#7乼qbva|P5YJ.aD`CeJZjYӣ̩%+ǸB>ީ ^z7Ux8j7i*$@fIONO4dM1?9&TS&_eROkKk[wSϧw^aֻ>U?fr9#&i~-翈6([^w'!4+hvi8w-$)7"0õ;݃n\$(۔^~۟Fw名30| &!y[o×|v|D3!Xnczo7zN9/=ɹb & `r?zVMS;k'7lgopye+iz3c2d)uW<$,5:o'q 0y$ )')U HxT`>vwxRhL5 ) M_6B[8z̽C6/Gv2řl}g:<{է7>=cN{ܝ\P c! Wrl",_F勲ٞUx_[~W $ED!$A0`6Ҳ ʌʌ{($o74ѶͼYXiw5Zr7@{01 zRVgخyQK4nB6IoVge{f;Gn&1cUYr';i8<+6'ksO73o~J%ҭDsavzJVrOs>J+b+]O[Ee/gʞ$&anӯo{yPIv{_BL;6z{2iV2wniff' .RڪjJ/wHn(U1˜,~*h J4W9Y$gf]2:7|kY[3-]U)&xz b'L]v:{9umeuJ?=_Y,FGSr\)z*tGD:鍊Sm Bi^dL쬗yNҭޘ% 򛵰,9W04o^9n hu!BZluۿ9f4f"͙ߙTMow6 jvC;bp1[UujjlpG0U.525Sмi< Mc-3럭o㱹,ƈL9($͎̑=N}'ll o趂%KJP٪'T/Gfuxk ocDT5¦*ni74r1/qOY^9}{MʓïzZ#cZ0s n*̈́`3&z}.J GIF:@3}ù9랱-늫nF1'"CߝT3uɹ&O^Wo^uϗJpDU]tTR 4?ݺspݚ;oTzfWQTBS Kl]& &ˑ̳aQ0F. 얋G(;@xpx!Z Ud NF]ʎPn#`lFCkJ@ZvFe)ќM2}jUQ>K Kwwϸ,a۰?ܽlVhQF2M$O ۧ4U}{ b6=5t8{;d2{*'f Lߵybz:YZ') #e\ ''akbY&O&}UKS1W3u|%n{H2lm >3> gf=v~ۉ߭߯/̹왆̾;!$lƞikn NuӀRJ0)p M#lR8I'mm9TT{s@hÿ!SR!F]q۾ݻH=W}Q6֪iDnsd䨒}8EWuy[PNmW'O[8oYSOTe9*q%={Ki=~gy2N#=j_VX:掜l֬L>,o$(ٝI1Iy%2/R*n+Hν?{>ϐIW'˜izALM-MP9,>o&9MinbWSDC6$$ >$Z TmvgYн+4WE.J^݉9T{i0X?9GnDd|#ϕMwg_ O _ /jRG)@+PԍP sK@>F=2:HL6%:jЮ nfi}{ǫ{TŬc.^ ^~erdzRQ2{NgGZr4VHyw۳;;] OM @BDFHJLNP@OggS@&﯇Hpӄg+  __Av^-cΥS={y{4В H.!E cZf[1fwo_>,}m[SժI ۻ1>c9tؗ3\@EVV 4/g4W|1w}c0j)1v4gG=2QDٙ=PXTyYYoS"ʫ(eMI>=$`A f\ۆ07o:F"eB3}hg5kEk*IM\:V_L2OaG婉 ugH@p٧+nuĻ:(ꚜ%#V]l*S^: [OSFA@ӮYARV9\Tc닶AV^;30 3E ;}n`u{w Q1CubS{PѦa/9M2wKzF~A2e6ܳ1$G 4~efE $lW</Yol6TT.D 0(7H(r4`fu@~oHϾm6 MFװu- noV=j ~i3kZfycn>r/tNFb~4w:$ʷB:+g_[rUםy=aM ՗#Hj:d;3цVD$r7JwxK7FgmelUOv[3|d}shɓSN7\޶?ql+glNjn+gW%L}4ǃ  zHYɷMg$I쇁:L(=3^h1TU?>y~rKށDS{jNB[4z60RUN/{sUn28?i2'qN]d $d N\tvtZTU'6`oR&7QâZrIت HPaΥ}ATf&706Q@ fBLJfܞmC `xA-|]vt4Fk>*GZ9A`5:}e1ί o쾌y̤+\ d2l݊|[Lex~~'ib w#vfƏKIN~ gSC2uʮ!+~Gכ)zZyy9Gͧ@MO/PIkqL6gTsޒ5eS۷o{WǵvZzsU9EY5 ӓC> XgaZ?j6sA>?~QY6%H7 Nl!8sC4( v fs@4d,ZkZ@Ô/wotn7w7Ysonj{wYP0yͱ:=ٮfY 1)ӻOOXܗX%Uu55jVOT\q*+G,nH•*4M=ֹ0#ȥ30UTfh ήiG,c\IVS4!kÙJz<]M7Oqn:0Ԛt%{fO'&aZŴaXr:A bsw4?/o~{c~uN:g'\٧Śok\'~֢g~qO{sPr ؈} i$bl/- D,oQ7ply tDždb6\v0*3>n#koilۨ4&a$_&xXY `Ɖfǫ{4je%žGr~凌wy}b9IN b/ٖy찭^fbۿUYdP*Rfu'S"&$Ze BtL<ޕ:F4> @DtyYc1?%75teM4LfLה,6?請Liخ飚~^̇6C٩olPTq2z?v7.nH ĵ\hSbi}X)Mda R '-P*_pngv[j'Q( 4z Q!`  x>Fu2 YZh۰Z2_$gfW5̖ʆrzVD'Cvɐm=Vd>+R<͍P">,E۸טӝ<3Qs\ciw$^*ItH'/STN߇5LkX؊LeOTQe^ҸrƓE/8 ;[/d1.ptGג\~:bjvmLRãQ<+IΙluʵܵW%(?.R!nldVz˻o$eHdN'e!,;v ȣvVm)~jp m gGBRc0$f]f@.0~mBI2 r7ӞLLМIx 4SriL}`[z2}=zbw%VY;fB4gMfWn:bwy`9vw]M74䎭G?iH1BԬ5rx8&'YTt<] 0Tv0/&svnvaz-  an;fr1=4ͺwC 9dИ3M{ fSCO*':S~?50bqwWoV[װKwce@M&0l`(M(QC . CUlln?xTyIզ) @FE2/LB1 -P >fnݠihw7I[9ڎՈϔ  ~ݨ7=^<]h<'I'cͲ 6M?^>6{f/yzVͦ3: :$;;\f x ̨\(8bdist/copy/tests/data/PaxHeaders.26361/oldexaile0000644000175000017500000000012012233027260017761 xustar000000000000000030 mtime=1382821552.793046922 20 atime=1382821552 30 ctime=1382821552.793046922 exaile-3.3.2/tests/data/oldexaile/0000755000000000000000000000000012233027260017002 5ustar00rootroot00000000000000dist/copy/tests/data/oldexaile/PaxHeaders.26361/settings0000644000175000017500000000013212233027261021625 xustar000000000000000030 mtime=1382821553.317046939 30 atime=1382821552.793046922 30 ctime=1382821553.317046939 exaile-3.3.2/tests/data/oldexaile/settings/0000755000000000000000000000000012233027261020643 5ustar00rootroot00000000000000dist/copy/tests/data/oldexaile/settings/PaxHeaders.26361/covers0000644000175000017500000000013212233027261023126 xustar000000000000000030 mtime=1382821553.153046933 30 atime=1382821552.793046922 30 ctime=1382821553.153046933 exaile-3.3.2/tests/data/oldexaile/settings/covers/0000755000000000000000000000000012233027261022144 5ustar00rootroot00000000000000dist/copy/tests/data/oldexaile/settings/covers/PaxHeaders.26361/40e23d5fadb2a2df9fe33f07b0cf8e96.jpg0000644000175000017500000000012412233027260030565 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.153046933 exaile-3.3.2/tests/data/oldexaile/settings/covers/40e23d5fadb2a2df9fe33f07b0cf8e96.jpg0000644000000000000000000000203512233027260027525 0ustar00rootroot00000000000000JFIFHHC    %,'..+'+*17F;14B4*+=S>BHJNON/;V\UL[FMNKC $$K2+2KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKFF"6 !1Q"A#BSq2abr4$!AQ"1a ?/rL = 2wc^sRQ$ _ڒC3=l4u5٠,ϟ;Cxys{f6ur}(Z^{u̲JJ93'K5%xZ_V RbW9oNIӮ3,=qIԛ. 9P']YG;2 q*-oll,KX1s0EQN[WQ/{Xl9HyT>_xހ;;nX]b]ɕյac}}F.M]y mP8#ˍՖŋb]ͩȪ1.qХ V&Tϐr\D U'\j<B ͒-`̨EcPz p;X#:E& LBc/ηFhdR+\FYf6.㙷$ɲ~:q' djYmCxٶ.9Uh衝ѳaIF`EPy3R%£>srPulcV8=,8C mNG_ ͠6P<A9T45pW6""0:m E5 W! KMF< y4k@ g=)R?ӝe@+t=6 dist/copy/tests/data/oldexaile/settings/PaxHeaders.26361/settings.ini0000644000175000017500000000012412233027260024243 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.317046939 exaile-3.3.2/tests/data/oldexaile/settings/settings.ini0000644000000000000000000000343012233027260023203 0ustar00rootroot00000000000000[DEFAULT] scan_interval = 25.0 burn_prog = brasero art_filenames = [u'cover.jpg', u'folder.jpg', u'.folder.jpg', u'album.jpg', u'art.jpg'] last_active = 1 scan_ignore = [u'incomplete'] files_panel_dir = /home/synic open_last = True search_paths = ['/home/synic/media/Music/Hooverphonic/A New Stereophonic Sound Spectacular'] wikipedia_locale = en cd_device = /dev/cdrom volume = 0.7 save_queue = True amazon_locale = us check_for_updates = True remove_paths = [] add_paths = ['/home/synic/media/Music/Hooverphonic/A New Stereophonic Sound Spectacular'] feed_download_location = /home/synic/.exaile/podcasts audio_sink = Use GConf Settings stop_track = fetch_covers = True [equalizer] [playlist] [replaygain] preamp = 0.0 fallback = 0.0 album_mode = True enabled = True [ui] tab_placement = 0 use_splash = True trackcol_width_album = 216 covers_in_collection = False mainw_height = 621 track_columns = ['track', 'title', 'album', 'artist', 'length'] ensure_visible = True mainw_width = 1000 use_tray = False mainw_sash_pos = 220 trackcol_width_title = 215 trackcol_width_track = 44 trackcol_width_length = 54 trackcol_width_artist = 215 files_Size_col_width = 50 new_trackslist_defaults_set = True files_Filename_col_width = 130 mainw_x = 225 mainw_y = 142 col_active_view = 0 [editor] [import] format = Ogg Vorbis use_custom = False location = naming = ${artist}/${album}/${artist} - ${title}.${ext} custom = quality = High [lastfm] user = submit = True pass = [osd] display_text = {title}\n{artist}\non {album} - [{length}] opacity = 80 h = 95 enabled = True text_color = #ffffff bgcolor = #567ea2 w = 400 y = 25 x = 1280 tray = True text_font = Sans 10 [plugin/shoutcast] row_expanded = True enabled = True [proxy] username = password = enabled = False port = server = dist/copy/tests/data/oldexaile/settings/PaxHeaders.26361/music.db.zip0000644000175000017500000000012412233027260024132 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.285046938 exaile-3.3.2/tests/data/oldexaile/settings/music.db.zip0000644000000000000000000000622012233027260023072 0ustar00rootroot00000000000000PKH:-?N music.dbUT  PJPJUx]klI%9M&a]3]#sƶdljsGINGK:iD$-ANPtؾð}ݰah?  뀡C ucE %Q6eɩ8G:zhiG!8,ρJڅ-߇IAr")Ɵ(AD#,:&mN'B8ݭ0K3MˎdCc餜8<+{2;fcǎDf%Y{%^ABRk+|Q294 =r"Y ngӺJZcN3쁒%M|tf̱1+̱ռ곺GR\Gb}!,tGFgNLqK׍9ߦE[>*ɸxSbz.U]Ւ YT>MNMiӍlnQ]}ީ9s-ɱ(V[l,' 0$I,tӵE4A+'''K; 6^Ck-8iR҄\,IPУo8qt ]#5ᒰ No>@!ٗT]U c)/zaӼY +vIr4K3K2 UZв])V_".ȓE3O/ ø=Ly44AS;"(b餃GCFvpw0aD|FS#vr9Qs48(ؤ5;odpr|2gMC%<Z3Zf./ FЏ{?g_76F$14 6Fy~~(3-e,;!־ Mf]4ᴥ/O l,0lW(9BiMC|=S!GS!CПwUĉӆ 0%i$BpMM$ H*$ I! Iyۓ()!?RCH)!?'N9}v'NCv{w iKНh7ߵ/#GEM|Aޫ)_Kڴ%"33o_\Pg5ӯól@&҆~ea2&@o ft~tVQ*V (hmF*թkVye|xl}o5J7<)6X8&07kb\Iyf"LR@֩#\.@r?_k0&}x}NBftlwo Rw+jYKٮVdeW{U8\{qUڂ+NjG}G?7o/+'}#n0*Fh4M4oC4"E1Hy@D4G@sA4wt$$utK xإBs%N:R=VkRQb,2AYD9;er,dG5EWtT$Z9?9&&<ay8&B,E,X?>t=[ ܊q+vqVPu l>iu1_ NϺ6Q:eҘ eaD u>dmgJs.KQu&-ˆ>+Fj}4 0p9$bWs;|>j^{K9swA,;UsxwV\~4 A8U #JfIWy_E|T14K>9+Ok򤉍qSJNQʊlY-$g c˜|Fװ.hcˊsLW>?ec&g>sb(oKp+ME\ p%$uugʾ.ݫޢD+;+(#\쬥/8i5 UY7[*3NٱKR]k;ծ{?k\hN746^Nb 5HhsfZ?u®zWC-t׻ս^= @QBg XUuK:kXno(Wfv=<6Q/|L hnxoq; pk]. AsQ[PumAmM}*z<_o5]q9ԦY<x%8o_f Cg[!_ q,@6)]fuk],ps3{e2霞WFiǬUy3KZnq۠&{e%Playback GStreamer.com SDK bugs ====================== 2012.9: "libssp-0.dll is missing" GStreamer.com SDK 2012.9 was not packaged properly, and is missing a file that comes with MinGW. Obtain the file from somewhere, and place it in the bin directory of your gstreamer.com SDK See https://bugs.freedesktop.org/show_bug.cgi?id=54710 An x86 version of this file is distributed with Exaile in the directory tools\win-installer, and should be installed automatically by the Exaile installer. If it was not installed for you, please file a bug with Exaile. 2012.7: 2012.7 does not have complete python bindings shipped with it, and is missing libpyglib-2.0-python.pyd . You can download it at https://bugs.freedesktop.org/show_bug.cgi?id=52983 Possible Errors and Solutions ============================= The GStreamer.com SDK environment is a bit fragile and can sometimes cause mysterious problems when launching exaile. Some of the known issues that have been reported are below: "ImportError: could not import gobject (error was: 'DLL load failed: The specified module could not be found.')" This has been observed when there are multiple versions of Glib/GTK on your system. Possible problems may include: - You have a GTK living somewhere else that isn't compatible with the GStreamer.com SDK. This happens if you have GStreamer SDK and PyGTK installed on the same machine. - You may have MinGW installed somewhere else with older DLLs that are not compatible with the GStreamer.com SDK What you can do to diagnose the problem: - Get depends.exe: http://www.dependencywalker.com/ - Modify exaile.bat to launch depends instead of exaile (that way the environment is identical) - Load %GSTREAMER_SDK_ROOT_X86%\lib\python2.7\site-packages\gst-0.10\gst\_gst.pyd in depends.exe (the pyd file is really a DLL), and see what errors it reports. This should be able to tell you what DLL is conflicting, and what its path is Bug Reporting ============= If exaile crashes, you should be able to find a logfile from the last time exaile was launched in the following directories: Windows XP: %USERPROFILE%\Local Settings\Application Data\exaile\logs Windows 7: %USERPROFILE%\AppData\Local\exaile\logs If you run into any bugs not mentioned in this document, please report them to us via launchpad at https://bugs.launchpad.net/exaile . Please include any relevant logfile snippets. dist/copy/PaxHeaders.26361/xl0000644000175000017500000000013212233027261014367 xustar000000000000000030 mtime=1382821553.609046948 30 atime=1382821552.785046922 30 ctime=1382821553.609046948 exaile-3.3.2/xl/0000755000000000000000000000000012233027261013405 5ustar00rootroot00000000000000dist/copy/xl/PaxHeaders.26361/main.py0000644000175000017500000000012412233027260015742 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.113046932 exaile-3.3.2/xl/main.py0000644000000000000000000007030312233027260014705 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. # Here's where it all begins..... # # Holds the main Exaile class, whose instantiation starts up the entiriety # of Exaile and which also handles Exaile shutdown. # # Also takes care of parsing commandline options. import errno import logging import logging.handlers import os import platform import sys try: import gio except ImportError: # on Win32 using the GStreamer SDK, requires import of # pygtk first import pygtk pygtk.require('2.0') import gio from xl import common, xdg from xl.nls import gettext as _ # placeholder, - xl.version can be slow to import, which would slow down # cli args. Thus we import __version__ later. __version__ = None logger = None class Exaile(object): _exaile = None def __get_player(self): raise DeprecationWarning('Using exaile.player is deprecated: ' 'import xl.player.PLAYER instead.') def __get_queue(self): raise DeprecationWarning('Using exaile.queue is deprecated: ' 'import xl.player.QUEUE instead.') def __get_lyrics(self): raise DeprecationWarning('Using exaile.lyrics is deprecated: ' 'import xl.lyrics.MANAGER instead.') player = property(__get_player) queue = property(__get_queue) lyrics = property(__get_lyrics) def __init__(self): """ Initializes Exaile. """ self.quitting = False self.loading = True try: (self.options, self.args) = self.get_options().parse_args() except UnicodeDecodeError: (self.options, self.args) = self.get_options(unicode_bug_happened=True).parse_args() if self.options.ShowVersion: self.version() return if self.options.UseDataDir: xdg.data_dirs.insert(1, self.options.UseDataDir) # this is useful on Win32, because you cannot set these directories # via environment variables if self.options.UseAllDataDir: xdg.data_home = self.options.UseAllDataDir xdg.data_dirs.insert(0, xdg.data_home) xdg.config_home = self.options.UseAllDataDir xdg.config_dirs.insert(0, xdg.config_home) xdg.cache_home = self.options.UseAllDataDir try: xdg._make_missing_dirs() except OSError, e: print >> sys.stderr, 'ERROR: Could not create configuration directories: %s' % str(e) return # Make event debug imply debug if self.options.DebugEvent: self.options.Debug = True try: self.setup_logging() except OSError, e: print >> sys.stderr, 'ERROR: could not setup logging: %s' % str(e) return global logger logger = logging.getLogger(__name__) # Late import ensures xl.event uses correct logger from xl import event if self.options.EventFilter: event.EVENT_MANAGER.logger_filter = self.options.EventFilter self.options.DebugEvent = True if self.options.DebugEvent: event.EVENT_MANAGER.use_logger = True self.options.Debug = True # initial mainloop setup. The actual loop is started later, # if necessary self.mainloop_init() #initialize DbusManager if self.options.StartGui and self.options.Dbus: from xl import xldbus exit = xldbus.check_exit(self.options, self.args) if exit == "exit": sys.exit(0) elif exit == "command": if not self.options.StartAnyway: sys.exit(0) self.dbus = xldbus.DbusManager(self) # import version, see note above global __version__ from xl.version import __version__ #load the rest. self.__init() #handle delayed commands if self.options.StartGui and self.options.Dbus and \ self.options.StartAnyway and exit == "command": xldbus.run_commands(self.options, self.dbus) #connect dbus signals if self.options.StartGui and self.options.Dbus: self.dbus._connect_signals() # On SIGTERM, quit normally. import signal signal.signal(signal.SIGTERM, (lambda sig, stack: self.quit())) # run the GUIs mainloop, if needed if self.options.StartGui: import xlgui xlgui.mainloop() def __init(self): """ Initializes Exaile """ # pylint: disable-msg=W0201 logger.info("Loading Exaile %s on Python %s..." % (__version__, platform.python_version())) logger.info("Loading settings...") try: from xl import settings except common.VersionError: common.log_exception(log=logger) exit(1) logger.debug("Settings loaded from %s" % settings.location) # display locale information if available try: import locale lc, enc = locale.getlocale() if enc is not None: logger.info("Using %s %s locale" % (lc, enc)) else: logger.info("Using unknown locale") except: pass splash = None if self.options.StartGui: from xl import settings if settings.get_option('gui/use_splash', True): from xlgui.widgets.info import Splash splash = Splash() splash.show() firstrun = settings.get_option("general/first_run", True) if not self.options.NoImport and \ (firstrun or self.options.ForceImport): try: sys.path.insert(0, xdg.get_data_path("migrations")) import migration_200907100931 as migrator del sys.path[0] migrator.migrate(force=self.options.ForceImport) del migrator except: common.log_exception(log=logger, message=_("Failed to migrate from 0.2.14")) # Migrate old rating options from xl.migrations.settings import rating rating.migrate() # Migrate builtin OSD to plugin from xl.migrations.settings import osd osd.migrate() # Initialize plugin manager from xl import plugins if not self.options.SafeMode: logger.info("Loading plugins...") self.plugins = plugins.PluginsManager(self) else: logger.info("Safe mode enabled, not loading plugins.") self.plugins = plugins.PluginsManager(self, load=False) # Initialize the collection logger.info("Loading collection...") from xl import collection try: self.collection = collection.Collection("Collection", location=os.path.join(xdg.get_data_dir(), 'music.db')) except common.VersionError: common.log_exception(log=logger) exit(1) from xl import event # Set up the player and playback queue from xl import player event.log_event("player_loaded", player.PLAYER, None) # Initalize playlist manager from xl import playlist self.playlists = playlist.PlaylistManager() self.smart_playlists = playlist.PlaylistManager('smart_playlists', playlist.SmartPlaylist) if firstrun: self._add_default_playlists() event.log_event("playlists_loaded", self, None) # Initialize dynamic playlist support from xl import dynamic dynamic.MANAGER.collection = self.collection # Initalize device manager logger.info("Loading devices...") from xl import devices self.devices = devices.DeviceManager() event.log_event("device_manager_ready", self, None) # Initialize HAL if self.options.Hal: from xl import hal self.hal = hal.HAL(self.devices) self.hal.connect() else: self.hal = None # Radio Manager from xl import radio self.stations = playlist.PlaylistManager('radio_stations') self.radio = radio.RadioManager() self.gui = None # Setup GUI if self.options.StartGui: logger.info("Loading interface...") import xlgui self.gui = xlgui.Main(self) self.gui.main.window.show_all() event.log_event("gui_loaded", self, None) if splash is not None: splash.destroy() restore = True if self.gui: # Find out if the user just passed in a list of songs # TODO: find a better place to put this # using arg[2:] because arg[1:] will include --startgui args = [ gio.File(arg).get_uri() for arg in self.args ] if len(args) > 0: restore = False self.gui.open_uri(args[0], play=True) for arg in args[1:]: self.gui.open_uri(arg) if restore: player.QUEUE._restore_player_state( os.path.join(xdg.get_data_dir(), 'player.state')) if firstrun: settings.set_option("general/first_run", False) self.loading = False Exaile._exaile = self event.log_event("exaile_loaded", self, None) # pylint: enable-msg=W0201 def __show_splash(self): """ Displays the splash screen """ from xl import settings if not settings.get_option('gui/use_splash', True): return from xlgui.widgets.info import Splash splash = Splash() splash.show() def setup_logging(self): console_format = "%(levelname)-8s: %(message)s" loglevel = logging.INFO if self.options.DebugThreads: console_format = "%(threadName)s:" + console_format if self.options.Debug: loglevel = logging.DEBUG console_format = "%(asctime)s,%(msecs)3d:" + console_format console_format += " (%(name)s)" # add module name elif self.options.Quiet: loglevel = logging.WARNING # Logfile level should always be INFO or higher if self.options.Quiet: logfilelevel = logging.INFO else: logfilelevel = loglevel datefmt = "%H:%M:%S" # Logging to terminal logging.basicConfig(level=loglevel, format=console_format, datefmt=datefmt) class FilterLogger(logging.Logger): class Filter(logging.Filter): def filter(self, record): pass_record = True if FilterLogger.module is not None: pass_record = record.name == self.module if FilterLogger.level != logging.NOTSET and pass_record: pass_record = record.levelno == self.level return pass_record module = None level = logging.NOTSET def __init__(self, name): logging.Logger.__init__(self, name) log_filter = self.Filter(name) log_filter.module = FilterLogger.module log_filter.level = FilterLogger.level self.addFilter(log_filter) FilterLogger.module = self.options.ModuleFilter if self.options.LevelFilter is not None: FilterLogger.level = getattr(logging, self.options.LevelFilter) logging.setLoggerClass(FilterLogger) # Create log directory logdir = os.path.join(xdg.get_data_dir(), 'logs') if not os.path.exists(logdir): os.makedirs(logdir) # Try to migrate logs from old location from glob import glob logfiles = glob(os.path.join(xdg.get_config_dir(), 'exaile.log*')) for logfile in logfiles: try: # Try to move to new location os.rename(logfile, os.path.join(logdir, os.path.basename(logfile))) except OSError: # Give up and simply remove os.remove(logfile) # Logging to file; this also automatically rotates the logs logfile = logging.handlers.RotatingFileHandler( os.path.join(logdir, 'exaile.log'), mode='a', backupCount=5) logfile.doRollover() # each session gets its own file logfile.setLevel(logfilelevel) formatter = logging.Formatter( '%(asctime)s %(levelname)-8s: %(message)s (%(name)s)', datefmt=datefmt) logfile.setFormatter(formatter) logging.getLogger("").addHandler(logfile) def get_options(self, unicode_bug_happened=False): """ Get the options for exaile """ from optparse import OptionParser, OptionGroup, IndentedHelpFormatter if unicode_bug_happened: # # Bug: https://bugs.launchpad.net/exaile/+bug/1154420 # # For some locales, python doesn't merge the options and # the headings and our translated text correctly. Unfortunately, # there doesn't seem to be a good way to deal with the problem # on Python 2.x . If we disable the usage/heading, at least # the options will display, despite filling all the text as ???. # print >> sys.stderr, "exaile: Warning: Unicode error displaying --help, check locale settings" class OverrideHelpFormatter(IndentedHelpFormatter): def format_usage(self, usage): return '' def format_heading(self, heading): return '' else: class OverrideHelpFormatter(IndentedHelpFormatter): """ Merely for translation purposes """ def format_usage(self, usage): return '%s\n' % usage usage = _("Usage: exaile [OPTION]... [URI]") optionlabel = _('Options') # Merely for translation purposes p = OptionParser(usage=usage, add_help_option=False, formatter=OverrideHelpFormatter()) group = OptionGroup(p, _('Playback Options')) group.add_option("-n", "--next", dest="Next", action="store_true", default=False, help=_("Play the next track")) group.add_option("-p", "--prev", dest="Prev", action="store_true", default=False, help=_("Play the previous track")) group.add_option("-s", "--stop", dest="Stop", action="store_true", default=False, help=_("Stop playback")) group.add_option("-a", "--play", dest="Play", action="store_true", default=False, help=_("Play")) group.add_option("-u", "--pause", dest="Pause", action="store_true", default=False, help=_("Pause")) group.add_option("-t", "--play-pause", dest="PlayPause", action="store_true", default=False, help=_("Pause or resume playback")) group.add_option("--stop-after-current", dest="StopAfterCurrent", action="store_true", default=False, help=_("Stop playback after current track")) p.add_option_group(group) group = OptionGroup(p, _('Collection Options')) group.add_option("--add", dest="Add", action="store", # TRANSLATORS: Meta variable for --add and --export-playlist metavar=_("LOCATION"), help=_("Add tracks from LOCATION " "to the collection")) p.add_option_group(group) group = OptionGroup(p, _('Playlist Options')) group.add_option("--export-playlist", dest="ExportPlaylist", # TRANSLATORS: Meta variable for --add and --export-playlist action="store", metavar=_("LOCATION"), help=_('Exports the current playlist to LOCATION')) p.add_option_group(group) group = OptionGroup(p, _('Track Options')) group.add_option("-q", "--query", dest="Query", action="store_true", default=False, help=_("Query player")) group.add_option("--format-query", dest="FormatQuery", # TRANSLATORS: Meta variable for --format-query action="store", metavar=_('FORMAT'), help=_('Retrieves the current playback state and track information as FORMAT')) group.add_option("--format-query-tags", dest="FormatQueryTags", # TRANSLATORS: Meta variable for --format-query-tags action="store", metavar=_('TAGS'), help=_('TAGS to retrieve from the current track, use with --format-query')) group.add_option("--gui-query", dest="GuiQuery", action="store_true", default=False, help=_("Show a popup with data of the current track")) group.add_option("--get-title", dest="GetTitle", action="store_true", default=False, help=_("Print the title of current track")) group.add_option("--get-album", dest="GetAlbum", action="store_true", default=False, help=_("Print the album of current track")) group.add_option("--get-artist", dest="GetArtist", action="store_true", default=False, help=_("Print the artist of current track")) group.add_option("--get-length", dest="GetLength", action="store_true", default=False, help=_("Print the length of current track")) group.add_option('--set-rating', dest="SetRating", # TRANSLATORS: Variable for command line options with arguments action='store', type='int', metavar=_('N'), help=_('Set rating for current track to N%')) group.add_option('--get-rating', dest='GetRating', action='store_true', default=False, help=_('Get rating for current track')) group.add_option("--current-position", dest="CurrentPosition", action="store_true", default=False, help=_("Print the current playback position as time")) group.add_option("--current-progress", dest="CurrentProgress", action="store_true", default=False, help=_("Print the " "current playback progress as percentage")) p.add_option_group(group) group = OptionGroup(p, _('Volume Options')) group.add_option("-i", "--increase-vol", dest="IncreaseVolume", # TRANSLATORS: Variable for command line options with arguments action="store", type="int", metavar=_("N"), help=_("Increases the volume by N%")) group.add_option("-l", "--decrease-vol", dest="DecreaseVolume", # TRANSLATORS: Variable for command line options with arguments action="store", type="int", metavar=_("N"), # TRANSLATORS: Meta variable for --increase-vol and--decrease-vol help=_("Decreases the volume by N%")) group.add_option("-m", "--toggle-mute", dest="ToggleMute", action="store_true", default=False, help=_("Mutes or unmutes the volume")) group.add_option("--get-volume", dest="GetVolume", action="store_true", default=False, help=_("Print the current volume percentage")) p.add_option_group(group) group = OptionGroup(p, _('Other Options')) group.add_option("--new", dest="NewInstance", action="store_true", default=False, help=_("Start new instance")) group.add_option("-h", "--help", action="help", help=_("Show this help message and exit")) group.add_option("--version", dest="ShowVersion", action="store_true", help=_("Show program's version number and exit.")) group.add_option("--start-minimized", dest="StartMinimized", action="store_true", default=False, help=_("Start minimized (to tray, if possible)")) group.add_option("--toggle-visible", dest="GuiToggleVisible", action="store_true", default=False, help=_("Toggle visibility of the GUI (if possible)")) group.add_option("--safemode", dest="SafeMode", action="store_true", default=False, help=_("Start in safe mode - sometimes " "useful when you're running into problems")) group.add_option("--force-import", dest="ForceImport", action="store_true", default=False, help=_("Force import of" " old data from version 0.2.x (Overwrites current data)")) group.add_option("--no-import", dest="NoImport", action="store_true", default=False, help=_("Do not import " "old data from version 0.2.x")) group.add_option("--start-anyway", dest="StartAnyway", action="store_true", default=False, help=_("Make control " "options like --play start Exaile if it is not running")) p.add_option_group(group) group = OptionGroup(p, _('Development/Debug Options')) group.add_option("--datadir", dest="UseDataDir", metavar=_('DIRECTORY'), help=_("Set data directory")) group.add_option("--all-data-dir", dest="UseAllDataDir", metavar=_('DIRECTORY'), help=_("Set data and config directory")) group.add_option("--modulefilter", dest="ModuleFilter", action="store", type="string", metavar=_('MODULE'), help=_('Limit log output to MODULE')) group.add_option("--levelfilter", dest="LevelFilter", action="store", metavar=_('LEVEL'), help=_('Limit log output to LEVEL'), choices=['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL']) group.add_option("--debug", dest="Debug", action="store_true", default=False, help=_("Show debugging output")) group.add_option("--eventdebug", dest="DebugEvent", action="store_true", default=False, help=_("Enable debugging" " of xl.event. Generates LOTS of output")) group.add_option("--threaddebug", dest="DebugThreads", action="store_true", default=False, help=_("Add thread name" " to logging messages.")) group.add_option("--eventfilter", dest="EventFilter", action='store', type='string', metavar=_('TYPE'), help=_("Limit xl.event debug to output of TYPE")) group.add_option("--quiet", dest="Quiet", action="store_true", default=False, help=_("Reduce level of output")) group.add_option('--startgui', dest='StartGui', action='store_true', default=False) group.add_option('--no-dbus', dest='Dbus', action='store_false', default=True, help=_("Disable D-Bus support")) group.add_option('--no-hal', dest='Hal', action='store_false', default=True, help=_("Disable HAL support.")) p.add_option_group(group) return p def version(self): from xl.version import __version__ print "Exaile", __version__ exit() def _add_default_playlists(self): """ Adds some default smart playlists to the playlist manager """ from xl import playlist # entire playlist entire_lib = playlist.SmartPlaylist(_("Entire Library"), collection=self.collection) self.smart_playlists.save_playlist(entire_lib, overwrite=True) # random playlists for count in (100, 300, 500): pl = playlist.SmartPlaylist(_("Random %d") % count, collection=self.collection) pl.set_return_limit(count) pl.set_random_sort(True) self.smart_playlists.save_playlist(pl, overwrite=True) # rating based playlists for item in (3, 4): pl = playlist.SmartPlaylist(_("Rating > %d") % item, collection=self.collection) pl.add_param('__rating', '>', item) self.smart_playlists.save_playlist(pl, overwrite=True) def mainloop_init(self): import gobject gobject.threads_init() if self.options.Dbus: import dbus, dbus.mainloop.glib dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) dbus.mainloop.glib.threads_init() dbus.mainloop.glib.gthreads_init() if not self.options.StartGui: import glib loop = glib.MainLoop() context = loop.get_context() self.__mainloop(context) @common.threaded def __mainloop(self, context): while 1: try: context.iteration(True) except: pass def get_version(self): """ Returns the current version """ return __version__ def quit(self, restart=False): """ Exits Exaile normally. Takes care of saving preferences, databases, etc. :param restart: Whether to directly restart :type restart: bool """ if self.quitting: return self.quitting = True logger.info("Exaile is shutting down...") logger.info("Disabling plugins...") for k, plugin in self.plugins.enabled_plugins.iteritems(): if hasattr(plugin, 'teardown'): try: plugin.teardown(self) except: pass from xl import event # this event should be used by modules that dont need # to be saved in any particular order. modules that might be # touched by events triggered here should be added statically # below. event.log_event("quit_application", self, None) logger.info("Saving state...") self.plugins.save_enabled() if self.gui: self.gui.quit() from xl import covers covers.MANAGER.save() self.collection.save_to_location() # Save order of custom playlists self.playlists.save_order() self.stations.save_order() # save player, queue from xl import player player.QUEUE._save_player_state( os.path.join(xdg.get_data_dir(), 'player.state') ) player.QUEUE.save_to_location( os.path.join(xdg.get_data_dir(), 'queue.state') ) player.PLAYER.stop() from xl import settings settings.MANAGER.save() if restart: logger.info("Restarting...") python = sys.executable os.execl(python, python, *sys.argv) logger.info("Bye!") logging.shutdown() exit() def exaile(): if not Exaile._exaile: raise AttributeError(_("Exaile is not yet finished loading" ". Perhaps you should listen for the exaile_loaded" " signal?")) return Exaile._exaile # vim: et sts=4 sw=4 dist/copy/xl/PaxHeaders.26361/dynamic.py0000644000175000017500000000012412233027260016442 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.517046945 exaile-3.3.2/xl/dynamic.py0000644000000000000000000001422212233027260015403 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import logging import os import random import time from xl.nls import gettext as _ from xl import xdg, common, event, providers, settings, metadata from xl.trax import search logger = logging.getLogger(__name__) class DynamicManager(providers.ProviderHandler): """ handles matching of songs for dynamic playlists """ def __init__(self, collection=[]): providers.ProviderHandler.__init__(self, "dynamic_playlists") self.buffersize = settings.get_option("playback/dynamic_buffer", 5) self.collection = collection self.cachedir = os.path.join(xdg.get_cache_dir(), 'dynamic') if not os.path.exists(self.cachedir): os.makedirs(self.cachedir) def find_similar_tracks(self, track, limit=-1, exclude=[]): """ finds tracks from the collection that are similar to the passed track. @param track: the track to find similar tracks to @param limit: limit the returned list to this many tracks. If there are more tracks than this found, a random selection of those tracks is returned. """ logger.debug(u"Searching for %(limit)s tracks related to %(track)s" % {'limit' : limit, 'track' : track}) artists = self.find_similar_artists(track) if artists == []: return [] tracks = [] random.shuffle(artists) i = 0 while (limit > len(tracks) or limit == -1) and i < len(artists): artist = artists[i][1].replace('"', '\\\"') i += 1 searchres = search.search_tracks_from_string( self.collection, 'artist=="%s"'%artist, case_sensitive=False) choices = [x.track for x in searchres] if choices == []: continue random.shuffle(choices) j = 0 while j < len(choices): track = choices[j] if track not in exclude: tracks.append(track) break j += 1 return tracks def find_similar_artists(self, track): info = self._load_saved_info(track) if info == []: info = self._query_sources(track) self._save_info(track, info) return info def _query_sources(self, track): info = [] artist = track.get_tag_raw('artist') if not artist: return info for source in self.get_providers(): sinfo = source.get_results(','.join(artist)) info += sinfo info.sort(reverse=True) #TODO: merge artists that are the same return info def _load_saved_info(self, track): artist = track.get_tag_raw('artist') if not artist: return [] filename = os.path.join(self.cachedir, ','.join(artist)) if not os.path.exists(filename): return [] f = open(filename) line = f.readline() if line == '': return [] last_update = float(line) if 604800 < time.time() - last_update: # one week info = self._query_sources(track) if info != []: self._save_info(track, info) return info info = [] for line in f: try: rel, artist = line.strip().split(" ",1) info.append((rel, artist)) except: pass f.close() return info def _save_info(self, track, info): if info == []: return filename = os.path.join(self.cachedir, track.get_tag_raw('artist', join=True)) f = open(filename, 'w') f.write("%s\n"%time.time()) for item in info: f.write("%.2f %s\n"%item) f.close() def populate_playlist(self, playlist): """ adds tracks to playlists as needed. called when the position of a playlist changes. """ if not playlist: return current_pos = playlist.current_position if current_pos < 0 or current_pos >= len(playlist): return needed = self.buffersize - (len(playlist) - current_pos) if needed < 1: needed = 1 curr = playlist.current starttime = time.time() tracks = self.find_similar_tracks(curr, needed, playlist) remainingtime = 5 - (time.time()-starttime) if remainingtime > 0: time.sleep(remainingtime) if playlist.current_position != current_pos: return # we skipped in that 5 seconds, so ignore it playlist.extend(tracks) logger.debug("Added %s tracks." % len(tracks)) MANAGER = DynamicManager() class DynamicSource(object): def __init__(self): pass def get_results(self, artist): raise NotImplementedError def _set_manager(self, manager): self.manager = manager # vim: et sts=4 sw=4 dist/copy/xl/PaxHeaders.26361/covers.py0000644000175000017500000000012412233027260016317 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.517046945 exaile-3.3.2/xl/covers.py0000644000000000000000000004451212233027260015265 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. """ Provides the base for obtaining and storing covers, also known as album art. """ import glib import gio import logging import hashlib import os try: import cPickle as pickle except ImportError: import pickle from xl.nls import gettext as _ from xl import ( common, event, providers, settings, trax, xdg ) logger = logging.getLogger(__name__) # TODO: maybe this could go into common.py instead? could be # useful in other areas. class Cacher(object): """ Simple on-disk cache. Note that as entries are stored as individual files, the data being stored should be of significant size (several KB) or a lot of disk space will likely be wasted. """ def __init__(self, cache_dir): """ :param cache_dir: directory to use for the cache. will be created if it does not exist. """ try: os.makedirs(cache_dir) except OSError: pass self.cache_dir = cache_dir def add(self, data): """ Adds an entry to the cache. Returns a key that can be used to retrieve the data from the cache. :param data: The data to store, as a bytestring. """ # FIXME: this doesnt handle hash collisions at all. with # 2^256 possible keys its unlikely that we'll have a collision, # but we should handle it anyway. h = hashlib.sha256() h.update(data) key = h.hexdigest() path = os.path.join(self.cache_dir, key) open(path, "wb").write(data) return key def remove(self, key): """ Remove an entry from the cache. :param key: The key to remove data for. """ path = os.path.join(self.cache_dir, key) try: os.remove(path) except OSError: pass def get(self, key): """ Retrieve an entry from the cache. Returns None if the given key does not exist. :param key: The key to retrieve data for. """ path = os.path.join(self.cache_dir, key) if os.path.exists(path): return open(path, "rb").read() return None class CoverManager(providers.ProviderHandler): """ Handles finding covers from various sources. """ def __init__(self, location): """ :param location: The directory to load and store data in. """ providers.ProviderHandler.__init__(self, "covers") self.__cache = Cacher(os.path.join(location, 'cache')) self.location = location self.methods = {} self.order = settings.get_option( 'covers/preferred_order', []) self.db = {} self.load() for method in self.get_providers(): self.on_provider_added(method) default_cover_file = open(xdg.get_data_path('images', 'nocover.png'), 'rb') self.default_cover_data = default_cover_file.read() default_cover_file.close() self.tag_fetcher = TagCoverFetcher() self.localfile_fetcher = LocalFileCoverFetcher() if settings.get_option('covers/use_tags', True): providers.register('covers', self.tag_fetcher) if settings.get_option('covers/use_localfile', True): providers.register('covers', self.localfile_fetcher) event.add_callback(self._on_option_set, 'covers_option_set') def _on_option_set(self, name, obj, data): if data == "covers/use_tags": if settings.get_option("covers/use_tags"): providers.register('covers', self.tag_fetcher) else: providers.unregister('covers', self.tag_fetcher) elif data == "covers/use_localfile": if settings.get_option("covers/use_localfile"): providers.register('covers', self.localfile_fetcher) else: providers.unregister('covers', self.localfile_fetcher) def _get_methods(self, fixed=False): """ Returns a list of Methods, sorted by preference :param fixed: If true, include fixed-position backends in the returned list. """ methods = [] for name in self.order: if name in self.methods: methods.append(self.methods[name]) for k, method in self.methods.iteritems(): if method not in methods: methods.append(method) nonfixed = [m for m in methods if not m.fixed] if fixed: fixed = [m for m in methods if m.fixed] fixed.sort(key=lambda x: x.fixed_priority) for i, v in enumerate(fixed): if v.fixed_priority > 50: methods = fixed[:i] + nonfixed + fixed[i:] break else: methods = fixed + nonfixed else: methods = nonfixed return methods def _get_track_key(self, track): """ Get the db mapping key for a track """ album = track.get_tag_raw("album", join=True) compilation = track.get_tag_raw("__compilation") if compilation: value = track.get_tag_raw('albumartist') if value: tag = 'albumartist' else: tag = 'compilation' value = compilation elif album: tag = 'album' value = album else: # no album info, cant store it return None return (tag, tuple(value)) def get_db_string(self, track): """ Returns the internal string used to map the cover to a track :param track: the track to retrieve the string for :type track: :class:`xl.trax.Track` :returns: the internal identifier string """ key = self._get_track_key(track) return self.db.get(key) @common.synchronized @common.cached(5) def find_covers(self, track, limit=-1, local_only=False): """ Find all covers for a track :param track: The track to find covers for :param limit: maximum number of covers to return. -1=unlimited. :param local_only: If True, will only return results from local sources. """ if track is None: return covers = [] for method in self._get_methods(fixed=True): if local_only and method.use_cache: continue new = method.find_covers(track, limit=limit) new = ["%s:%s"%(method.name, x) for x in new] covers.extend(new) if limit != -1 and len(covers) >= limit: break return covers def set_cover(self, track, db_string, data=None): """ Sets the cover for a track. This will overwrite any existing entry. :param track: The track to set the cover for :param db_string: the string identifying the source of the cover, in "method:key" format. :param data: The raw cover data to store for the track. Will only be stored if the method has use_cache=True """ name = db_string.split(":", 1)[0] method = self.methods.get(name) if method and method.use_cache and data: db_string = "cache:%s"%self.__cache.add(data) key = self._get_track_key(track) if key: self.db[key] = db_string self.timeout_save() event.log_event('cover_set', self, track) def remove_cover(self, track): """ Remove the saved cover entry for a track, if it exists. """ if track is None: return key = self._get_track_key(track) db_string = self.db.get(key) if db_string: del self.db[key] self.__cache.remove(db_string) self.timeout_save() event.log_event('cover_removed', self, track) def get_cover(self, track, save_cover=True, set_only=False, use_default=False): """ get the cover for a given track. if the track has no set cover, backends are searched until a cover is found or we run out of backends. :param track: the Track to get the cover for. :param save_cover: if True, a set_cover call will be made to store the cover for later use. :param set_only: Only retrieve covers that have been set in the db. :param use_default: If True, returns the default cover instead of None when no covers are found. """ if track is None: return self.get_default_cover() if use_default else None db_string = self.get_db_string(track) if db_string: return self.get_cover_data(db_string, use_default=use_default) if set_only: return self.get_default_cover() if use_default else None covers = self.find_covers(track, limit=1) if covers: cover = covers[0] data = self.get_cover_data(cover, use_default=use_default) if save_cover and data != self.get_default_cover(): self.set_cover(track, cover, data) return data return self.get_default_cover() if use_default else None def get_cover_data(self, db_string, use_default=False): """ Get the raw image data for a cover. :param db_string: The db_string identifying the cover to get. :param use_default: If True, returns the default cover instead of None when no covers are found. """ source, data = db_string.split(":", 1) ret = None if source == "cache": ret = self.__cache.get(data) else: method = self.methods.get(source) if method: ret = method.get_cover_data(data) if ret == None and use_default == True: ret = self.get_default_cover() return ret def get_default_cover(self): """ Get the raw image data for the cover to show if there is no cover to display. """ # TODO: wrap this into get_cover_data and get_cover somehow? return self.default_cover_data def load(self): """ Load the saved db """ path = os.path.join(self.location, 'covers.db') data = None for loc in [path, path+".old", path+".new"]: try: f = open(loc, 'rb') data = pickle.load(f) f.close() except IOError: pass except EOFError: try: os.remove(loc) except: pass if data: break if data: self.db = data @common.glib_wait_seconds(60) def timeout_save(self): self.save() def save(self): """ Save the db """ path = os.path.join(self.location, 'covers.db') try: f = open(path + ".new", 'wb') pickle.dump(self.db, f, common.PICKLE_PROTOCOL) f.close() except IOError: return try: os.rename(path, path + ".old") except OSError: pass # if it doesn'texist we don't care os.rename(path + ".new", path) try: os.remove(path + ".old") except OSError: pass def on_provider_added(self, provider): self.methods[provider.name] = provider if provider.name not in self.order: self.order.append(provider.name) def on_provider_removed(self, provider): try: del self.methods[provider.name] except KeyError: pass if provider.name in self.order: self.order.remove(provider.name) def set_preferred_order(self, order): """ Sets the preferred search order :param order: a list containing the order you'd like to search first """ if not type(order) in (list, tuple): raise TypeError("order must be a list or tuple") self.order = order settings.set_option('covers/preferred_order', list(order)) class CoverSearchMethod(object): """ Base class for creating cover search methods. Search methods do not have to inherit from this class, it's intended more as a template to demonstrate the needed interface. """ #: If true, cover results will be cached for faster lookup use_cache = True #: A name uniquely identifing the search method. name = "base" #: Whether the backend should have a fixed priority instead of being # configurable. fixed = False #: Priority for fixed-position backends. Lower is earlier, non-fixed # backends will always be 50. fixed_priority = 50 def find_covers(self, track, limit=-1): """ Find the covers for a given track. :param track: The track to find covers for. :param limit: Maximal number of covers to return. :returns: A list of strings that can be passed to get_cover_data. """ raise NotImplementedError def get_cover_data(self, db_string): """ Get the image data for a cover :param db_string: A method-dependent string that identifies the cover to get. """ raise NotImplementedError class TagCoverFetcher(CoverSearchMethod): """ Cover source that looks for images embedded in tags. """ use_cache = False name = "tags" title = _('Tags') cover_tags = ["cover", "coverart"] fixed = True fixed_priority = 30 def find_covers(self, track, limit=-1): covers = [] tagname = None uri = track.get_loc_for_io() for tag in self.cover_tags: try: # Force type conversion to list, fails for None covers = list(track.get_tag_disk(tag)) tagname = tag break except (TypeError, KeyError): pass return ['{tagname}:{index}:{uri}'.format(tagname=tagname, index=index, uri=uri) \ for index in range(0, len(covers))] def get_cover_data(self, db_string): tag, index, uri = db_string.split(':', 2) track = trax.Track(uri, scan=False) covers = track.get_tag_disk(tag) if not covers: return None return covers[int(index)].data class LocalFileCoverFetcher(CoverSearchMethod): """ Cover source that looks for images in the same directory as the Track. """ use_cache = False name = "localfile" title = _('Local file') uri_types = ['file', 'smb', 'sftp', 'nfs'] extensions = ['.png', '.jpg', '.jpeg', '.gif'] preferred_names = [] fixed = True fixed_priority = 31 def __init__(self): CoverSearchMethod.__init__(self) event.add_callback(self.on_option_set, 'covers_localfile_option_set') self.on_option_set('covers_localfile_option_set', settings, 'covers/localfile/preferred_names') def find_covers(self, track, limit=-1): # TODO: perhaps should instead check to see if its mounted in # gio, rather than basing this on uri type. file:// should # always be checked, obviously. if track.get_type() not in self.uri_types: return [] basedir = gio.File(track.get_loc_for_io()).get_parent() try: if not basedir.query_info("standard::type").get_file_type() == \ gio.FILE_TYPE_DIRECTORY: return [] except gio.Error: return [] covers = [] for fileinfo in basedir.enumerate_children("standard::type" ",standard::name"): gloc = basedir.get_child(fileinfo.get_name()) if not fileinfo.get_file_type() == gio.FILE_TYPE_REGULAR: continue filename = gloc.get_basename() base, ext = os.path.splitext(filename) if ext.lower() not in self.extensions: continue if base in self.preferred_names: covers.insert(0, gloc.get_uri()) else: covers.append(gloc.get_uri()) if limit == -1: return covers else: return covers[:limit] def get_cover_data(self, db_string): try: handle = gio.File(db_string).read() data = handle.read() return data except glib.GError: return None def on_option_set(self, e, settings, option): """ Updates the internal settings upon option change """ if option == 'covers/localfile/preferred_names': self.preferred_names = settings.get_option(option, ['album', 'cover']) #: The singleton :class:`CoverManager` instance MANAGER = CoverManager(location=xdg.get_data_home_path("covers", check_exists=False)) dist/copy/xl/PaxHeaders.26361/transcoder.py0000644000175000017500000000012412233027260017162 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.605046948 exaile-3.3.2/xl/transcoder.py0000644000000000000000000001775412233027260016140 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import pygst pygst.require("0.10") import gst from xl.nls import gettext as _ """ explanation of format dicts: default: the default quality to use, must be a member of raw_steps. raw_steps: a value defining the quality of encoding that will be passed to the encoder. kbs_steps: a value defining the quality of encoding that will be displayed to the user. must be a one-to-one mapping with raw_steps. command: the gstreamer pipeline to execute. should contain exactly one python string format operator, like %s or %f, which will be replaced with the value from raw_steps. plugins: the gstreamer plugins needed for this transcode pipeline desc: a description of the encoder to display to the user """ FORMATS = { "Ogg Vorbis" : { "default" : 0.5, "raw_steps" : [0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9], "kbs_steps" : [64, 80, 96, 112, 128, 160, 192, 224, 256, 320], "command" : "vorbisenc quality=%1.1f ! oggmux", "extension" : "ogg", "plugins" : ["vorbisenc", "oggmux"], "desc" : _("Vorbis is an open source, lossy audio codec with " "high quality output at a lower file size than MP3.") }, "FLAC" : { "default" : 5, "raw_steps" : [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "kbs_steps" : [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "command" : "flacenc quality=%i", "extension" : "flac", "plugins" : ["flacenc"], "desc" : _("Free Lossless Audio Codec (FLAC) is an open " "source codec that compresses but does not degrade audio " "quality.") }, "AAC" : { "default" : 160000, "raw_steps" : [32000, 48000, 64000, 96000, 128000, 160000, 192000, 224000, 256000, 320000], "kbs_steps" : [32, 48, 64, 96, 128, 160, 192, 224, 256, 320], "command" : "faac bitrate=%i ! ffmux_mp4", "extension" : "m4a", "plugins" : ["faac", "ffmux_mp4"], "desc" : _("Apple's proprietary lossy audio format that " "achieves better sound quality than MP3 at " "lower bitrates.") }, "MP3 (VBR)" : { "default" : 160, "raw_steps" : [32, 48, 64, 96, 128, 160, 192, 224, 256, 320], "kbs_steps" : [32, 48, 64, 96, 128, 160, 192, 224, 256, 320], "command" : "lame vbr=4 vbr-mean-bitrate=%i", "extension" : "mp3", "plugins" : ["lame"], "desc" : _("A proprietary and older, but also popular, lossy " "audio format. VBR gives higher quality than CBR, but may " "be incompatible with some players.") }, "MP3 (CBR)" : { "default" : 160, "raw_steps" : [32, 48, 64, 96, 128, 160, 192, 224, 256, 320], "kbs_steps" : [32, 48, 64, 96, 128, 160, 192, 224, 256, 320], "command" : "lame bitrate=%i", "extension" : "mp3", "plugins" : ["lame"], "desc" : _("A proprietary and older, but also popular, " "lossy audio format. CBR gives less quality than VBR, " "but is compatible with any player.") }, "WavPack" : { "default" : 2, "raw_steps" : [1,2,3,4], "kbs_steps" : [1,2,3,4], "command" : "wavpackenc mode=%i", "extension" : "wv", "plugins" : ["wavpackenc"], "desc" : _("A very fast Free lossless audio format with " "good compression."), }, } # NOTE: the transcoder is NOT designed to transfer tags. You will need to # manually write the tags after transcoding has completed. def get_formats(): ret = {} for name, val in FORMATS.iteritems(): try: for plug in val['plugins']: x = gst.element_factory_find(plug) if not x: raise ret[name] = val except: pass return ret def add_format(name, fmt): global FORMATS FORMATS[name] = fmt class TranscodeError(Exception): pass class Transcoder(object): def __init__(self): self.src = None self.sink = None self.dest_format = "Ogg Vorbis" self.quality = 5 self.input = None self.output = None self.encoder = None self.pipe = None self.bus = None self.running = False self.__last_time = 0.0 self.error_cb = None self.end_cb = None def set_format(self, name): if name in FORMATS: self.dest_format = name def set_quality(self, value): if value in FORMATS[self.dest_format]['raw_steps']: self.quality = value def _construct_encoder(self): fmt = FORMATS[self.dest_format] quality = self.quality self.encoder = fmt["command"]%quality def set_input(self, uri): self.input = """filesrc location="%s" """%uri def set_raw_input(self, raw): self.input = raw def set_output(self, uri): self.output = """filesink location="%s" """%uri def set_output_raw(self, raw): self.output = raw def start_transcode(self): self._construct_encoder() elements = [ self.input, "decodebin name=\"decoder\"", "audioconvert", self.encoder, self.output ] pipestr = " ! ".join( elements ) pipe = gst.parse_launch(pipestr) self.pipe = pipe self.bus = pipe.get_bus() self.bus.add_signal_watch() self.bus.connect('message::error', self.on_error) self.bus.connect('message::eos', self.on_eof) pipe.set_state(gst.STATE_PLAYING) self.running = True return pipe def stop(self): self.pipe.set_state(gst.STATE_NULL) self.running = False self.__last_time = 0.0 try: self.end_cb() except: pass #FIXME def on_error(self, *args): self.pipe.set_state(gst.STATE_NULL) self.running = False try: self.error_cb() except: raise TranscodeError(args) def on_eof(self, *args): self.stop() def get_time(self): if not self.running: return 0.0 try: tim = self.pipe.query_position(gst.FORMAT_TIME)[0] tim = tim/gst.SECOND self.__last_time = tim return tim except: return self.__last_time def is_running(self): return self.running dist/copy/xl/PaxHeaders.26361/nls.py0000644000175000017500000000012412233027260015612 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.113046932 exaile-3.3.2/xl/nls.py0000644000000000000000000000573612233027260014565 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. """ This is the Native Language Support module. It basically allows us to code in a gettext fashion without a hard depend on gettext itself. """ import sys import locale from xl import xdg try: # Set to user default, gracefully fallback on C otherwise locale.setlocale(locale.LC_ALL, '') except locale.Error, e: # Error message copied from bzr sys.stderr.write('exaile: Warning: %s\n' ' Exaile could not set the application locale, this\n' ' may cause language-specific problems. To investigate this\n' ' issue, look at the output of the locale tool.\n' % e) try: import gettext as gettextmod # Required for gtk.Builder messages try: locale.textdomain('exaile') except AttributeError: # E.g. Windows pass # Required for dynamically added messages gettextmod.textdomain('exaile') if xdg.local_hack: # running from source dir, so we have to set the paths import os.path locale_path = os.path.join(xdg.exaile_dir, 'po') try: locale.bindtextdomain('exaile', locale_path) except AttributeError: # E.g. Windows pass gettextmod.bindtextdomain('exaile', locale_path) gettextfunc = gettextmod.gettext def gettext(text): return gettextfunc(text).decode("utf-8") ngettextfunc = gettextmod.ngettext def ngettext(singular, plural, n): return ngettextfunc(singular, plural, n).decode('utf-8') except ImportError: # gettext is not available. Provide a dummy function instead def gettext(text): return text def ngettext(singular, plural, n): if n == 1: return singular else: return plural # vim: et sts=4 sw=4 dist/copy/xl/PaxHeaders.26361/plugins.py0000644000175000017500000000012412233027260016477 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.569046947 exaile-3.3.2/xl/plugins.py0000644000000000000000000001575012233027260015447 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import imp import inspect import logging import os import shutil import sys import tarfile import traceback from xl.nls import gettext as _ from xl import xdg, common, settings logger = logging.getLogger(__name__) class InvalidPluginError(Exception): def __str__(self): return str(self.args[0]) class PluginsManager(object): def __init__(self, exaile, load=True): self.plugindirs = [ os.path.join(p, 'plugins') \ for p in xdg.get_data_dirs() ] if xdg.local_hack: self.plugindirs.insert(1, os.path.join(xdg.exaile_dir, 'plugins')) for dir in self.plugindirs: try: os.makedirs(dir) except: pass self.plugindirs = [ x for x in self.plugindirs if os.path.exists(x) ] self.loaded_plugins = {} self.exaile = exaile self.enabled_plugins = {} self.load = load if self.load: self.load_enabled() def __findplugin(self, pluginname): for dir in self.plugindirs: path = os.path.join(dir, pluginname) if os.path.exists(path): return path return None def load_plugin(self, pluginname, reload=False): if not reload and pluginname in self.loaded_plugins: return self.loaded_plugins[pluginname] path = self.__findplugin(pluginname) if path is None: return False sys.path.insert(0, path) plugin = imp.load_source(pluginname, os.path.join(path,'__init__.py')) sys.path = sys.path[1:] self.loaded_plugins[pluginname] = plugin return plugin def install_plugin(self, path): try: tar = tarfile.open(path, "r:*") #transparently supports gz, bz2 except (tarfile.ReadError, OSError): raise InvalidPluginError( _('Plugin archive is not in the correct format.')) #ensure the paths in the archive are sane mems = tar.getmembers() base = os.path.basename(path).split('.')[0] if os.path.isdir(os.path.join(self.plugindirs[0], base)): raise InvalidPluginError( _('A plugin with the name "%s" is already installed.') % base) for m in mems: if not m.name.startswith(base): raise InvalidPluginError( _('Plugin archive contains an unsafe path.')) tar.extractall(self.plugindirs[0]) def uninstall_plugin(self, pluginname): self.disable_plugin(pluginname) for dir in self.plugindirs: try: shutil.rmtree(self.__findplugin(pluginname)) return True except: pass return False def enable_plugin(self, pluginname): try: plugin = self.load_plugin(pluginname) if not plugin: raise Exception("Error loading plugin") plugin.enable(self.exaile) self.enabled_plugins[pluginname] = plugin logger.debug("Loaded plugin %s" % pluginname) self.save_enabled() except Exception, e: traceback.print_exc() logger.warning("Unable to enable plugin %s" % pluginname) common.log_exception(logger) raise e def disable_plugin(self, pluginname): try: plugin = self.enabled_plugins[pluginname] del self.enabled_plugins[pluginname] plugin.disable(self.exaile) logger.debug("Unloaded plugin %s" % pluginname) self.save_enabled() except Exception, e: traceback.print_exc() logger.warning("Unable to fully disable plugin %s" % pluginname) common.log_exception(logger) raise e def list_installed_plugins(self): pluginlist = [] for dir in self.plugindirs: if os.path.exists(dir): for file in os.listdir(dir): if file not in pluginlist and \ os.path.isdir(os.path.join(dir, file)): pluginlist.append(file) return pluginlist def list_available_plugins(self): pass def list_updateable_plugins(self): pass def get_plugin_info(self, pluginname): path = os.path.join(self.__findplugin(pluginname), 'PLUGININFO') f = open(path) infodict = {} for line in f: try: key, val = line.split("=",1) # restricted eval - no bult-in funcs. marginally more secure. infodict[key] = eval(val, {'__builtins__': None, '_': _}, {}) except ValueError: pass # this happens on blank lines return infodict def get_plugin_default_preferences(self, pluginname): """ Returns the default preferences for a plugin """ preflist = {} path = self.__findplugin(pluginname) plugin = imp.load_source(pluginname, os.path.join(path,'__init__.py')) try: preferences_pane = plugin.get_preferences_pane() for c in dir(preferences_pane): attr = getattr(preferences_pane, c) if inspect.isclass(attr): try: preflist[attr.name] = attr.default except AttributeError: pass except AttributeError: pass return preflist def save_enabled(self): if self.load: settings.set_option("plugins/enabled", self.enabled_plugins.keys()) def load_enabled(self): to_enable = settings.get_option("plugins/enabled", []) for plugin in to_enable: try: self.enable_plugin(plugin) except: pass # vim: et sts=4 sw=4 dist/copy/xl/PaxHeaders.26361/xldbus.py0000644000175000017500000000012412233027260016317 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.609046948 exaile-3.3.2/xl/xldbus.py0000644000000000000000000005015512233027260015265 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. """ D-Bus interface for playback control, data query and others Access through the ``/org/exaile/Exaile`` object which implements the ``org.exaile.Exaile`` interface """ from collections import namedtuple import logging from optparse import OptionParser import os import sys import traceback import dbus import dbus.service import gio import gobject # Be VERY careful what you import here! This module gets loaded even if # we are just issuing a dbus command to a running instance, so we need # to keep imports as light as possible. from xl import event from xl.nls import gettext as _ logger = logging.getLogger(__name__) def check_dbus(bus, interface): obj = bus.get_object('org.freedesktop.DBus', '/org/freedesktop/DBus') dbus_iface = dbus.Interface(obj, 'org.freedesktop.DBus') avail = dbus_iface.ListNames() return interface in avail def check_exit(options, args): """ Check to see if dbus is running, and if it is, call the appropriate methods """ iface = None exaile = None if not options.NewInstance: # TODO: handle dbus stuff bus = dbus.SessionBus() if check_dbus(bus, 'org.exaile.Exaile'): remote_object = bus.get_object('org.exaile.Exaile', '/org/exaile/Exaile') iface = dbus.Interface(remote_object, 'org.exaile.Exaile') iface.TestService('testing dbus service') exaile = remote_object.exaile # Assume that args are files to be added to the current playlist. # This enables: exaile PATH/*.mp3 if args: # if '-' is the first argument then we look for a newline # separated list of filenames from stdin. # This enables: find PATH -name *.mp3 | exaile - if args[0] == '-': args = sys.stdin.read().split('\n') args = [ gio.File(arg).get_uri() for arg in args ] iface.Enqueue(args) if not iface: for command in ['GetArtist', 'GetTitle', 'GetAlbum', 'GetLength', 'GetRating', 'SetRating', 'IncreaseVolume', 'DecreaseVolume', 'Play', 'Pause', 'Stop', 'Next', 'Prev', 'PlayPause', 'StopAfterCurrent', 'GuiToggleVisible', 'CurrentPosition', 'CurrentProgress', 'GetVolume', 'Query', 'FormatQuery']: if getattr(options, command): return "command" return "continue" run_commands(options, iface) return "exit" def run_commands(options, iface): """ Actually invoke any commands passed in. """ comm = False info_commands = { 'GetArtist': 'artist', 'GetTitle': 'title', 'GetAlbum': 'album', 'GetLength': '__length', } for command, attr in info_commands.iteritems(): if getattr(options, command): value = iface.GetTrackAttr(attr) if value is None: print _('Not playing.') else: print value comm = True argument_commands = ( 'IncreaseVolume', 'DecreaseVolume', 'SetRating', 'Add', 'ExportPlaylist' ) for command in argument_commands: argument = getattr(options, command) if argument is not None: if command in ('IncreaseVolume', 'DecreaseVolume'): iface.ChangeVolume(argument if command == 'IncreaseVolume' else -argument) else: print getattr(iface, command)(argument) comm = True # Special handling for FormatQuery & FormatQueryTags format = options.FormatQuery if format is not None: print iface.FormatQuery(format, options.FormatQueryTags or 'title,artist,album,__length') comm = True run_commands = ( 'Play', 'Pause', 'Stop', 'Next', 'Prev', 'PlayPause', 'StopAfterCurrent', 'GuiToggleVisible', 'ToggleMute' ) for command in run_commands: if getattr(options, command): getattr(iface, command)() comm = True query_commands = ( 'CurrentPosition', 'CurrentProgress', 'GetRating', 'GetVolume', 'Query' ) for command in query_commands: if getattr(options, command): print getattr(iface, command)(argument) comm = True to_implement = ( 'GuiQuery', ) for command in to_implement: if getattr(options, command): logger.warning("FIXME: command not implemented") comm = True if not comm: iface.GuiToggleVisible() PlaybackStatus = namedtuple( 'PlaybackStatus', 'state progress position current' ) class DbusManager(dbus.service.Object): """ The dbus interface object for Exaile """ def __init__(self, exaile): """ Initilializes the interface """ self.exaile = exaile self.bus = dbus.SessionBus() self.bus_name = dbus.service.BusName('org.exaile.Exaile', bus=self.bus) dbus.service.Object.__init__(self, self.bus_name, '/org/exaile/Exaile') self.cached_track = "" self.cached_state = "" self.cached_volume = -1 def _connect_signals(self): # connect events from xl import player event.add_callback(self.emit_state_changed, 'playback_player_end', player.PLAYER) event.add_callback(self.emit_state_changed, 'playback_track_start', player.PLAYER) event.add_callback(self.emit_state_changed, 'playback_toggle_pause', player.PLAYER) event.add_callback(self.emit_track_changed, 'tags_parsed', player.PLAYER) event.add_callback(self.emit_state_changed, 'playback_buffering', player.PLAYER) event.add_callback(self.emit_state_changed, 'playback_error', player.PLAYER) @dbus.service.method('org.exaile.Exaile', 's') def TestService(self, arg): """ Just test the dbus object :param arg: anything """ logger.debug(arg) @dbus.service.method('org.exaile.Exaile', None, 'b') def IsPlaying(self): """ Determines if Exaile is playing / paused or not :returns: whether Exaile is playing / paused :rtype: boolean """ from xl import player return bool(not player.PLAYER.is_stopped()) @dbus.service.method('org.exaile.Exaile', 's', 's') def GetTrackAttr(self, attr): """ Returns the value of a track tag :param attr: a track tag :type attr: string :returns: the tag value :rtype: string """ from xl import player try: value = player.PLAYER.current.get_tag_raw(attr) or '' except (ValueError, TypeError, AttributeError): value = '' if type(value) == list: return u"\n".join(value) return unicode(value) @dbus.service.method('org.exaile.Exaile', 'sv') def SetTrackAttr(self, attr, value): """ Sets the value of a track tag :param attr: a track tag :type attr: string :param value: the tag value :type value: any """ from xl import player try: player.PLAYER.current.set_tag_raw(attr, value) except (AttributeError, TypeError): pass @dbus.service.method('org.exaile.Exaile', None, 'i') def GetRating(self): """ Returns the current track's rating :returns: the rating :rtype: int """ try: rating = int(float(self.GetTrackAttr('__rating'))) except ValueError: rating = 0 return rating @dbus.service.method('org.exaile.Exaile', 'i') def SetRating(self, value): """ Sets the current track's rating :param value: the new rating :type value: int """ self.SetTrackAttr('__rating', value) event.log_event('rating_changed', self, value) @dbus.service.method('org.exaile.Exaile', 'i') def ChangeVolume(self, value): """ Changes volume by the specified amount (in percent, can be negative) :param value: the new volume :type value: int """ from xl import player player.PLAYER.set_volume(player.PLAYER.get_volume() + value) self.cached_volume = -1 @dbus.service.method('org.exaile.Exaile') def ToggleMute(self): """ Mutes or unmutes the volume """ from xl import player if self.cached_volume == -1: self.cached_volume = player.PLAYER.get_volume() player.PLAYER.set_volume(0) else: player.PLAYER.set_volume(self.cached_volume) self.cached_volume = -1 @dbus.service.method('org.exaile.Exaile', 'd') def Seek(self, value): """ Seeks to the given position in seconds :param value: the position in seconds :type value: int """ from xl import player player.PLAYER.seek(value) @dbus.service.method('org.exaile.Exaile') def Prev(self): """ Jumps to the previous track """ from xl import player player.QUEUE.prev() @dbus.service.method('org.exaile.Exaile') def Stop(self): """ Stops playback """ from xl import player player.PLAYER.stop() @dbus.service.method('org.exaile.Exaile') def Next(self): """ Jumps to the next track """ from xl import player player.QUEUE.next() @dbus.service.method('org.exaile.Exaile') def Play(self): """ Starts playback """ from xl import player player.QUEUE.play() @dbus.service.method('org.exaile.Exaile') def Pause(self): """ Starts playback """ from xl import player player.PLAYER.pause() @dbus.service.method('org.exaile.Exaile') def PlayPause(self): """ Toggle Play or Pause """ from xl import player if player.PLAYER.is_stopped(): player.PLAYER.play(player.QUEUE.get_current()) else: player.PLAYER.toggle_pause() @dbus.service.method('org.exaile.Exaile') def StopAfterCurrent(self): """ Toggle stopping after current track """ from xl import player player.QUEUE.stop_track = player.QUEUE.get_current() @dbus.service.method('org.exaile.Exaile', None, 's') def CurrentProgress(self): """ Returns the progress into the current track (in percent) :returns: the current progress :rtype: string """ from xl import player progress = player.PLAYER.get_progress() if progress == -1: return "" return str(int(progress * 100)) @dbus.service.method('org.exaile.Exaile', None, 's') def CurrentPosition(self): """ Returns the position inside the current track (as time) :returns: the current position :rtype: string """ from xl import player progress = player.PLAYER.get_time() return '%d:%02d' % (progress // 60, progress % 60) @dbus.service.method('org.exaile.Exaile', None, 's') def GetVolume(self): """ Returns the current volume level (in percent) :returns: the current volume :rtype: string """ from xl import player return str(player.PLAYER.get_volume()) def __get_playback_status(self, tags=["title", "artist", "album", "__length"]): """ Retrieves the playback status :param tags: tags to retrieve from the current track :type tags: list :returns: the playback status :rtype: :class:`xl.xldbus.PlaybackStatus` """ status = PlaybackStatus( state='stopped', current=None, progress=0, position=0 ) from xl import player current_track = player.QUEUE.get_current() progress = player.PLAYER.get_progress() if current_track is not None and \ not player.PLAYER.is_stopped(): current = {} # Make tags unique tags = list(set(tags)) for tag in tags: current[tag] = self.GetTrackAttr(tag) # Special handling for internal tags if "__length" in tags: from xl.formatter import LengthTagFormatter current["__length"] = LengthTagFormatter.format_value(self.GetTrackAttr('__length')) status = PlaybackStatus( state=player.PLAYER.get_state(), progress=self.CurrentProgress(), position=self.CurrentPosition(), current=current ) return status @dbus.service.method('org.exaile.Exaile', None, 's') def Query(self): """ Returns information about the currently playing track :returns: information about the current track :rtype: string """ status = self.__get_playback_status() if status.current is None or status.state == "stopped": return _('Not playing.') result = _('status: %(status)s, title: %(title)s, artist: %(artist)s,' ' album: %(album)s, length: %(length)s,' ' position: %(progress)s%% [%(position)s]') % { 'status': status.state, 'title': status.current["title"], 'artist': status.current["artist"], 'album': status.current["album"], 'length': status.current["__length"], 'progress': status.progress, 'position': status.position, } return result @dbus.service.method('org.exaile.Exaile', 'ss', 's') def FormatQuery(self, format, tags): """ Returns the current playback state including information about the currently playing track :param format: the desired output format (currently only "json") :type format: string :param tags: tags to retrieve from the current track :type tags: string :returns: the formatted information or an empty string if requesting an unknown format :rtype: string """ # TODO: Elaborate the use of providers here if format == 'json': import json status = self.__get_playback_status(tags.split(",")) return json.dumps(status._asdict()) return '' @dbus.service.method('org.exaile.Exaile', None, 's') def GetVersion(self): """ Returns the version of Exaile :returns: the application version :rtype: string """ return self.exaile.get_version() @dbus.service.method('org.exaile.Exaile', 's') def PlayFile(self, filename): """ Plays the specified file :param filename: the path to start playing :type filename: string """ self.exaile.gui.open_uri(filename) @dbus.service.method('org.exaile.Exaile', 'as') def Enqueue(self, locations): """ Adds the tracks at the specified locations to the current playlist :param locations: locations to enqueue :type locations: iterable """ from xl import player from xlgui import get_controller controller = get_controller() play = False # Allows for playing first item if player.PLAYER.is_stopped(): play = True for location in locations: controller.open_uri(location, play=play) play = False @dbus.service.method('org.exaile.Exaile', 's') def Add(self, location): """ Adds the tracks at the specified location to the collection :param location: where to add tracks from :type location: string """ from xl import trax tracks = trax.get_tracks_from_uri(location) self.exaile.collection.add_tracks(tracks) @dbus.service.method('org.exaile.Exaile', 's') def ExportPlaylist(self, location): """ Exports the current playlist to the specified location :param location: where to save the playlist at :type location: string """ from xl import player, playlist if player.QUEUE.current_playlist is not None: playlist.export_playlist( player.QUEUE.current_playlist, location ) @dbus.service.method('org.exaile.Exaile') def GuiToggleVisible(self): """ Toggles visibility of the GUI, if possible """ self.exaile.gui.main.toggle_visible(bringtofront=True) @dbus.service.method('org.exaile.Exaile', None, 'ay') def GetCoverData(self): """ Returns the data of the cover image of the playing track, or an empty string if there is no cover available. :returns: the cover data :rtype: binary data """ from xl import covers, player cover = covers.MANAGER.get_cover(player.PLAYER.current, set_only=True) if not cover: cover = '' return cover @dbus.service.method('org.exaile.Exaile', None, 's') def GetState(self): """ Returns the surrent verbatim state (unlocalized) :returns: the player state :rtype: string """ from xl import player return player.PLAYER.get_state() @dbus.service.signal('org.exaile.Exaile') def StateChanged(self): """ Emitted when state change occurs: 'playing' 'paused' 'stopped' """ pass @dbus.service.signal('org.exaile.Exaile') def TrackChanged(self): """ Emitted when track change occurs. """ pass def emit_state_changed(self, type, player, object): """ Called from main to emit signal """ new_state = player.get_state() if self.cached_state != new_state: self.cached_state = new_state self.StateChanged() def emit_track_changed(self, type, player, object): """ Called from main to emit signal """ new_track = self.GetTrackAttr('__loc') if self.cached_track != new_track: self.cached_track = new_track self.TrackChanged() # vim: et sts=4 sw=4 dist/copy/xl/PaxHeaders.26361/event.py0000644000175000017500000000012412233027260016137 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.517046945 exaile-3.3.2/xl/event.py0000644000000000000000000002713312233027260015105 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. """ Provides a signals-like system for sending and listening for 'events' Events are kind of like signals, except they may be listened for on a global scale, rather than connected on a per-object basis like signals are. This means that ANY object can emit ANY event, and these events may be listened for by ANY object. Events should be emitted AFTER the given event has taken place. Often the most appropriate spot is immediately before a return statement. """ from __future__ import with_statement from inspect import ismethod import logging from new import instancemethod import re import threading import time import traceback import weakref import glib from xl import common from xl.nls import gettext as _ # define this here so the interperter doesn't complain EVENT_MANAGER = None logger = logging.getLogger(__name__) class Nothing(object): pass _NONE = Nothing() # used by event for a safe None replacement def log_event(type, obj, data): """ Sends an event. :param type: the *type* or *name* of the event. :type type: string :param obj: the object sending the event. :type obj: object :param data: some data about the event, None if not required :type data: object """ global EVENT_MANAGER e = Event(type, obj, data, time.time()) EVENT_MANAGER.emit(e) def add_callback(function, type=None, obj=None, *args, **kwargs): """ Adds a callback to an event You should ALWAYS specify one of the two options on what to listen for. While not forbidden to listen to all events, doing so will cause your callback to be called very frequently, and possibly may cause slowness within the player itself. :param function: the function to call when the event happens :type function: callable :param type: the *type* or *name* of the event to listen for, eg `tracks_added`, `cover_changed`. Defaults to any event if not specified. :type type: string :param obj: the object to listen to events from, e.g. `exaile.collection` or `xl.covers.MANAGER`. Defaults to any object if not specified. :type obj: object Any additional parameters will be passed to the callback. """ global EVENT_MANAGER EVENT_MANAGER.add_callback(function, type, obj, args, kwargs) def remove_callback(function, type=None, obj=None): """ Removes a callback The parameters passed should match those that were passed when adding the callback """ global EVENT_MANAGER EVENT_MANAGER.remove_callback(function, type, obj) class Event(object): """ Represents an Event """ def __init__(self, type, obj, data, time): """ type: the 'type' or 'name' for this Event [string] obj: the object emitting the Event [object] data: some piece of data relevant to the Event [object] """ self.type = type self.object = obj self.data = data self.time = time class Callback(object): """ Represents a callback """ def __init__(self, function, time, args, kwargs): """ @param function: the function to call @param time: the time this callback was added """ self.valid = True self.wfunction = _getWeakRef(function, self.vanished) self.time = time self.args = args self.kwargs = kwargs def vanished(self, ref): self.valid = False class _WeakMethod: """Represent a weak bound method, i.e. a method doesn't keep alive the object that it is bound to. It uses WeakRef which, used on its own, produces weak methods that are dead on creation, not very useful. Typically, you will use the getRef() function instead of using this class directly. """ def __init__(self, method, notifyDead = None): """ The method must be bound. notifyDead will be called when object that method is bound to dies. """ assert ismethod(method) if method.im_self is None: raise ValueError, "We need a bound method!" if notifyDead is None: self.objRef = weakref.ref(method.im_self) else: self.objRef = weakref.ref(method.im_self, notifyDead) self.fun = method.im_func self.cls = method.im_class def __call__(self): if self.objRef() is None: return None else: return instancemethod(self.fun, self.objRef(), self.cls) def __eq__(self, method2): if not isinstance(method2, _WeakMethod): return False return self.fun is method2.fun \ and self.objRef() is method2.objRef() \ and self.objRef() is not None def __hash__(self): return hash(self.fun) def __repr__(self): dead = '' if self.objRef() is None: dead = '; DEAD' obj = '<%s at %s%s>' % (self.__class__, id(self), dead) return obj def refs(self, weakRef): """Return true if we are storing same object referred to by weakRef.""" return self.objRef == weakRef def _getWeakRef(obj, notifyDead=None): """ Get a weak reference to obj. If obj is a bound method, a _WeakMethod object, that behaves like a WeakRef, is returned, if it is anything else a WeakRef is returned. If obj is an unbound method, a ValueError will be raised. """ if ismethod(obj): createRef = _WeakMethod else: createRef = weakref.ref if notifyDead is None: return createRef(obj) else: return createRef(obj, notifyDead) class EventManager(object): """ Manages all Events """ def __init__(self, use_logger=False, logger_filter=None): self.callbacks = {} self.use_logger = use_logger self.logger_filter = logger_filter # RLock is needed so that event callbacks can themselves send # synchronous events and add or remove callbacks self.lock = threading.RLock() def emit(self, event): """ Emits an Event, calling any registered callbacks. event: the Event to emit [Event] """ with self.lock: callbacks = set() for tcall in [_NONE, event.type]: for ocall in [_NONE, event.object]: try: callbacks.update(self.callbacks[tcall][ocall]) except KeyError: pass # now call them for cb in callbacks: try: if not cb.valid: try: self.callbacks[event.type][event.object].remove(cb) except (KeyError, ValueError): pass elif event.time >= cb.time: if self.use_logger and (not self.logger_filter or \ re.search(self.logger_filter, event.type)): logger.debug("Attempting to call " "%(function)s in response " "to %(event)s." % { 'function': cb.wfunction(), 'event': event.type}) cb.wfunction().__call__(event.type, event.object, event.data, *cb.args, **cb.kwargs) except Exception: # something went wrong inside the function we're calling common.log_exception(logger, message="Event callback exception caught!") if self.use_logger: if not self.logger_filter or re.search(self.logger_filter, event.type): logger.debug("Sent '%(type)s' event from " "'%(object)s' with data '%(data)s'." % {'type' : event.type, 'object' : repr(event.object), 'data' : repr(event.data)}) def emit_async(self, event): """ Same as emit(), but does not block. """ glib.idle_add(self.emit, event) def add_callback(self, function, type, obj, args, kwargs): """ Registers a callback. You should always specify at least one of type or object. @param function: The function to call [function] @param type: The 'type' or 'name' of event to listen for. Defaults to any. [string] @param obj: The object to listen to events from. Defaults to any. [string] """ with self.lock: # add the specified categories if needed. if not self.callbacks.has_key(type): self.callbacks[type] = weakref.WeakKeyDictionary() if obj is None: obj = _NONE try: callbacks = self.callbacks[type][obj] except KeyError: callbacks = self.callbacks[type][obj] = [] # add the actual callback callbacks.append(Callback(function, time.time(), args, kwargs)) if self.use_logger: if not self.logger_filter or re.search(self.logger_filter, type): logger.debug("Added callback %s for [%s, %s]" % (function, type, obj)) def remove_callback(self, function, type=None, obj=None): """ Unsets a callback The parameters must match those given when the callback was registered. (minus any additional args) """ if obj is None: obj = _NONE remove = [] with self.lock: try: callbacks = self.callbacks[type][obj] for cb in callbacks: if cb.wfunction() == function: remove.append(cb) except KeyError: return except TypeError: return for cb in remove: callbacks.remove(cb) if self.use_logger: if not self.logger_filter or re.search(self.logger_filter, type): logger.debug("Removed callback %s for [%s, %s]" % (function, type, obj)) EVENT_MANAGER = EventManager() # vim: et sts=4 sw=4 dist/copy/xl/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260016555 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.509046945 exaile-3.3.2/xl/__init__.py0000644000000000000000000000232712233027260015521 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. dist/copy/xl/PaxHeaders.26361/providers.py0000644000175000017500000000012412233027260017033 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.569046947 exaile-3.3.2/xl/providers.py0000644000000000000000000001544612233027260016005 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. """ A generic framework for service providers, recommended to be used whenever there are multiple ways of accomplishing a task or multiple sources can offer the required data. """ from xl import event import logging logger = logging.getLogger(__name__) class ProviderManager(object): """ The overall manager for services and providers for them """ def __init__(self): self.services = {} def register_provider(self, servicename, provider): """ Registers a provider. :param servicename: the name of the service [string] :type servicename: string :param provider: the object that is the provider [object] :type provider: object """ if servicename not in self.services: self.services[servicename] = [] self.services[servicename].append(provider) logger.debug( "Provider %(provider)s registered for service %(service)s" % { 'provider' : provider.name, 'service' : servicename } ) event.log_event("%s_provider_added" % servicename, self, provider) def unregister_provider(self, servicename, provider): """ Unregisters a provider. :param servicename: the name of the service :type servicename: string :param provider: the provider to be removed :type provider: object """ if servicename not in self.services: return try: if provider in self.services[servicename]: self.services[servicename].remove(provider) logger.debug( "Provider %(provider)s unregistered from " "service %(service)s" % { 'provider' : provider.name, 'service' : servicename } ) event.log_event("%s_provider_removed" % servicename, self, provider) except KeyError: return def get_providers(self, servicename): """ Returns a list of providers for the specified servicename. :param servicename: the service name to get providers for :type servicename: string :returns: list of providers :rtype: list of objects """ try: return self.services[servicename][:] except KeyError: return [] def get_provider(self, servicename, providername): """ Returns a single identified provider :param servicename: The service name to get the provider for :type servicename: string :param providername: The provider name to identify the provider :type providername: string :returns: a provider or None :rtype: object """ try: providers = self.services[servicename] except KeyError: return None else: for provider in providers: if provider.name == providername: return provider return None MANAGER = ProviderManager() register = MANAGER.register_provider unregister = MANAGER.unregister_provider get = MANAGER.get_providers get_provider = MANAGER.get_provider class ProviderHandler(object): """ Base class to handle providers for one specific service including notification about (un)registration """ def __init__(self, servicename, simple_init=False): """ :param servicename: the name of the service to handle :type servicename: string :param simple_init: call on_provider_added for every element already registered on instantiation. """ self.servicename = servicename if simple_init: for provider in MANAGER.get_providers(servicename): self.on_provider_added(provider) event.add_callback(self._add_callback, "%s_provider_added" % servicename) event.add_callback(self._remove_callback, "%s_provider_removed" % servicename) def _add_callback(self, name, obj, provider): """ Mediator to call actual callback for added providers """ self.on_provider_added(provider) def on_provider_added(self, provider): """ Called when a new provider is added :param provider: the new provider :type provider: object """ pass # for overriding def _remove_callback(self, name, obj, provider): """ Mediator to call actual callback for removed providers """ self.on_provider_removed(provider) def on_provider_removed(self, provider): """ Called when a provider is removed :param provider: the removed provider :type provider: object """ pass # for overriding def get_providers(self): """ Returns a list of providers for this service :returns: list of providers :rtype: list of objects """ return MANAGER.get_providers(self.servicename) def get_provider(self, providername): """ Returns a provider for this service. :param providername: The provider name to identify the provider :type providername: string :returns: A provider or None :rtype: object """ return MANAGER.get_provider(self.servicename, providername) # vim: et sts=4 sw=4 dist/copy/xl/PaxHeaders.26361/collection.py0000644000175000017500000000012412233027260017151 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.513046945 exaile-3.3.2/xl/collection.py0000644000000000000000000007063612233027260016125 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. """ Classes representing collections and libraries A collection is a database of tracks. It is based on :class:`TrackDB` but has the ability to be linked with libraries. A library finds tracks in a specified directory and adds them to an associated collection. """ from __future__ import with_statement from collections import deque import glib import gobject import gio import logging import os import os.path import shutil import threading import time from xl.nls import gettext as _ from xl import ( common, event, metadata, settings, trax, xdg ) logger = logging.getLogger(__name__) COLLECTIONS = set() def get_collection_by_loc(loc): """ gets the collection by a location. :param loc: Location of the collection :return: collection at location or None :rtype: :class:`Collection` """ for c in COLLECTIONS: if c.loc_is_member(loc): return c return None class CollectionScanThread(common.ProgressThread): """ Scans the collection """ def __init__(self, collection): """ Initializes the thread :param collection: the collection to scan """ common.ProgressThread.__init__(self) self.collection = collection def stop(self): """ Stops the thread """ self.collection.stop_scan() common.ProgressThread.stop(self) def run(self): """ Runs the thread """ event.add_callback(self.on_scan_progress_update, 'scan_progress_update') self.collection.rescan_libraries() event.remove_callback(self.on_scan_progress_update, 'scan_progress_update') def on_scan_progress_update(self, type, collection, progress): """ Notifies about progress changes """ if progress < 100: self.emit('progress-update', progress) else: self.emit('done') class Collection(trax.TrackDB): """ Manages a persistent track database. :param args: see :class:`xl.trax.trackdb.TrackDB` Simple usage: >>> from xl.collection import * >>> from xl.trax import search >>> collection = Collection("Test Collection") >>> collection.add_library(Library("./tests/data")) >>> collection.rescan_libraries() >>> tracks = [i.track for i in search.search_tracks_from_string( ... collection, ('artist==TestArtist'))] >>> print len(tracks) 5 >>> """ def __init__(self, name, location=None, pickle_attrs=[]): global COLLECTIONS self.libraries = {} self._scanning = False self._scan_stopped = False self._running_count = 0 self._running_total_count = 0 self._frozen = False self._libraries_dirty = False pickle_attrs += ['_serial_libraries'] trax.TrackDB.__init__(self, name, location=location, pickle_attrs=pickle_attrs) COLLECTIONS.add(self) def freeze_libraries(self): """ Prevents "libraries_modified" events from being sent from individual add and remove library calls. Call this before making bulk changes to the libraries. Call thaw_libraries when you are done; this sends a single event if the libraries were modified. """ self._frozen = True def thaw_libraries(self): """ Re-allow "libraries_modified" events from being sent from individual add and remove library calls. Also sends a "libraries_modified" event if the libraries have ben modified since the last call to freeze_libraries. """ # TODO: This method should probably be synchronized. self._frozen = False if self._libraries_dirty: self._libraries_dirty = False event.log_event('libraries_modified', self, None) def add_library(self, library): """ Add this library to the collection :param library: the library to add :type library: :class:`Library` """ loc = library.get_location() if loc not in self.libraries: self.libraries[loc] = library library.set_collection(self) self.serialize_libraries() self._dirty = True if self._frozen: self._libraries_dirty = True else: event.log_event('libraries_modified', self, None) def remove_library(self, library): """ Remove a library from the collection :param library: the library to remove :type library: :class:`Library` """ for k, v in self.libraries.iteritems(): if v == library: del self.libraries[k] break to_rem = [] if not "://" in library.location: location = u"file://" + library.location else: location = library.location for tr in self.tracks: if tr.startswith(location): to_rem.append(self.tracks[tr]._track) self.remove_tracks(to_rem) self.serialize_libraries() self._dirty = True if self._frozen: self._libraries_dirty = True else: event.log_event('libraries_modified', self, None) def stop_scan(self): """ Stops the library scan """ self._scan_stopped = True def get_libraries(self): """ Gets a list of all the Libraries associated with this Collection :rtype: list of :class:`Library` """ return self.libraries.values() def rescan_libraries(self): """ Rescans all libraries associated with this Collection """ if self._scanning: raise Exception("Collection is already being scanned") if len(self.libraries) == 0: event.log_event('scan_progress_update', self, 100) return # no libraries, no need to scan :) self._scanning = True self._scan_stopped = False self.file_count = -1 # negative means we dont know it yet self.__count_files() scan_interval = 20 for library in self.libraries.itervalues(): event.add_callback(self._progress_update, 'tracks_scanned', library) library.rescan(notify_interval=scan_interval) event.remove_callback(self._progress_update, 'tracks_scanned', library) self._running_total_count += self._running_count if self._scan_stopped: break else: # didnt break try: self.save_to_location() except AttributeError: common.log_exception(log=logger) event.log_event('scan_progress_update', self, 100) self._running_total_count = 0 self._running_count = 0 self._scanning = False self.file_count = -1 @common.threaded def __count_files(self): file_count = 0 for library in self.libraries.values(): if self._scan_stopped: self._scanning = False return file_count += library._count_files() self.file_count = file_count logger.debug("File count: %s"%self.file_count) def _progress_update(self, type, library, count): """ Called when a progress update should be emitted while scanning tracks """ self._running_count = count count = count + self._running_total_count if self.file_count < 0: event.log_event('scan_progress_update', self, 0) return try: event.log_event('scan_progress_update', self, int((float(count) / float(self.file_count)) * 100)) except ZeroDivisionError: pass def serialize_libraries(self): """ Save information about libraries Called whenever the library's settings are changed """ _serial_libraries = [] for k, v in self.libraries.iteritems(): l = {} l['location'] = v.location l['monitored'] = v.monitored l['realtime'] = v.monitored l['scan_interval'] = v.scan_interval _serial_libraries.append(l) return _serial_libraries def unserialize_libraries(self, _serial_libraries): """ restores libraries from their serialized state. Should only be called once, from the constructor. """ for l in _serial_libraries: self.add_library( Library( l['location'], l.get('monitored', l.get('realtime')), l['scan_interval'] )) _serial_libraries = property(serialize_libraries, unserialize_libraries) def close(self): """ close the collection. does any work like saving to disk, closing network connections, etc. """ #TODO: make close() part of trackdb COLLECTIONS.remove(self) def delete_tracks(self, tracks): for tr in tracks: for prefix, lib in self.libraries.iteritems(): lib.delete(tr.get_loc_for_io()) class LibraryMonitor(gobject.GObject): """ Monitors library locations for changes """ __gproperties__ = { 'monitored': ( gobject.TYPE_BOOLEAN, 'monitoring state', 'Whether to monitor this library', False, gobject.PARAM_READWRITE ) } __gsignals__ = { 'location-added': ( gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, [gio.File] ), 'location-removed': ( gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, [gio.File] ) } def __init__(self, library): """ :param library: the library to monitor :type library: :class:`Library` """ gobject.GObject.__init__(self) self.__library = library self.__root = gio.File(library.location) self.__monitored = False self.__monitors = {} self.__queue = [] self.__lock = threading.RLock() def do_get_property(self, property): """ Gets GObject properties """ if property.name == 'monitored': return self.__monitored else: raise AttributeError('unkown property %s' % property.name) def do_set_property(self, property, value): """ Sets GObject properties """ if property.name == 'monitored': if value != self.__monitored: self.__monitored = value update_thread = threading.Thread(target=self.__update_monitors) update_thread.daemon = True glib.idle_add(update_thread.start) else: raise AttributeError('unkown property %s' % property.name) def __update_monitors(self): """ Sets up or removes library monitors """ with self.__lock: if self.props.monitored: logger.debug('Setting up library monitors') for directory in common.walk_directories(self.__root): monitor = directory.monitor_directory() monitor.connect('changed', self.on_location_changed) self.__monitors[directory] = monitor self.emit('location-added', directory) else: logger.debug('Removing library monitors') for directory, monitor in self.__monitors.iteritems(): monitor.cancel() self.emit('location-removed', directory) self.__monitors = {} def on_location_changed(self, monitor, gfile, other_gfile, event): """ Updates the library on changes of the location """ if event == gio.FILE_MONITOR_EVENT_CHANGES_DONE_HINT: if gfile in self.__queue: added_tracks = trax.util.get_tracks_from_uri(gfile.get_uri()) self.__library.collection.add_tracks(added_tracks) self.__queue.remove(gfile) elif event == gio.FILE_MONITOR_EVENT_CREATED: # Enqueue tracks retrieval if gfile not in self.__queue: self.__queue += [gfile] # Set up new monitor if directory fileinfo = gfile.query_info('standard::type') if fileinfo.get_file_type() == gio.FILE_TYPE_DIRECTORY and \ gfile not in self.__monitors: for directory in common.walk_directories(gfile): monitor = directory.monitor_directory() monitor.connect('changed', self.on_location_changed) self.__monitors[directory] = monitor self.emit('location-added', directory) elif event == gio.FILE_MONITOR_EVENT_DELETED: removed_tracks = [] track = trax.Track(gfile.get_uri()) if track in self.__library.collection: # Deleted file was a regular track removed_tracks += [track] else: # Deleted file was most likely a directory for track in self.__library.collection: track_gfile = gio.File(track.get_loc_for_io()) if track_gfile.has_prefix(gfile): removed_tracks += [track] self.__library.collection.remove_tracks(removed_tracks) # Remove obsolete monitors removed_directories = [d for d in self.__monitors \ if d == gfile or d.has_prefix(gfile)] for directory in removed_directories: self.__monitors[directory].cancel() del self.__monitors[directory] self.emit('location-removed', directory) class Library(object): """ Scans and watches a folder for tracks, and adds them to a Collection. Simple usage: >>> from xl.collection import * >>> c = Collection("TestCollection") >>> l = Library("./tests/data") >>> c.add_library(l) >>> l.rescan() True >>> print c.get_libraries()[0].location ./tests/data >>> print len(list(c.search('artist="TestArtist"'))) 5 >>> """ def __init__(self, location, monitored=False, scan_interval=0): """ Sets up the Library :param location: the directory this library will scan :type location: string :param monitored: whether the library should update its collection at changes within the library's path :type monitored: bool :param scan_interval: the interval for automatic rescanning :type scan_interval: int """ self.location = location self.scan_interval = scan_interval self.scan_id = 0 self.scanning = False self.monitor = LibraryMonitor(self) self.monitor.props.monitored = monitored self.collection = None self.set_rescan_interval(scan_interval) def set_location(self, location): """ Changes the location of this Library :param location: the new location to use :type location: string """ self.location = location def get_location(self): """ Gets the current location associated with this Library :return: the current location :rtype: string """ return self.location def set_collection(self, collection): self.collection = collection def get_monitored(self): """ Whether the library should be monitored for changes """ return self.monitor.props.monitored def set_monitored(self, monitored): """ Enables or disables monitoring of the library :param monitored: Whether to monitor the library :type monitored: bool """ self.monitor.props.monitored = monitored self.collection.serialize_libraries() self.collection._dirty = True monitored = property(get_monitored, set_monitored) def get_rescan_interval(self): """ :return: the scan interval in seconds """ return self.scan_interval def set_rescan_interval(self, interval): """ Sets the scan interval in seconds. If the interval is 0 seconds, the scan interval is stopped :param interval: scan interval in seconds :type interval: int """ if not interval: if self.scan_id: glib.source_remove(self.scan_id) self.scan_id = 0 else: if self.scan_id: glib.source_remove(self.scan_id) self.scan_id = glib.timeout_add_seconds(interval, self.rescan) self.scan_interval = interval def _count_files(self): """ Counts the number of files present in this directory """ count = 0 for file in common.walk(gio.File(self.location)): if self.collection: if self.collection._scan_stopped: break count += 1 return count def _check_compilation(self, ccheck, compilations, tr): """ This is the hacky way to test to see if a particular track is a part of a compilation. Basically, if there is more than one track in a directory that has the same album but different artist, we assume that it's part of a compilation. :param ccheck: dictionary for internal use :param compilations: if a compilation is found, it'll be appended to this list :param tr: the track to check """ # check for compilations if not settings.get_option('collection/file_based_compilations', True): return def joiner(value): if not value or isinstance(value, basestring): return value else: try: return u"\u0000".join(value) except UnicodeDecodeError: return "\0".join(value) try: basedir = joiner(tr.get_tag_raw('__basedir')) album = joiner(tr.get_tag_raw('album')) artist = joiner(tr.get_tag_raw('artist')) except Exception: logger.warning("Error while checking for compilation: " + `tr`) return if not basedir or not album or not artist: return album = album.lower() artist = artist.lower() try: if not basedir in ccheck: ccheck[basedir] = {} if not album in ccheck[basedir]: ccheck[basedir][album] = deque() except TypeError: common.log_exception(log=logger) return if ccheck[basedir][album] and \ artist not in ccheck[basedir][album]: if not (basedir, album) in compilations: compilations.append((basedir, album)) logger.info("Compilation %(album)r detected in %(dir)r" % {'album': album, 'dir': basedir}) ccheck[basedir][album].append(artist) def update_track(self, gloc): """ Rescan the track at a given location :param gloc: the location :type gloc: :class:`gio.File` returns: the Track object, None if it could not be updated """ uri = gloc.get_uri() if not uri: # we get segfaults if this check is removed return None mtime = gloc.query_info("time::modified").get_modification_time() tr = self.collection.get_track_by_loc(uri) if tr: if tr.get_tag_raw('__modified') < mtime: tr.read_tags() tr.set_tag_raw('__modified', mtime) else: tr = trax.Track(uri) if tr._scan_valid == True: tr.set_tag_raw('__date_added', time.time()) self.collection.add(tr) tr.set_tag_raw('__modified', mtime) # Track already existed. This fixes trax.get_tracks_from_uri # on windows, unknown why fix isnt needed on linux. elif not tr._init: self.collection.add(tr) return tr def rescan(self, notify_interval=None): """ Rescan the associated folder and add the contained files to the Collection """ # TODO: use gio's cancellable support if self.collection is None: return True if self.scanning: return logger.info("Scanning library: %s" % self.location) self.scanning = True db = self.collection libloc = gio.File(self.location) count = 0 dirtracks = deque() compilations = deque() ccheck = {} for fil in common.walk(libloc): count += 1 type = fil.query_info("standard::type").get_file_type() if type == gio.FILE_TYPE_DIRECTORY: if dirtracks: for tr in dirtracks: self._check_compilation(ccheck, compilations, tr) for (basedir, album) in compilations: base = basedir.replace('"', '\\"') alb = album.replace('"', '\\"') items = [ tr for tr in dirtracks if \ tr.get_tag_raw('__basedir') == base and \ # FIXME: this is ugly alb in "".join( tr.get_tag_raw('album') or []).lower() ] for item in items: item.set_tag_raw('__compilation', (basedir, album)) dirtracks = deque() compilations = deque() ccheck = {} elif type == gio.FILE_TYPE_REGULAR: tr = self.update_track(fil) if not tr: continue if dirtracks is not None: dirtracks.append(tr) # do this so that if we have, say, a 4000-song folder # we dont get bogged down trying to keep track of them # for compilation detection. Most albums have far fewer # than 110 tracks anyway, so it is unlikely that this # restriction will affect the heuristic's accuracy. # 110 was chosen to accomodate "top 100"-style # compilations. if len(dirtracks) > 110: logger.info("Too many files, skipping " "compilation detection heuristic.") dirtracks = None if self.collection and self.collection._scan_stopped: self.scanning = False return # progress update if notify_interval is not None and count % notify_interval == 0: event.log_event('tracks_scanned', self, count) # final progress update if notify_interval is not None: event.log_event('tracks_scanned', self, count) removals = deque() for tr in self.collection.tracks.itervalues(): tr = tr._track loc = tr.get_loc_for_io() if not loc: continue gloc = gio.File(loc) try: if not gloc.has_prefix(libloc): continue except UnicodeDecodeError: common.log_exception(log=logger) continue if not gloc.query_exists(): removals.append(tr) for tr in removals: logger.debug(u"Removing %s"%unicode(tr)) self.collection.remove(tr) self.scanning = False def add(self, loc, move=False): """ Copies (or moves) a file into the library and adds it to the collection """ oldgloc = gio.File(loc) newgloc = gio.File(self.location).resolve_relative_path( oldgloc.get_basename()) if move: oldgloc.move(newgloc) else: oldgloc.copy(newgloc) tr = trax.Track(newgloc.get_uri()) if tr._scan_valid: self.collection.add(tr) def delete(self, loc): """ Deletes a file from the disk .. warning:: This permanently deletes the file from the hard disk. """ tr = self.collection.get_track_by_loc(loc) if tr: self.collection.remove(tr) loc = tr.get_loc_for_io() file = gio.File(loc) if not file.delete(): logger.warning("Could not delete file %s." % loc) # the below are not essential for 0.3.0, should be implemented only # if time allows for it def set_layout(self, layout, default="Unknown"): pass def organize(self): pass def keep_organized(self, bool): pass def get_freespace(self): pass def get_totalspace(self): pass def get_usedspace(self): pass def get_usedspace_percent(self): pass class TransferQueue(object): def __init__(self, library): self.library = library self.queue = [] self.current_pos = -1 self.transferring = False self._stop = False def enqueue(self, tracks): self.queue.extend(tracks) def dequeue(self, tracks): if self.transferring: # FIXME: use a proper exception, and make this only error on # tracks that have already been transferred raise Exception, "Cannot remove tracks while transferring" for t in tracks: try: self.queue.remove(t) except ValueError: pass def transfer(self): """ Tranfer the queued tracks to the library. This is NOT asynchronous """ self.transferring = True self.current_pos += 1 try: while self.current_pos < len(self.queue) and not self._stop: track = self.queue[self.current_pos] loc = track.get_loc_for_io() self.library.add(loc) # TODO: make this be based on filesize not count progress = self.current_pos * 100 / len(self.queue) event.log_event('track_transfer_progress', self, progress) self.current_pos += 1 finally: self.queue = [] self.transferring = False self.current_pos = -1 self._stop = False event.log_event('track_transfer_progress', self, 100) def cancel(self): """ Cancel the current transfer """ # TODO: make this stop mid-file as well? self._stop = True # vim: et sts=4 sw=4 dist/copy/xl/PaxHeaders.26361/xdg.py0000644000175000017500000000012412233027260015600 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.609046948 exaile-3.3.2/xl/xdg.py0000644000000000000000000000747712233027260014557 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import os, glib homedir = os.path.expanduser("~") lastdir = homedir data_home = glib.get_user_data_dir() data_home = os.path.join(data_home, "exaile") config_home = glib.get_user_config_dir() config_home = os.path.join(config_home, "exaile") cache_home = glib.get_user_cache_dir() cache_home = os.path.join(cache_home, "exaile") data_dirs = os.getenv("XDG_DATA_DIRS") if data_dirs == None: data_dirs = "/usr/local/share/:/usr/share/" data_dirs = [os.path.join(d, "exaile") for d in data_dirs.split(":")] config_dirs = os.getenv("XDG_CONFIG_DIRS") if config_dirs == None: config_dirs = "/etc/xdg" config_dirs = [os.path.join(d, "exaile") for d in config_dirs.split(":")] exaile_dir = os.path.split(os.path.dirname(os.path.realpath(__file__)))[0] local_hack = False # Detect if Exaile is not installed. if os.path.exists(os.path.join(exaile_dir, 'Makefile')): local_hack = True # Insert the "data" directory to data_dirs. data_dir = os.path.join(exaile_dir, 'data') data_dirs.insert(0, data_dir) # insert the config dir config_dir = os.path.join(exaile_dir, 'data', 'config') config_dirs.insert(0, config_dir) data_dirs.insert(0, data_home) def get_config_dir(): return config_home def get_config_dirs(): return config_dirs[:] def get_data_dir(): return data_home def get_data_dirs(): return data_dirs[:] def get_cache_dir(): return cache_home def _get_path(basedirs, *subpath_elements, **kwargs): check_exists = kwargs.get("check_exists", True) subpath = os.path.join(*subpath_elements) for d in basedirs: path = os.path.join(d, subpath) if not check_exists or os.path.exists(path): return path return None def get_data_path(*subpath_elements, **kwargs): return _get_path(data_dirs, *subpath_elements, **kwargs) def get_config_path(*subpath_elements, **kwargs): return _get_path(config_dirs, *subpath_elements, **kwargs) def get_data_home_path(*subpath_elements, **kwargs): return _get_path([data_home], *subpath_elements, **kwargs) def get_last_dir(): return lastdir def get_plugin_data_dir(): path = os.path.join(get_data_dirs()[0], 'plugin_data') if not os.path.exists(path): os.makedirs(path) return path def _make_missing_dirs(): """ Make any missing base XDG directories called by the main Exaile object, should not be used elsewhere. """ if not os.path.exists(data_home): os.makedirs(data_home) if not os.path.exists(config_home): os.makedirs(config_home) if not os.path.exists(cache_home): os.makedirs(cache_home) # vim: et sts=4 sw=4 dist/copy/xl/PaxHeaders.26361/metadata0000644000175000017500000000013212233027261016147 xustar000000000000000030 mtime=1382821553.609046948 30 atime=1382821552.793046922 30 ctime=1382821553.609046948 exaile-3.3.2/xl/metadata/0000755000000000000000000000000012233027261015165 5ustar00rootroot00000000000000dist/copy/xl/metadata/PaxHeaders.26361/_matroska.py0000644000175000017500000000012412233027260020556 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.513046945 exaile-3.3.2/xl/metadata/_matroska.py0000644000000000000000000003227212233027260017524 0ustar00rootroot00000000000000# EBML/Matroska parser # Copyright (C) 2010 Johannes Sasongko # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. # This code is heavily based on public domain code by "Omion" (from the # Hydrogenaudio forums), as obtained from Matroska's Subversion repository at # revision 858 (2004-10-03), under "/trunk/Perl.Parser/MatroskaParser.pm". import sys from struct import unpack SINT, UINT, FLOAT, STRING, UTF8, DATE, MASTER, BINARY = range(8) class EbmlException(Exception): pass class BinaryData(str): pass class UnknownData: pass class Ebml: """EBML parser. Usage: Ebml(location, tags).parse() tags is a dictionary of the form { id: (name, type) }. """ ## Constructor and destructor def __init__(self, location, tags): self.tags = tags self.open(location) def __del__(self): self.close() ## File access. ## These can be overridden to provide network support. def open(self, location): """Open a location and set self.size.""" self.file = f = open(location, 'rb') f = self.file f.seek(0, 2) self.size = f.tell() f.seek(0, 0) def seek(self, offset, mode): self.file.seek(offset, mode) def tell(self): return self.file.tell() def read(self, length): return self.file.read(length) def close(self): self.file.close() ## Element reading def readSize(self): b1 = self.read(1) b1b = ord(b1) if b1b & 0x80: # 1 byte return b1b & 0x7f elif b1b & 0x40: # 2 bytes # JS: BE-ushort return unpack(">H", chr(0x40 ^ b1b) + self.read(1))[0] elif b1b & 0x20: # 3 bytes # JS: BE-ulong return unpack(">L", "\0" + chr(0x20 ^ b1b) + self.read(2))[0] elif b1b & 0x10: # 4 bytes # JS: BE-ulong return unpack(">L", chr(0x10 ^ b1b) + self.read(3))[0] elif b1b & 0x08: # 5 bytes # JS: uchar BE-ulong. We change this to BE uchar ulong. high, low = unpack(">BL", chr(0x08 ^ b1b) + self.read(4)) return high * 4294967296 + low elif b1b & 0x04: # 6 bytes # JS: BE-slong BE-ulong high, low = unpack(">HL", chr(0x04 ^ b1b) + self.read(5)) return high * 4294967296 + low elif b1b & 0x02: # 7 bytes # JS: BE-ulong BE-ulong high, low = unpack(">LL", "\0" + chr(0x02 ^ b1b) + self.read(6)) return high * 4294967296 + low elif b1b & 0x01: # 8 bytes # JS: BE-ulong BE-ulong high, low = unpack(">LL", chr(0x01 ^ b1b) + self.read(7)) return high * 4294967296 + low else: raise EbmlException( "invalid element size with leading byte 0x%X" % b1b) def readInteger(self, length): if length == 1: # 1 byte return ord(self.read(1)) elif length == 2: # 2 bytes return unpack(">H", self.read(2))[0] elif length == 3: # 3 bytes return unpack(">L", "\0" + self.read(3))[0] elif length == 4: # 4 bytes return unpack(">L", self.read(4))[0] elif length == 5: # 5 bytes high, low = unpack(">BL", self.read(5)) return high * 4294967296 + low elif length == 6: # 6 bytes high, low = unpack(">HL", self.read(6)) return high * 4294967296 + low elif length == 7: # 7 bytes high, low = unpack(">LL", "\0" + (self.read(7))) return high * 4294967296 + low elif length == 8: # 8 bytes high, low = unpack(">LL", self.read(8)) return high * 4294967296 + low else: raise EbmlException( "don't know how to read %r-byte integer" % length) def readFloat(self, length): # Need to reverse the bytes for little-endian machines if length == 4: # single return unpack('@f', self.read(4)[::-1])[0] elif length == 8: # double return unpack('@d', self.read(8)[::-1])[0] elif length == 10: # extended (don't know how to handle it) return 'EXTENDED' else: raise EbmlException("don't know how to read %r-byte float" % length) def readID(self): b1 = self.read(1) b1b = ord(b1) if b1b & 0x80: # 1 byte return b1b & 0x7f elif b1b & 0x40: # 2 bytes return unpack(">H", chr(0x40 ^ b1b) + self.read(1))[0] elif b1b & 0x20: # 3 bytes return unpack(">L", "\0" + chr(0x20 ^ b1b) + self.read(2))[0] elif b1b & 0x10: # 4 bytes return unpack(">L", chr(0x10 ^ b1b) + self.read(3))[0] else: raise EbmlException( "invalid element ID with leading byte 0x%X" % b1b) ## Parsing def parse(self, from_=0, to=None): """Parses EBML from `from_` to `to`. Note that not all streams support seeking backwards, so prepare to handle an exception if you try to parse from arbitrary position. """ if to is None: to = self.size self.seek(from_, 0) node = {} # Iterate over current node's children. while self.tell() < to: try: id = self.readID() except EbmlException, e: # Invalid EBML header. We can't reliably get any more data from # this level, so just return anything we have. print >>sys.stderr, "ERROR:", e return node size = self.readSize() try: key, type_ = self.tags[id] except KeyError: self.seek(size, 1) else: try: if type_ is MASTER: tell = self.tell() value = self.parse(tell, tell + size) elif type_ in (SINT, UINT, DATE): value = self.readInteger(size) elif type_ is FLOAT: value = self.readFloat(size) elif type_ is STRING: value = unicode(self.read(size), 'ascii') elif type_ is UTF8: value = unicode(self.read(size), 'utf-8') elif type_ is BINARY: value = BinaryData(self.read(size)) else: assert False except (EbmlException, UnicodeDecodeError), e: print >>sys.stderr, "WARNING:", e try: parentval = node[key] except KeyError: parentval = node[key] = [] parentval.append(value) return node ## GIO-specific code import gio class GioEbml(Ebml): # NOTE: All seeks are faked using InputStream.skip because we need to use # BufferedInputStream but it does not implement Seekable. def open(self, location): f = gio.File(location) self.buffer = gio.BufferedInputStream(f.read()) self._tell = 0 self.size = f.query_info('standard::size').get_size() def seek(self, offset, mode): if mode == 0: skip = offset - self._tell elif mode == 1: skip = offset elif mode == 2: skip = self.size - self._tell + offset else: raise ValueError("invalid seek mode: %r" % offset) if skip < 0: raise gio.Error("cannot seek backwards from %d" % self._tell) self._tell += skip self.buffer.skip(skip) def tell(self): return self._tell def read(self, length): result = self.buffer.read(length) self._tell += len(result) return result def close(self): self.buffer.close() ## Matroska-specific code # Interesting Matroska tags. # Tags not defined here are skipped while parsing. MatroskaTags = { # Segment 0x08538067: ('Segment', MASTER), # Segment Information 0x0549A966: ('Info', MASTER), 0x3384: ('SegmentFilename', UTF8), 0x0AD7B1: ('TimecodeScale', UINT), 0x0489: ('Duration', FLOAT), 0x0461: ('DateUTC', DATE), 0x3BA9: ('Title', UTF8), 0x0D80: ('MuxingApp', UTF8), 0x1741: ('WritingApp', UTF8), # Track 0x0654AE6B: ('Tracks', MASTER), 0x2E: ('TrackEntry', MASTER), 0x57: ('TrackNumber', UINT), 0x03: ('TrackType', UINT), 0x29: ('FlagEnabled', UINT), 0x08: ('FlagDefault', UINT), 0x03E383: ('DefaultDuration', UINT), 0x03314F: ('TrackTimecodeScale', FLOAT), 0x137F: ('TrackOffset', SINT), 0x136E: ('Name', UTF8), 0x02B59C: ('Language', STRING), 0x06: ('CodecID', STRING), 0x058688: ('CodecName', UTF8), 0x1A9697: ('CodecSettings', UTF8), 0x1B4040: ('CodecInfoURL', STRING), 0x06B240: ('CodecDownloadURL', STRING), 0x2A: ('CodecDecodeAll', UINT), 0x2FAB: ('TrackOverlay', UINT), # Video 0x60: ('Video', MASTER), # Audio 0x61: ('Audio', MASTER), 0x35: ('SamplingFrequency', UINT), 0x38B5: ('OutputSamplingFrequency', UINT), 0x1F: ('Channels', UINT), 0x3D7B: ('ChannelPositions', BINARY), 0x2264: ('BitDepth', UINT), # Content Encoding 0x2D80: ('ContentEncodings', MASTER), 0x2240: ('ContentEncoding', MASTER), 0x1031: ('ContentEncodingOrder', UINT), 0x1032: ('ContentEncodingScope', UINT), 0x1033: ('ContentEncodingType', UINT), 0x1034: ('ContentCompression', MASTER), 0x0254: ('ContentCompAlgo', UINT), 0x0255: ('ContentCompSettings', BINARY), # Chapters 0x0043A770: ('Chapters', MASTER), 0x05B9: ('EditionEntry', MASTER), 0x05BC: ('EditionUID', UINT), 0x05BD: ('EditionFlagHidden', UINT), 0x05DB: ('EditionFlagDefault', UINT), 0x05DD: ('EditionManaged', UINT), 0x36: ('ChapterAtom', MASTER), 0x33C4: ('ChapterUID', UINT), 0x11: ('ChapterTimeStart', UINT), 0x12: ('ChapterTimeEnd', UINT), 0x18: ('ChapterFlagHidden', UINT), 0x0598: ('ChapterFlagEnabled', UINT), 0x23C3: ('ChapterPhysicalEquiv', UINT), 0x0F: ('ChapterTrack', MASTER), 0x09: ('ChapterTrackNumber', UINT), 0x00: ('ChapterDisplay', MASTER), 0x05: ('ChapString', UTF8), 0x037C: ('ChapLanguage', STRING), 0x037E: ('ChapCountry', STRING), # Tagging 0x0254C367: ('Tags', MASTER), 0x3373: ('Tag', MASTER), 0x23C0: ('Targets', MASTER), 0x28CA: ('TargetTypevalue', UINT), 0x23CA: ('TargetType', STRING), 0x23C9: ('EditionUID', UINT), 0x23C4: ('ChapterUID', UINT), 0x23C5: ('TrackUID', UINT), 0x23C6: ('AttachmentUID', UINT), 0x27C8: ('SimpleTag', MASTER), 0x05A3: ('TagName', UTF8), 0x047A: ('TagLanguage', STRING), 0x0484: ('TagDefault', UINT), 0x0487: ('TagString', UTF8), 0x0485: ('TagBinary', BINARY), } def parse(location): return GioEbml(location, MatroskaTags).parse() def dump(location): from pprint import pprint pprint(parse(location)) def dump_tags(location): from pprint import pprint mka = parse(location) segment = mka['Segment'][0] info = segment['Info'][0] length = info['Duration'][0] * info['TimecodeScale'][0] / 1e9 print "Length = %f seconds" % length pprint(segment['Tags'][0]['Tag']) if __name__ == '__main__': import sys location = sys.argv[1] if sys.platform == 'win32' and '://' not in location: # XXX: This is most likely a bug in the Win32 GIO port; it converts # paths into UTF-8 and requires them to be specified in UTF-8 as well. # Here we decode the path according to the FS encoding to get the # Unicode representation first. If the path is in a different encoding, # this step will fail. location = location.decode(sys.getfilesystemencoding()).encode('utf-8') dump_tags(location) # vi: et sts=4 sw=4 ts=4 dist/copy/xl/metadata/PaxHeaders.26361/flac.py0000644000175000017500000000012412233027260017503 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.445046943 exaile-3.3.2/xl/metadata/flac.py0000644000000000000000000000401612233027260016444 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. from xl import common from xl.metadata._base import ( BaseFormat, CoverImage ) from mutagen import flac class FlacFormat(BaseFormat): MutagenType = flac.FLAC writable = True tag_mapping = { 'bpm': 'tempo', 'comment': 'description', } def get_bitrate(self): return -1 def _set_tag(self, raw, tag, value): # flac has text based attributes, so convert everything to unicode BaseFormat._set_tag(self, raw, tag, [common.to_unicode(v) for v in value]) def read_tags(self, tags): td = super(FlacFormat, self).read_tags(tags) if 'cover' in tags: td['cover'] = [CoverImage(type=p.type, desc=p.desc, mime=p.mime, data=p.data) \ for p in self.mutagen.pictures] return td # vim: et sts=4 sw=4 dist/copy/xl/metadata/PaxHeaders.26361/wav.py0000644000175000017500000000012412233027260017373 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.605046948 exaile-3.3.2/xl/metadata/wav.py0000644000000000000000000000362612233027260016342 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import wave import sunau import aifc import os import gio from xl.metadata._base import BaseFormat type_map = { "aifc": aifc, "aiff": aifc, "au" : sunau, "wav" : wave, } class WavFormat(BaseFormat): writable = False def load(self): try: loc = gio.File(self.loc).get_path() ext = os.path.splitext(loc)[1][1:].lower() opener = type_map[ext] f = opener.open(self.loc, "rb") length = f.getnframes() / f.getframerate() self.mutagen = {'__bitrate': -1, '__length': length} except (IOError, KeyError): self.mutagen = {'__bitrate': -1, '__length': -1} dist/copy/xl/metadata/PaxHeaders.26361/sid.py0000644000175000017500000000012412233027260017355 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.569046947 exaile-3.3.2/xl/metadata/sid.py0000644000000000000000000000334012233027260016315 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. from xl.metadata._base import BaseFormat from mutagen import FileType class SidFormat(BaseFormat): writable = False def load(self): f = open(self.loc, "rb") f.seek(22) data = {} data['title'] = f.read(32).replace(chr(0), "") data['artist'] = f.read(32).replace(chr(0), "") data['copyright'] = f.read(32).replace(chr(0), "") f.close() self.mutagen = data def get_length(self): return -1 def get_bitrate(self): return -1 dist/copy/xl/metadata/PaxHeaders.26361/speex.py0000644000175000017500000000012412233027260017722 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.569046947 exaile-3.3.2/xl/metadata/speex.py0000644000000000000000000000261612233027260016667 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. from xl.metadata._base import BaseFormat from mutagen import oggspeex class SpeexFormat(BaseFormat): MutagenType = oggspeex.OggSpeex writable = True # vim: et sts=4 sw=4 dist/copy/xl/metadata/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260020335 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.509046945 exaile-3.3.2/xl/metadata/__init__.py0000644000000000000000000000771612233027260017310 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import os import sys import gio from xl.metadata._base import BaseFormat, NotWritable, NotReadable import urlparse from xl.metadata import (ape, asf, flac, mka, mod, mp3, mp4, mpc, ogg, sid, speex, tta, wav, wv) #: dictionary mapping extensions to Format classes. formats = { '669' : mod.ModFormat, 'ac3' : None, 'aif' : wav.WavFormat, 'aiff' : wav.WavFormat, 'ape' : ape.MonkeysFormat, 'amf' : mod.ModFormat, 'asf' : asf.AsfFormat, 'au' : wav.WavFormat, 'dsm' : mod.ModFormat, 'far' : mod.ModFormat, 'flac' : flac.FlacFormat, 'it' : mod.ModFormat, 'm4a' : mp4.MP4Format, 'med' : mod.ModFormat, 'mka' : mka.MkaFormat, 'mp2' : mp3.MP3Format, 'mp3' : mp3.MP3Format, 'mp4' : mp4.MP4Format, 'mpc' : mpc.MpcFormat, 'mid' : None, 'midi' : None, 'mod' : mod.ModFormat, 'mtm' : mod.ModFormat, 'oga' : ogg.OggFormat, 'ogg' : ogg.OggFormat, 'ogx' : ogg.OggFormat, 'okt' : mod.ModFormat, 'ra' : None, 'ram' : None, 's3m' : mod.ModFormat, 'sid' : sid.SidFormat, 'shn' : None, 'snd' : wav.WavFormat, 'spc' : None, 'spx' : speex.SpeexFormat, 'stm' : mod.ModFormat, 'tta' : tta.TTAFormat, 'ult' : mod.ModFormat, 'wav' : wav.WavFormat, 'wma' : asf.AsfFormat, 'wv' : wv.WavpackFormat, 'xm' : mod.ModFormat, } # pass get_loc_for_io() to this. def get_format(loc): """ get a Format object appropriate for the file at loc. if no suitable object can be found, None is returned. :param loc: The location to read from. can be any gio-parseable path or uri. """ loc = gio.File(loc).get_path() if not loc: return None # XXX: The path that we get from GIO is, for some reason, in UTF-8. # Bug? Intended? No idea. # Oddly enough, if you have a non-utf8 compatible filename (such as # a file from windows), then it will just return that string without # converting it (but in a form that os.path will handle). Go figure. try: loc = loc.decode('utf-8') except UnicodeDecodeError: pass ext = os.path.splitext(loc)[1] ext = ext[1:] # remove the pesky . ext = ext.lower() try: formatclass = formats[ext] except KeyError: return None # not supported if formatclass is None: formatclass = BaseFormat try: return formatclass(loc) except NotReadable: return None # vim: et sts=4 sw=4 dist/copy/xl/metadata/PaxHeaders.26361/mod.py0000644000175000017500000000012412233027260017355 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.565046947 exaile-3.3.2/xl/metadata/mod.py0000644000000000000000000000470512233027260016323 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. from xl.metadata._base import BaseFormat from mutagen import FileType import os try: import ctypes modplug = ctypes.cdll.LoadLibrary("libmodplug.so.0") modplug.ModPlug_Load.restype = ctypes.c_void_p modplug.ModPlug_Load.argtypes = (ctypes.c_void_p, ctypes.c_int) modplug.ModPlug_GetName.restype = ctypes.c_char_p modplug.ModPlug_GetName.argtypes = (ctypes.c_void_p, ) modplug.ModPlug_GetLength.restype = ctypes.c_int modplug.ModPlug_GetLength.argtypes = (ctypes.c_void_p, ) except (ImportError, OSError): modplug = None class ModFormat(BaseFormat): ignore_tags = ["__length"] writable = False def load(self): if modplug: data = open(self.loc, "rb").read() f = modplug.ModPlug_Load(data, len(data)) if f: name = modplug.ModPlug_GetName(f) or os.path.split(self.loc)[-1] length = modplug.ModPlug_GetLength(f) / 1000.0 or -1 self.mutagen = {'title': name, '__length':length} else: self.mutagen = {} def get_length(self): try: return self.mutagen['__length'] except KeyError: return -1 def get_bitrate(self): return -1 # vim: et sts=4 sw=4 dist/copy/xl/metadata/PaxHeaders.26361/tta.py0000644000175000017500000000012412233027260017366 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.605046948 exaile-3.3.2/xl/metadata/tta.py0000644000000000000000000000257012233027260016332 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. from xl.metadata._id3 import ID3Format from mutagen import trueaudio class TTAFormat(ID3Format): MutagenType = trueaudio.TrueAudio # vim: et sts=4 sw=4 dist/copy/xl/metadata/PaxHeaders.26361/wv.py0000644000175000017500000000012412233027260017232 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.609046948 exaile-3.3.2/xl/metadata/wv.py0000644000000000000000000000264612233027260016202 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. from xl.metadata._apev2 import ApeFormat from mutagen import wavpack class WavpackFormat(ApeFormat): MutagenType = wavpack.WavPack def get_bitrate(self): return -1 # vim: et sts=4 sw=4 dist/copy/xl/metadata/PaxHeaders.26361/mka.py0000644000175000017500000000012412233027260017346 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.565046947 exaile-3.3.2/xl/metadata/mka.py0000644000000000000000000000527012233027260016312 0ustar00rootroot00000000000000# Matroska tagger for Exaile # Copyright (C) 2010 Johannes Sasongko # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. from __future__ import division from xl.metadata import _base, _matroska class MkaFormat(_base.BaseFormat): ignore_tags = [] others = False # For now, stick with defined tags only. writable = False ignore_tags = [] # TODO: add covers etc tag_mapping = { 'album': ('TITLE', 50), 'album artist': ('ARTIST', 50), 'artist': ('ARTIST', 30), 'comment': ('COMMENT', 30), 'composer': ('COMPOSER', 30), 'date': ('DATE_RECORDED', 50), 'disc': ('PART_NUMBER', 50), 'genre': ('GENRE', 30), 'performer': ('PERFORMER', 30), 'title': ('TITLE', 30), 'track': ('PART_NUMBER', 30), } def _get_raw(self): return self.tags def load(self): mka = _matroska.parse(self.loc) segment = mka['Segment'][0] info = segment['Info'][0] length = info['Duration'][0] * info['TimecodeScale'][0] / 1e9 mkatags = segment['Tags'][0]['Tag'] self.tags = tags = {'__length': length} for mkatag in mkatags: target = int(mkatag['Targets'][0]['TargetTypevalue'][0]) for simpletag in mkatag['SimpleTag']: key = (simpletag['TagName'][0], target) try: values = tags[key] except KeyError: values = tags[key] = [] values.append(simpletag['TagString'][0]) # vi: et sts=4 sw=4 ts=4 dist/copy/xl/metadata/PaxHeaders.26361/mp3.py0000644000175000017500000000012412233027260017275 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.565046947 exaile-3.3.2/xl/metadata/mp3.py0000644000000000000000000000254612233027260016244 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. from xl.metadata._id3 import ID3Format from mutagen import mp3 class MP3Format(ID3Format): MutagenType = mp3.MP3 # vim: et sts=4 sw=4 dist/copy/xl/metadata/PaxHeaders.26361/ape.py0000644000175000017500000000012412233027260017343 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.513046945 exaile-3.3.2/xl/metadata/ape.py0000644000000000000000000000260712233027260016310 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. from xl.metadata._apev2 import ApeFormat from mutagen import monkeysaudio class MonkeysFormat(ApeFormat): MutagenType = monkeysaudio.MonkeysAudio # vim: et sts=4 sw=4 dist/copy/xl/metadata/PaxHeaders.26361/ogg.py0000644000175000017500000000012412233027260017352 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.449046943 exaile-3.3.2/xl/metadata/ogg.py0000644000000000000000000000442112233027260016313 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. from xl import common from xl.metadata._base import ( BaseFormat, CoverImage ) from mutagen import oggvorbis import mutagen.flac import base64 class OggFormat(BaseFormat): MutagenType = oggvorbis.OggVorbis tag_mapping = { 'bpm': 'tempo', 'comment': 'description', } writable = True def _set_tag(self, raw, tag, value): # vorbis has text based attributes, so convert everything to unicode BaseFormat._set_tag(self, raw, tag, [common.to_unicode(v) for v in value]) def read_tags(self, tags): if "cover" in tags: tags[tags.index("cover")]= "metadata_block_picture" td = super(OggFormat, self).read_tags(tags) if 'metadata_block_picture' in td: td['cover'] = [] for d in td["metadata_block_picture"]: picture = mutagen.flac.Picture(base64.standard_b64decode(d)) td['cover'] += [CoverImage(type=picture.type, desc=picture.desc, mime=picture.mime, data=picture.data)] return td # vim: et sts=4 sw=4 dist/copy/xl/metadata/PaxHeaders.26361/_id3.py0000644000175000017500000000012412233027260017414 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.513046945 exaile-3.3.2/xl/metadata/_id3.py0000644000000000000000000001075312233027260016362 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. from xl.metadata._base import ( BaseFormat, CoverImage ) from mutagen import id3 class ID3Format(BaseFormat): MutagenType = id3.ID3 tag_mapping = { "originalalbum": "TOAL", "lyricist": "TEXT", "part": "TSST", "website": "WOAR", "cover": "APIC", "originalartist": "TOPE", "author": "TOLY", "originaldate": "TDOR", "date": "TDRC", "arranger": "TPE4", "conductor": "TPE3", "albumartist": "TPE2", "artist": "TPE1", "album": "TALB", "copyright": "TCOP", "lyrics": "USLT", "tracknumber": "TRCK", "version": "TIT3", "title": "TIT2", "isrc": "TSRC", "genre": "TCON", "composer": "TCOM", "encodedby": "TENC", "organization": "TPUB", "discnumber": "TPOS", "bpm": "TBPM", "grouping": "TIT1", "comment": "COMM", } writable = True others = False # make this true once custom tag support actually works def _get_tag(self, raw, t): if not raw.tags: return [] if t not in self.tag_mapping.itervalues(): t = "TXXX:" + t field = raw.tags.getall(t) if len(field) <= 0: return [] ret = [] if t in ('TDRC', 'TDOR'): # values are ID3TimeStamps for value in field: ret.extend([unicode(x) for x in value.text]) elif t == 'USLT': # Lyrics are stored in plain old strings for value in field: ret.append(unicode(value.text)) elif t == 'WOAR': # URLS are stored in url not text for value in field: ret.extend([unicode(x.replace('\n','').replace('\r','')) \ for x in value.url]) elif t == 'APIC': ret = [CoverImage(type=f.type, desc=f.desc, mime=f.mime, data=f.data) for f in field] elif t == 'COMM': # Newlines within comments are allowed, keep them for item in field: ret.extend([value for value in item.text]) else: for value in field: try: ret.extend([unicode(x.replace('\n','').replace('\r','')) \ for x in value.text]) except: pass return ret def _set_tag(self, raw, tag, data): if tag not in self.tag_mapping.itervalues(): tag = "TXXX:" + tag if raw.tags is not None: raw.tags.delall(tag) # FIXME: Properly set and retrieve multiple values if tag == 'USLT': data = data[0] if tag == 'APIC': frames = [id3.Frames[tag](encoding=3, mime=info.mime, type=info.type, desc=info.desc, data=info.data) \ for info in data] elif tag == 'COMM': frames = [id3.COMM(encoding=3, text=d, desc='', lang='\x00\x00\x00') for d in data] else: frames = [id3.Frames[tag](encoding=3, text=data)] if raw.tags is not None: for frame in frames: raw.tags.add(frame) def _del_tag(self, raw, tag): if tag not in self.tag_mapping.itervalues(): tag = "TXXX:" + tag if raw.tags is not None: raw.tags.delall(tag) # vim: et sts=4 sw=4 dist/copy/xl/metadata/PaxHeaders.26361/mpc.py0000644000175000017500000000012412233027260017355 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.565046947 exaile-3.3.2/xl/metadata/mpc.py0000644000000000000000000000256712233027260016327 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. from xl.metadata._apev2 import ApeFormat from mutagen import musepack class MpcFormat(ApeFormat): MutagenType = musepack.Musepack # vim: et sts=4 sw=4 dist/copy/xl/metadata/PaxHeaders.26361/asf.py0000644000175000017500000000012412233027260017347 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.513046945 exaile-3.3.2/xl/metadata/asf.py0000644000000000000000000000503112233027260016306 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. from xl.metadata._base import BaseFormat from mutagen import asf class AsfFormat(BaseFormat): MutagenType = asf.ASF # TODO: figure out the the WM/ prefix is universal tag_mapping = { "artist" : "Author", "album" : "WM/AlbumTitle", "title" : "Title", "genre" : "WM/Genre", "tracknumber" : "WM/TrackNumber", "date" : "WM/Year", "albumartist" : "WM/AlbumArtist", "grouping" : "WM/ContentGroupDescription" } others = False writable = True def _get_tag(self, raw, t): # the mutagen container for ASF returns the WM/ fields in its own # wrappers which are *almost* like a string.. convert them to # unicode so things don't break tag = super(AsfFormat, self)._get_tag(raw, t) if isinstance(tag, list): attrs = [asf.ASFUnicodeAttribute, asf.ASFDWordAttribute, asf.ASFQWordAttribute, asf.ASFWordAttribute] def __process_tag(t): for attrtype in attrs: if isinstance(t,attrtype): return unicode(t) return t return [__process_tag(t) for t in tag] # vim: et sts=4 sw=4 dist/copy/xl/metadata/PaxHeaders.26361/mp4.py0000644000175000017500000000012412233027260017276 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821552.977046928 exaile-3.3.2/xl/metadata/mp4.py0000644000000000000000000000740512233027260016244 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. from xl.metadata._base import BaseFormat, CoverImage from mutagen import mp4 class MP4Format(BaseFormat): MutagenType = mp4.MP4 tag_mapping = { 'title': '\xa9nam', 'artist': '\xa9ART', 'albumartist': '\x61ART', 'album': '\xa9alb', 'composer': '\xa9wrt', 'genre': '\xa9gen', 'lyrics': '\xa9lyr', 'encodedby': '\xa9too', 'date': '\xa9day', 'tracknumber': 'trkn', 'discnumber': 'disk', 'copyright': 'cprt', 'bpm': 'tmpo', 'grouping': '\xa9grp', 'comment': '\xa9cmt', 'originaldate':'----:com.apple.iTunes:ORIGYEAR', 'cover': 'covr', } others = False writable = True def _get_tag(self, f, name): if not f.has_key(name): return [] elif name == 'covr': ret = [] for value in f[name]: if value.imageformat == mp4.MP4Cover.FORMAT_PNG: mime = 'image/png' else: mime = 'image/jpeg' ret.append(CoverImage(type=None, desc=None, mime=mime, data=value)) return ret elif name in ['trkn', 'disk']: ret = [] for value in f[name]: ret.append("%d/%d" % (value[0], value[1])) return ret else: return [t for t in f[name]] def _set_tag(self, f, name, value): if type(value) is not list: value = [value] if name in ['trkn', 'disk']: try: f[name] = [] for val in value: tmp = map(int, val.split('/')) f[name].append(tuple(tmp)) except (TypeError, ValueError): pass elif name == 'covr': f[name] = [] for val in value: if val.mime == 'image/jpeg': f[name].append(mp4.MP4Cover(val.data, mp4.MP4Cover.FORMAT_JPEG)) elif val.mime == 'image/png': f[name].append(mp4.MP4Cover(val.data, mp4.MP4Cover.FORMAT_JPEG)) else: raise ValueError('MP4 does not support cover image type %s' % val.type) elif name == 'tmpo': f[name] = [int(v) for v in value] elif name == '----:com.apple.iTunes:ORIGYEAR': f[name] = [str(v) for v in value] else: f[name] = value # vim: et sts=4 sw=4 dist/copy/xl/metadata/PaxHeaders.26361/_apev2.py0000644000175000017500000000012412233027260017752 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.513046945 exaile-3.3.2/xl/metadata/_apev2.py0000644000000000000000000000375012233027260016717 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. from xl.metadata._base import BaseFormat from mutagen import apev2 class ApeFormat(BaseFormat): MutagenType = apev2.APEv2 # TODO: this mapping is incomplete tag_mapping = { "title": "Title", "album": "Album", "artist": "Artist", "albumartist": "Album Artist", "genre": "Genre", "tracknumber": "Track", "date": "Year", "composer": "Composer", "discnumber": "Disc", "comment": "Comment", "isrc": "ISRC", "lyrics": "Lyrics", "albumsort": "ALBUMSORT", "albumartistsort": "ALBUMARTISTSORT", "artistsort": "ARTISTSORT", "titlesort": "TITLESORT", "grouping": "Grouping" } others = True writable = True # vim: et sts=4 sw=4 dist/copy/xl/metadata/PaxHeaders.26361/_base.py0000644000175000017500000000012312233027260017646 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 29 ctime=1382821553.04104693 exaile-3.3.2/xl/metadata/_base.py0000644000000000000000000002154312233027260016614 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. from collections import namedtuple import copy import gio INFO_TAGS = ['__bitrate', '__length'] # Generic description of cover images # - type is a number corresponding to the cover type of ID3 APIC tags, # desc is a string describing the image, mime is a type, # data is the img data # -> if type is None, then the type is not changeable CoverImage = namedtuple('CoverImage', 'type desc mime data') class NotWritable(Exception): pass class NotReadable(Exception): pass class BaseFormat(object): """ Base class for handling loading of metadata from files. subclasses using mutagen should set MutagenType and overload the _get_tag, _set_tag, and _del_tag methods as needed. subclasses not using mutagen should leave MutagenType as None """ MutagenType = None tag_mapping = {} others = True writable = False # TODO: can we change this to be any excessively large field? its hard # to get every single cover tag name and would probably suit our needs # better. perhaps any field with \n (lyrics) or >4KB (covers) would # work for a condition. ignore_tags = ['metadata_block_picture', 'coverart', 'cover', 'lyrics', 'Cover Art (front)'] def __init__(self, loc): """ Raises :class:`NotReadable` if the file cannot be opened for some reason. :param loc: absolute path to the file to read (note - this may change to accept gio uris in the future) """ self.loc = loc self.open = False self.mutagen = None self._reverse_mapping = dict(( (v,k) for k,v in self.tag_mapping.iteritems() )) self.load() def load(self): """ Loads the tags from the file. """ if self.MutagenType: try: self.mutagen = self.MutagenType(self.loc) except: raise NotReadable def save(self): """ Saves any changes to the tags. """ if self.writable and self.mutagen: self.mutagen.save() def _get_raw(self): if self.MutagenType: return self.mutagen else: return {} def _get_tag(self, raw, tag): try: return raw[tag] except KeyError: return None def _get_keys(self): keys = [] for k in self._get_raw().keys(): if k in self._reverse_mapping: keys.append(self._reverse_mapping[k]) else: keys.append(k) return keys def read_all(self): """ Reads all non-blacklisted tags from the file. Blacklisted tags include lyrics, covers, and any field starting with __. If you need to read these, call read_tags directly. """ tags = [] for t in self._get_keys(): if t in self.ignore_tags: continue # __ is used to denote exaile's internal tags, so we skip # loading them to avoid conflicts. usually this shouldn't be # an issue. if isinstance(t, basestring) and t.startswith("__"): continue tags.append(t) alltags = self.read_tags(tags) alltags.update(self.read_tags(INFO_TAGS)) return alltags def read_tags(self, tags): """ get the values for the specified tags. returns a dict of the found values. if no value was found for a requested tag it will not exist in the returned dict. :param tags: a list of tag names to read :returns: a dictionary of tag/value pairs. """ raw = self._get_raw() td = {} for tag in tags: t = None if tag in INFO_TAGS: try: t = self.get_info(tag) except KeyError: pass if t == None and tag in self.tag_mapping: try: t = self._get_tag(raw, self.tag_mapping[tag]) if type(t) in [str, unicode]: t = [t] elif isinstance(t, list): pass else: try: t = [unicode(u) for u in list(t)] except UnicodeDecodeError: t = t except (KeyError, TypeError): pass if t == None and self.others: try: t = self._get_tag(raw, tag) if type(t) in [str, unicode]: t = [t] else: t = [unicode(u) for u in list(t)] except (KeyError, TypeError): pass if t not in [None, []]: td[tag] = t return td def _set_tag(self, raw, tag, value): raw[tag] = value def _del_tag(self, raw, tag): del raw[tag] def write_tags(self, tagdict): """ Write a set of tags to the file. Raises a NotWritable exception if the format does not support writing tags. :param tagdict: A dictionary of tag/value pairs to write. """ if not self.MutagenType or not self.writable: raise NotWritable else: tagdict = copy.deepcopy(tagdict) raw = self._get_raw() # Add tags if it doesn't have them. # Most of Mutagen's modules throw an exception if the file already # contains tags, except for mp4. See also # http://code.google.com/p/mutagen/issues/detail?id=101 if getattr(raw, 'tags', None) is None: try: raw.add_tags() except Exception: # XXX: Not sure needed since we're already checking for # existence of tags. pass # info tags are not actually writable for tag in INFO_TAGS: try: del tagdict[tag] except KeyError: pass # tags starting with __ are internal and should not be written for tag in tagdict.keys(): if tag.startswith("__"): try: del tagdict[tag] except KeyError: pass for tag in tagdict: if tag in self.tag_mapping: self._set_tag(raw, self.tag_mapping[tag], tagdict[tag]) elif self.others: self._set_tag(raw, tag, tagdict[tag]) for tag in raw: tagname = self._reverse_mapping.get(tag) if tagname and tagname not in tagdict: self._del_tag(raw, tag) self.save() def get_info(self, info): # TODO: add sample rate? filesize? if info == "__length": return self.get_length() elif info == "__bitrate": return self.get_bitrate() else: raise KeyError def get_length(self): try: return self.mutagen.info.length except AttributeError: try: return self._get_raw()['__length'] except (KeyError, TypeError): return None def get_bitrate(self): try: return self.mutagen.info.bitrate except AttributeError: try: return self._get_raw()['__bitrate'] except (KeyError, TypeError): return None # vim: et sts=4 sw=4 dist/copy/xl/PaxHeaders.26361/settings.py0000644000175000017500000000012412233027260016656 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.569046947 exaile-3.3.2/xl/settings.py0000644000000000000000000002276612233027260015633 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. """ Central storage of application and user settings """ from __future__ import with_statement from ConfigParser import ( RawConfigParser, NoSectionError, NoOptionError ) import logging import os import glib logger = logging.getLogger(__name__) from xl import event, xdg from xl.common import VersionError, glib_wait_seconds from xl.nls import gettext as _ TYPE_MAPPING = { 'I': int, 'S': str, 'F': float, 'B': bool, 'L': list, 'D': dict, 'U': unicode } MANAGER = None class SettingsManager(RawConfigParser): """ Manages Exaile's settings """ settings = None __version__ = 1 def __init__(self, location=None, default_location=None): """ Sets up the settings manager. Expects a location to a file where settings will be stored. Also sets up periodic saves to disk. :param location: the location to save the settings to, settings will never be stored if this is None :type location: str or None :param default_location: the default location to initialize settings from """ RawConfigParser.__init__(self) self.location = location self._saving = False self._dirty = False if default_location is not None: try: self.read(default_location) except: pass if location is not None: try: self.read(self.location) or \ self.read(self.location + ".new") or \ self.read(self.location + ".old") except: pass if self.get_option('settings/version', 0) is None: self.set_option('settings/version', self.__version__) if self.get_option('settings/version', 0) > self.__version__: raise VersionError(_('Settings version is newer than current.')) # save settings every 30 seconds if location is not None: self._timeout_save() @glib_wait_seconds(30) def _timeout_save(self): """Save every 30 seconds""" self.save() return True def copy_settings(self, settings): """ Copies one all of the settings contained in this instance to another :param settings: the settings object to copy to :type settings: :class:`xl.settings.SettingsManager` """ for section in self.sections(): for (key, value) in self.items(section): settings._set_direct('%s/%s' % (section, key), value) def clone(self): """ Creates a copy of this settings object """ settings = SettingsManager(None) self.copy_settings(settings) return settings def set_option(self, option, value): """ Set an option (in ``section/key`` syntax) to the specified value :param option: the full path to an option :type option: string :param value: the value the option should be assigned :type value: any """ value = self._val_to_str(value) splitvals = option.split('/') section, key = "/".join(splitvals[:-1]), splitvals[-1] try: self.set(section, key, value) except NoSectionError: self.add_section(section) self.set(section, key, value) self._dirty = True section = section.replace('/', '_') event.log_event('option_set', self, option) event.log_event('%s_option_set' % section, self, option) def get_option(self, option, default=None): """ Get the value of an option (in ``section/key`` syntax), returning *default* if the key does not exist yet :param option: the full path to an option :type option: string :param default: a default value to use as fallback :type default: any :returns: the option value or *default* :rtype: any """ splitvals = option.split('/') section, key = "/".join(splitvals[:-1]), splitvals[-1] try: value = self.get(section, key) value = self._str_to_val(value) except NoSectionError: value = default except NoOptionError: value = default return value def has_option(self, option): """ Returns information about the existence of a particular option :param option: the option path :type option: string :returns: whether the option exists or not :rtype: bool """ splitvals = option.split('/') section, key = "/".join(splitvals[:-1]), splitvals[-1] return RawConfigParser.has_option(self, section, key) def remove_option(self, option): """ Removes an option (in ``section/key`` syntax), thus will not be saved anymore :param option: the option path :type option: string """ splitvals = option.split('/') section, key = "/".join(splitvals[:-1]), splitvals[-1] RawConfigParser.remove_option(self, section, key) def _set_direct(self, option, value): """ Sets the option directly to the value, only for use in copying settings. :param option: the option path :type option: string :param value: the value to set :type value: any """ splitvals = option.split('/') section, key = "/".join(splitvals[:-1]), splitvals[-1] try: self.set(section, key, value) except NoSectionError: self.add_section(section) self.set(section, key, value) event.log_event('option_set', self, option) def _val_to_str(self, value): """ Turns a value of some type into a string so it can be a configuration value. """ for k, v in TYPE_MAPPING.iteritems(): if v == type(value): if v == list: return k + ": " + repr(value) else: return k + ": " + str(value) raise ValueError(_("We don't know how to store that " "kind of setting: "), type(value)) def _str_to_val(self, value): """ Convert setting strings back to normal values. """ try: kind, value = value.split(': ', 1) except ValueError: return '' # Lists and dictionaries are special case if kind in ('L', 'D'): return eval(value) if kind in TYPE_MAPPING.keys(): if kind == 'B': if value != 'True': return False try: value = TYPE_MAPPING[kind](value) except: pass return value else: raise ValueError(_("An Unknown type of setting was found!")) def save(self): """ Save the settings to disk """ if self.location is None: logger.debug("Save requested but not saving settings, " "location is None") return if self._saving or not self._dirty: return self._saving = True logger.debug("Saving settings...") with open(self.location + ".new", 'w') as f: self.write(f) try: # make it readable by current user only, to protect private data os.fchmod(f.fileno(), 384) except: pass # fail gracefully, eg if on windows f.flush() try: os.rename(self.location, self.location + ".old") except: pass # if it doesn'texist we don't care os.rename(self.location + ".new", self.location) try: os.remove(self.location + ".old") except: pass self._saving = False self._dirty = False location = xdg.get_config_dir() MANAGER = SettingsManager( os.path.join(location, "settings.ini"), xdg.get_config_path("settings.ini") ) get_option = MANAGER.get_option set_option = MANAGER.set_option # vim: et sts=4 sw=4 dist/copy/xl/PaxHeaders.26361/migrations0000644000175000017500000000013212233027261016543 xustar000000000000000030 mtime=1382821553.153046933 30 atime=1382821552.793046922 30 ctime=1382821553.153046933 exaile-3.3.2/xl/migrations/0000755000000000000000000000000012233027261015561 5ustar00rootroot00000000000000dist/copy/xl/migrations/PaxHeaders.26361/database0000644000175000017500000000013212233027261020307 xustar000000000000000030 mtime=1382821553.517046945 30 atime=1382821552.793046922 30 ctime=1382821553.517046945 exaile-3.3.2/xl/migrations/database/0000755000000000000000000000000012233027261017325 5ustar00rootroot00000000000000dist/copy/xl/migrations/database/PaxHeaders.26361/from1to2.py0000644000175000017500000000012412233027260022407 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.517046945 exaile-3.3.2/xl/migrations/database/from1to2.py0000644000000000000000000000370312233027260021352 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import gio def migrate(db, pdata, oldversion, newversion): for k in (x for x in pdata.keys() if x.startswith("tracks-")): p = pdata[k] tags = p[0] try: loc = tags['__loc'] except KeyError: continue if not loc or not loc.startswith("file://"): continue loc = loc[7:] gloc = gio.File(loc) uri = gloc.get_uri() tags['__loc'] = uri pdata[k] = (tags, p[1], p[2]) if pdata.has_key('_serial_libraries'): libs = pdata['_serial_libraries'] for l in libs: l['location'] = gio.File(l['location']).get_uri() pdata['_serial_libraries'] = libs pdata['_dbversion'] = newversion pdata.sync() dist/copy/xl/migrations/database/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260022475 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.513046945 exaile-3.3.2/xl/migrations/database/__init__.py0000644000000000000000000000330212233027260021433 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import imp import os from xl import common def handle_migration(db, pdata, oldversion, newversion): if oldversion == 1 and newversion == 2: migrator = imp.load_source("from1to2", os.path.join(os.path.dirname(__file__), "from1to2.py")) migrator.migrate(db, pdata, oldversion, newversion) else: raise common.VersionError, "Don't know how to handle upgrade from " \ "music database version %s to %s."%(oldversion, newversion) dist/copy/xl/migrations/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260020731 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.153046933 exaile-3.3.2/xl/migrations/__init__.py0000644000000000000000000000000012233027260017657 0ustar00rootroot00000000000000dist/copy/xl/migrations/PaxHeaders.26361/settings0000644000175000017500000000013212233027261020403 xustar000000000000000030 mtime=1382821553.569046947 30 atime=1382821552.793046922 30 ctime=1382821553.569046947 exaile-3.3.2/xl/migrations/settings/0000755000000000000000000000000012233027261017421 5ustar00rootroot00000000000000dist/copy/xl/migrations/settings/PaxHeaders.26361/osd.py0000644000175000017500000000012412233027260021617 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.565046947 exaile-3.3.2/xl/migrations/settings/osd.py0000644000000000000000000000212212233027260020554 0ustar00rootroot00000000000000# Copyright (C) 2012 Mathias Brodala # # 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, 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 xl import settings def migrate(): """ Enables the OSD plugin if the builtin OSD was originally enabled """ plugins = settings.get_option('plugins/enabled', []) if settings.get_option('osd/enabled', True) and not 'osd' in plugins: settings.set_option('plugins/enabled', plugins + ['osd']) settings.set_option('osd/enabled', False) dist/copy/xl/migrations/settings/PaxHeaders.26361/rating.py0000644000175000017500000000012412233027260022316 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.569046947 exaile-3.3.2/xl/migrations/settings/rating.py0000644000000000000000000000340512233027260021260 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. from xl import settings def migrate(): """ Migrates the old 'miscellaneous/rating_*' to the new 'rating/*' settings """ if settings.MANAGER.has_option('miscellaneous/rating_steps'): value = settings.get_option('miscellaneous/rating_steps', 5) settings.set_option('rating/maximum', value) if settings.MANAGER.has_option('miscellaneous/rating_widget_tracks_limit'): value = settings.get_option('miscellaneous/rating_widget_tracks_limit', 100) settings.set_option('rating/tracks_limit', value) dist/copy/xl/migrations/settings/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260022571 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.153046933 exaile-3.3.2/xl/migrations/settings/__init__.py0000644000000000000000000000000012233027260021517 0ustar00rootroot00000000000000dist/copy/xl/PaxHeaders.26361/radio.py0000644000175000017500000000012412233027260016114 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.569046947 exaile-3.3.2/xl/radio.py0000644000000000000000000001200112233027260015046 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. from xl import playlist, event, providers, trax class RadioManager(providers.ProviderHandler): """ Radio Station Manager Simple usage: >>> manager = RadioManager() >>> manager.add_station(RadioStation()) >>> lists = manager.get_lists('test_station') >>> pl = lists[0].get_playlist() >>> print pl.get_tracks()[0]['title'][0] Test Track >>> """ def __init__(self): """ Initializes the radio manager """ providers.ProviderHandler.__init__(self, "radio") self.stations = {} def add_station(self, station): """ Adds a station to the manager @param station: The station to add """ providers.register(self.servicename, station) def on_provider_added(self, station): if not station.name in self.stations: self.stations[station.name] = station event.log_event('station_added', self, station) def remove_station(self, station): """ Removes a station from the manager @param station: The station to remvoe """ providers.unregister(self.servicename, station) def on_provider_removed(self, station): if station.name in self.stations: del self.stations[station.name] event.log_event('station_removed', self, station) def search(self, station, keyword): if station in self.stations: return self.stations[station].search(keyword) else: return None def get_lists(self, station, no_cache=False): """ Loads the lists for the specified station @param station: The name of the station """ if station in self.stations: return self.stations[station].get_lists(no_cache=no_cache) else: return None def load_lists(self, station): """ Gets the rlists for the specified station @param station: The name of the station """ if station in self.stations: return self.stations[station].load_lists() else: return None class RadioList(object): def __init__(self, name, station=None): """ Initializes the rlist """ self.name = name self.station = station def set_name(self, name): self.name = name def get_name(self): return self.name def get_items(self, no_cache=False): """ Returns subrlists """ return [] def __str__(self): """ Returns a string representation of the list """ return self.name class RadioItem(object): """ Radio Items """ def __init__(self, name, station=None): """ Initializes the radio item """ self.name = name self.station = station def get_playlist(self): tr = trax.Track() tr['title'] = 'Test Track' pl = playlist.Playlist('Test Playlist') pl.add_tracks([tr]) return pl def __str__(self): """ Returns a string representation of the item """ return self.name class RadioStation(object): name = 'test_station' def __init__(self): """ Initialize the radio station """ pass def get_lists(self, no_cache=False): """ Returns the rlists for this radio station """ return [RadioItem('TestCategory')] def search(self, keyword): return None def __str__(self): """ Returns a stream representation of this station """ name = self.__class__.__name__ name = name.replace('RadioStation', ' Radio') return name dist/copy/xl/PaxHeaders.26361/hal.py0000644000175000017500000000012412233027260015562 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.517046945 exaile-3.3.2/xl/hal.py0000644000000000000000000001203412233027260014522 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import logging import dbus from xl import common, providers, event, devices, settings from xl.nls import gettext as _ logger = logging.getLogger(__name__) class HAL(providers.ProviderHandler): """ HAL interface """ def __init__(self, devicemanager): providers.ProviderHandler.__init__(self, "hal") self.devicemanager = devicemanager self.bus = None self.hal = None self.hal_devices = {} @common.threaded def connect(self): try: self.bus = dbus.SystemBus() hal_obj = self.bus.get_object('org.freedesktop.Hal', '/org/freedesktop/Hal/Manager') self.hal = dbus.Interface(hal_obj, 'org.freedesktop.Hal.Manager') logger.debug("HAL Providers: %s" % repr(self.get_providers())) for p in self.get_providers(): try: self.on_provider_added(p) except: logger.warning("Failed to load HAL devices for %s" % p.name) common.log_exception(logger) self.setup_device_events() logger.debug("Connected to HAL") event.log_event("hal_connected", self, None) except: logger.warning("Failed to connect to HAL, " \ "autodetection of devices will be disabled.") def on_provider_added(self, provider): for udi in provider.get_udis(self): self.add_device(udi) def on_provider_removed(self, provider): pass #TODO: disconnect and remove all devices of this type def get_handler(self, udi): dev_obj = self.bus.get_object("org.freedesktop.Hal", udi) device = dbus.Interface(dev_obj, "org.freedesktop.Hal.Device") try: capabilities = device.GetProperty("info.capabilities") except dbus.exceptions.DBusException,e: if not e.get_dbus_name() == "org.freedesktop.Hal.NoSuchProperty": common.log_exception(logger) return None handlers = [] for handler in self.get_providers(): rank = handler.is_type(device, capabilities) if rank == 0: continue handlers.append((rank, handler)) if handlers != []: return max(handlers)[1] return None def add_device(self, device_udi): if device_udi in self.hal_devices: logger.warning( "Device %s already in hal list, skipping." % device_udi) return handler = self.get_handler(device_udi) if handler is None: logger.debug("Found no HAL device handler for %s" % device_udi) return dev = handler.device_from_udi(self, device_udi) if not dev: logger.debug("Failed to create device for %s" % device_udi) return logger.debug("Found new %(handler)s device at %(device_udi)s" % {'handler' : handler.name, 'device_udi' : device_udi}) dev.autoconnect() self.devicemanager.add_device(dev) self.hal_devices[device_udi] = dev def remove_device(self, device_udi): logger.debug("Got request to remove %s" % device_udi) try: self.devicemanager.remove_device(self.hal_devices[device_udi]) del self.hal_devices[device_udi] except KeyError: pass def setup_device_events(self): self.bus.add_signal_receiver(self.add_device, "DeviceAdded") self.bus.add_signal_receiver(self.remove_device, "DeviceRemoved") class Handler(object): name = 'base' def __init__(self): pass def is_type(self, device, capabilities): return False def get_udis(self, hal): return [] def device_from_udi(self, hal, udi): pass # vim: et sts=4 sw=4 dist/copy/xl/PaxHeaders.26361/playlist.py0000644000175000017500000000012412233027260016657 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.565046947 exaile-3.3.2/xl/playlist.py0000644000000000000000000021252012233027260015621 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. """ Provides the fundamental objects for handling a list of tracks contained in playlists as well as methods to import and export from various file formats. """ from __future__ import with_statement import cgi from collections import namedtuple from contextlib import closing from datetime import datetime, timedelta import gio import logging import os import random import time import urlparse import urllib try: import cPickle as pickle except ImportError: import pickle from xl import ( collection, common, dynamic, event, providers, settings, trax, xdg, ) from xl.common import MetadataList from xl.nls import gettext as _ logger = logging.getLogger(__name__) class InvalidPlaylistTypeError(Exception): pass class PlaylistExists(Exception): pass PlaylistExportOptions = namedtuple('PlaylistExportOptions', 'relative') def encode_filename(filename): """ Converts a file name into a valid filename most likely to not cause problems on any platform. :param filename: the name of the file :type filename: string """ # list of invalid chars that need to be encoded # Note: '%' is the prefix for encoded chars so blacklist it too blacklist = r'<>:"/\|?*%' def encode_char(c): return '%' + hex(ord(c))[2:] if c in blacklist else c # encode any blacklisted chars filename = ''.join([encode_char(c) for c in filename]) + '.playlist' return filename def is_valid_playlist(path): """ Returns whether the file at a given path is a valid playlist. Checks for content type and falls back to file extension if unknown. :param path: the source path :type path: string """ content_type = gio.content_type_guess(path) if not gio.content_type_is_unknown(content_type): for provider in providers.get('playlist-format-converter'): if content_type in provider.content_types: return True file_extension = path.split('.')[-1] for provider in providers.get('playlist-format-converter'): if file_extension in provider.file_extensions: return True return False def import_playlist(path): """ Determines the type of playlist and creates a playlist from it :param path: the source path :type path: string :returns: the playlist :rtype: :class:`Playlist` """ # First try the cheap Gio way content_type = gio.content_type_guess(path) if not gio.content_type_is_unknown(content_type): for provider in providers.get('playlist-format-converter'): if content_type in provider.content_types: return provider.import_from_file(path) # Next try to extract the file extension via URL parsing file_extension = urlparse.urlparse(path).path.split('.')[-1] for provider in providers.get('playlist-format-converter'): if file_extension in provider.file_extensions: return provider.import_from_file(path) # Last try the expensive Gio way (downloads the data for inspection) content_type = gio.File(path).\ query_info('standard::content-type').\ get_content_type() if content_type: for provider in providers.get('playlist-format-converter'): if content_type in provider.content_types: return provider.import_from_file(path) raise InvalidPlaylistTypeError(_('Invalid playlist type.')) def export_playlist(playlist, path, options=None): """ Exact same as @see import_playlist except it exports """ file_extension = path.split('.')[-1] for provider in providers.get('playlist-format-converter'): if file_extension in provider.file_extensions: provider.export_to_file(playlist, path, options) break else: raise InvalidPlaylistTypeError(_('Invalid playlist type.')) class FormatConverter(object): """ Base class for all converters allowing to import from and export to a specific format """ title = _('Playlist') content_types = [] file_extensions = property(lambda self: [self.name]) def __init__(self, name): self.name = name def export_to_file(self, playlist, path, options=None): """ Export a playlist to a given path :param playlist: the playlist :type playlist: :class:`Playlist` :param path: the target path :type path: string :param options: exporting options :type options: :class:`PlaylistExportOptions` """ pass def import_from_file(self, path): """ Import a playlist from a given path :param path: the source path :type path: string :returns: the playlist :rtype: :class:`Playlist` """ pass def name_from_path(self, path): """ Convenience method to retrieve a sane name from a path :param path: the source path :type path: string :returns: a name :rtype: string """ gfile = gio.File(path) name = gfile.get_basename() for extension in self.file_extensions: if name.endswith(extension): # Remove known extension return name[:-len(extension)-1] return name def get_track_import_path(self, playlist_path, track_path): """ Retrieves the import path of a track :param playlist_path: the import path of the playlist :type playlist_path: string :param track_path: the path of the track :type track_path: string """ playlist_uri = gio.File(playlist_path).get_uri() # Track path will not be changed if it already is a fully qualified URL track_uri = urlparse.urljoin(playlist_uri, track_path.replace('\\','/')) logging.debug('Importing track: %s' % track_uri) # Now, let's be smart about importing the file/playlist. If the # original URI cannot be found and its a local path, then do a # small search for the track relative to the playlist to see # if it can be found. # TODO: Scan collection for tracks as last resort?? if track_uri.startswith('file:///') and \ not gio.File(track_uri).query_exists(): if not playlist_uri.startswith('file:///'): logging.debug('Track does not seem to exist, using original path') else: logging.debug('Track does not seem to exist, trying different path combinations') def _iter_uris(pp, tp): pps = pp[len('file:///'):].split('/') tps = tp.strip().replace('\\','/').split('/') # handle absolute paths correctly if tps[0] == '': tps = tps[1:] # iterate the playlist path a/b/c/d, a/b/c, a/b, ... for p in range(len(pps)-1,0,-1): ppp = 'file:///%s' % '/'.join(pps[0:p]) # iterate the file path d, c/d, b/c/d, ... for t in range(len(tps)-1,-1,-1): yield '%s/%s' % (ppp, '/'.join(tps[t:len(tps)])) for uri in _iter_uris(playlist_uri, track_path): logging.debug('Trying %s' % uri) if gio.File(uri).query_exists(): track_uri = uri logging.debug('Track found at %s' % uri) break return track_uri def get_track_export_path(self, playlist_path, track_path, options): """ Retrieves the export path of a track, possibly influenced by options :param playlist_path: the export path of the playlist :type playlist_path: string :param track_path: the path of the track :type track_path: string :param options: options :type options: :class:`PlaylistExportOptions` """ if options is not None and options.relative: playlist_file = gio.File(playlist_path) # Strip playlist filename from export path export_path = playlist_file.get_uri()[:-len(playlist_file.get_basename())] try: export_path_components = urlparse.urlparse(export_path) track_path_components = urlparse.urlparse(track_path) except (AttributeError, ValueError): # None, empty path pass else: # Only try to retrieve relative paths for tracks with # the same URI scheme and location as the playlist if export_path_components.scheme == track_path_components.scheme and \ export_path_components.netloc == track_path_components.netloc: # gio.File.get_relative_path does not generate relative paths # for tracks located above the playlist in the path hierarchy, # thus process both paths as done here track_path = os.path.relpath( track_path_components.path, export_path_components.path ) # if the file is local, other players like VLC will not # accept the playlist if they have %20 in them, so we must convert # it to something else return urllib.url2pathname(track_path) class M3UConverter(FormatConverter): """ Import from and export to M3U format """ title = _('M3U Playlist') content_types = ['audio/x-mpegurl', 'audio/mpegurl'] def __init__(self): FormatConverter.__init__(self, 'm3u') def export_to_file(self, playlist, path, options=None): """ Export a playlist to a given path :param playlist: the playlist :type playlist: :class:`Playlist` :param path: the target path :type path: string :param options: exporting options :type options: :class:`PlaylistExportOptions` """ with closing(gio.File(path).replace('', False)) as stream: stream.write('#EXTM3U\n') if playlist.name: stream.write('#PLAYLIST: {name}\n'.format(name=playlist.name)) for track in playlist: title = [track.get_tag_display('title', join=True), track.get_tag_display('artist', join=True)] length = int(round(float(track.get_tag_raw('__length') or -1))) track_path = track.get_loc_for_io() track_path = self.get_track_export_path(path, track_path, options) stream.write('#EXTINF:{length},{title}\n{path}\n'.format( length=length, title=' - '.join(title), path=track_path )) def import_from_file(self, path): """ Import a playlist from a given path :param path: the source path :type path: string :returns: the playlist :rtype: :class:`Playlist` """ playlist = Playlist(name=self.name_from_path(path)) extinf = {} logger.debug('Importing M3U playlist: %s' % path) with closing(gio.DataInputStream(gio.File(path).read())) as stream: while True: line = stream.read_line() if not line: break line = line.strip() if not line: continue if line.upper().startswith('#PLAYLIST: '): playlist.name = line[len('#PLAYLIST: '):] elif line.startswith('#EXTINF:'): extinf_line = line[len('#EXTINF:'):] parts = extinf_line.split(',', 1) length = 0 if len(parts) > 1 and int(parts[0]) > 0: length = int(float(parts[0])) extinf['__length'] = length parts = parts[-1].rsplit(' - ', 1) extinf['title'] = parts[-1] if len(parts) > 1: extinf['artist'] = parts[0] elif line.startswith('#'): continue else: track = trax.Track(self.get_track_import_path(path, line)) if extinf: for tag, value in extinf.iteritems(): if track.get_tag_raw(tag) is None: track.set_tag_raw(tag, value) playlist.append(track) extinf = {} return playlist providers.register('playlist-format-converter', M3UConverter()) class PLSConverter(FormatConverter): """ Import from and export to PLS format """ title = _('PLS Playlist') content_types = ['audio/x-scpls'] def __init__(self): FormatConverter.__init__(self, 'pls') def export_to_file(self, playlist, path, options=None): """ Export a playlist to a given path :param playlist: the playlist :type playlist: :class:`Playlist` :param path: the target path :type path: string :param options: exporting options :type options: :class:`PlaylistExportOptions` """ from ConfigParser import RawConfigParser pls_playlist = RawConfigParser() pls_playlist.optionxform = str # Make case sensitive pls_playlist.add_section('playlist') pls_playlist.set('playlist', 'NumberOfEntries', len(playlist)) for index, track in enumerate(playlist): position = index + 1 title = [track.get_tag_display('title', join=True), track.get_tag_display('artist', join=True)] length = max(-1, int(round(float(track.get_tag_raw('__length') or -1)))) track_path = track.get_loc_for_io() track_path = self.get_track_export_path(path, track_path, options) pls_playlist.set('playlist', 'File%d' % position, track_path) pls_playlist.set('playlist', 'Title%d' % position, ' - '.join(title)) pls_playlist.set('playlist', 'Length%d' % position, length) pls_playlist.set('playlist', 'Version', 2) with closing(gio.File(path).replace('', False)) as stream: pls_playlist.write(stream) def import_from_file(self, path): """ Import a playlist from a given path :param path: the source path :type path: string :returns: the playlist :rtype: :class:`Playlist` """ from ConfigParser import ( RawConfigParser, MissingSectionHeaderError, NoOptionError ) pls_playlist = RawConfigParser() gfile = gio.File(path) logger.debug('Importing PLS playlist: %s' % path) try: with closing(gio.DataInputStream(gfile.read())) as stream: # RawConfigParser.readfp() requires fp.readline() stream.readline = stream.read_line pls_playlist.readfp(stream) except MissingSectionHeaderError: # Most likely version 1, thus only a list of URIs playlist = Playlist(self.name_from_path(path)) with closing(gio.DataInputStream(gfile.read())) as stream: while True: line = stream.read_line() if not line: break line = line.strip() if not line: continue track = trax.Track(self.get_track_import_path(path, line)) if track.get_tag_raw('title') is None: track.set_tag_raw('title', common.sanitize_url( self.name_from_path(line))) playlist.append(track) return playlist if not pls_playlist.has_section('playlist'): raise InvalidPlaylistTypeError( _('Invalid format for %s.') % self.title) if not pls_playlist.has_option('playlist', 'version'): logger.warning('No PLS version specified, ' 'assuming 2. [%s]' % path) pls_playlist.set('playlist', 'version', 2) version = pls_playlist.getint('playlist', 'version') if version != 2: raise InvalidPlaylistTypeError( _('Unsupported version %(version)s for %(type)s') % { 'version': version, 'type': self.title}) if not pls_playlist.has_option('playlist', 'numberofentries'): raise InvalidPlaylistTypeError( _('Invalid format for %s.') % self.title) # PLS playlists store no name, thus retrieve from path playlist = Playlist(common.sanitize_url(self.name_from_path(path))) numberofentries = pls_playlist.getint('playlist', 'numberofentries') for position in xrange(1, numberofentries + 1): try: uri = pls_playlist.get('playlist', 'file%d' % position) except NoOptionError: continue track = trax.Track(self.get_track_import_path(path, uri)) title = artist = None length = 0 try: title = pls_playlist.get('playlist', 'title%d' % position) except NoOptionError: title = common.sanitize_url(self.name_from_path(uri)) else: title = title.split(' - ', 1) if len(title) > 1: # "Artist - Title" artist, title = title else: title = title[0] try: length = pls_playlist.getint('playlist', 'length%d' % position) except NoOptionError: pass if track.get_tag_raw('title') is None and title: track.set_tag_raw('title', title) if track.get_tag_raw('artist') is None and artist: track.get_tag_raw('artist', artist) if track.get_tag_raw('__length') is None: track.set_tag_raw('__length', max(0, length)) playlist.append(track) return playlist providers.register('playlist-format-converter', PLSConverter()) class ASXConverter(FormatConverter): """ Import from and export to ASX format """ title = _('ASX Playlist') content_types = ['video/x-ms-asf', 'audio/x-ms-asx', 'audio/x-ms-wax', 'video/x-ms-wvx'] file_extensions = ['asx', 'wax', 'wvx'] def __init__(self): FormatConverter.__init__(self, 'asx') def export_to_file(self, playlist, path, options=None): """ Export a playlist to a given path :param playlist: the playlist :type playlist: :class:`Playlist` :param path: the target path :type path: string :param options: exporting options :type options: :class:`PlaylistExportOptions` """ from xml.sax.saxutils import escape with closing(gio.File(path).replace('', False)) as stream: stream.write('\n') stream.write(' %s\n' % escape(playlist.name)) for track in playlist: stream.write(' \n') title = track.get_tag_raw('title', join=True) artist = track.get_tag_raw('artist', join=True) if title: stream.write(' %s\n' % escape(title)) if artist: stream.write(' %s\n' % escape(artist)) track_path = track.get_loc_for_io() track_path = self.get_track_export_path(path, track_path, options) stream.write(' \n' % track_path) stream.write(' \n') stream.write('') def import_from_file(self, path): """ Import a playlist from a given path :param path: the source path :type path: string :returns: the playlist :rtype: :class:`Playlist` """ from xml.etree.cElementTree import XMLParser playlist = Playlist(self.name_from_path(path)) logger.debug('Importing ASX playlist: %s' % path) with closing(gio.DataInputStream(gio.File(path).read())) as stream: parser = XMLParser(target=self.ASXPlaylistParser()) parser.feed(stream.read()) try: playlistdata = parser.close() except: pass else: if playlistdata['name']: playlist.name = playlistdata['name'] for trackdata in playlistdata['tracks']: track = trax.Track(self.get_track_import_path(path, trackdata['uri'])) for tag, value in trackdata['tags'].iteritems(): if not track.get_tag_raw(tag) and value: track.set_tag_raw(tag, value) playlist.append(track) return playlist class ASXPlaylistParser(object): """ Target for xml.etree.ElementTree.XMLParser, allows for parsing ASX playlists case-insensitive """ def __init__(self): from collections import deque self._stack = deque() self._playlistdata = { 'name': None, 'tracks': [] } self._trackuri = None self._trackdata = {} def start(self, tag, attributes): """ Checks the ASX version and stores the URI of the current track """ depth = len(self._stack) # Convert both tag and attributes to lowercase tag = tag.lower() attributes = dict((k.lower(), v) for k, v in attributes.iteritems()) if depth > 0: if depth == 2 and self._stack[-1] == 'entry' and tag == 'ref': self._trackuri = attributes.get('href', None) # Check root element and version elif tag != 'asx' or attributes.get('version', None) != '3.0': return self._stack.append(tag) def data(self, data): """ Stores track data and playlist name """ depth = len(self._stack) if depth > 0 and data: element = self._stack[-1] if depth == 3: # Only consider title and author for now if element == 'title': self._trackdata['title'] = data elif element == 'author': self._trackdata['artist'] = data elif depth == 2 and element == 'title': self._playlistdata['name'] = data def end(self, tag): """ Appends track data """ try: self._stack.pop() except IndexError: # Invalid playlist pass else: if tag.lower() == 'entry': # Only add track data if we have at least an URI if self._trackuri: self._playlistdata['tracks'].append({ 'uri': self._trackuri, 'tags': self._trackdata.copy() }) self._trackuri = None self._trackdata.clear() def close(self): """ Returns the playlist data including data of all successfully read tracks :rtype: dict """ return self._playlistdata providers.register('playlist-format-converter', ASXConverter()) class XSPFConverter(FormatConverter): """ Import from and export to XSPF format """ title = _('XSPF Playlist') content_types = ['application/xspf+xml'] def __init__(self): FormatConverter.__init__(self, 'xspf') # TODO: support image tag for CoverManager self.tags = { 'title': 'title', 'creator': 'artist', 'album': 'album', 'trackNum': 'tracknumber' } def export_to_file(self, playlist, path, options=None): """ Export a playlist to a given path :param playlist: the playlist :type playlist: :class:`Playlist` :param path: the target path :type path: string :param options: exporting options :type options: :class:`PlaylistExportOptions` """ from xml.sax.saxutils import escape with closing(gio.File(path).replace('', False)) as stream: stream.write('\n') stream.write('\n') if playlist.name: stream.write(' %s\n' % escape(playlist.name)) stream.write(' \n') for track in playlist: stream.write(' \n') for element, tag in self.tags.iteritems(): if not track.get_tag_raw(tag): continue stream.write(' <%s>%s\n' % ( element, escape(track.get_tag_raw(tag, join=True)), element )) track_path = track.get_loc_for_io() track_path = self.get_track_export_path(path, track_path, options) stream.write(' %s\n' % escape(track_path)) stream.write(' \n') stream.write(' \n') stream.write('\n') def import_from_file(self, path): """ Import a playlist from a given path :param path: the source path :type path: string :returns: the playlist :rtype: :class:`Playlist` """ #TODO: support content resolution import xml.etree.cElementTree as ETree playlist = Playlist(name=self.name_from_path(path)) logger.debug('Importing XSPF playlist: %s' % path) with closing(gio.DataInputStream(gio.File(path).read())) as stream: tree = ETree.ElementTree(file=stream) ns = "{http://xspf.org/ns/0/}" nodes = tree.find("%strackList" % ns).findall("%strack" % ns) titlenode = tree.find("%stitle" % ns) if titlenode is not None: playlist.name = titlenode.text.strip() for n in nodes: location = n.find("%slocation" % ns).text.strip() track = trax.Track(self.get_track_import_path(path, location)) for element, tag in self.tags.iteritems(): try: track.set_tag_raw(tag, n.find("%s%s" % (ns, element)).text.strip()) except: pass playlist.append(track) return playlist providers.register('playlist-format-converter', XSPFConverter()) class Playlist(object): # TODO: how do we document events in sphinx? """ Basic class for handling a list of tracks EVENTS: (all events are synchronous) * playlist_tracks_added * fired: after tracks are added * data: list of tuples of (index, track) * playlist_tracks_removed * fired: after tracks are removed * data: list of tuples of (index, track) * playlist_current_position_changed * playlist_shuffle_mode_changed * playlist_random_mode_changed * playlist_dynamic_mode_changed """ #: Valid shuffle modes (list of string) shuffle_modes = ['disabled', 'track', 'album'] #: Titles of the valid shuffle modes (list of string) shuffle_mode_names = [_('Shuffle _Off'), _('Shuffle _Tracks'), _('Shuffle _Albums')] #: Valid repeat modes (list of string) repeat_modes = ['disabled', 'all', 'track'] #: Titles of the valid repeat modes (list of string) repeat_mode_names = [_('Repeat _Off'), _('Repeat _All'), _('Repeat O_ne')] #: Valid dynamic modes dynamic_modes = ['disabled', 'enabled'] #: Titles of the valid dynamic modes dynamic_mode_names = [_('Dynamic _Off'), _('Dynamic by Similar _Artists')] save_attrs = ['shuffle_mode', 'repeat_mode', 'dynamic_mode', 'current_position', 'name'] __playlist_format_version = [2, 0] def __init__(self, name, initial_tracks=[]): """ :param name: the initial name of the playlist :type name: string :param initial_tracks: the tracks which shall populate the playlist initially :type initial_tracks: list of :class:`xl.trax.Track` """ self.__tracks = MetadataList() for track in initial_tracks: if not isinstance(track, trax.Track): raise ValueError, "Need trax.Track object, got %s" % repr(type(track)) self.__tracks.append(track) self.__shuffle_mode = self.shuffle_modes[0] self.__repeat_mode = self.repeat_modes[0] self.__dynamic_mode = self.dynamic_modes[0] # dirty: any change that would alter the on-disk # representation should set this # needs_save: changes to list content should set this. # Determines when the 'unsaved' indicator is shown to the user. self.__dirty = False self.__needs_save = False self.__name = name self.__next_data = None self.__current_position = -1 self.__spat_position = -1 self.__shuffle_history_counter = 1 # start positive so we can # just do an if directly on the value event.add_callback(self.on_playback_track_start, "playback_track_start") ### playlist-specific API ### def _set_name(self, name): self.__name = name self.__needs_save = self.__dirty = True event.log_event("playlist_name_changed", self, name) #: The playlist name (string) name = property(lambda self: self.__name, _set_name) #: Whether the playlist was changed or not (boolean) dirty = property(lambda self: self.__dirty) def clear(self): """ Removes all contained tracks """ del self[:] def get_current_position(self): """ Retrieves the current position within the playlist :returns: the position :rtype: int """ return self.__current_position def set_current_position(self, position): """ Sets the current position within the playlist :param position: the new position :type position: int """ self.__next_data = None oldposition = self.__current_position if oldposition == position: return if position != -1: if position >= len(self.__tracks): raise IndexError, "Cannot set position past end of playlist" self.__tracks.set_meta_key(position, "playlist_current_position", True) self.__current_position = position if oldposition != -1: try: self.__tracks.del_meta_key(oldposition, "playlist_current_position") except KeyError: pass self.__dirty = True event.log_event("playlist_current_position_changed", self, (position, oldposition)) #: The position within the playlist (int) current_position = property(get_current_position, set_current_position) def get_spat_position(self): """ Retrieves the current position within the playlist after which progressing shall be stopped :returns: the position :rtype: int """ return self.__spat_position def set_spat_position(self, position): """ Sets the current position within the playlist after which progressing shall be stopped :param position: the new position :type position: int """ self.__next_data = None oldposition = self.spat_position self.__tracks.set_meta_key(position, "playlist_spat_position", True) self.__spat_position = position if oldposition != -1: try: self.__tracks.del_meta_key(oldposition, "playlist_spat_position") except KeyError: pass self.__dirty = True event.log_event("playlist_spat_position_changed", self, (position, oldposition)) #: The position within the playlist after which to stop progressing (int) spat_position = property(get_spat_position, set_spat_position) def get_current(self): """ Retrieves the track at the current position :returns: the track :rtype: :class:`xl.trax.Track` or None """ if self.current_position == -1: return None return self.__tracks[self.current_position] current = property(get_current) def get_shuffle_history(self): """ Retrieves the history of played tracks from a shuffle run :returns: the tracks :rtype: list """ return [ (i, self.__tracks[i]) for i in range(len(self)) if \ self.__tracks.get_meta_key(i, 'playlist_shuffle_history') ] def clear_shuffle_history(self): """ Clear the history of played tracks from a shuffle run """ for i in xrange(len(self)): try: self.__tracks.del_meta_key(i, "playlist_shuffle_history") except: pass @common.threaded def __fetch_dynamic_tracks(self): dynamic.MANAGER.populate_playlist(self) def __next_random_track(self, current_position, mode="track"): """ Returns a valid next track if shuffle is activated based on random_mode """ if mode == "album": # TODO: we really need proper album-level operations in # xl.trax for this try: # Try and get the next track on the album # NB If the user starts the playlist from the middle # of the album some tracks of the album remain off the # tracks_history, and the album can be selected again # randomly from its first track if current_position == -1: raise IndexError curr = self[current_position] t = [ x for i, x in enumerate(self) \ if x.get_tag_raw('album') == curr.get_tag_raw('album') \ and i > current_position ] t = trax.sort_tracks(['discnumber', 'tracknumber'], t) return self.__tracks.index(t[0]), t[0] except IndexError: #Pick a new album hist = set(self.get_shuffle_history()) albums = set() for i, x in enumerate(self): if (i, x) in hist: continue alb = x.get_tag_raw('album') if alb: albums.add(tuple(alb)) if not albums: return -1, None album = list(random.choice(list(albums))) t = [ x for x in self if x.get_tag_raw('album') == album ] t = trax.sort_tracks(['tracknumber'], t) return self.__tracks.index(t[0]), t[0] else: hist = set([ i for i, tr in self.get_shuffle_history() ]) try: return random.choice([ (i, self.__tracks[i]) for i, tr in enumerate(self.__tracks) if i not in hist]) except IndexError: # no more tracks return -1, None def __get_next(self, current_position): # don't recalculate if self.__next_data is not None: return self.__next_data[2] repeat_mode = self.repeat_mode shuffle_mode = self.shuffle_mode if current_position == self.spat_position and current_position != -1: self.__next_data = (-1, None, None) return None if repeat_mode == 'track': self.__next_data = (None, None, self.current) return self.current next_index = -1 if shuffle_mode != 'disabled': if self.current is not None: self.__tracks.set_meta_key(current_position, "playlist_shuffle_history", self.__shuffle_history_counter) self.__shuffle_history_counter += 1 next_index, next = self.__next_random_track(current_position, shuffle_mode) if next is not None: self.__next_data = (None, next_index) else: self.clear_shuffle_history() else: try: next = self[current_position+1] next_index = current_position + 1 except IndexError: next = None if next is None: if repeat_mode == 'all' and len(self) > 0: return self.__get_next(-1) self.__next_data = (None, next_index, next) return next def get_next(self): ''' Retrieves the next track that will be played. Does not actually set the position. When you call next(), it should return the same track, even in random shuffle modes. This exists to support retrieving a track before it actually needs to be played, such as for pre-buffering. :returns: the next track to be played :rtype: :class:`xl.trax.Track` or None ''' return self.__get_next(self.current_position) def next(self): """ Progresses to the next track within the playlist and takes shuffle and repeat modes into account :returns: the new current track :rtype: :class:`xl.trax.Track` or None """ if not self.__next_data: self.__get_next(self.current_position) spat, index, next = self.__next_data if spat is not None: self.spat_position = -1 return None elif index is not None: try: self.current_position = index except IndexError: self.current_position = -1 else: self.__next_data = None return self.current def prev(self): """ Progresses to the previous track within the playlist and takes shuffle and repeat modes into account :returns: the new current track :rtype: :class:`xl.trax.Track` or None """ repeat_mode = self.repeat_mode shuffle_mode = self.shuffle_mode if repeat_mode == 'track': return self.current if shuffle_mode != 'disabled': try: prev_index, prev = max(self.get_shuffle_history()) except IndexError: return self.get_current() self.__tracks.del_meta_key(prev_index, 'playlist_shuffle_history') self.current_position = prev_index else: position = self.current_position - 1 if position < 0: if repeat_mode == 'all': position = len(self) - 1 else: position = 0 if len(self) else -1 self.current_position = position return self.get_current() ### track advance modes ### # This code may look a little overkill, but it's this way to # maximize forwards-compatibility. get_ methods will not overwrite # currently-set modes which may be from a future version, while set_ # methods explicitly disallow modes not supported in this version. # This ensures that 1) saved modes are never clobbered unless a # known mode is to be set, and 2) the values returned in _mode will # always be supported in the running version. def __get_mode(self, modename): mode = getattr(self, "_Playlist__%s_mode"%modename) modes = getattr(self, "%s_modes"%modename) if mode in modes: return mode else: return modes[0] def __set_mode(self, modename, mode): modes = getattr(self, "%s_modes"%modename) if mode not in modes: raise TypeError, "Mode %s is invalid" % mode else: self.__dirty = True setattr(self, "_Playlist__%s_mode"%modename, mode) event.log_event("playlist_%s_mode_changed"%modename, self, mode) def get_shuffle_mode(self): """ Retrieves the current shuffle mode :returns: the shuffle mode :rtype: string """ return self.__get_mode("shuffle") def set_shuffle_mode(self, mode): """ Sets the current shuffle mode :param mode: the new shuffle mode :type mode: string """ self.__set_mode("shuffle", mode) if mode == 'disabled': self.clear_shuffle_history() #: The current shuffle mode (string) shuffle_mode = property(get_shuffle_mode, set_shuffle_mode) def get_repeat_mode(self): """ Retrieves the current repeat mode :returns: the repeat mode :rtype: string """ return self.__get_mode('repeat') def set_repeat_mode(self, mode): """ Sets the current repeat mode :param mode: the new repeat mode :type mode: string """ self.__set_mode("repeat", mode) #: The current repeat mode (string) repeat_mode = property(get_repeat_mode, set_repeat_mode) def get_dynamic_mode(self): """ Retrieves the current dynamic mode :returns: the dynamic mode :rtype: string """ return self.__get_mode("dynamic") def set_dynamic_mode(self, mode): """ Sets the current dynamic mode :param mode: the new dynamic mode :type mode: string """ self.__set_mode("dynamic", mode) #: The current dynamic mode (string) dynamic_mode = property(get_dynamic_mode, set_dynamic_mode) def randomize(self, positions=None): """ Randomizes the content of the playlist contrary to shuffle which affects only the progressing order By default all tracks in the playlist are randomized, but a list of positions can be passed. The tracks on these positions will be randomized, all other tracks will keep their positions. :param positions: list of track positions to randomize :type positions: iterable """ # Turn 2 lists into a list of tuples tracks = zip(self.__tracks, self.__tracks.metadata) if positions: # For 2 items, simple swapping is most reasonable if len(positions) == 2: tracks[positions[0]], tracks[positions[1]] = \ tracks[positions[1]], tracks[positions[0]] else: # Extract items and shuffle them shuffle_tracks = [t for i, t in enumerate(tracks) if i in positions] random.shuffle(shuffle_tracks) # Put shuffled items back for position in positions: tracks[position] = shuffle_tracks.pop() else: random.shuffle(tracks) # Turn list of tuples into 2 tuples self[:] = MetadataList(*zip(*tracks)) def sort(self, tags, reverse=False): """ Sorts the content of the playlist :param tags: tags to sort by :type tags: list of strings :param reverse: whether the sorting shall be reversed :type reverse: boolean """ data = zip(self.__tracks, self.__tracks.metadata) data = trax.sort_tracks(tags, data, trackfunc=lambda tr: tr[0], reverse=reverse) l = MetadataList() l.extend([x[0] for x in data]) l.metadata = [x[1] for x in data] self[:] = l # TODO[0.4?]: drop our custom disk playlist format in favor of an # extended XSPF playlist (using xml namespaces?). # TODO: add timeout saving support. 5-10 seconds after last change, # perhaps? def save_to_location(self, location): """ Writes the content of the playlist to a given location :param location: the location to save to :type location: string """ if os.path.exists(location): f = open(location + ".new", "w") else: f = open(location, "w") for track in self.__tracks: buffer = track.get_loc_for_io() # write track metadata meta = {} items = ('artist', 'album', 'tracknumber', 'title', 'genre', 'date') for item in items: value = track.get_tag_raw(item) if value is not None: meta[item] = value[0] buffer += '\t%s\n' % urllib.urlencode(meta) try: f.write(buffer.encode('utf-8')) except UnicodeDecodeError: continue f.write("EOF\n") for item in self.save_attrs: val = getattr(self, item) try: strn = settings.MANAGER._val_to_str(val) except ValueError: strn = "" f.write("%s=%s\n"%(item,strn)) f.close() if os.path.exists(location + ".new"): os.remove(location) os.rename(location + ".new", location) self.__needs_save = self.__dirty = False def load_from_location(self, location): """ Loads the content of the playlist from a given location :param location: the location to load from :type location: string """ # note - this is not guaranteed to fire events when it sets # attributes. It is intended ONLY for initial setup, not for # reloading a playlist inline. f = None for loc in [location, location+".new"]: try: f = open(loc, 'r') break except: pass if not f: return locs = [] while True: line = f.readline() if line == "EOF\n" or line == "": break locs.append(line.strip()) items = {} while True: line = f.readline() if line == "": break try: item, strn = line[:-1].split("=",1) except ValueError: continue # Skip erroneous lines val = settings.MANAGER._str_to_val(strn) items[item] = val ver = items.get("__playlist_format_version", [1]) if ver[0] == 1: if items.get("repeat_mode") == "playlist": items['repeat_mode'] = "all" elif ver[0] > self.__playlist_format_version[0]: raise IOError, "Cannot load playlist, unknown format" elif ver > self.__playlist_format_version: logger.warning("Playlist created on a newer Exaile version, some attributes may not be handled.") f.close() trs = [] for loc in locs: meta = None if loc.find('\t') > -1: splitted = loc.split('\t') loc = "\t".join(splitted[:-1]) meta = splitted[-1] track = None track = trax.Track(uri=loc) # readd meta if not track: continue if not track.is_local() and meta is not None: meta = cgi.parse_qs(meta) for k, v in meta.iteritems(): track.set_tag_raw(k, v[0], notify_changed=False) trs.append(track) self.__tracks[:] = trs for item, val in items.iteritems(): if item in self.save_attrs: try: setattr(self, item, val) except TypeError: # don't bail if we try to set an invalid mode logger.debug("Got a TypeError when trying to set attribute %s to %s during playlist restore." % (item, val)) def reverse(self): # reverses current view pass ### list-like API methods ### # parts of this section are taken from # http://code.activestate.com/recipes/440656-list-mixin/ def __len__(self): return len(self.__tracks) def __contains__(self, track): return track in self.__tracks def __tuple_from_slice(self, i): """ Get (start, end, step) tuple from slice object. """ (start, end, step) = i.indices(len(self)) if i.step == None: step = 1 return (start, end, step) def __adjust_current_pos(self, oldpos, removed, added): newpos = oldpos for i, tr in removed: if i <= oldpos: newpos -= 1 for i, tr in added: if i <= newpos: newpos += 1 self.current_position = newpos def __getitem__(self, i): return self.__tracks.__getitem__(i) def __setitem__(self, i, value): oldtracks = self.__getitem__(i) removed = MetadataList() added = MetadataList() oldpos = self.current_position if isinstance(i, slice): for x in value: if not isinstance(x, trax.Track): raise ValueError, "Need trax.Track object, got %s" % repr(type(x)) (start, end, step) = self.__tuple_from_slice(i) if isinstance(value, MetadataList): metadata = value.metadata else: metadata = [None] * len(value) if step != 1: if len(value) != len(oldtracks): raise ValueError, "Extended slice assignment must match sizes." self.__tracks.__setitem__(i, value) removed = MetadataList(zip(range(start, end, step), oldtracks), oldtracks.metadata) if step == 1: end = start + len(value) added = MetadataList(zip(range(start, end, step), value), metadata) else: if not isinstance(value, trax.Track): raise ValueError, "Need trax.Track object, got %s" % repr(type(value)) self.__tracks[i] = value removed = [(i, oldtracks)] added = [(i, value)] self.on_tracks_changed() if removed: event.log_event('playlist_tracks_removed', self, removed) if added: event.log_event('playlist_tracks_added', self, added) self.__adjust_current_pos(oldpos, removed, added) self.__needs_save = self.__dirty = True def __delitem__(self, i): if isinstance(i, slice): (start, end, step) = self.__tuple_from_slice(i) oldtracks = self.__getitem__(i) oldpos = self.current_position self.__tracks.__delitem__(i) removed = MetadataList() if isinstance(i, slice): removed = MetadataList(zip(xrange(start, end, step), oldtracks), oldtracks.metadata) else: removed = [(i, oldtracks)] self.on_tracks_changed() event.log_event('playlist_tracks_removed', self, removed) self.__adjust_current_pos(oldpos, removed, []) self.__needs_save = self.__dirty = True def append(self, other): """ Appends a single track to the playlist :param other: list of :class:`xl.trax.Track` """ self[len(self):len(self)] = [other] def extend(self, other): """ Extends the playlist by another playlist :param other: list of :class:`xl.trax.Track` """ self[len(self):len(self)] = other def count(self, other): """ Returns the count of contained tracks :returns: the count :rtype: int """ return self.__tracks.count(other) def index(self, item, start=0, end=None): """ Retrieves the index of a track within the playlist :returns: the index :rtype: int """ if end is None: return self.__tracks.index(item, start) else: return self.__tracks.index(item, start, end) def pop(self, i=-1): """ Pops a track from the playlist :param i: the index :type i: int :returns: the track :rtype: :class:`xl.trax.Track` """ item = self[i] del self[i] return item def on_playback_track_start(self, event_type, player, track): if player.queue is not None and player.queue.current_playlist == self: if self.dynamic_mode != 'disabled': self.__fetch_dynamic_tracks() def on_tracks_changed(self, *args): for idx in xrange(len(self.__tracks)): if self.__tracks.get_meta_key(idx, "playlist_current_position"): self.__current_position = idx break else: self.__current_position = -1 for idx in xrange(len(self.__tracks)): if self.__tracks.get_meta_key(idx, "playlist_spat_position"): self.__spat_position = idx break else: self.__spat_position = -1 class SmartPlaylist(object): """ Represents a Smart Playlist. This will query a collection object using a set of parameters Simple usage: >>> import xl.collection >>> col = xl.collection.Collection("Test Collection") >>> col.add_library(xl.collection.Library("./tests/data")) >>> col.rescan_libraries() >>> sp = SmartPlaylist(collection=col) >>> sp.add_param("artist", "==", "Delerium") >>> p = sp.get_playlist() >>> p[1]['album'][0] u'Chimera' >>> """ def __init__(self, name="", collection=None): """ Sets up a smart playlist @param collection: a reference to a TrackDB object. """ self.search_params = [] self.custom_params = [] self.collection = collection self.or_match = False self.track_count = -1 self.random_sort = False self.name = name def set_location(self, location): pass def get_name(self): return self.name def set_name(self, name): self.name = name def set_collection(self, collection): """ change the collection backing this playlist collection: the collection to use [Collection] """ self.collection = collection def set_random_sort(self, sort): """ If True, the tracks added during update() will be randomized @param sort: bool """ self.random_sort = sort self._dirty = True def get_random_sort(self): """ Returns True if this playlist will randomly be sorted """ return self.random_sort def set_return_limit(self, count): """ Sets the max number of tracks to return. @param count: number of tracks to return. Set to -1 to return all matched """ self.track_count = count self._dirty = True def get_return_limit(self): """ Returns the track count setting """ return self.track_count def set_or_match(self, value): """ Set to True to make this an or match: match any of the parameters value: True to match any, False to match all params """ self.or_match = value self._dirty = True def get_or_match(self): """ Return if this is an any or and playlist """ return self.or_match def add_param(self, field, op, value, index=-1): """ Adds a search parameter. @param field: The field to operate on. [string] @param op: The operator. Valid operators are: >,<,>=,<=,=,!=,==,!==,>< (between) [string] @param value: The value to match against [string] @param index: Where to insert the parameter in the search order. -1 to append [int] """ if index: self.search_params.insert(index, [field, op, value]) else: self.search_params.append([field, op, value]) self._dirty = True def set_custom_param(self, param, index=-1): """ Adds an arbitrary search parameter, exposing the full power of the new search system to the user. param: the search query to use. [string] index: the index to insert at. default is append [int] """ if index: self.search_params.insert(index, param) else: self.search_params.append(param) self._dirty = True def remove_param(self, index): """ Removes a parameter at the speficied index index: the index of the parameter to remove """ self._dirty = True return self.search_params.pop(index) def get_playlist(self, collection=None): """ Generates a playlist by querying the collection @param collection: the collection to search (leave None to search internal ref) """ if not collection: collection = self.collection if not collection: #if there wasnt one set we might not have one return search_string = self._create_search_string() matcher = trax.TracksMatcher(search_string, case_sensitive=False) trs = [ t.track for t in trax.search_tracks(collection, [matcher]) ] if self.random_sort: random.shuffle(trs) else: sort_field = ('artist', 'date', 'album', 'discnumber', 'tracknumber', 'title') trs = trax.sort_tracks(sort_field, trs) if self.track_count > 0 and len(trs) > self.track_count: trs=trs[:self.track_count] pl = Playlist(name=self.name) pl.extend(trs) return pl def _create_search_string(self): """ Creates a search string based on the internal params """ params = [] # parameter list maximum = settings.get_option('rating/maximum', 5) durations = { _('seconds'): lambda value: timedelta(seconds=value), _('minutes'): lambda value: timedelta(minutes=value), _('hours'): lambda value: timedelta(hours=value), _('days'): lambda value: timedelta(days=value), _('weeks'): lambda value: timedelta(weeks=value), } for param in self.search_params: if type(param) == str: params += [param] continue (field, op, value) = param s = "" if field == '__rating': value = float((100.0*value)/maximum) elif field in ('__date_added', '__last_played'): duration, unit = value delta = durations[unit](duration) point = datetime.now() - delta value = time.mktime(point.timetuple()) if op == ">=" or op == "<=": s += '( %(field)s%(op)s%(value)s ' \ '| %(field)s==%(value)s )' % \ { 'field': field, 'value': value, 'op': op[0] } elif op == "!=" or op == "!==" or op == "!~": s += '! %(field)s%(op)s"%(value)s"' % \ { 'field': field, 'value': value, 'op': op[1:] } elif op == "><": s+= '( %(field)s>%(value1)s ' \ '%(field)s<%(value2)s )' % \ { 'field': field, 'value1': value[0], 'value2': value[1] } elif op == '': # NOT NULL s += '! %(field)s=="__null__"' % \ { 'field': field } elif op == '<==>': # IS NULL s += '%(field)s=="__null__"' % \ { 'field': field } else: s += '%(field)s%(op)s"%(value)s"' % \ { 'field': field, 'value': value, 'op': op } params.append(s) if self.or_match: return ' | '.join(params) else: return ' '.join(params) def save_to_location(self, location): pdata = {} for item in ['search_params', 'custom_params', 'or_match', 'track_count', 'random_sort', 'name']: pdata[item] = getattr(self, item) f = open(location, 'wb') pickle.dump(pdata, f) f.close() def load_from_location(self, location): try: f = open(location, 'rb') pdata = pickle.load(f) f.close() except: return for item in pdata: if hasattr(self, item): setattr(self, item, pdata[item]) class PlaylistManager(object): """ Manages saving and loading of playlists """ def __init__(self, playlist_dir='playlists', playlist_class=Playlist): """ Initializes the playlist manager @param playlist_dir: the data dir to save playlists to @param playlist_class: the playlist class to use """ self.playlist_class = playlist_class self.playlist_dir = os.path.join(xdg.get_data_dirs()[0],playlist_dir) if not os.path.exists(self.playlist_dir): os.makedirs(self.playlist_dir) self.order_file = os.path.join(self.playlist_dir, 'order_file') self.playlists = [] self.load_names() def has_playlist_name(self, playlist_name): """ Returns true if the manager has a playlist with the same name """ return playlist_name in self.playlists def save_playlist(self, pl, overwrite=False): """ Saves a playlist @param pl: the playlist @param overwrite: Set to [True] if you wish to overwrite a playlist should it happen to already exist """ name = pl.name if overwrite or name not in self.playlists: pl.save_to_location(os.path.join(self.playlist_dir, encode_filename(name))) if not name in self.playlists: self.playlists.append(name) #self.playlists.sort() self.save_order() else: raise PlaylistExists event.log_event('playlist_added', self, name) def remove_playlist(self, name): """ Removes a playlist from the manager, also physically deletes its @param name: the name of the playlist to remove """ if name in self.playlists: try: os.remove(os.path.join(self.playlist_dir, encode_filename(name))) except OSError: pass self.playlists.remove(name) event.log_event('playlist_removed', self, name) def rename_playlist(self, playlist, new_name): """ Renames the playlist to new_name """ old_name = playlist.name if old_name in self.playlists: self.remove_playlist(old_name) playlist.name = new_name self.save_playlist(playlist) def load_names(self): """ Loads the names of the playlists from the order file """ # collect the names of all playlists in playlist_dir existing = [] for f in os.listdir(self.playlist_dir): # everything except the order file shold be a playlist, but # check against hidden files since some editors put # temporary stuff in the same dir. if f != os.path.basename(self.order_file) and not f.startswith("."): pl = self.playlist_class(f) pl.load_from_location(os.path.join(self.playlist_dir, f)) existing.append(pl.name) # if order_file exists then use it if os.path.isfile(self.order_file): ordered_playlists = self.load_from_location(self.order_file) self.playlists = [n for n in ordered_playlists if n in existing] else: self.playlists = existing def get_playlist(self, name): """ Gets a playlist by name @param name: the name of the playlist you wish to retrieve """ if name in self.playlists: pl = self.playlist_class(name=name) pl.load_from_location(os.path.join(self.playlist_dir, encode_filename(name))) return pl else: raise ValueError("No such playlist") def list_playlists(self): """ Returns all the contained playlist names """ return self.playlists[:] def move(self, playlist, position, after = True): """ Moves the playlist to where position is """ #Remove the playlist first playlist_index = self.playlists.index(playlist) self.playlists.pop(playlist_index) #insert it now after position position_index = self.playlists.index(position) if after: position_index = position_index + 1 self.playlists.insert(position_index, playlist) def save_order(self): """ Saves the order to the order file """ self.save_to_location(self.order_file) def save_to_location(self, location): """ Saves the names of the playlist to a file that is used to restore their order """ if os.path.exists(location): f = open(location + ".new", "w") else: f = open(location, "w") for playlist in self.playlists: f.write(playlist) f.write('\n') f.write("EOF\n") f.close() if os.path.exists(location + ".new"): os.remove(location) os.rename(location + ".new", location) def load_from_location(self, location): """ Loads the names of the playlist from a file. Their load order is their view order @return: a list of the playlist names """ f = None for loc in [location, location+".new"]: try: f = open(loc, 'r') break except: pass if f is None: return [] playlists = [] while True: line = f.readline() if line == "EOF\n" or line == "": break playlists.append(line.strip()) f.close() return playlists # vim: et sts=4 sw=4 dist/copy/xl/PaxHeaders.26361/version.py0000644000175000017500000000012412233027260016503 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.097046932 exaile-3.3.2/xl/version.py0000644000000000000000000000455512233027260015454 0ustar00rootroot00000000000000# Copyright (C) 2019 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import xdg major = "3.3" minor = "2" extra = "" def get_latest_bzr_revno(directory): """ Get the latest bzr revision number for the branch contained in 'directory'. Returns None if the directory is not a branch or the revision number cannot be found. """ try: import bzrlib.workingtree import bzrlib.errors as errors except ImportError: return None try: wt = bzrlib.workingtree.WorkingTree.open_containing(directory)[0] wt.lock_read() except (errors.NoWorkingTree, errors.NotLocalUrl, errors.NotBranchError, errors.LockContention, errors.ConnectionError, # --> Only happens on lightweight checkout. ): return None revid = wt.last_revision() try: revno = wt.branch.revision_id_to_dotted_revno(revid) except errors.NoSuchRevision: pass finally: wt.unlock() return ".".join(str(n) for n in revno) if xdg.local_hack: revision = get_latest_bzr_revno(xdg.exaile_dir) if revision is not None: extra += "+bzr" + revision __version__ = major + "." + minor + extra dist/copy/xl/PaxHeaders.26361/player0000644000175000017500000000013212233027261015663 xustar000000000000000030 mtime=1382821553.569046947 30 atime=1382821552.793046922 30 ctime=1382821553.569046947 exaile-3.3.2/xl/player/0000755000000000000000000000000012233027261014701 5ustar00rootroot00000000000000dist/copy/xl/player/PaxHeaders.26361/engine_unified.py0000644000175000017500000000012412233027260021262 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.517046945 exaile-3.3.2/xl/player/engine_unified.py0000644000000000000000000004227712233027260020236 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import logging import threading import time import glib import pygst pygst.require('0.10') import gst from xl.nls import gettext as _ from xl import event, settings, common from xl.player import _base, pipe logger = logging.getLogger(__name__) class UnifiedPlayer(_base.ExailePlayer): def __init__(self, name): self.caps = None self.adder = None self.audio_queue = None _base.ExailePlayer.__init__(self, name) self._current_stream = 1 self._timer_id = 0 self.streams = [None, None] def _setup_pipe(self): # have to fix the caps because gst cant deal with having them change. # TODO: make this a preference and/or autodetect optimal based on the # output device - if its a 48000hz-native chip we dont want to send it # 44100hz audio all the time. # Or better yet, fix gst to handle changing caps :D self.caps = gst.Caps( "audio/x-raw-int, " "endianness=(int)1234, " "signed=(boolean)true, " "width=(int)16, " "depth=(int)16, " "rate=(int)44100, " "channels=(int)2" ) self._pipe = gst.Pipeline() self.adder = gst.element_factory_make("adder") self.audio_queue = gst.element_factory_make("queue") self._load_queue_values() self._pipe.add( self.adder, self.audio_queue, self._mainbin ) self.adder.link(self.audio_queue) self.audio_queue.link(self._mainbin) def _load_queue_values(self): # queue defaults to 1 second of audio data, however this # means that there's a 1 second delay between the UI and # the audio! Thus we reset it to 1/10 of a second, which # is small enough to be unnoticeable while still maintaining # a decent buffer. This is done as a setting so users whose # collections are on slower media can increase it to preserve # gapless, at the expense of UI lag. self.audio_queue.set_property("max-size-time", settings.get_option("%s/queue_duration" % self._name, 1000000)) def _on_drained(self, dec, stream): logger.debug("%s drained"%stream.get_name()) #if stream.track != self.current: # return if not settings.get_option("%s/crossfading" % self._name, False): tr = None if settings.get_option("%s/auto_advance" % self._name, True): tr = self.queue.next(autoplay=False) self.unlink_stream(stream) if tr is None: self.stop() else: self.play(tr, user=False) else: self.unlink_stream(stream) def _get_current(self): if self.streams[self._current_stream]: return self.streams[self._current_stream].get_current() def get_position(self): try: return self.streams[self._current_stream].get_position() except AttributeError: return 0 @common.synchronized def play(self, track, user=True): if not track: return # we cant play nothing playing = self.is_playing() logger.debug("%s: Attempting to play \"%s\""% (self._name, track)) next = 1-self._current_stream if self.streams[next]: self.unlink_stream(self.streams[next]) fading = False duration = 0 if user: if settings.get_option("%s/user_fade_enabled" % self._name, False): fading = True duration = settings.get_option("%s/user_fade" % self._name, 1000) else: self.unlink_stream(self.streams[self._current_stream]) else: if settings.get_option("%s/crossfading" % self._name, False): fading = True duration = settings.get_option( "%s/crossfade_duration" % self._name, 3000) else: self.unlink_stream(self.streams[self._current_stream]) if not playing: event.log_event('playback_reconfigure_bins', self, None) self.streams[next] = AudioStream("Stream%s"%(next), self, caps=self.caps) self.streams[next].dec.connect("drained", self._on_drained, self.streams[next]) if not self.link_stream(self.streams[next], track): return False if fading: self.streams[next].set_volume(0) self._pipe.set_state(gst.STATE_PLAYING) self.streams[next]._settle_flag = 1 glib.idle_add(self.streams[next].set_state, gst.STATE_PLAYING) glib.idle_add(self._set_state, self._pipe, gst.STATE_PLAYING) if fading: timeout = int(float(duration)/float(100)) if self.streams[next]: glib.timeout_add(timeout, self._fade_stream, self.streams[next], 1) if self.streams[self._current_stream]: glib.timeout_add(timeout, self._fade_stream, self.streams[self._current_stream], -1, True) if settings.get_option("%s/crossfading" % self._name, False): time = int(track.get_tag_raw("__length")*1000 - duration) glib.timer_id = glib.timeout_add(time, self._start_crossfade) self._current_stream = next if not playing: event.log_event('playback_player_start', self, track) event.log_event('playback_track_start', self, track) return True def _set_state(self, thing, state): ret = thing.set_state(state) if ret == gst.STATE_CHANGE_SUCCESS: return False else: return True def _fade_stream(self, stream, direction, delete=False): current = stream.get_volume() current += direction/100.0 stream.set_volume(current) if delete and current < 0.01: self.unlink_stream(stream) return False return 0.01 <= current <= 1 def _start_crossfade(self, *args): tr = None if settings.get_option("%s/auto_advance" % self._name, True): tr = self.queue.next(autoplay=False) if tr is not None: self.play(tr, user=False) if self._timer_id: glib.source_remove(self._timer_id) if tr is None: self._timer_id = glib.timeout_add(1000 * \ (self.current.get_tag_raw('__length') - self.get_time()), self.stop) return False def _reset_crossfade_timer(self): if self._timer_id: glib.source_remove(self._timer_id) if not self.is_playing(): return if not settings.get_option("%s/crossfading" % self._name, False): return duration = settings.get_option("%s/crossfade_duration" % self._name, 3000) time = int( self.current.get_tag_raw('__length')*1000 - \ (self.get_time()*1000 + duration) ) if time < duration: # start crossfade now, we're late! glib.idle_add(self._start_crossfade) else: self._timer_id = glib.timeout_add(time, self._start_crossfade) def unlink_stream(self, stream): try: current = stream.get_track() pad = stream.get_static_pad("src").get_peer() stream.unlink(self.adder) try: self.adder.release_request_pad(pad) except TypeError: pass glib.idle_add(stream.set_state, gst.STATE_NULL) try: self._pipe.remove(stream) except gst.RemoveError: logger.debug("Failed to remove stream %s"%stream) if stream in self.streams: self.streams[self.streams.index(stream)] = None event.log_event("playback_track_end", self, current) return True except AttributeError: return True except: common.log_exception(log=logger) return False def link_stream(self, stream, track): self._pipe.add(stream) stream.link(self.adder) if not stream.set_track(track): logger.error("Failed to start playing \"%s\""%track) self.stop() return False return True @common.synchronized def _stop(self): """ stop playback """ current = self.current self._pipe.set_state(gst.STATE_NULL) for stream in self.streams: self.unlink_stream(stream) self._reset_crossfade_timer() return current @common.synchronized def _pause(self): self._pipe.set_state(gst.STATE_PAUSED) self._reset_crossfade_timer() @common.synchronized def _unpause(self): # gstreamer does not buffer paused network streams, so if the user # is unpausing a stream, just restart playback if not self.current.is_local(): self._pipe.set_state(gst.STATE_READY) self._pipe.set_state(gst.STATE_PLAYING) self._reset_crossfade_timer() @common.synchronized def seek(self, value): """ seek to the given position in the current stream """ self.streams[self._current_stream].seek(value) self._reset_crossfade_timer() event.log_event('playback_seeked', self, value) class AudioStream(gst.Bin): def __init__(self, name, player, caps=None): gst.Bin.__init__(self, name) self.notify_id = None self.track = None self._playtime_stamp = None self.last_position = 0 self._settle_flag = 0 self._settle_trap = 0 self._seek_event = threading.Event() self.caps = caps self.setup_elems(player) def setup_elems(self, player): self.dec = gst.element_factory_make("uridecodebin") self.audioconv = gst.element_factory_make("audioconvert") self.audioresam = gst.element_factory_make("audioresample") self.provided = pipe.ProviderBin(player, "stream_element") self.capsfilter = gst.element_factory_make("capsfilter") self.capsfilter.set_property("caps", self.caps) self.vol = gst.element_factory_make("volume") self.add(self.dec, self.audioconv, self.audioresam, self.provided, self.capsfilter, self.vol) self.audioconv.link(self.audioresam) self.audioresam.link(self.capsfilter) self.capsfilter.link(self.provided) self.provided.link(self.vol) self.dec.connect('no-more-pads', self._dec_pad_cb, self.audioconv) self.src = gst.GhostPad("src", self.vol.get_static_pad("src")) self.add_pad(self.src) def _dec_pad_cb(self, dec, v): try: dec.link(v) except: pass def set_volume(self, vol): self.vol.set_property("volume", vol) def get_volume(self): return self.vol.get_property("volume") def get_track(self): return self.track def set_track(self, track): if not track: return False if track.is_local(): if not track.exists(): logger.error("File does not exist: %s" % track.get_loc_for_io()) return False self.track = track uri = track.get_loc_for_io() logger.info("Playing %s" % uri) self.reset_playtime_stamp() self.dec.set_property("uri", uri) # TODO: abstract this into generic uri handling via providers if uri.startswith("cdda://"): self.notify_id = self.dec.connect('notify::source', self.__notify_source) return True def __notify_source(self, *args): # this is for handling multiple CD devices properly source = self.dec.get_property('source') device = self.track.get_loc_for_io().split("#")[-1] source.set_property('device', device) self.dec.disconnect(self.notify_id) def update_playtime(self): """ updates the total playtime for the currently playing track """ if self.track and self._playtime_stamp: last = self.track.get_tag_raw('__playtime') if type(last) == str: try: last = int(last) except: last = 0 elif type(last) != int: last = 0 self.track.set_tag_raw('__playtime', last + int(time.time() - self._playtime_stamp) ) self._playtime_stamp = None def reset_playtime_stamp(self): self._playtime_stamp = int(time.time()) def set_state(self, state): logger.debug("Setting state on %s %s"%(self.get_name(), state)) self._settle_flag = 0 if state == gst.STATE_PLAYING: gst.Bin.set_state(self, state) self._settle_state() self.reset_playtime_stamp() elif state == gst.STATE_PAUSED: self.update_playtime() gst.Bin.set_state(self, state) self.reset_playtime_stamp() else: self.update_playtime() gst.Bin.set_state(self, state) def _get_gst_state(self): """ Returns the raw GStreamer state """ return self.get_state(timeout=50*gst.MSECOND)[1] def is_playing(self): """ Returns True if the player is currently playing """ return self._get_gst_state() == gst.STATE_PLAYING def is_paused(self): """ Returns True if the player is currently paused """ return self._get_gst_state() == gst.STATE_PAUSED def get_current(self): if self.is_playing() or self.is_paused(): return self.track else: return None def get_position(self): if self.is_paused(): return self.last_position try: self.last_position = self.dec.query_position(gst.FORMAT_TIME)[0] except gst.QueryError: common.log_exception(logger) self.last_position = 0 return self.last_position def _settle_state(self): self._settle_flag = 1 if self._settle_trap > 10: self._settle_trap = 0 self._settle_flag = 0 logger.debug("Failed to settle state on %s."%self) gst.Bin.set_state(self, gst.STATE_NULL) event.log_event("stream_settled", self, None) return glib.idle_add(self._settle_state_sub) @common.threaded def _settle_state_sub(self): """ hack to reset gstreamer states. TODO: find a cleaner way of doing this. """ if self._settle_flag == 1 and self._get_gst_state() == gst.STATE_PAUSED: self._settle_trap += 1 logger.debug("Settling state on %s."%repr(self)) self.set_state(gst.STATE_PLAYING) else: self._settle_flag = 0 self._settle_trap = 0 event.log_event("stream_settled", self, None) def seek(self, value): """ seek to the given position in the current stream """ if self._settle_flag == 1: event.add_callback(self._seek_delayed, "stream_settled", self) self._seek_event.clear() self._seek_event.wait() value = int(gst.SECOND * value) seekevent = gst.event_new_seek(1.0, gst.FORMAT_TIME, gst.SEEK_FLAG_FLUSH,gst.SEEK_TYPE_SET, value, gst.SEEK_TYPE_NONE, 0) self.vol.send_event(seekevent) # update this in case we're paused self.last_position = value def _seek_delayed(self, type, object, value): """ internal code used if seek is called before the stream is ready """ if self._settle_flag == 1 or object != self: return event.remove_callback(self._seek_delayed, type, object) self._seek_event.set() dist/copy/xl/player/PaxHeaders.26361/queue.py0000644000175000017500000000012412233027260017436 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.569046947 exaile-3.3.2/xl/player/queue.py0000644000000000000000000002672712233027260016414 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import logging try: import cPickle as pickle except ImportError: import pickle from xl import ( common, event, playlist, settings ) logger = logging.getLogger(__name__) class PlayQueue(playlist.Playlist): """ Manages the queue of songs to be played The content of the queue are processed before processing the content of the assigned playlist. When the remove_item_when_played option is enabled, the queue removes items from itself as they are played. When not enabled, the queue acts like a regular playlist, and moves the position as tracks are played. In this mode, when a new track is queued, the position is set to play that track, and play will continue with that track until the queue is exhausted, and then the assigned playlist will be continued. """ def __init__(self, player, name, location=None): playlist.Playlist.__init__(self, name=name) event.add_callback(self._on_option_set, 'queue_option_set') self.__queue_has_tracks_val = False self.__current_playlist = self # this should never be None self.player = player player._set_queue(self) if location is not None: self.load_from_location(location) self._on_option_set(None, settings, 'queue/remove_item_when_played') def _on_option_set(self, evtype, settings, option): if option == 'queue/remove_item_when_played': self.__remove_item_on_playback = settings.get_option(option, True) if len(self): self.__queue_has_tracks = True def set_current_playlist(self, playlist): """ Sets the playlist to be processed in the queue :param playlist: the playlist to process :type playlist: :class:`xl.playlist.Playlist` .. note:: The following :doc:`events ` will be emitted by this method: * `queue_current_playlist_changed`: indicates that the queue playlist has been changed """ if playlist is self.__current_playlist: return elif playlist is None: playlist = self if playlist is self: self.__queue_has_tracks = True self.__current_playlist = playlist event.log_event('queue_current_playlist_changed', self, playlist) #: The playlist currently processed in the queue current_playlist = property(lambda self: self.__current_playlist, set_current_playlist) def get_next(self): ''' Retrieves the next track that will be played. Does not actually set the position. When you call next(), it should return the same track. This exists to support retrieving a track before it actually needs to be played, such as for pre-buffering. :returns: the next track to be played :rtype: :class:`xl.trax.Track` or None ''' if self.__queue_has_tracks and len(self): if self.__remove_item_on_playback: return self[0] else: return playlist.Playlist.get_next(self) elif self.current_playlist is not self: return self.current_playlist.get_next() else: return None def next(self, autoplay=True, track=None): """ Goes to the next track, either in the queue, or in the current playlist. If a track is passed in, that track is played :param autoplay: play the track in addition to returning it :type autoplay: bool :param track: if passed, play this track :type track: :class:`xl.trax.Track` .. note:: The following :doc:`events ` will be emitted by this method: * `playback_playlist_end`: indicates that the end of the queue has been reached """ if track is None: if self.__queue_has_tracks: if not self.__remove_item_on_playback: track = playlist.Playlist.next(self) else: try: track = self.pop(0) except IndexError: pass # reached the end of the internal queue, don't repeat if track is None: self.__queue_has_tracks = False if track is None and self.current_playlist is not self: track = self.current_playlist.next() if autoplay: self.player.play(track) if not track: event.log_event("playback_playlist_end", self, self.current_playlist) return track def prev(self): """ Goes to the previous track """ track = None if self.player.current: if self.player.get_time() < 5: if self.__queue_has_tracks and not self.__remove_item_on_playback: position = self.current_position - 1 if position < 0: position = 0 if len(self) else -1 self.current_position = position track = self.current elif self.current_playlist is not self: track = self.current_playlist.prev() if track is None: track = self.player.current else: track = self.current self.player.play(track) return track def get_current(self): """ Gets the current track :returns: the current track :type: :class:`xl.trax.Track` """ if self.player.current and self.current_position > 0: current = self.player.current else: current = playlist.Playlist.get_current(self) if current == None and self.current_playlist is not self: current = self.current_playlist.get_current() return current def get_current_position(self): if self.__remove_item_on_playback: return 0 else: return playlist.Playlist.get_current_position(self) def set_current_position(self, position): if not self.__remove_item_on_playback: return playlist.Playlist.set_current_position(self, position) def play(self, track=None): """ Starts queue processing with the given track preceding the queue content :param track: the track to play :type track: :class:`xl.trax.Track` """ if self.player.is_playing() and not track: return if not track: track = self.current if track: self.player.play(track) if self.__remove_item_on_playback: try: del self[self.index(track)] except ValueError: pass else: self.next() def queue_length(self): ''' Returns the number of tracks left to play in the queue's internal playlist. ''' if self.__remove_item_on_playback: return len(self) else: if not self.__queue_has_tracks: return -1 else: return len(self) - (self.current_position+1) def __set_queue_has_tracks(self, value): if value != self.__queue_has_tracks_val: oldpos = self.current_position self.__queue_has_tracks_val = value event.log_event("playlist_current_position_changed", self, (self.current_position, oldpos)) # Internal value indicating whether the internal queue has tracks left to play __queue_has_tracks = property(lambda self: self.__queue_has_tracks_val, __set_queue_has_tracks) def __setitem__(self, i, value): ''' Overrides the playlist.Playlist list API. Allows us to ensure that when a track is added to an empty queue, we play it. Or not, depending on what the user wants. ''' old_len = playlist.Playlist.__len__(self) playlist.Playlist.__setitem__(self, i, value) #if nothing is queued, queue this track up if self.current_position == -1: if isinstance(i, slice): self.current_position = i.indices(len(self))[0]-1 else: self.current_position = i-1 self.__queue_has_tracks = True if old_len == 0 and settings.get_option('queue/enqueue_begins_playback', True) \ and old_len < playlist.Playlist.__len__(self): self.play() def _save_player_state(self, location): state = {} state['state'] = self.player.get_state() state['position'] = self.player.get_time() state['_playtime_stamp'] = self.player._playtime_stamp f = open(location, 'wb') pickle.dump(state, f, protocol = 2) f.close() @common.threaded def _restore_player_state(self, location): if not settings.get_option("%s/resume_playback" % self.player._name, True): return try: f = open(location, 'rb') state = pickle.load(f) f.close() except: return for req in ['state', 'position', '_playtime_stamp']: if req not in state: return if state['state'] in ['playing', 'paused']: event.log_event("playback_player_resume", self.player, None) vol = self.player._get_volume() self.player._set_volume(0) self.play(self.get_current()) if self.player.current: self.player.seek(state['position']) if state['state'] == 'paused' or \ settings.get_option("%s/resume_paused" % self.player._name, False): self.player.toggle_pause() self.player._playtime_stamp = state['_playtime_stamp'] self.player._set_volume(vol) dist/copy/xl/player/PaxHeaders.26361/pipe.py0000644000175000017500000000012412233027260017247 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.565046947 exaile-3.3.2/xl/player/pipe.py0000644000000000000000000003622612233027260016220 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import copy import logging import os.path import sys import pygst pygst.require('0.10') import gst from xl.nls import gettext as _ from xl import event, common, settings from xl.providers import ProviderHandler logger = logging.getLogger(__name__) class MainBin(gst.Bin): """ The main bin - handles processing and output of audio after it is decoded by the engine. """ def __init__(self, player, pre_elems=[]): gst.Bin.__init__(self) self._elements = pre_elems[:] self.pp = Postprocessing(player) self._elements.append(self.pp) self.tee = gst.element_factory_make("tee") self._elements.append(self.tee) #self.queue = gst.element_factory_make("queue") #self._elements.append(self.queue) sinkname = settings.get_option("%s/audiosink" % player._name, "auto") self.audio_sink = sink_from_preset(player, sinkname) if not self.audio_sink: logger.warning("Could not enable %s sink for %s, " "attempting to autoselect." % (sinkname, player._name) ) self.audio_sink = sink_from_preset(player, "auto") self._elements.append(self.audio_sink) self.add(*self._elements) gst.element_link_many(*self._elements) self.sinkpad = self._elements[0].get_static_pad("sink") self.add_pad(gst.GhostPad('sink', self.sinkpad)) self.sinkqueue = gst.element_factory_make("queue") self.sinkhandler = SinkHandler(player, 'playback_audio_sink') self.add(self.sinkhandler) self.add(self.sinkqueue) gst.element_link_many(self.tee, self.sinkqueue, self.sinkhandler) def get_volume(self): return self.audio_sink.get_volume() def set_volume(self, vol): self.audio_sink.set_volume(vol) # TODO: add audio sink switching class SinkHandler(gst.Bin, ProviderHandler): def __init__(self, player, servicename): gst.Bin.__init__(self, name=servicename) ProviderHandler.__init__(self, servicename) self.tee = gst.element_factory_make("tee", "sinkhandler-tee") self.add(self.tee) self.sinkpad = self.tee.get_static_pad("sink") self.sink = gst.GhostPad('sink', self.sinkpad) self.add_pad(self.sink) self.fake = gst.element_factory_make("fakesink", "sinkhandler-fake") self.fake.props.async = False self.add(self.fake) self.tee.link(self.fake) self.queuedict = {} self.sinks = {} self.added_sinks = [] event.add_callback(self.on_reconfigure_bins, 'playback_reconfigure_bins', player) def reset_providers(self): self.sinks = {} for provider in self.get_providers(): try: self.sinks[provider.name] = provider() except: logger.warning("Could not create %s element for %s." % \ (provider, self.get_name()) ) common.log_exception(log=logger) def on_provider_added(self, provider): self.reset_providers() def on_provider_removed(self, provider): self.reset_providers() def on_reconfigure_bins(self, *args): self.setup_sinks() def setup_sinks(self): state = self.get_state()[1] if False: #self.srcpad is not None: self.sinkpad.set_blocked_async(True, self._setup_finish, state) else: self._setup_finish(None, True, state) def _setup_finish(self, elem, blocked, state): for sink in self.added_sinks: queue = self.queuedict[sink.name] pad = queue.get_static_pad("sink").get_peer() if pad: self.tee.release_request_pad(pad) try: self.remove(queue) queue.set_state(gst.STATE_NULL) except gst.RemoveError: pass try: self.remove(sink) sink.set_state(gst.STATE_NULL) except gst.RemoveError: pass self.added_sinks = [] for name, sink in self.sinks.iteritems(): self.add(sink) queue = gst.element_factory_make("queue") self.add(queue) self.queuedict[sink.name] = queue gst.element_link_many(self.tee, queue, sink) self.added_sinks.append(sink) self.set_state(state) if blocked: self.sinkpad.set_blocked_async(False, lambda *args: False, state) def set_state(self, state): if state == gst.STATE_PLAYING and \ self.get_state() == gst.STATE_NULL: self.setup_elements() gst.Bin.set_state(self, state) class ElementBin(gst.Bin): """ A bin for easily containing elements elements are added to the elements dictionary in the form of elements[position] = element where position is a value from 0-100 indicating its position in the resulting bin, and element is the gst.Element itself. changes made to elements do not apply until setup_elements() is called """ def __init__(self, player, name=None): if name: gst.Bin.__init__(self, name) else: gst.Bin.__init__(self) self.player = player self.elements = {} self.added_elems = [] self.srcpad = None self.sinkpad = None self.src = None self.sink = None event.add_callback(self.on_reconfigure_bins, 'playback_reconfigure_bins', self.player) def on_reconfigure_bins(self, *args): self.setup_elements() def setup_elements(self): state = self.get_state()[1] if False: #self.srcpad is not None: self.srcpad.set_blocked_async(True, self._setup_finish, state) else: self._setup_finish(None, True, state) def _setup_finish(self, elem, blocked, state): if not blocked: logger.warning("Could not block pipeline, skipping element " "reconstruction.") return if len(self.added_elems) > 0: for elem in self.added_elems: try: self.remove(elem) elem.set_state(gst.STATE_NULL) except gst.RemoveError: pass elems = list(self.elements.iteritems()) elems.sort() if len(elems) == 0: elems.append(gst.element_factory_make('identity')) else: elems = [ x[1] for x in elems ] self.add(*elems) if len(elems) > 1: gst.element_link_many(*elems) self.srcpad = elems[-1].get_static_pad("src") if self.src is not None: self.src.set_target(self.srcpad) else: self.src = gst.GhostPad('src', self.srcpad) self.add_pad(self.src) self.sinkpad = elems[0].get_static_pad("sink") if self.sink is not None: self.sink.set_target(self.sinkpad) else: self.sink = gst.GhostPad('sink', self.sinkpad) self.add_pad(self.sink) self.added_elems = elems self.set_state(state) if blocked: self.srcpad.set_blocked_async(False, lambda *args: False, state) def set_state(self, state): if state == gst.STATE_PLAYING and \ self.get_state() == gst.STATE_NULL: self.setup_elements() gst.Bin.set_state(self, state) class ProviderBin(ElementBin, ProviderHandler): """ A ProviderBin is a gst.Bin that adds and removes elements from itself using the providers system. Providers should be a subclass of gst.Element and provide the following attributes: name - name to use for this element index - priority within the pipeline. range [0-100] integer. lower numbers are higher priority. elements must choose a unique number. """ # TODO: allow duplicate #s def __init__(self, player, servicename, name=None): """ :param servicename: the Provider name to listen for """ ElementBin.__init__(self, player, name=name) ProviderHandler.__init__(self, servicename) self.reset_providers() self.setup_elements() def reset_providers(self): self.elements = {} for provider in self.get_providers(): try: self.elements[provider.index] = provider(self.player) except: logger.warning("Could not create %s element for %s." % \ (provider, self.get_name()) ) common.log_exception(log=logger) #self.setup_elements() def on_provider_added(self, provider): self.reset_providers() def on_provider_removed(self, provider): self.reset_providers() class Postprocessing(ProviderBin): def __init__(self, player): ProviderBin.__init__(self, player, 'postprocessing_element', name="Postprocessing") SINK_PRESETS = { "auto" : { "name" : _("Automatic"), "pipe" : "autoaudiosink" }, "gconf" : { "name" : "GNOME", "pipe" : "gconfaudiosink", "pipeargs" : "profile=music" }, "alsa" : { "name" : "ALSA", "pipe" : "alsasink" }, "oss" : { "name" : "OSS", "pipe" : "osssink" }, "pulse" : { "name" : "PulseAudio", "pipe" : "pulsesink" }, "jack" : { "name" : "JACK", "pipe" : "jackaudiosink" }, "directsound" : { "name" : "DirectSound", "pipe" : "directsoundsink" }, "custom" : { "name" : _("Custom") } } def __load_exaile_directsound_plugin(): ''' The default GST DirectSound plugin does not support selecting an output device via the property probe mechanism. For plugins like the Preview Device, this is critical. This should be removed once GST has proper support in mainline. ''' import glib try: plugin_path = os.path.abspath(os.path.join(__file__, '../../../tools/win-installer/libgstexailedirectsoundsink.dll')) plugin = gst.plugin_load_file(plugin_path) gst.registry_get_default().add_plugin(plugin) except glib.GError, e: logger.error("Error loading custom DirectSound plugin: %s" % str(e)) else: # add to presets if successfully loaded preset = { "name" : "DirectSound (Exaile %s)" % _('Custom'), "pipe" : "exailedirectsoundsink" } SINK_PRESETS["exailedirectsound"] = preset # make this default if there is no default if settings.get_option('player/audiosink', None) == None: settings.set_option('player/audiosink', 'exailedirectsound') if sys.platform == 'win32': __load_exaile_directsound_plugin() def sink_from_preset(player, preset): if preset == "custom": pipe = settings.get_option("%s/custom_sink_pipe" % player._name, "") if not pipe: logger.error("No custom sink pipe set for %s" % player._name) return None name = _("Custom") else: d = SINK_PRESETS.get(preset, "") if not d: logger.error("Could not find sink preset %s for %s." % (preset, player._name)) return None name = d['name'] pipe = d['pipe'] if preset != 'auto': dname = settings.get_option('%s/audiosink_device' % player._name) if dname: pipe += ' device=' + dname if 'pipeargs' in d: pipe += ' ' + d['pipeargs'] try: sink = AudioSink(name, pipe, player) except Exception: common.log_exception(log=logger, message="Could not enable audiosink %s for %s." % (preset, player._name)) return None return sink def sink_enumerate_devices(preset): ''' Enumerate all availables devices for a particular sink type in (device, device-name) pairs. Returns None if no devices can be enumerated for that preset type ''' p = SINK_PRESETS[preset] # create a temporary sink, probe it try: tmpsink = gst.element_factory_make(p['pipe'], 'tmp') except Exception: # If we can't create an instance of the sink, probably doesn't exist... return None # does it support the property probe interface? if not hasattr(tmpsink, 'probe_get_properties'): return None # check to see if we can probe for a device if 'device' not in [prop.name for prop in tmpsink.probe_get_properties()]: return None # do the probe tmpsink.probe_property_name('device') devices = tmpsink.probe_get_values_name('device') if not devices: return None ret = [('', _('Auto'))] for device in devices: tmpsink.set_property('device', device) devname = tmpsink.get_property('device-name') if not devname: devname = device ret.append((device, devname)) return ret class AudioSink(gst.Bin): def __init__(self, name, pipeline, player): gst.Bin.__init__(self) self.name = name self.sink = elems = [gst.parse_launch(elem) for elem in pipeline.split('!')] self.provided = ProviderBin(player, 'sink_element') self.vol = gst.element_factory_make("volume") elems = [self.provided, self.vol] + elems self.add(*elems) gst.element_link_many(*elems) self.sinkghost = gst.GhostPad("sink", self.provided.get_static_pad("sink")) self.add_pad(self.sinkghost) def set_volume(self, vol): self.vol.set_property("volume", vol) def get_volume(self): return self.vol.get_property("volume") # vim: et sts=4 sw=4 dist/copy/xl/player/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260020051 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.509046945 exaile-3.3.2/xl/player/__init__.py0000644000000000000000000000450412233027260017014 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. """ Allows for playback and queue control """ __all__ = [ 'adapters', 'pipe', 'queue', 'engine_normal', 'engine_unified' ] import gobject gobject.threads_init() import logging import os from xl import settings, xdg import queue logger = logging.getLogger(__name__) def get_player(): pname = settings.get_option("player/engine", "normal") if pname == "normal": logger.debug("Normal playback engine selected.") from xl.player.engine_normal import NormalPlayer return NormalPlayer elif pname == "unified": logger.debug("Unified playback engine selected.") from xl.player.engine_unified import UnifiedPlayer return UnifiedPlayer else: logger.warning("Couldn't find specified playback engine, " "falling back to normal.") from xl.player.engine_normal import NormalPlayer return NormalPlayer # TODO: write a better interface than this PLAYER = get_player()('player') QUEUE = queue.PlayQueue(PLAYER, 'Queue', location=os.path.join(xdg.get_data_dir(), 'queue.state')) dist/copy/xl/player/PaxHeaders.26361/adapters.py0000644000175000017500000000012412233027260020115 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.513046945 exaile-3.3.2/xl/player/adapters.py0000644000000000000000000001171712233027260017064 0ustar00rootroot00000000000000# Copyright (C) 2011 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. from xl import event class PlaybackAdapter(object): """ Basic class which listens for playback changes """ def __init__(self, player): self.__player = player self.__events = ('playback_track_start', 'playback_track_end', 'playback_player_end', 'playback_toggle_pause', 'playback_error') for e in self.__events: event.add_callback(getattr(self, 'on_%s' % e), e, player) if player.current is not None: self.on_playback_track_start('playback_track_start', player, player.current) if player.is_paused(): self.on_playback_toggle_pause('playback_toggle_pause', player, player.current) def destroy(self): """ Cleanups """ for e in self.__events: event.remove_callback(getattr(self, 'on_%s' % e), e, self.__player) def on_playback_track_start(self, event, player, track): """ Override """ pass def on_playback_track_end(self, event, player, track): """ Override """ pass def on_playback_player_end(self, event, player, track): """ Override """ pass def on_playback_toggle_pause(self, event, player, track): """ Override """ pass def on_playback_error(self, event, player, message): """ Override """ pass class QueueAdapter(object): """ Basic class which listens for queue changes """ def __init__(self, queue): self.__queue = queue event.add_callback(self.on_queue_current_playlist_changed, 'queue_current_playlist_changed', queue) event.add_callback(self.__on_playlist_current_position_changed, 'playlist_current_position_changed') event.add_callback(self.__on_playlist_tracks_added, 'playlist_tracks_added') event.add_callback(self.__on_playlist_tracks_removed, 'playlist_tracks_removed') def destroy(self): """ Cleanups """ event.remove_callback(self.on_queue_current_playlist_changed, 'queue_current_playlist_changed', self.__queue) event.remove_callback(self.__on_playlist_current_position_changed, 'playlist_current_position_changed') event.remove_callback(self.__on_playlist_tracks_added, 'playlist_tracks_added') event.remove_callback(self.__on_playlist_tracks_removed, 'playlist_tracks_removed') def __on_playlist_current_position_changed(self, event, playlist, positions): """ Forwards the event if emitted by the queue """ if playlist is self.__queue.current_playlist: self.on_queue_current_position_changed(event, playlist, positions) def __on_playlist_tracks_added(self, event, playlist, tracks): """ Forwards the event if emitted by the queue """ if playlist is self.__queue.current_playlist: self.on_queue_tracks_added(event, playlist, tracks) def __on_playlist_tracks_removed(self, event, playlist, tracks): """ Forwards the event if emitted by the queue """ if playlist is self.__queue.current_playlist: self.on_queue_tracks_removed(event, playlist, tracks) def on_queue_current_playlist_changed(self, event, queue, playlist): """ Override """ pass def on_queue_current_position_changed(self, event, playlist, positions): """ Override """ pass def on_queue_tracks_added(self, event, queue, tracks): """ Override """ pass def on_queue_tracks_removed(self, event, queue, tracks): """ Override """ pass dist/copy/xl/player/PaxHeaders.26361/engine_normal.py0000644000175000017500000000012412233027260021127 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.517046945 exaile-3.3.2/xl/player/engine_normal.py0000644000000000000000000002155112233027260020073 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import logging import time import urllib import urlparse import glib import pygst pygst.require('0.10') import gst from xl.nls import gettext as _ from xl import common, event, settings from xl.player import pipe, _base logger = logging.getLogger(__name__) class NormalPlayer(_base.ExailePlayer): def __init__(self, name): self._current = None self._buffered_track = None self._fakevideo = None _base.ExailePlayer.__init__(self, name, pre_elems=[pipe.ProviderBin( self, "stream_element")]) def _setup_pipe(self): """ setup the playbin to use for playback """ self._pipe = gst.element_factory_make("playbin2", "player") self._pipe.connect("about-to-finish", self._on_about_to_finish) self._fakevideo = gst.element_factory_make("fakesink") self._fakevideo.set_property("sync", True) self._pipe.set_property("audio-sink", self._mainbin) self._pipe.set_property("video-sink", self._fakevideo) def _eos_func(self, *args): """ called at the end of a stream """ track = None if settings.get_option("%s/auto_advance" % self._name, True): track = self.queue.next() if track is None: self.stop() def _on_about_to_finish(self, pbin): ''' This function exists solely to allow gapless playback for audio formats that support it. Setting the URI property of the playbin will queue the track for playback immediately after the previous track. ''' if settings.get_option("%s/auto_advance" % self._name, True): track = self.queue.get_next() if track: uri = track.get_loc_for_io() self._pipe.set_property("uri", uri) self._buffered_track = track def _handle_message(self, bus, message, reading_tag = False): if message.type == gst.MESSAGE_BUFFERING: percent = message.parse_buffering() if not percent < 100: logger.info('Buffering complete') if percent % 5 == 0: event.log_event('playback_buffering', self, percent) elif message.type == gst.MESSAGE_ELEMENT and \ message.src == self._pipe and \ message.structure.get_name() == 'playbin2-stream-changed' and \ self._buffered_track is not None: self.queue.next(autoplay=False) self._next_track(self._buffered_track, already_playing=True) else: return False return True def _error_func(self): self.stop() self._pipe.set_state(gst.STATE_NULL) self._setup_pipe() self._setup_bus() def _get_current(self): return self._current def get_position(self): """ Gets the current playback position of the playing track """ if not self.is_paused(): try: self._last_position = \ self._pipe.query_position(gst.FORMAT_TIME)[0] except gst.QueryError: self._last_position = 0 return self._last_position def _update_playtime(self): """ updates the total playtime for the currently playing track """ if self.current and self._playtime_stamp: last = self.current.get_tag_raw('__playtime') if type(last) == str: try: last = int(last) except: last = 0 elif type(last) != int: last = 0 self.current.set_tag_raw('__playtime', last + int(time.time() - \ self._playtime_stamp)) self._playtime_stamp = None def _reset_playtime_stamp(self): self._playtime_stamp = int(time.time()) def __notify_source(self, *args): # this is for handling multiple CD devices properly source = self._pipe.get_property('source') device = self.current.get_loc_for_io().split("#")[-1] source.set_property('device', device) self._pipe.disconnect(self.notify_id) def _next_track(self, track, already_playing=False): """ internal api: advances the track to the next track """ if track is None: self.stop() return False elif not already_playing: self.stop(_fire=False) else: self.stop(_fire=False, _onlyfire=True) playing = self.is_playing() if not playing: event.log_event('playback_reconfigure_bins', self, None) self._current = track uri = track.get_loc_for_io() logger.info("Playing %s" % common.sanitize_url(uri)) self._reset_playtime_stamp() if not already_playing: self._pipe.set_property("uri", uri) if urlparse.urlsplit(uri)[0] == "cdda": self.notify_id = self._pipe.connect('notify::source', self.__notify_source) self._pipe.set_state(gst.STATE_PLAYING) if not playing: event.log_event('playback_player_start', self, track) event.log_event('playback_track_start', self, track) return True def play(self, track): """ plays the specified track, overriding any currently playing track if the track cannot be played, playback stops completely """ return self._next_track(track) def _stop(self, _onlyfire=False): """ Stops playback. The following parameters are for internal use only and are not public API. :param onlyfire: Only send the _end event(s), don't actually halt playback. This is used at the end of a playlist, because the gapless mechanism will fire to tell us to load the next track for buffering, but since there isn't one if we actually halt the player the last few moments of the prior track will be cut off. """ self._buffered_track = None current = self.current if not _onlyfire: self._pipe.set_state(gst.STATE_NULL) self._update_playtime() self._current = None event.log_event('playback_track_end', self, current) return current def _pause(self): self._update_playtime() self._pipe.set_state(gst.STATE_PAUSED) self._reset_playtime_stamp() def _unpause(self): self._reset_playtime_stamp() # gstreamer does not buffer paused network streams, so if the user # is unpausing a stream, just restart playback if not (self.current.is_local() or self.current.get_tag_raw('__length')): self._pipe.set_state(gst.STATE_READY) self._pipe.set_state(gst.STATE_PLAYING) def seek(self, value): """ seek to the given position in the current stream """ new_position = int(gst.SECOND * value) seek_event = gst.event_new_seek(1.0, gst.FORMAT_TIME, gst.SEEK_FLAG_FLUSH, gst.SEEK_TYPE_SET, new_position, gst.SEEK_TYPE_NONE, 0) res = self._pipe.send_event(seek_event) if res: self._pipe.set_new_stream_time(0L) # update this in case we're paused self._last_position = new_position event.log_event('playback_seeked', self, value) else: logger.debug("Couldn't send seek event") dist/copy/xl/player/PaxHeaders.26361/_base.py0000644000175000017500000000012312233027260017362 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 29 ctime=1382821553.02904693 exaile-3.3.2/xl/player/_base.py0000644000000000000000000003540312233027260016330 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import logging import time import pygst pygst.require('0.10') import gst from xl import event, settings, common from xl.player import pipe logger = logging.getLogger(__name__) class ExailePlayer(object): """ Base class all players must inherit from and implement. """ def __init__(self, name, pre_elems=[]): self.queue = None self._name = name self._playtime_stamp = None self._last_position = 0 self._mainbin = pipe.MainBin(self, pre_elems=pre_elems) self._pipe = None self._bus = None self._setup_pipe() self._setup_bus() self._load_volume() event.add_callback(self._on_option_set, '%s_option_set' % self._name) event.add_callback(self._on_track_end, 'playback_track_end', self) def _on_option_set(self, name, object, data): if data == "%s/volume" % self._name: self._load_volume() def _on_track_end(self, name, obj, track): if not track: return try: i = int(track.get_tag_raw('__playcount')) except: i = 0 track.set_tag_raw('__playcount', i + 1) track.set_tag_raw('__last_played', time.time()) def _load_volume(self): """ load volume from settings """ volume = settings.get_option("%s/volume" % self._name, 1) self._set_volume(volume) def _setup_pipe(self): """ Needs to create self._pipe, an instance of gst.Pipeline that will control playback. """ raise NotImplementedError def _setup_bus(self): """ setup the gstreamer message bus and callbacks """ self._bus = self._pipe.get_bus() self._bus.add_signal_watch() self._bus.enable_sync_message_emission() self._bus.connect('message', self._on_message) def _on_message(self, bus, message, reading_tag=False): handled = self._handle_message(bus, message, reading_tag) if handled: pass elif message.type == gst.MESSAGE_TAG: """ Update track length and optionally metadata from gstreamer's parser. Useful for streams and files mutagen doesn't understand. """ parsed = message.parse_tag() event.log_event('tags_parsed', self, (self.current, parsed)) if self.current and not self.current.get_tag_raw('__length'): try: raw_duration = self._pipe.query_duration(gst.FORMAT_TIME, None)[0] except gst.QueryError: logger.error("Couldn't query duration") raw_duration = 0 duration = float(raw_duration)/gst.SECOND if duration > 0: self.current.set_tag_raw('__length', duration) elif message.type == gst.MESSAGE_EOS and not self.is_paused(): self._eos_func() elif message.type == gst.MESSAGE_ERROR: logger.error("%s %s" %(message, dir(message)) ) message_text = message.parse_error()[1] # The most readable part is always the last message_text = message_text[message_text.rfind(':') + 1:] event.log_event('playback_error', self, message_text) self._error_func() return True def _handle_message(self, bus, message, reading_tag): pass # for overriding def _eos_func(self): logger.warning("Unhandled EOS message: ", message) def _error_func(self): self.stop() def _set_queue(self, queue): self.queue = queue def _get_volume(self): """ Gets the current actual volume. This does not reflect what is shown to the user, see the player/volume setting for that. """ return self._mainbin.get_volume() def _set_volume(self, volume): """ Sets the volume. This does NOT update the setting value, and should be used only internally. """ self._mainbin.set_volume(volume) def get_volume(self): """ Gets the current volume :returns: the volume percentage :type: int """ return (settings.get_option("%s/volume" % self._name, 1) * 100) def set_volume(self, volume): """ Sets the current volume :param volume: the volume percentage :type volume: int """ volume = min(volume, 100) volume = max(0, volume) settings.set_option("%s/volume" % self._name, volume / 100.0) def modify_volume(self, diff): """ Changes the current volume :param diff: the volume differance (pos or neg) percentage units :type volume: int """ v = self.get_volume() self.set_volume(v + diff) def _get_current(self): raise NotImplementedError def __get_current(self): return self._get_current() current = property(__get_current) def play(self, track, **kwargs): """ Starts the playback with the provided track or stops the playback it immediately if none :param track: the track to play :type track: :class:`xl.trax.Track` .. note:: The following :doc:`events ` will be emitted by this method: * `playback_player_start`: indicates the start of playback overall * `playback_track_start`: indicates playback start of a track """ raise NotImplementedError def stop(self, _fire=True, **kwargs): """ Stops the playback :param fire: Send the 'playback_player_end' event. Used by engines to avoid spurious playback_end events. Not public API. .. note:: The following :doc:`events ` will be emitted by this method: * `playback_player_end`: indicates the end of playback overall * `playback_track_end`: indicates playback end of a track """ if self.is_playing() or self.is_paused(): prev_current = self._stop(**kwargs) if _fire: event.log_event('playback_player_end', self, prev_current) return True return False def _stop(self, **kwargs): raise NotImplementedError def pause(self): """ Pauses the playback, does not toggle it .. note:: The following :doc:`events ` will be emitted by this method: * `playback_player_pause`: indicates that the playback has been paused """ if self.is_playing(): self._pause() event.log_event('playback_player_pause', self, self.current) return True return False def _pause(self): raise NotImplementedError def unpause(self): """ Resumes the playback, does not toggle it .. note:: The following :doc:`events ` will be emitted by this method: * `playback_player_resume`: indicates that the playback has been resumed """ if self.is_paused(): self._unpause() event.log_event('playback_player_resume', self, self.current) return True return False def _unpause(): raise NotImplementedError def toggle_pause(self): """ Toggles between playing and paused state .. note:: The following :doc:`events ` will be emitted by this method: * `playback_toggle_pause`: indicates that the playback has been paused or resumed """ if self.is_paused(): self.unpause() else: self.pause() event.log_event("playback_toggle_pause", self, self.current) def seek(self, value): """ Seek to a position in the currently playing stream :param value: the position in seconds :type value: int """ raise NotImplementedError def get_position(self): """ Gets the current playback position :returns: the position in milliseconds :rtype: int """ raise NotImplementedError def get_time(self): """ Gets the current playback time :returns: the playback time in seconds :rtype: int """ return self.get_position()/gst.SECOND def get_progress(self): """ Gets the current playback progress :returns: the playback progress as [0..1] :rtype: float """ try: progress = self.get_position()/float( self.current.get_tag_raw("__length")*gst.SECOND) except TypeError: # track doesnt have duration info progress = 0 except AttributeError: # no current track progress = 0 else: if progress < 0: progress = 0 elif progress > 1: progress = 1 return progress def set_progress(self, progress): """ Seeks to the progress position :param progress: value ranged at [0..1] :type progress: float """ seek_position = 0 try: length = self.current.get_tag_raw('__length') seek_position = length * progress except TypeError, AttributeError: pass self.seek(seek_position) def modify_time(self, diff): """ Modifies the current position backwards or forwards. If posision ends up after the end or before the start of the track it is trunctated to lay inside the track. :param diff: value in seconds :type diff: int """ try: length = self.current.get_tag_raw('__length') except TypeError, AttributeError: return if length == None: return pos = self.get_time() seek_pos = pos + diff # Make sure we dont seek outside the current track. Substract a little # from length, player seems to hang sometimes if we seek to the end of # a track. seek_pos = max(0, min(seek_pos, length - 2)) self.seek(seek_pos) def _get_gst_state(self): """ Returns the raw GStreamer state """ return self._pipe.get_state(timeout=50*gst.MSECOND)[1] def get_state(self): """ Gets the player state :returns: one of *playing*, *paused* or *stopped* :rtype: string """ state = self._get_gst_state() if state == gst.STATE_PLAYING: return 'playing' elif state == gst.STATE_PAUSED: return 'paused' else: return 'stopped' def is_playing(self): """ Convenience method to find out if the player is currently playing :returns: whether the player is currently playing :rtype: bool """ return self._get_gst_state() == gst.STATE_PLAYING def is_paused(self): """ Convenience method to find out if the player is currently paused :returns: whether the player is currently paused :rtype: bool """ return self._get_gst_state() == gst.STATE_PAUSED def is_stopped(self): """ Convenience method to find out if the player is currently stopped :returns: whether the player is currently stopped :rtype: bool """ return self._get_gst_state() == gst.STATE_NULL @staticmethod def parse_stream_tags(track, tags): """ Called when a tag is found in a stream. """ newsong=False for key in tags.keys(): value = tags[key] try: value = common.to_unicode(value) except UnicodeDecodeError: logger.debug(' ' + key + " [can't decode]: " + `str(value)`) continue # TODO: What encoding does gst give us? value = [value] if key == '__bitrate': track.set_tag_raw('__bitrate', int(value[0]) / 1000) # if there's a comment, but no album, set album to the comment elif key == 'comment' and not track.get_tag_raw('album'): track.set_tag_raw('album', value) elif key == 'album': track.set_tag_raw('album', value) elif key == 'artist': track.set_tag_raw('artist', value) elif key == 'duration': track.set_tag_raw('__length', float(value[0])/1000000000) elif key == 'track-number': track.set_tag_raw('tracknumber', value) elif key == 'genre': track.set_tag_raw('genre', value) elif key == 'title': try: if track.get_tag_raw('__rawtitle') != value: track.set_tag_raw('__rawtitle', value) newsong = True except AttributeError: track.set_tag_raw('__rawtitle', value) newsong = True title_array = value[0].split(' - ', 1) if len(title_array) == 1 or \ track.get_loc_for_io().lower().endswith(".mp3"): track.set_tag_raw('title', value) else: track.set_tag_raw('artist', [title_array[0]]) track.set_tag_raw('title', [title_array[1]]) return newsong dist/copy/xl/PaxHeaders.26361/common.py0000644000175000017500000000012412233027260016306 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.517046945 exaile-3.3.2/xl/common.py0000644000000000000000000005430712233027260015257 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. """ General functions and classes shared in the codebase """ from __future__ import with_statement import inspect import gio import glib import gobject import logging import os import random import string import subprocess import sys import threading import traceback import urlparse from functools import wraps, partial from collections import deque from UserDict import DictMixin logger = logging.getLogger(__name__) #TODO: get rid of this. only plugins/cd/ uses it. VALID_TAGS = ( # Ogg Vorbis spec tags "title version album tracknumber artist genre performer copyright " "license organization description location contact isrc date " # Other tags we like "arranger author composer conductor lyricist discnumber labelid part " "website language encodedby bpm albumartist originaldate originalalbum " "originalartist recordingdate" ).split() PICKLE_PROTOCOL=2 # Default tags for track sorting. Unless you have good reason to do # otherwise, use this. # TODO: make this a setting? BASE_SORT_TAGS=('artist', 'date', 'album', 'discnumber', 'tracknumber', 'title') # use this for general logging of exceptions def log_exception(log=logger, message="Exception caught!"): """ Convenience function to log an exception + traceback :param log: the logger object to use. important to specify so that it will be logged under the right module name. :param message: a message describing the error condition. """ log.debug(message + "\n" + traceback.format_exc()) def to_unicode(x, default_encoding=None): """Force getting a unicode string from any object.""" if isinstance(x, unicode): return x elif default_encoding and isinstance(x, str): # This unicode constructor only accepts "string or buffer". return unicode(x, default_encoding) else: return unicode(x) def clamp(value, minimum, maximum): """ Clamps a value to the given boundaries :param value: the value to clamp :param minimum: the minimum value to return :param maximum: the maximum value to return """ return max(minimum, min(value, maximum)) def enum(**enums): """ Creates an enum type :see: http://stackoverflow.com/a/1695250 """ return type('Enum', (), enums) def sanitize_url(url): """ Removes the password part from an url :param url: the URL to sanitize :type url: string :returns: the sanitized url """ try: components = list(urlparse.urlparse(url)) auth, host = components[1].split('@') username, password = auth.split(':') except (AttributeError, ValueError): pass else: # Replace password with fixed amount of "*" auth = ':'.join((username, 5 * '*')) components[1] = '@'.join((auth, host)) url = urlparse.urlunparse(components) return url def threaded(func): """ A decorator that will make any function run in a new thread :param func: the function to run threaded """ @wraps(func) def wrapper(*args, **kwargs): t = threading.Thread(target=func, args=args, kwargs=kwargs) t.daemon = True t.start() return wrapper def synchronized(func): """ A decorator to make a function synchronized - which means only one thread is allowed to access it at a time. This only works on class functions, and creates a variable in the instance called _sync_lock. If this function is used on multiple functions in an object, they will be locked with respect to each other. The lock is re-entrant. """ @wraps(func) def wrapper(self, *__args, **__kw): try: rlock = self._sync_lock except AttributeError: from threading import RLock rlock = self.__dict__.setdefault('_sync_lock', RLock()) rlock.acquire() try: return func(self, *__args, **__kw) finally: rlock.release() return wrapper def _idle_callback(func, callback, *args, **kwargs): value = func(*args, **kwargs) if callback and callable(callback): callback(value) def idle_add(callback=None): """ A decorator that will wrap the function in a glib.idle_add call NOTE: Although this decorator will probably work in more cases than the gtkrun decorator does, you CANNOT expect to get a return value from the function that calls a function with this decorator. Instead, you must use the callback parameter. If the wrapped function returns a value, it will be passed in as a parameter to the callback function. @param callback: optional callback that will be called when the wrapped function is done running """ def wrap(f): def wrapped(*args, **kwargs): glib.idle_add(_idle_callback, f, callback, *args, **kwargs) return wrapped return wrap def _glib_wait_inner(timeout, glib_timeout_func): id = [None] # Have to hold the value in a mutable structure because # python's scoping rules prevent us assigning to an # outer scope directly. def waiter(function): def delayer(*args, **kwargs): if id[0]: glib.source_remove(id[0]) id[0] = glib_timeout_func(timeout, function, *args, **kwargs) return delayer return waiter def glib_wait(timeout): """ Decorator to make a function run only after 'timeout' milliseconds have elapsed since the most recent call to the function. For example, if a function was given a timeout of 1000 and called once, then again half a second later, it would run only once, 1.5 seconds after the first call to it. Arguments are supported, but which call's set of arguments is used is undefined, so this is not useful for much beyond passing in unchanging arguments like 'self' or 'cls'. If the function returns a value that evaluates to True, it will be called again under the same timeout rules. """ # 'undefined' is a bit of a white lie - it's always the most # recent call's args. However, I'm reserving the right to change # the implementation later for the moment, and really I don't # think it makes sense to use functions that have changing args # with this decorator. return _glib_wait_inner(timeout, glib.timeout_add) def glib_wait_seconds(timeout): """ Same as glib_wait, but uses glib.timeout_add_seconds instead of glib.timeout_add and takes its timeout in seconds. See the glib documention for why you might want to use one over the other. """ return _glib_wait_inner(timeout, glib.timeout_add_seconds) def profileit(func): """ Decorator to profile a function """ import hotshot, hotshot.stats @wraps(func) def wrapper(*args, **kwargs): prof = hotshot.Profile("profiling.data") res = prof.runcall(func, *args, **kwargs) prof.close() stats = hotshot.stats.load("profiling.data") stats.strip_dirs() stats.sort_stats('time', 'calls') print ">>>---- Begin profiling print" stats.print_stats() print ">>>---- End profiling print" return res return wrapper class classproperty(object): """ Decorator allowing for class property access """ def __init__(self, function): self.function = function def __get__(self, obj, type): return self.function(type) class VersionError(Exception): """ Represents version discrepancies """ #: the error message message = None def __init__(self, message): Exception.__init__(self) self.message = message def __str__(self): return repr(self.message) def open_file(path): """ Opens a file or folder using the system configured program """ platform = sys.platform if platform == 'win32': # pylint will error here on non-windows platforms unless we do this # pylint: disable-msg=E1101 os.startfile(path) # pylint: enable-msg=E1101 elif platform == 'darwin': subprocess.Popen(["open", path]) else: subprocess.Popen(["xdg-open", path]) def open_file_directory(path): """ Opens the parent directory of a file, selecting the file if possible. """ import gio f = gio.File(path) platform = sys.platform if platform == 'win32': subprocess.Popen(["explorer", "/select,", f.get_parse_name()]) elif platform == 'darwin': subprocess.Popen(["open", f.get_parent().get_parse_name()]) else: subprocess.Popen(["xdg-open", f.get_parent().get_parse_name()]) class LimitedCache(DictMixin): """ Simple cache that acts much like a dict, but has a maximum # of items """ def __init__(self, limit): self.limit = limit self.order = deque() self.cache = dict() def __iter__(self): return self.cache.__iter__() def __contains__(self, item): return self.cache.__contains__(item) def __delitem__(self, item): del self.cache[item] self.order.remove(item) def __getitem__(self, item): val = self.cache[item] self.order.remove(item) self.order.append(item) return val def __setitem__(self, item, value): self.cache[item] = value if item in self.order: self.order.remove(item) self.order.append(item) while len(self) > self.limit: del self.cache[self.order.popleft()] def __repr__(self): '''prevent repr(self) from changing cache order''' return repr(self.cache) def __str__(self): '''prevent str(self) from changing cache order''' return str(self.cache) def keys(self): return self.cache.keys() class cached(object): """ Decorator to make a function's results cached does not cache if there is an exception. .. note:: This probably breaks on functions that modify their arguments """ def __init__(self, limit): self.limit = limit @staticmethod def _freeze(d): return frozenset(d.iteritems()) def __call__(self, f): try: f._cache except AttributeError: f._cache = LimitedCache(self.limit) @wraps(f) def wrapper(*args, **kwargs): try: return f._cache[(args, self._freeze(kwargs))] except KeyError: pass ret = f(*args, **kwargs) try: f._cache[(args, self._freeze(kwargs))] = ret except TypeError: # args can't be hashed pass return ret return wrapper def __get__(self, obj, objtype): """Support instance methods.""" return partial(self.__call__, obj) def walk(root): """ Walk through a Gio directory, yielding each file Files are enumerated in the following order: first the directory, then the files in that directory. Once one directory's files have all been listed, it moves on to the next directory. Order of files within a directory and order of directory traversal is not specified. :param root: a :class:`gio.File` representing the directory to walk through :returns: a generator object :rtype: :class:`gio.File` """ queue = deque() queue.append(root) while len(queue) > 0: dir = queue.pop() yield dir try: for fileinfo in dir.enumerate_children("standard::type," "standard::is-symlink,standard::name," "standard::symlink-target,time::modified"): fil = dir.get_child(fileinfo.get_name()) # FIXME: recursive symlinks could cause an infinite loop if fileinfo.get_is_symlink(): target = fileinfo.get_symlink_target() if not "://" in target and not os.path.isabs(target): fil2 = dir.get_child(target) else: fil2 = gio.File(target) # already in the collection, we'll get it anyway if fil2.has_prefix(root): continue type = fileinfo.get_file_type() if type == gio.FILE_TYPE_DIRECTORY: queue.append(fil) elif type == gio.FILE_TYPE_REGULAR: yield fil except gio.Error, e: # why doesnt gio offer more-specific errors? log_exception(log=logger, message="Unhandled exception while walking on %s." % dir) def walk_directories(root): """ Walk through a Gio directory, yielding each subdirectory :param root: a :class:`gio.File` representing the directory to walk through :returns: a generator object :rtype: :class:`gio.File` """ yield root directory = None subdirectory = None try: for fileinfo in root.enumerate_children( 'standard::name,standard::type'): if fileinfo.get_file_type() == gio.FILE_TYPE_DIRECTORY: directory = root.get_child(fileinfo.get_name()) for subdirectory in walk_directories(directory): yield subdirectory except gio.Error, e: log_exception(log=logger, message="Unhandled exception while walking dirs on %s, %s, %s" % (root, directory, subdirectory)) class TimeSpan: """ Calculates the number of days, hours, minutes, and seconds in a time span """ #: number of days days = 0 #: number of hours hours = 0 #: number of minutes minutes = 0 #: number of seconds seconds = 0 def __init__(self, span): """ :param span: Time span in seconds :type span: float """ try: span = float(span) except (ValueError, TypeError): span = 0 span, self.seconds = divmod(span, 60) span, self.minutes = divmod(span, 60) self.days, self.hours = divmod(span, 24) def __repr__(self): return str(self) def __str__(self): return '%dd, %dh, %dm, %ds' % ( self.days, self.hours, self.minutes, self.seconds) class MetadataList(object): """ Like a list, but also associates an object of metadata with each entry. ``(get|set|del)_meta_key`` are the metadata interface - they allow the metadata to act much like a dictionary, with a few optimizations. List aspects that are not supported: * sort * comparisons other than equality * multiply """ __slots__ = ['__list', 'metadata'] def __init__(self, iterable=[], metadata=[]): self.__list = list(iterable) meta = list(metadata) if meta and len(meta) != len(self.__list): raise ValueError, "Length of metadata must match length of items." if not meta: meta = [None] * len(self.__list) self.metadata = meta def __repr__(self): return "MetadataList(%s)"%self.__list def __len__(self): return len(self.__list) def __iter__(self): return self.__list.__iter__() def __add__(self, other): l = MetadataList(self, self.metadata) l.extend(other) return l def __iadd__(self, other): self.extend(other) return self def __eq__(self, other): if isinstance(other, MetadataList): other = list(other) return self.__list == other def __getitem__(self, i): val = self.__list.__getitem__(i) if isinstance(i, slice): return MetadataList(val, self.metadata.__getitem__(i)) else: return val def __setitem__(self, i, value): self.__list.__setitem__(i, value) if isinstance(value, MetadataList): metadata = list(value.metadata) else: metadata = [None]*len(value) self.metadata.__setitem__(i, metadata) def __delitem__(self, i): self.__list.__delitem__(i) self.metadata.__delitem__(i) def append(self, other, metadata=None): self.insert(len(self), other, metadata=metadata) def extend(self, other): self[len(self):len(self)] = other def insert(self, i, item, metadata=None): if i >= len(self): i = len(self) e = len(self)+1 else: e = i self[i:e] = [item] self.metadata[i:e] = [metadata] def pop(self, i=-1): item = self[i] del self[i] return item def remove(self, item): del self[self.index(item)] def reverse(self): self.__list.reverse() self.metadata.reverse() def index(self, i, start=0, end=None): if end is None: return self.__list.index(i, start) else: return self.__list.index(i, start, end) def count(self, i): return self.__list.count(i) def get_meta_key(self, index, key, default=None): if not self.metadata[index]: return default return self.metadata[index].get(key, default) def set_meta_key(self, index, key, value): if not self.metadata[index]: self.metadata[index] = {} self.metadata[index][key] = value def del_meta_key(self, index, key): if not self.metadata[index]: raise KeyError, key del self.metadata[index][key] if not self.metadata[index]: self.metadata[index] = None class ProgressThread(gobject.GObject, threading.Thread): """ A basic thread with progress updates """ __gsignals__ = { 'progress-update': ( gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, (gobject.TYPE_INT,) ), # TODO: Check if 'stopped' is required 'done': ( gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, () ) } def __init__(self): gobject.GObject.__init__(self) threading.Thread.__init__(self) self.setDaemon(True) def stop(self): """ Stops the thread """ self.emit('done') def run(self): """ Override and make sure that the 'progress-update' signal is emitted regularly with the progress """ pass class PosetItem(object): def __init__(self, name, after, priority, value=None): """ :param name: unique identifier for this item :type name: string :param after: which items this item comes after :type after: list of string :param priority: tiebreaker, higher values come later :type priority: int :param value: arbitrary data associated with the item """ self.name = name self.after = list(after) self.priority = priority self.children = [] self.value = value def order_poset(items): """ :param items: poset to order :type items: list of :class:`PosetItem` """ items = dict([(i.name, i) for i in items]) for name, item in items.iteritems(): for after in item.after: i = items.get(after) if i: i.children.append(item) else: item.after.remove(after) result = [] next = [i[1] for i in items.items() if not i[1].after] while next: current = [(i.priority, i.name, i) for i in next] current.sort() result.extend([i[2] for i in current]) nextset = dict() for i in current: for c in i[2].children: nextset[c.name] = c removals = [] for name, item in nextset.iteritems(): for after in item.after: if after in nextset: removals.append(name) break for r in removals: del nextset[r] next = nextset.values() return result class LazyDict(object): __slots__ = ['_dict', '_funcs', 'args', '_locks'] def __init__(self, *args): self.args = args self._dict = {} self._funcs = {} self._locks = {} def __setitem__(self, item, value): if inspect.isfunction(value): self._funcs[item] = value else: self._dict[item] = value def __getitem__(self, item): lock = self._locks.get(item, threading.Lock()) with lock: try: return self._dict[item] except KeyError: self._locks[item] = lock val = self._funcs[item](item, *self.args) self._dict[item] = val return val def get(self, item, default=None): try: return self[item] except KeyError: return default # vim: et sts=4 sw=4 dist/copy/xl/PaxHeaders.26361/trax0000644000175000017500000000013212233027261015345 xustar000000000000000030 mtime=1382821553.605046948 30 atime=1382821552.793046922 30 ctime=1382821553.605046948 exaile-3.3.2/xl/trax/0000755000000000000000000000000012233027261014363 5ustar00rootroot00000000000000dist/copy/xl/trax/PaxHeaders.26361/trackdb.py0000644000175000017500000000012412233027260017406 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.453046943 exaile-3.3.2/xl/trax/trackdb.py0000644000000000000000000003166612233027260016362 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. from __future__ import absolute_import import logging import shelve from copy import deepcopy import glib from xl import common, event from xl.nls import gettext as _ from xl.trax.track import Track from xl.trax.util import sort_tracks from xl.trax.search import search_tracks_from_string logger = logging.getLogger(__name__) class TrackHolder(object): def __init__(self, track, key, **kwargs): self._track = track self._key = key self._attrs = kwargs def __getattr__(self, attr): return getattr(self._track, attr) class TrackDBIterator(object): def __init__(self, track_iterator): self.iter = track_iterator def __iter__(self): return self def next(self): return self.iter.next()[1]._track class TrackDB(object): """ Manages a track database. Allows you to add, remove, retrieve, search, save and load Track objects. :param name: The name of this :class:`TrackDB`. :param location: Path to a file where this :class:`TrackDB` should be stored. :param pickle_attrs: A list of attributes to store in the pickled representation of this object. All attributes listed must be built-in types, with one exception: If the object contains the phrase 'tracks' in its name it may be a list or dict of :class:`Track` objects. """ def __init__(self, name="", location="", pickle_attrs=[]): """ Sets up the trackDB. """ self.name = name self.location = location self._dirty = False self.tracks = {} self.pickle_attrs = pickle_attrs self.pickle_attrs += ['tracks', 'name', '_key'] self._saving = False self._key = 0 self._dbversion = 2.0 self._dbminorversion = 0 self._deleted_keys = [] if location: self.load_from_location() self._timeout_save() def __iter__(self): """ Provide the ability to iterate over a TrackDB. Just as with a dictionary, if tracks are added or removed during iteration, iteration will halt wuth a RuntimeError. """ track_iterator = self.tracks.iteritems() iterator = TrackDBIterator(track_iterator) return iterator def __len__(self): """ Obtain a count of how many items are in the TrackDB """ return len(self.tracks) @common.glib_wait_seconds(300) def _timeout_save(self): """ Callback for auto-saving. """ self.save_to_location() return True def set_name(self, name): """ Sets the name of this :class:`TrackDB` :param name: The new name. :type name: string """ self.name = name self._dirty = True def get_name(self): """ Gets the name of this :class:`TrackDB` :return: The name. :rtype: string """ return self.name def set_location(self, location): """ Sets the location to save to :param location: the location to save to """ self.location = location self._dirty = True @common.synchronized def load_from_location(self, location=None): """ Restores :class:`TrackDB` state from the pickled representation stored at the specified location. :param location: the location to load the data from :type location: string """ if not location: location = self.location if not location: raise AttributeError( _("You did not specify a location to load the db from")) logger.debug("Loading %s DB from %s." % (self.name, location)) try: try: pdata = shelve.open(location, flag='c', protocol=common.PICKLE_PROTOCOL) except ImportError: import bsddb3 # ArchLinux disabled bsddb in python2, so we have to use the external module _db = bsddb3.hashopen(location, 'c') pdata = shelve.Shelf(_db, protocol=common.PICKLE_PROTOCOL) if pdata.has_key("_dbversion"): if int(pdata['_dbversion']) > int(self._dbversion): raise common.VersionError, \ "DB was created on a newer Exaile version." elif pdata['_dbversion'] < self._dbversion: logger.info("Upgrading DB format....") import shutil shutil.copyfile(location, location + "-%s.bak"%pdata['_dbversion']) import xl.migrations.database as dbmig dbmig.handle_migration(self, pdata, pdata['_dbversion'], self._dbversion) except common.VersionError: raise except Exception: logger.error("Failed to open music DB.") common.log_exception(log=logger) return for attr in self.pickle_attrs: try: if 'tracks' == attr: data = {} for k in (x for x in pdata.keys() \ if x.startswith("tracks-")): p = pdata[k] tr = Track(_unpickles=p[0]) loc = tr.get_loc_for_io() if loc not in data: data[loc] = TrackHolder(tr, p[1], **p[2]) else: logger.warning("Duplicate track found: %s" % loc ) # presumably the second track was written because of an error, # so use the first track found. del pdata[k] setattr(self, attr, data) else: setattr(self, attr, pdata[attr]) except Exception: # FIXME: Do something about this logger.warn("Exception occurred while loading %s" % location) common.log_exception(log=logger) pdata.close() self._dirty = False @common.synchronized def save_to_location(self, location=None): """ Saves a pickled representation of this :class:`TrackDB` to the specified location. :param location: the location to save the data to :type location: string """ if not self._dirty: for track in self.tracks.itervalues(): if track._track._dirty: self._dirty = True break if not self._dirty: return if not location: location = self.location if not location: raise AttributeError( _("You did not specify a location to save the db")) if self._saving: return self._saving = True logger.debug("Saving %s DB to %s." % (self.name, location)) try: try: pdata = shelve.open(location, flag='c', protocol=common.PICKLE_PROTOCOL) except ImportError: import bsddb3 _db = bsddb3.hashopen(location, 'c') pdata = shelve.Shelf(_db, protocol=common.PICKLE_PROTOCOL) if pdata.get('_dbversion', self._dbversion) > self._dbversion: raise common.VersionError, \ "DB was created on a newer Exaile." except Exception: logger.error("Failed to open music DB for writing.") common.log_exception(log=logger) return for attr in self.pickle_attrs: # bad hack to allow saving of lists/dicts of Tracks if 'tracks' == attr: for k, track in self.tracks.iteritems(): key = "tracks-%s" % track._key if track._track._dirty or key not in pdata: pdata[key] = ( track._track._pickles(), track._key, deepcopy(track._attrs) ) else: pdata[attr] = deepcopy(getattr(self, attr)) pdata['_dbversion'] = self._dbversion for key in self._deleted_keys: key = "tracks-%s" % key if key in pdata: del pdata[key] pdata.sync() pdata.close() for track in self.tracks.itervalues(): track._track._dirty = False self._dirty = False self._saving = False def get_track_by_loc(self, loc, raw=False): """ returns the track having the given loc. if no such track exists, returns None """ try: return self.tracks[loc]._track except KeyError: return None def get_tracks_by_locs(self, locs): """ returns the track having the given loc. if no such track exists, returns None """ return [self.get_track_by_loc(loc) for loc in locs] def loc_is_member(self, loc): """ Returns True if loc is a track in this collection, False if it is not """ # check for the actual track if self.get_track_by_loc(loc): return True else: return False def get_count(self): """ Returns the number of tracks stored in this database """ count = len(self.tracks) return count def add(self, track): """ Adds a track to the database of tracks :param track: The :class:`xl.trax.Track` to add """ self.add_tracks([track]) @common.synchronized def add_tracks(self, tracks): """ Like add(), but takes a list of :class:`xl.trax.Track` """ locations = [] for tr in tracks: location = tr.get_loc_for_io() locations += [location] self.tracks[location] = TrackHolder(tr, self._key) self._key += 1 event.log_event('tracks_added', self, locations) self._dirty = True def remove(self, track): """ Removes a track from the database :param track: the :class:`xl.trax.Track` to remove """ self.remove_tracks([track]) @common.synchronized def remove_tracks(self, tracks): """ Like remove(), but takes a list of :class:`xl.trax.Track` """ locations = [] for tr in tracks: location = tr.get_loc_for_io() locations += [location] self._deleted_keys.append(self.tracks[location]._key) del self.tracks[location] event.log_event('tracks_removed', self, locations) self._dirty = True def get_tracks(self): return list(self) def search(self, query, sort_fields=[], return_lim=-1, tracks=None, reverse=False): """ DEPRECATED, DO NOT USE IN NEW CODE """ import warnings warnings.warn("TrackDB.search is deprecated.", DeprecationWarning) tracks = [ x.track for x in search_tracks_from_string(self, query, case_sensitive=False, keyword_tags=['artist', 'albumartist', 'album', 'title']) ] if sort_fields: tracks = sort_tracks(sort_fields, tracks, reverse) if return_lim > 0: tracks = tracks[:return_lim] return tracks # vim: et sts=4 sw=4 dist/copy/xl/trax/PaxHeaders.26361/track.py0000644000175000017500000000012412233027260017100 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.453046943 exaile-3.3.2/xl/trax/track.py0000644000000000000000000007456612233027260016062 0ustar00rootroot00000000000000# -*- coding: utf-8 # Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. from copy import deepcopy import gio import glib import logging import os.path import time import unicodedata import weakref from xl import ( common, event, metadata, settings ) from xl.nls import gettext as _ logger = logging.getLogger(__name__) # map chars to appropriate subsitutes for sorting _sortcharmap = { u'ß': u'ss', # U+00DF u'æ': u'ae', # U+00E6 u'ij': u'ij', # U+0133 u'ŋ': u'ng', # U+014B u'œ': u'oe', # U+0153 u'ƕ': u'hv', # U+0195 u'dž': u'dz', # U+01C6 u'lj': u'lj', # U+01C9 u'nj': u'nj', # U+01CC u'dz': u'dz', # U+01F3 u'ҥ': u'ng', # U+04A5 u'ҵ': u'ts', # U+04B5 } # Cache these here because calling gettext inside get_tag_display # is two orders of magnitude slower. _VARIOUSARTISTSSTR = _("Various Artists") _UNKNOWNSTR = _("Unknown") #TRANSLATORS: String multiple tag values will be joined by _JOINSTR = _(u' / ') class _MetadataCacher(object): """ Cache metadata Format objects to speed up get_tag_disk """ def __init__(self, timeout=10, maxentries=20): """ :param timeout: time (in s) until the cached obj gets removed. :param maxentries: maximum number of format objs to cache """ self._cache = [] self.timeout = timeout self.maxentries = maxentries self._cleanup_id = 0 def __cleanup(self): if self._cleanup_id: glib.source_remove(self._cleanup_id) current = time.time() thresh = current - self.timeout for item in self._cache[:]: if item[2] < thresh: self._cache.remove(item) if self._cache: next_expiry = min([i[2] for i in self._cache]) timeout = int((next_expiry + self.timeout) - current) self._cleanup_id = glib.timeout_add_seconds(timeout, self.__cleanup) def add(self, trackobj, formatobj): for item in self._cache: if item[0] == trackobj: return item = [trackobj, formatobj, time.time()] self._cache.append(item) if len(self._cache) > self.maxentries: least = min([(i[2], i) for i in self._cache])[1] self._cache.remove(least) if not self._cleanup_id: self._cleanup_id = glib.timeout_add_seconds(self.timeout, self.__cleanup) def remove(self, trackobj): for item in self._cache: if item[0] == trackobj: self._cache.remove(item) break def get(self, trackobj): for item in self._cache: if item[0] == trackobj: item[2] = time.time() return item[1] _CACHER = _MetadataCacher() class Track(object): """ Represents a single track. """ # save a little memory this way __slots__ = ["__tags", "_scan_valid", "_dirty", "__weakref__", "_init"] # this is used to enforce the one-track-per-uri rule __tracksdict = weakref.WeakValueDictionary() # store a copy of the settings values here - much faster (0.25 cpu # seconds) (see _the_cuts_cb) __the_cuts = settings.get_option('collection/strip_list', []) def __new__(cls, *args, **kwargs): """ override the construction of new Track objects so that if there is already a Track for a given uri, we just return that Track instance instead of creating a new one. """ # subclassing interferes with the one-track-per-uri scheme and # with save and restore of tracks, so we disallow it. if cls != Track: raise TypeError, "Track cannot be subclassed!" uri = None if len(args) > 0: uri = args[0] else: uri = kwargs.get("uri") # Restore uri from pickled state if possible. This means that # if a given Track is in more than one TrackDB, the first # TrackDB to get loaded takes precedence, and any data in the # second TrackDB is consequently ignored. Thus if at all # possible, Tracks should NOT be persisted in more than one # TrackDB at a time. unpickles = None if uri is None: if len(args) > 2: unpickles = args[2] else: unpickles = kwargs.get("_unpickles") if unpickles is not None: uri = unpickles.get("__loc") if uri is not None: uri = gio.File(uri).get_uri() try: tr = cls.__tracksdict[uri] tr._init = False # if the track *does* happen to be pickled in more than one # place, then we need to preserve any internal tags that aren't # persisted to disk. # # See https://bugs.launchpad.net/exaile/+bug/1054637 if unpickles is None: if len(args) > 2: unpickles = args[2] else: unpickles = kwargs.get("_unpickles") if unpickles is not None: for tag, values in unpickles.iteritems(): tags = tr.list_tags() if tag.startswith('__') and tag not in tags: tr.set_tag_raw(tag, values) except KeyError: tr = object.__new__(cls) cls.__tracksdict[uri] = tr tr._init = True return tr else: # this should always fail in __init__, and will never be # called in well-formed code. tr = object.__new__(cls) tr._init = True return tr def __init__(self, uri=None, scan=True, _unpickles=None): """ :param uri: The path to the track. :param scan: Whether to try to read tags from the given uri. Use only if the tags need to be set by a different source. :param _unpickles: used internally to restore from a pickled state. not for normal use. """ # don't re-init if its a reused track. see __new__ if self._init == False: return self.__tags = {} self._scan_valid = None # whether our last tag read attempt worked self._dirty = False if _unpickles: self._unpickles(_unpickles) self.__register() elif uri: self.set_loc(uri) if scan: self.read_tags() else: raise ValueError, "Cannot create a Track from nothing" def __register(self): """ Register this instance into the global registry of Track objects. """ self.__tracksdict[self.__tags['__loc']] = self def __unregister(self): """ Unregister this instance from the global registry of Track objects. """ try: del self.__tracksdict[self.__tags['__loc']] except KeyError: pass def set_loc(self, loc): """ Sets the location. :param loc: the location, as either a uri or a file path. """ self.__unregister() gloc = gio.File(loc) self.__tags['__loc'] = gloc.get_uri() self.__register() event.log_event('track_tags_changed', self, '__loc') def exists(self): """ Returns whether the file exists This can be very slow, use with caution! """ return gio.File(self.get_loc_for_io()).query_exists() def get_loc_for_io(self): """ Gets the location as a full uri. Safe for IO operations via gio, not suitable for display to users as it may be in non-utf-8 encodings. """ return self.__tags['__loc'] def local_file_name(self): """ If the file is accessible on the local filesystem, returns a standard path to it (e.g. "/home/foo/bar"), otherwise, returns None. If a path is returned, it is safe to use for IO operations. Existence of a path does *not* guarantee file existence. """ raise DeprecationWarning('get_local_path() is ' 'preferred over local_file_name()') return self.get_local_path() def get_local_path(self): """ If the file is accessible on a local filesystem, retrieves the full path to it, otherwise nothing. :returns: the file path or None :rtype: string or NoneType """ return gio.File(self.get_loc_for_io()).get_path() def get_basename(self): """ Returns the base name of a resource """ gfile = gio.File(self.get_loc_for_io()) return gfile.get_basename() def get_type(self): """ Get the URI schema the file uses, e.g. file, http, smb. """ return gio.File(self.get_loc_for_io()).get_uri_scheme() def write_tags(self): """ Writes tags to the file for this Track. Returns False if unsuccessful, and a Format object from `xl.metadata` otherwise. """ try: f = metadata.get_format(self.get_loc_for_io()) if f is None: return False # not a supported type f.write_tags(self.__tags) return f except IOError, e: # error writing to the file, probably logger.warning( "Could not write tags to file: %s" % e ) return False except Exception, e: common.log_exception(logger) logger.warning( "Unknown exception: Could not write tags to file: %s" % e ) return False def read_tags(self): """ Reads tags from the file for this Track. Returns False if unsuccessful, and a Format object from `xl.metadata` otherwise. """ try: f = metadata.get_format(self.get_loc_for_io()) if f is None: self._scan_valid = False return False # not a supported type ntags = f.read_all() for k, v in ntags.iteritems(): self.set_tag_raw(k, v) # remove tags that have been deleted in the file, while # taking into account that the db may have tags not # supported by the file's tag format. if f.others: supported_tags = [ t for t in self.list_tags() \ if not t.startswith("__") ] else: supported_tags = f.tag_mapping.keys() for tag in supported_tags: if tag not in ntags.keys(): self.set_tag_raw(tag, None) # fill out file specific items gloc = gio.File(self.get_loc_for_io()) mtime = gloc.query_info("time::modified").get_modification_time() self.set_tag_raw('__modified', mtime) # TODO: this probably breaks on non-local files path = gloc.get_parent().get_path() self.set_tag_raw('__basedir', path) self._dirty = True self._scan_valid = True return f except Exception: self._scan_valid = False common.log_exception() return False def is_local(self): """ Determines whether a file is accessible on the local filesystem. """ # TODO: determine this better # Maybe use gio.File.is_native()? if self.get_local_path(): return True return False def get_size(self): """ Get the raw size of the file. Potentially slow. """ f = gio.File(self.get_loc_for_io()) return f.query_info("standard::size").get_size() def __repr__(self): return str(self) def __str__(self): """ returns a string representing the track """ vals = map(self.get_tag_display, ('title', 'album', 'artist')) rets = [] for v in vals: if not v: v = "Unknown" v = "'" + v + "'" rets.append(v) ret = "%s from %s by %s" % tuple(rets) return ret def _pickles(self): """ returns a data repr of the track suitable for pickling internal use only please """ return deepcopy(self.__tags) def _unpickles(self, pickle_obj): """ restores the state from the pickle-able repr internal use only please """ self.__tags = deepcopy(pickle_obj) def list_tags(self): """ Returns a list of the names of all tags present in this Track. """ return self.__tags.keys() + ['__basename'] def set_tag_raw(self, tag, values, notify_changed=True): """ Set the raw value of a tag. :param tag: The name of the tag to set. :param values: The value or values to set the tag to. :param notify_changed: whether to send a signal to let other parts of Exaile know there has been an update. Only set this to False if you know that no other parts of Exaile need to be updated. """ if tag == '__loc': logger.warning('Setting "__loc" directly is forbidden, ' 'use set_loc() instead.') return if tag in ('__basename',): logger.warning('Setting "%s" directly is forbidden.' % tag) return # Handle values that aren't lists if not isinstance(values, list): if not tag.startswith("__"): # internal tags dont have to be lists values = [values] # For lists, filter out empty values and convert string values to Unicode if isinstance(values, list): values = [ common.to_unicode(v, self.__tags.get('__encoding')) \ if isinstance(v, basestring) else v \ for v in values \ if v not in (None, '') ] # Save some memory by not storing null values. if not values: try: del self.__tags[tag] except KeyError: pass else: self.__tags[tag] = values self._dirty = True if notify_changed: event.log_event("track_tags_changed", self, tag) def get_tag_raw(self, tag, join=False): """ Get the raw value of a tag. For non-internal tags, the result will always be a list of unicode strings. :param tag: The name of the tag to get :param join: If True, joins lists of values into a single value. """ if tag == '__basename': value = self.get_basename() else: value = self.__tags.get(tag) if join and value: return self.join_values(value) return value def get_tag_sort(self, tag, join=True, artist_compilations=True, extend_title=True): """ Get a tag value in a form suitable for sorting. :param tag: The name of the tag to get :param join: If True, joins lists of values into a single value. :param artist_compilations: If True, automatically handle albumartist and other compilations detections when tag=="artist". :param extend_title: If the title tag is unknown, try to add some identifying information to it. """ # The two magic values here are to ensure that compilations # and unknown values are always sorted below all normal # values. value = None sorttag = self.__tags.get(tag + "sort") if sorttag and tag != "artist": value = sorttag elif tag == "artist": if artist_compilations and self.__tags.get('__compilation'): value = self.__tags.get('albumartist', u"\uffff\uffff\uffff\ufffe") else: value = self.__tags.get('artist', u"\uffff\uffff\uffff\uffff") if sorttag and value not in (u"\uffff\uffff\uffff\ufffe", u"\uffff\uffff\uffff\uffff"): value = sorttag else: sorttag = None elif tag in ('tracknumber', 'discnumber'): value = self.split_numerical(self.__tags.get(tag))[0] elif tag in ('__length', '__playcount'): value = self.__tags.get(tag, 0) elif tag == 'bpm': value = int(self.__tags.get(tag, [0])[0]) elif tag == '__basename': # TODO: Check if unicode() is required value = self.get_basename() else: value = self.__tags.get(tag) if not value: value = u"\uffff\uffff\uffff\uffff" # unknown if tag == 'title': gloc = gio.File(self.__tags['__loc']) basename = glib.filename_display_name(gloc.get_basename()) value = u"%s (%s)" % (value, basename) elif not tag.startswith("__") and \ tag not in ('tracknumber', 'discnumber', 'bpm'): if not sorttag: value = self.format_sort(value) else: if isinstance(value, list): value = [self.lower(v + u" " + v) for v in value] else: value = self.lower(value + u" " + v) if join: value = self.join_values(value) return value def get_tag_display(self, tag, join=True, artist_compilations=True, extend_title=True): """ Get a tag value in a form suitable for display. :param tag: The name of the tag to get :param join: If True, joins lists of values into a single value. :param artist_compilations: If True, automatically handle albumartist and other compilations detections when tag=="artist". :param extend_title: If the title tag is unknown, try to add some identifying information to it. """ if tag == '__loc': uri = gio.File(self.__tags['__loc']).get_parse_name() return uri.decode('utf-8') value = None if tag == "artist": if artist_compilations and self.__tags.get('__compilation'): value = self.__tags.get('albumartist', _VARIOUSARTISTSSTR) else: value = self.__tags.get('artist', _UNKNOWNSTR) elif tag in ('tracknumber', 'discnumber'): value = self.split_numerical(self.__tags.get(tag))[0] elif tag == '__length': value = self.__tags.get('__length', 0) elif tag == '__bitrate': try: value = int(self.__tags['__bitrate']) // 1000 if value == -1: value = " " else: #TRANSLATORS: Bitrate (k here is short for kbps). value = _("%dk") % value except (KeyError, ValueError): value = " " elif tag == '__basename': value = self.get_basename() elif tag == '__rating': value = unicode(self.get_rating()) else: value = self.__tags.get(tag) if not value: if tag in ['tracknumber', 'discnumber']: return u"" elif tag in ('__rating', '__playcount'): value = "0" else: value = _UNKNOWNSTR if tag == 'title': gloc = gio.File(self.__tags['__loc']) basename = glib.filename_display_name(gloc.get_basename()) value = u"%s (%s)" % (value, basename) if isinstance(value, list): value = [unicode(x) for x in value] else: value = unicode(value) if join: value = self.join_values(value, _JOINSTR) return value def get_tag_search(self, tag, format=True, artist_compilations=True, extend_title=True): """ Get a tag value suitable for passing to the search system. This includes quoting and list joining. :param format: pre-format into a search query. :param artist_compilations: If True, automatically handle albumartist and other compilations detections when tag=="artist". :param extend_title: If the title tag is unknown, try to add some identifying information to it. """ extraformat = "" if tag == "artist": if artist_compilations and self.__tags.get('__compilation'): value = self.__tags.get('albumartist', '__null__') tag = 'albumartist' extraformat += " ! __compilation==__null__" else: value = self.__tags.get('artist') elif tag in ('tracknumber', 'discnumber'): value = self.split_numerical(self.__tags.get(tag))[0] elif tag in ('__length', '__playcount', '__rating'): value = self.__tags.get(tag, 0) elif tag == '__bitrate': try: value = int(self.__tags['__bitrate']) // 1000 if value != -1: #TRANSLATORS: Bitrate (k here is short for kbps). value = _("%dk") % value except (KeyError, ValueError): value = -1 elif tag == '__basename': value = self.get_basename() else: value = self.__tags.get(tag) # Quote arguments if value is None: value = '__null__' if tag == 'title': extraformat += ' __loc==\"%s\"' % self.__tags['__loc'] elif isinstance(value, list) and format: value = ['"%s"' % self.quoter(val) for val in value] elif format: value = '"%s"' % self.quoter(value) # Join lists if format: if isinstance(value, list): value = " ".join(['%s==%s' % (tag, v) for v in value]) else: value = '%s==%s' % (tag, value) if extraformat: value += extraformat # hack to make things work - discnumber breaks without it. # TODO: figure out why this happens, cleaner solution if not isinstance(value, list) and not tag.startswith("__"): value = unicode(value) return value def get_tag_disk(self, tag): """ Read a tag directly from disk. Can be slow, use with caution. Intended for use with large fields like covers and lyrics that shouldn't be loaded to the in-mem db. """ f = _CACHER.get(self) if not f: try: f = metadata.get_format(self.get_loc_for_io()) except Exception: # TODO: What exception? return None if not f: return None _CACHER.add(self, f) try: return f.read_tags([tag])[tag] except KeyError: return None def list_tags_disk(self): """ List all the tags directly from file metadata. Can be slow, use with caution. """ f = _CACHER.get(self) if not f: try: f = metadata.get_format(self.get_loc_for_io()) except Exception: # TODO: What exception? return None if not f: return None _CACHER.add(self, f) return f._get_raw().keys() ### convenience funcs for rating ### # these dont fit in the normal set of tag access methods, # but are sufficiently useful to warrant inclusion here def get_rating(self): """ Returns the current track rating as an integer, as determined by the ``rating/maximum`` setting. """ try: rating = float(self.get_tag_raw('__rating')) except (TypeError, KeyError, ValueError): return 0 maximum = settings.get_option("rating/maximum", 5) rating = int(round(rating*float(maximum)/100.0)) if rating > maximum: return int(maximum) elif rating < 0: return 0 return rating def set_rating(self, rating): """ Sets the current track rating from an integer, on the scale determined by the ``rating/maximum`` setting. Returns the scaled rating """ rating = float(rating) maximum = float(settings.get_option("rating/maximum", 5)) rating = min(rating, maximum) rating = max(0, rating) rating = float(rating * 100.0 / maximum) self.set_tag_raw('__rating', rating) return rating ### Special functions for wrangling tag values ### @classmethod def format_sort(cls, values): if isinstance(values, list): return [cls.format_sort(v) for v in values] # order of these is important, both for speed and behavior! values = cls.strip_leading(values) values = cls.strip_marks(values) values = cls.lower(values) values = cls.the_cutter(values) values = cls.expand_doubles(values) return values @staticmethod def join_values(values, glue=u" / "): """ Exaile's standard method to join tag values """ if type(values) in (str, unicode): return values return glue.join(map(common.to_unicode, values)) @staticmethod def split_numerical(values): """ this is used to split a tag like tracknumber that is in int/int format into its separate parts. input should be a string of the content, and may also be wrapped in a list. """ if not values: return None, 0 if isinstance(values, list): val = values[0] else: val = values split = val.split("/")[:2] try: one = int(split[0]) except ValueError: one = None try: two = int(split[1]) except (IndexError, ValueError): two = 0 return (one, two) @staticmethod def strip_leading(value): """ Strip special chars off the beginning of a field. If stripping the chars leaves nothing the original field is returned with only whitespace removed. """ stripped = common.to_unicode(value).lstrip( " `~!@#$%^&*()_+-={}|[]\\\";'<>?,./") if stripped: return stripped else: return value.lstrip() @staticmethod def the_cutter(value): """ Cut common words like 'the' from the beginning of a tag so that they sort properly. """ lowered = value.lower() for word in Track.__the_cuts: if not word.endswith("'"): word += ' ' if lowered.startswith(word): value = value[len(word):] break return value @staticmethod def strip_marks(value): """ Remove accents, diacritics, etc. """ # value is appended afterwards so that like-accented values # will sort together. return u''.join([c for c in unicodedata.normalize('NFD', value) if unicodedata.category(c) != 'Mn']) + u" " + value @staticmethod def expand_doubles(value): """ turns characters like æ into values suitable for sorting, like 'ae'. see _sortcharmap for the mapping. value must be a unicode object or this wont replace anything. value must be in lower-case """ for k, v in _sortcharmap.iteritems(): value = value.replace(k, v) return value # This is slower, don't use it! # return u''.join((_sortcharmap.get(c, c) for c in value)) @staticmethod def lower(value): """ Make tag value lower-case. """ # add the original string after the lowered val so that # we sort case-sensitively if the case-insensitive value # are identical. return value.lower() + " " + value @classmethod def quoter(cls, value): """ Escape quotes so that it's safe to put the value inside a "" literal for searches. Has no effect on non-string values. """ try: return value.replace('"', '\\\"') except AttributeError: return value @classmethod def _the_cuts_cb(cls, name, obj, data): """ PRIVATE update the cached the_cutter values """ if data == "collection/strip_list": cls._Track__the_cuts = settings.get_option('collection/strip_list', []) event.add_callback(Track._the_cuts_cb, 'collection_option_set') dist/copy/xl/trax/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260017533 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.513046945 exaile-3.3.2/xl/trax/__init__.py0000644000000000000000000000351612233027260016500 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. # It is encouraged that external modules should import from here, # rather than directly from submodules. """ Provides the base for creating and managing Track objects. """ from xl.trax.track import Track from xl.trax.trackdb import TrackDB from xl.trax.search import ( SearchResultTrack, search_tracks, search_tracks_from_string, TracksMatcher, match_track_from_string) from xl.trax.util import ( is_valid_track, get_album_tracks, get_uris_from_tracks, get_tracks_from_uri, sort_tracks, sort_result_tracks, get_rating_from_tracks) dist/copy/xl/trax/PaxHeaders.26361/search.py0000644000175000017500000000012412233027260017241 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.569046947 exaile-3.3.2/xl/trax/search.py0000644000000000000000000003671612233027260016216 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import time import re __all__ = ['TracksMatcher', 'search_tracks'] class SearchResultTrack(object): """ Holds a track with search result metadata included. :param track: The Track object """ __slots__ = ['track', 'on_tags'] def __init__(self, track): self.track = track self.on_tags = [] class _Matcher(object): """ Base class for match conditions """ __slots__ = ['tag', 'content', 'lower'] def __init__(self, tag, content, lower): self.tag = tag if content and not self.tag.startswith("__"): content = lower(content) self.content = content self.lower = lower def match(self, srtrack): vals = srtrack.track.get_tag_search(self.tag, format=False) if vals == '__null__': vals = None if self.tag.startswith("__"): if self._matches(vals): return True return False else: if type(vals) != list: vals = [vals] for item in vals: try: item = self.lower(item) except: pass if self._matches(item): return True else: return False def _matches(self, value): raise NotImplementedError class _ExactMatcher(_Matcher): """ Condition for exact matches """ def _matches(self, value): if self.tag.startswith("__"): try: newvalue = float(value) newcontent = float(self.content) except (TypeError, ValueError): newvalue = value newcontent = self.content else: newvalue = value newcontent = self.content return newvalue == newcontent class _InMatcher(_Matcher): """ Condition for inexact (ie. containing) matches """ def _matches(self, value): if not value: return False try: return self.content in value except TypeError: return False class _RegexMatcher(_Matcher): """ Condition for regular expression matches """ def __init__(self, tag, content, lower): _Matcher.__init__(self, tag, content, lower) self._re = re.compile(content) def _matches(self, value): if not value: return False try: return self._re.search( value ) is not None except TypeError: return False class _GtMatcher(_Matcher): """ Condition for greater than matches. """ def _matches(self, value): try: value = float(value) content = float(self.content) # kinda inefficient except (TypeError, ValueError): return False return value > content class _LtMatcher(_Matcher): """ Condition for less than matches. """ def _matches(self, value): try: value = float(value) content = float(self.content) # kinda inefficient except (TypeError, ValueError): return False return value < content class _NotMetaMatcher(object): """ Condition for boolean NOT """ __slots__ = ['matcher'] tag = None def __init__(self, matcher): self.matcher = matcher def match(self, srtrack): return not self.matcher.match(srtrack) class _OrMetaMatcher(object): """ Condition for boolean OR """ __slots__ = ['left', 'right'] tag = None def __init__(self, left, right): self.left, self.right = left, right def match(self, srtrack): return self.left.match(srtrack) or self.right.match(srtrack) class _MultiMetaMatcher(object): """ Condition for boolean AND """ __slots__ = ['matchers'] tag = None def __init__(self, matchers): self.matchers = matchers def match(self, srtrack): for ma in self.matchers: if not ma.match(srtrack): return False return True class _ManyMultiMetaMatcher(object): """ TODO: think of a proper docstring for this This handles the case where we want to match in an OR-like fashion, but also know which tags were matched. Useful for the collection panel expansion. """ __slots__ = ['matchers', 'tags'] tag = None def __init__(self, matchers): self.matchers = matchers self.tags = set() def match(self, srtrack): self.tags = set() matched = False for ma in self.matchers: if ma.match(srtrack): if ma.tag: matched = True self.tags.add(ma.tag) elif hasattr(ma, 'tags') and ma.tags: matched = True self.tags.update(ma.tags) return matched class TracksMatcher(object): """ Holds criteria and determines whether a given track matches those criteria. """ __slots__ = ['matchers', 'case_sensitive', 'keyword_tags'] def __init__(self, search_string, case_sensitive=True, keyword_tags=None): """ :param search_string: a string describing the match conditions :param case_sensitive: whether to search in a case-sensitive manner. :param keyword_tags: a list of tags to match search keywords in. """ self.case_sensitive = case_sensitive self.keyword_tags = keyword_tags or [] tokens = self.__tokenize_query(search_string) tokens = self.__red(tokens) tokens = self.__optimize_tokens(tokens) self.matchers = self.__tokens_to_matchers(tokens) def match(self, srtrack): """ Determine whether a given SearchResultTrack's internal Track object matches this search condition. """ for ma in self.matchers: if not ma.match(srtrack): break if ma.tag is not None: if ma.tag not in srtrack.on_tags: srtrack.on_tags.append(ma.tag) elif hasattr(ma, 'tags'): for t in ma.tags: if t not in srtrack.on_tags: srtrack.on_tags.append(t) else: return True return False def __tokens_to_matchers(self, tokens, matchers=None): """ Converts a token hierarchy to a list of matchers """ if not matchers: matchers = [] # if there's no more tokens, we're done try: token = tokens[0] except IndexError: return matchers # is it a special operator? if type(token) == list: if len(token) == 1: token = token[0] subtoken = token[0] # NOT if subtoken == "!": nots = self.__tokens_to_matchers(token[1]) matchers.append(_NotMetaMatcher(_MultiMetaMatcher(nots))) # OR elif subtoken == "|": left = self.__tokens_to_matchers([token[1][0]]) right = self.__tokens_to_matchers([token[1][1]]) matchers.append(_OrMetaMatcher( _MultiMetaMatcher(left), _MultiMetaMatcher(right))) # () elif subtoken == "(": inner = self.__tokens_to_matchers([token[1]]) matchers.append(_MultiMetaMatcher(inner)) else: return matchers elif token == '': pass # normal token else: if not self.case_sensitive: lower = lambda x: x.lower() else: lower = lambda x: x # TODO: this stuff is kinda repetitive, can we consolidate # it? Maybe move some of this into the matcher classes? # exact match in tag if "==" in token: tag, content = token.split("==", 1) if content == "__null__": content = None matcher = _ExactMatcher(tag, content, lower) matchers.append(matcher) # keyword in tag elif "=" in token: tag, content = token.split("=", 1) content = content.strip().strip('"') matcher = _InMatcher(tag, content, lower) matchers.append(matcher) elif ">" in token: tag, content = token.split(">", 1) content = content.strip().strip('"') matcher = _GtMatcher(tag, content, lower) matchers.append(matcher) elif "<" in token: tag, content = token.split("<", 1) content = content.strip().strip('"') matcher = _LtMatcher(tag, content, lower) matchers.append(matcher) elif "~" in token: tag, content = token.split("~", 1) content = content.strip().strip('"') matcher = _RegexMatcher(tag, content, lower) matchers.append(matcher) # plain keyword else: content = token.strip().strip('"') mmm = [] for tag in self.keyword_tags: matcher = _InMatcher(tag, content, lower) mmm.append(matcher) matchers.append(_ManyMultiMetaMatcher(mmm)) return self.__tokens_to_matchers(tokens[1:], matchers) def __tokenize_query(self, search): """ Turns a search string into a list of tokens. """ search = " " + search + " " tokens = [] newsearch = "" in_quotes = False in_regex = False n = 0 while n < len(search): c = search[n] if c == "\\": if not in_regex: n += 1 try: newsearch += search[n] except IndexError: pass elif in_quotes and c != "\"": newsearch += c elif c == "~": in_regex = True newsearch += c elif c == "\"": in_quotes = not in_quotes # toggle #newsearch += c elif c in ["|", "!", "(", ")"]: newsearch += c elif c == " ": in_regex = False tokens.append(newsearch) newsearch = "" else: newsearch += c n += 1 return tokens def __red(self, tokens): """ Turn the token list into a token list hierarchy that is easier to parse. """ # base case since we use recursion if tokens == []: return [] # handle parentheses elif "(" in tokens: num_found = 0 start = None end = None count = 0 for t in tokens: if t == "(": if start is None: start = count else: num_found += 1 elif t == ")": if end is None and num_found == 0: end = count else: num_found -= 1 if start and end: break count += 1 before = tokens[:start] inside = self.__red(tokens[start+1:end]) after = tokens[end+1:] tokens = before + [["(", inside]] + after # handle NOT elif "!" in tokens: start = tokens.index("!") end = start+2 before = tokens[:start] inside = tokens[start+1:end] after = tokens[end:] tokens = before + [["!", inside]] + after # handle OR elif "|" in tokens: start = tokens.index("|") inside = [tokens[start-1], tokens[start+1]] before = tokens[:start-1] after = tokens[start+2:] tokens = before + [["|", inside]] + after # nothing special, so just return it else: return tokens return self.__red(tokens) def __optimize_tokens(self, tokens): """ Attempt to optimize tokens, to speed up matching. """ # longer queries tend to reject more tracks, which speeds up # processing, so we put them first. tokens.sort(key=len) return tokens def search_tracks(trackiter, trackmatchers): """ Search a set of tracks for those that match specified conditions. :param trackiter: An iterable object returning Track objects :param trackmatchers: A list of TrackMatcher objects """ for srtr in trackiter: if not isinstance(srtr, SearchResultTrack): srtr = SearchResultTrack(srtr) for tma in trackmatchers: if not tma.match(srtr): break else: yield srtr # On large collections, searching can take a while. Due to # peculiarities in python's GIL that means the now-cpu-bound # thread running the search can end up blocking other threads. # Calling out to time.sleep forces a release of the GIL and # allows other threads to run. Benchmarks show this has no # noticable effect on search speed. time.sleep(0) def search_tracks_from_string(trackiter, search_string, case_sensitive=True, keyword_tags=None): """ Convenience wrapper around search_tracks that builds matchers automatically from the search string. Arguments have the same meaning as the corresponding arguments on on :class:`search_tracks` and :class:`TracksMatcher`. """ matchers = [TracksMatcher(search_string, case_sensitive=case_sensitive, keyword_tags=keyword_tags)] return search_tracks(trackiter, matchers) def match_track_from_string(track, search_string, case_sensitive=True, keyword_tags=None): matcher = TracksMatcher(search_string, case_sensitive=case_sensitive, keyword_tags=keyword_tags) return matcher.match(SearchResultTrack(track)) dist/copy/xl/trax/PaxHeaders.26361/util.py0000644000175000017500000000012412233027260016751 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.605046948 exaile-3.3.2/xl/trax/util.py0000644000000000000000000001263112233027260015714 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import gio from xl import metadata, settings from xl.trax.track import Track from xl.trax.search import search_tracks, TracksMatcher def is_valid_track(location): """ Returns whether the file at the given location is a valid track :param location: the location to check :type location: string :returns: whether the file is a valid track :rtype: boolean """ extension = gio.File(location).get_basename().split(".")[-1] return extension.lower() in metadata.formats def get_uris_from_tracks(tracks): """ Returns all URIs for tracks :param tracks: the tracks to retrieve the URIs from :type tracks: list of :class:`xl.trax.Track` :returns: the uris :rtype: list of string """ return [track.get_loc_for_io() for track in tracks] def get_tracks_from_uri(uri): """ Returns all valid tracks located at uri :param uri: the uri to retrieve the tracks from :type uri: string :returns: the retrieved tracks :rtype: list of :class:`xl.trax.Track` """ tracks = [] gloc = gio.File(uri) # don't do advanced checking on streaming-type uris as it can fail or # otherwise be terribly slow. # TODO: move uri definition somewhere more common for easy reuse? if gloc.get_uri_scheme() in ('http', 'mms', 'cdda'): return [Track(uri)] file_type = gloc.query_info("standard::type").get_file_type() if file_type == gio.FILE_TYPE_DIRECTORY: # TODO: refactor Library so we dont need the collection obj from xl.collection import Library, Collection tracks = Collection('scanner') lib = Library(uri) lib.set_collection(tracks) lib.rescan() tracks = tracks.get_tracks() else: tracks = [Track(uri)] return tracks def sort_tracks(fields, iter, trackfunc=None, reverse=False): """ Sorts tracks. :param fields: tag names to sort by :type fields: iterable :param iter: the tracks to sort, alternatively use *trackfunc* :type iter: iterable :param trackfunc: function to get a *Track* from an item in the iterable :type trackfunc: function or None :param reverse: whether to sort in reversed order :type reverse: boolean """ fields = list(fields) # we need the index method artist_compilations = True if trackfunc is None: trackfunc = lambda tr: tr keyfunc = lambda tr: [trackfunc(tr).get_tag_sort(field, artist_compilations=artist_compilations) for field in fields] return sorted(iter, key=keyfunc, reverse=reverse) def sort_result_tracks(fields, trackiter, reverse=False): """ Sorts SearchResultTracks, ie. the output from a search. Same params as sort_tracks. """ return sort_tracks(fields, trackiter, lambda tr: tr.track, reverse) def get_rating_from_tracks(tracks): """ Returns the common rating for all tracks or simply 0 if not all tracks have the same rating. Same goes if the amount of tracks is 0 or more than the internal limit. :param tracks: the tracks to retrieve the rating from :type tracks: iterable """ if len(tracks) < 1: return 0 # TODO: still needed? # if len(tracks) > settings.get_option('rating/tracks_limit', 100): # return 0 rating = tracks[0].get_rating() for track in tracks: if track.get_rating() != rating: return 0 return rating def get_album_tracks(tracksiter, track, artist_compilations=True): """ Get any tracks from the given iterable that appear to be part of the same album as track. If track is in the iterable, it will be included in the result. If there is insufficient information to determine the album, the empty list will be returned, even if the track is in the iterable. """ if not all(track.get_tag_raw(t) for t in ['artist', 'album']): return [] matchers = map(lambda t: TracksMatcher(track.get_tag_search(t, artist_compilations=artist_compilations)), ['artist', 'album']) return (r.track for r in search_tracks(tracksiter, matchers)) dist/copy/xl/PaxHeaders.26361/devices.py0000644000175000017500000000012412233027260016440 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.517046945 exaile-3.3.2/xl/devices.py0000644000000000000000000001063612233027260015406 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. """ Devices contains the DeviceManager and some generic Device classes """ from xl import common, event, collection class DeviceManager(object): """ manages devices """ def __init__(self): self.devices = {} def add_device(self, device): # make sure we don't overwrite existing devices count = 3 if device.get_name() in self.devices: device.name += " (2)" while device.get_name() in self.devices: device.name = device.name[:-4] + " (%s)"%count count += 1 self.devices[device.get_name()] = device event.log_event("device_added", self, device) def remove_device(self, device): try: if device.connected: device.disconnect() del self.devices[device.get_name()] except KeyError: pass event.log_event("device_removed", self, device) def list_devices(self): return self.devices.values() class TransferNotSupportedError(Exception): pass class Device(object): """ a device must be subclassed for use """ class_autoconnect = False library_class = collection.Library def __init__(self, name): self.name = name self.collection = collection.Collection(name=self.name) self.playlists = [] self._connected = False self.transfer = None # subclasses need to override this # if they want transferring def __get_connected(self): return self._connected def __set_connected(self, val): prior = self._connected self._connected = val if prior != val: if val: event.log_event("device_connected", self, self) else: event.log_event("device_disconnected", self, self) connected = property(__get_connected, __set_connected) def get_name(self): return self.name def autoconnect(self): if self.class_autoconnect: self.connect() def is_connected(self): return self.connected def connect(self): """ connects to the device, creating Collections and Playlists as appropriate """ raise NotImplementedError def disconnect(self): """ disconnect from the device. should clear all stored metadata """ raise NotImplementedError def get_collection(self): """ returns the device's collection, if applicable """ return self.collection def get_playlists(self): """ returns a list of all playlists on the device, if any """ return self.playlists def add_tracks(self, tracks): """ Send tracks to the device """ if not self.transfer: raise TransferNotSupportedError, "Device class does not " \ "support transfer." self.transfer.enqueue(tracks) def start_transfer(self): if not self.transfer: raise TransferNotSupportedError, "Device class does not " \ "support transfer." self.transfer.transfer() # vim: et sts=4 sw=4 dist/copy/xl/PaxHeaders.26361/lyrics.py0000644000175000017500000000012412233027260016323 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.565046947 exaile-3.3.2/xl/lyrics.py0000644000000000000000000002352412233027260015271 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. from datetime import ( datetime, timedelta ) import os import shelve import zlib import threading from xl.nls import gettext as _ from xl import ( common, event, providers, settings, xdg ) class LyricsNotFoundException(Exception): pass class LyricsCache: ''' Basically just a thread-safe shelf for convinience. Supports container syntax. ''' def __init__(self, location, default=None): ''' @param location: specify the shelve file location @param default: can specify a default to return from getter when there is nothing in the shelve ''' self.location = location try: self.db = shelve.open(location, flag='c', protocol=common.PICKLE_PROTOCOL, writeback=False) except ImportError: import bsddb3 # ArchLinux disabled bsddb in python2, so we have to use the external module _db = bsddb3.hashopen(location, 'c') self.db = shelve.Shelf(_db, protocol=common.PICKLE_PROTOCOL) self.lock = threading.Lock() self.default = default def keys(self): ''' Return the shelve keys ''' return self.db.keys() def _get(self, key, default=None): with self.lock: try: return self.db[key] except: return default if default is not None else self.default def _set(self, key, value): with self.lock: self.db[key] = value # force save, wasn't auto-saving... self.db.sync() def __getitem__(self, key): return self._get(key) def __setitem__(self, key, value): self._set(key, value) def __contains__(self, key): return key in self.db def __delitem__(self, key): with self.lock: del self.db[key] def __iter__(self): return self.db.__iter__() def __len__(self): return len(self.db) class LyricsManager(providers.ProviderHandler): """ Lyrics Manager Manages talking to the lyrics plugins and updating the track """ def __init__(self): providers.ProviderHandler.__init__(self, "lyrics") self.preferred_order = settings.get_option( 'lyrics/preferred_order', []) self.cache = LyricsCache(os.path.join(xdg.get_cache_dir(), 'lyrics.cache')) def set_preferred_order(self, order): """ Sets the preferred search order :param order: a list containing the order you'd like to search first """ if not type(order) in (list, tuple): raise AttributeError("order must be a list or tuple") self.preferred_order = order settings.set_option('lyrics/preferred_order', list(order)) def on_provider_removed(self, provider): """ Remove the provider from the methods dict, and the preferred_order dict if needed. :param provider: the provider instance being removed. """ try: self.preferred_order.remove(provider.name) except (ValueError, AttributeError): pass def find_lyrics(self, track, refresh=False): """ Fetches lyrics for a track either from 1. a backend lyric plugin 2. the actual tags in the track :param track: the track we want lyrics for, it must have artist/title tags :param refresh: if True, try to refresh cached data even if not expired :return: tuple of the following format (lyrics, source, url) where lyrics are the lyrics to the track source is where it came from (file, lyrics wiki, lyrics fly, etc.) url is a link to the lyrics (where applicable) :raise LyricsNotFoundException: when lyrics are not found """ lyrics = None source = None url = None for method in self.get_providers(): try: (lyrics, source, url) = self._find_cached_lyrics(method, track, refresh) except LyricsNotFoundException: pass if lyrics: break if not lyrics: # no lyrcs were found, raise an exception raise LyricsNotFoundException() lyrics = lyrics.strip() return (lyrics, source, url) def find_all_lyrics(self, track, refresh=False): """ Like find_lyrics but fetches all sources and returns a list of lyrics. :param track: the track we want lyrics for, it must have artist/title tags :param refresh: if True, try to refresh cached data even if not expired :return: list of tuples in the same format as find_lyrics's return value :raise LyricsNotFoundException: when lyrics are not found from all sources. """ lyrics_found=[] for method in self.get_providers(): lyrics = None source = None url = None try: (lyrics, source, url) = self._find_cached_lyrics(method, track, refresh) except LyricsNotFoundException: pass if lyrics: lyrics = lyrics.strip() lyrics_found.append((method.display_name,lyrics, source, url)) if not lyrics_found: # no lyrics were found, raise an exception raise LyricsNotFoundException() return lyrics_found def _find_cached_lyrics(self, method, track, refresh=False): """ Checks the cache for lyrics. If found and not expired, returns cached results, otherwise tries to fetch from method. :param method: the LyricSearchMethod to fetch lyrics from. :param track: the track we want lyrics for, it must have artist/title tags :param refresh: if True, try to refresh cached data even if not expired :return: list of tuples in the same format as find_lyric's return value :raise LyricsNotFoundException: when lyrics are not found in cache or fetched from method """ lyrics = None source = None url = None cache_time = settings.get_option('lyrics/cache_time', 720) # in hours key = str(track.get_loc_for_io() + method.display_name + track.get_tag_display('artist') + track.get_tag_display('title')) try: # check cache for lyrics if key in self.cache: (lyrics, source, url, time) = self.cache[key] # return if they are not expired now = datetime.now() if (now-time < timedelta(hours=cache_time) and not refresh): try: lyrics = zlib.decompress(lyrics) except: pass return (lyrics, source, url) (lyrics, source, url) = method.find_lyrics(track) except LyricsNotFoundException: pass else: if lyrics: # update cache time = datetime.now() self.cache[key] = (zlib.compress(lyrics), source, url, time) if not lyrics: # no lyrcs were found, raise an exception raise LyricsNotFoundException() return (lyrics, source, url) MANAGER = LyricsManager() class LyricSearchMethod(object): """ Lyrics plugins will subclass this """ def find_lyrics(self, track): """ Called by LyricsManager when lyrics are requested :param track: the track that we want lyrics for """ raise NotImplementedError def _set_manager(self, manager): """ Sets the lyrics manager. Called when this method is added to the lyrics manager. :param manager: the lyrics manager """ self.manager = manager class LocalLyricSearch(LyricSearchMethod): name="__local" display_name=_("Local") def find_lyrics(self, track): lyrics = track.get_tag_disk('lyrics') if not lyrics: raise LyricsNotFoundException() return (lyrics[0], self.name, "") providers.register('lyrics', LocalLyricSearch()) dist/copy/xl/PaxHeaders.26361/formatter.py0000644000175000017500000000012412233027260017021 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.517046945 exaile-3.3.2/xl/formatter.py0000644000000000000000000006443412233027260015774 0ustar00rootroot00000000000000# -*- coding: utf-8 -*- # Copyright (C) 2010 Mathias Brodala # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. """ Provides an extensible framework for processing and preparation of data for display in various contexts. """ from datetime import date import gio import glib import gobject import re from string import Template, _TemplateMetaclass from xl import ( common, event, main, providers, settings, trax ) from xl.common import TimeSpan from xl.nls import gettext as _, ngettext class _ParameterTemplateMetaclass(_TemplateMetaclass): # Allows for $tag, ${tag}, ${tag:parameter} and ${tag:parameter=argument} pattern = r""" %(delim)s(?: (?P%(delim)s) | # Escape sequence of two delimiters (?P%(id)s) | # Delimiter and a Python identifier { (?P%(id)s) # Delimiter and a braced identifier (!?: (?P %(id)s # First optional parameter indicated with ':' (!?=(!?%(arg)s)+?)? # Optional argument indicated with '=' (!?,\s*%(id)s # Further optional parameters separated with ',' (!?=(!?%(arg)s)+?)? # Optional argument indicated with '=' )* ) )? } | (?P) # Other ill-formed delimiter expressions ) """ def __init__(cls, name, bases, dct): super(_ParameterTemplateMetaclass, cls).__init__(name, bases, dct) if 'pattern' in dct: pattern = cls.pattern else: pattern = _ParameterTemplateMetaclass.pattern % { 'delim': re.escape(cls.delimiter), 'id': cls.idpattern, 'arg': cls.argpattern, } cls.pattern = re.compile(pattern, re.IGNORECASE | re.VERBOSE) class ParameterTemplate(Template): """ An extended template class which additionally accepts parameters assigned to identifiers. This introduces another pattern group named "parameters" in addition to the groups created by :class:`string.Template` Examples: * ``${foo:parameter1}`` * ``${bar:parameter1, parameter2}`` * ``${qux:parameter1=argument1, parameter2}`` """ __metaclass__ = _ParameterTemplateMetaclass argpattern = r'[^,}=]|\,|\}|\=' def __init__(self, template): """ :param template: the template string """ Template.__init__(self, template) def safe_substitute(self, *args, **kwargs): """ Overridden to allow for parametrized identifiers """ if len(args) > 1: raise TypeError('Too many positional arguments') if not args: mapping = kwargs elif kwargs: mapping = _multimap(kwargs, args[0]) else: mapping = args[0] # Helper function for .sub() def convert(mo): named = mo.group('named') if named is not None: try: # We use this idiom instead of str() because the latter # will fail if val is a Unicode containing non-ASCII return '%s' % (mapping[named],) except KeyError: return self.delimiter + named braced = mo.group('braced') if braced is not None: parts = [braced] parameters = mo.group('parameters') if parameters is not None: parts += [parameters] try: return '%s' % (mapping[':'.join(parts)],) except KeyError: return self.delimiter + '{' + ':'.join(parts) + '}' if mo.group('escaped') is not None: return self.delimiter if mo.group('invalid') is not None: return self.delimiter raise ValueError('Unrecognized named group in pattern', self.pattern) return self.pattern.sub(convert, self.template) class Formatter(gobject.GObject): """ A generic text formatter based on a format string By default the following parameters are provided to each identifier: * ``prefix``, ``suffix``: a string to put before or after the formatted string if that string is not empty * Whitespace will be not be touched and transferred as is * The characters ``,``, ``}`` and ``=`` need to be escaped like ``\,``, ``\}`` and ``\=`` respectively * ``pad``: desired length the formatted string should have, will be achieved using the ``padstring`` * ``padstring``: a string to use for padding, will be repeated as often as possible to achieve the desired length specified by ``pad`` * Example: ``${identifier:pad=4, padstring=XY}`` for *identifier* having the value *a* will become *XYXa* """ __gproperties__ = { 'format': ( gobject.TYPE_STRING, 'format string', 'String the formatting is based on', '', gobject.PARAM_READWRITE ) } def __init__(self, format): """ :param format: the initial format, see the documentation of :class:`string.Template` for details :type format: string """ gobject.GObject.__init__(self) self._template = ParameterTemplate(format) self._substitutions = {} def do_get_property(self, property): """ Gets GObject properties """ if property.name == 'format': return self._template.template else: raise AttributeError('unkown property %s' % property.name) def do_set_property(self, property, value): """ Sets GObject properties """ if property.name == 'format': if value != self._template.template: self._template.template = value else: raise AttributeError('unkown property %s' % property.name) def extract(self): """ Retrieves the identifiers and their optional parameters Example of the returned dictionary:: extractions = { 'identifier1': ( 'identifier1', {}), 'identifier2:parameter': ( 'identifier2', {'parameter': True}), 'identifier3:parameter=argument': ( 'identifier3', {'parameter': 'argument'}) } :returns: the extractions :rtype: dict """ matches = self._template.pattern.finditer(self._template.template) extractions = {} # Extract list of identifiers and parameters from the format string for match in matches: groups = match.groupdict() # We only care about braced and named, not escaped and invalid identifier = groups['braced'] or groups['named'] if identifier is None: continue identifier_parts = [identifier] parameters = {} if groups['parameters'] is not None: # Split parameters on unescaped comma parameters = [p.lstrip() \ for p in re.split(r'(? 0 and padstring: # Decrease pad length by value length pad = max(0, pad - len(substitute)) # Retrieve the maximum multiplier for the pad string padcount = pad / len(padstring) + 1 # Generate pad string padstring = padcount * padstring # Clamp pad string padstring = padstring[0:pad] substitute = '%s%s' % (padstring, substitute) if substitute: substitute = '%s%s%s' % (prefix, substitute, suffix) substitutions[needle] = substitute return self._template.safe_substitute(substitutions) class ProgressTextFormatter(Formatter): """ A text formatter for progress indicators """ def __init__(self, format, player): Formatter.__init__(self, format) self._player = player def format(self, current_time=None, total_time=None): """ Returns a string suitable for progress indicators :param current_time: the current progress, taken from the current playback if not set :type current_time: float :param total_time: the total length of a track, taken from the current playback if not set :type total_time: float :returns: The formatted text :rtype: string """ total_remaining_time = 0 if current_time is None: current_time = self._player.get_time() if total_time is None: track = self._player.current if track is not None: total_time = track.get_tag_raw('__length') if total_time is None: total_time = remaining_time = 0 else: remaining_time = total_time - current_time playlist = self._player.queue.current_playlist if playlist and playlist.current_position >= 0: tracks = playlist[playlist.current_position:] total_remaining_time = sum([t.get_tag_raw('__length') \ for t in tracks if t.get_tag_raw('__length')]) total_remaining_time -= current_time self._substitutions['current_time'] = \ LengthTagFormatter.format_value(current_time) self._substitutions['remaining_time'] = \ LengthTagFormatter.format_value(remaining_time) self._substitutions['total_time'] = \ LengthTagFormatter.format_value(total_time) self._substitutions['total_remaining_time'] = \ LengthTagFormatter.format_value(total_remaining_time) return Formatter.format(self) class TrackFormatter(Formatter): """ A formatter for track data """ def format(self, track, markup_escape=False): """ Returns a string for places where track data is presented to the user :param track: a single track to take data from :type track: :class:`xl.trax.Track` :param markup_escape: whether to escape markup-like characters in tag values :type markup_escape: bool :returns: the formatted text :rtype: string """ if not isinstance(track, trax.Track): raise TypeError('First argument to format() needs ' 'to be of type xl.trax.Track') extractions = self.extract() self._substitutions = {} for identifier, (tag, parameters) in extractions.iteritems(): provider = providers.get_provider('tag-formatting', tag) if provider is None: substitute = track.get_tag_display(tag) else: substitute = provider.format(track, parameters) if markup_escape: substitute = glib.markup_escape_text(substitute) self._substitutions[identifier] = substitute return Formatter.format(self) class TagFormatter(): """ A formatter provider for a tag of a track """ def __init__(self, name): """ :param name: the name of the tag :type name: string """ self.name = name def format(self, track, parameters): """ Formats a raw tag value. Accepts optional parameters to manipulate the formatting process. :param track: the track to get the tag from :type track: :class:`xl.trax.Track` :param parameters: optionally passed parameters :type parameters: dictionary :returns: the formatted value :rtype: string """ pass class TrackNumberTagFormatter(TagFormatter): """ A formatter for the tracknumber of a track """ def __init__(self): TagFormatter.__init__(self, 'tracknumber') def format(self, track, parameters): """ Formats a raw tag value :param track: the track to get the tag from :type track: :class:`xl.trax.Track` :param parameters: optionally passed parameters :type parameters: dictionary :returns: the formatted value :rtype: string """ value = track.get_tag_raw(self.name, join=True) if not value: return '' try: # n/n value, count = value.split('/') except ValueError: # n pass if not value: return '' try: value = int(value) except ValueError: return '' return '%d' % value providers.register('tag-formatting', TrackNumberTagFormatter()) class DiscNumberTagFormatter(TagFormatter): """ A formatter for the tracknumber of a track """ def __init__(self): TagFormatter.__init__(self, 'discnumber') def format(self, track, parameters): """ Formats a raw tag value :param track: the track to get the tag from :type track: :class:`xl.trax.Track` :param parameters: optionally passed parameters :type parameters: dictionary :returns: the formatted value :rtype: string """ value = track.get_tag_raw(self.name, join=True) if not value: return '' try: # n/n value, count = value.split('/') except ValueError: # n pass if not value: return '' try: value = int(value) except ValueError: return '' return '%d' % value providers.register('tag-formatting', DiscNumberTagFormatter()) class ArtistTagFormatter(TagFormatter): """ A formatter for the artist of a track """ def __init__(self): TagFormatter.__init__(self, 'artist') def format(self, track, parameters): """ Formats a raw tag value :param track: the track to get the tag from :type track: :class:`xl.trax.Track` :param parameters: optionally passed parameters Possible values are: * compilate: Allows for proper handling of compilations, either via albumartist tag, a fallback value, or simply all artists :returns: the formatted value :rtype: string """ compilate = parameters.get('compilate', False) value = track.get_tag_display(self.name, artist_compilations=compilate) return value providers.register('tag-formatting', ArtistTagFormatter()) class LengthTagFormatter(TagFormatter): """ A formatter for the length of a track """ def __init__(self): TagFormatter.__init__(self, '__length') def format(self, track, parameters): """ Formats a raw tag value :param track: the track to get the tag from :type track: :class:`xl.trax.Track` :param parameters: Verbosity of the output, possible values for "format" are: * short: "1:02:42" * long: "1h, 2m, 42s" * verbose: "1 hour, 2 minutes, 42 seconds" :type parameters: dictionary :returns: the formatted value :rtype: string """ value = track.get_tag_raw(self.name) format = parameters.get('format', 'short') return self.format_value(value, format) @staticmethod def format_value(value, format='short'): """ Formats a length value :param value: the length in seconds :type value: float :param format: verbosity of the output, possible values are: * short: "1:02:42" * long: "1h, 2m, 42s" * verbose: "1 hour, 2 minutes, 42 seconds" :type format: string :returns: the formatted value :rtype: string """ span = TimeSpan(value) text = '' if format == 'verbose': if span.days > 0: text += ngettext('%d day, ', '%d days, ', span.days) % span.days if span.hours > 0: text += ngettext('%d hour, ', '%d hours, ', span.hours) % span.hours text += ngettext('%d minute, ', '%d minutes, ', span.minutes) % span.minutes text += ngettext('%d second', '%d seconds', span.seconds) % span.seconds elif format == 'long': if span.days > 0: # TRANSLATORS: Short form of an amount of days text += _('%dd, ') % span.days if span.hours > 0: # TRANSLATORS: Short form of an amount of hours text += _('%dh, ') % span.hours # TRANSLATORS: Short form of an amount of minutes text += _('%dm, ') % span.minutes # TRANSLATORS: Short form of an amount of seconds text += _('%ds') % span.seconds elif format == 'short': if span.days > 0: # TRANSLATORS: Short form of an amount of days text += _('%dd ') % span.days if span.hours > 0 or text: # always show hours when > 1 day # TRANSLATORS: Time duration (hours:minutes:seconds) text += _('%d:%02d:%02d') % ( span.hours, span.minutes, span.seconds) else: # TRANSLATORS: Time duration (minutes:seconds) text += _('%d:%02d') % (span.minutes, span.seconds) else: raise ValueError('Invalid argument "%s" passed to parameter ' '"format" for tag "__length", possible arguments are ' '"short", "long" and "verbose"' % format) return text providers.register('tag-formatting', LengthTagFormatter()) class RatingTagFormatter(TagFormatter): """ A formatter for the rating of a track Will return glyphs representing the rating like ★★★☆☆ """ def __init__(self): TagFormatter.__init__(self, '__rating') def format(self, track, parameters): """ Formats a raw tag value :param track: the track to get the tag from :type track: :class:`xl.trax.Track` :param parameters: optionally passed parameters :type parameters: dictionary :returns: the formatted value :rtype: string """ rating = track.get_rating() maximum = settings.get_option('rating/maximum', 5) filled = '★' * int(rating) empty = '☆' * int(maximum - rating) return ('%s%s' % (filled, empty)).decode('utf-8') providers.register('tag-formatting', RatingTagFormatter()) class DateTagFormatter(TagFormatter): """ A generic formatter for timestamp formatting Will return the localized string for *Today*, *Yesterday* or the respective localized date for earlier dates """ def __init__(self, name): """ :param name: the name of the tag :type name: string """ TagFormatter.__init__(self, name) def format(self, track, parameters): """ Formats a raw tag value :param track: the track to get the tag from :type track: :class:`xl.trax.Track` :param parameters: optionally passed parameters :type parameters: dictionary :returns: the formatted value :rtype: string """ value = track.get_tag_raw(self.name) # TRANSLATORS: Indicates that a track has never been played before text = _('Never') try: last_played = date.fromtimestamp(value) except TypeError, ValueError: text = _('Never') else: today = date.today() delta = today - last_played if delta.days == 0: text = _('Today') elif delta.days == 1: text = _('Yesterday') else: text = last_played.strftime('%x') return text class LastPlayedTagFormatter(DateTagFormatter): """ A formatter for the last time a track was played """ def __init__(self): DateTagFormatter.__init__(self, '__last_played') providers.register('tag-formatting', LastPlayedTagFormatter()) class DateAddedTagFormatter(DateTagFormatter): """ A formatter for the date a track was added to the collection """ def __init__(self): DateTagFormatter.__init__(self, '__date_added') providers.register('tag-formatting', DateAddedTagFormatter()) class LocationTagFormatter(TagFormatter): """ A formatter for the location of a track, properly sanitized if necessary """ def __init__(self): TagFormatter.__init__(self, '__loc') def format(self, track, parameters): """ Formats a raw tag value :param track: the track to get the tag from :type track: :class:`xl.trax.Track` :param parameters: optionally passed parameters :type parameters: dictionary :returns: the formatted value :rtype: string """ return common.sanitize_url(track.get_tag_raw('__loc')) providers.register('tag-formatting', LocationTagFormatter()) class CommentTagFormatter(TagFormatter): """ A formatter for comments embedded in tracks """ def __init__(self): TagFormatter.__init__(self, 'comment') def format(self, track, parameters): """ Formats a raw tag value :param track: the track to get the tag from :type track: :class:`xl.trax.Track` :param parameters: whether to keep newlines, possible values for "newlines" are: * keep: do not strip newlines (default) * strip: strip newlines :type parameters: dictionary :returns: the formatted value :rtype: string """ value = track.get_tag_disk(self.name) if not value: return '' value = '\n\n'.join(value) newlines = parameters.get('newlines', 'keep') return self.format_value(value, newlines) @staticmethod def format_value(value, newlines='keep'): """ Formats a comment value :param value: the comment text :type value: string :param newlines: whether to keep newlines, possible values are: * keep: do not strip newlines (default) * strip: strip newlines :type newlines: string :returns: the formatted value :rtype: string """ if newlines == 'strip': value = ' '.join(value.splitlines()) return value providers.register('tag-formatting', CommentTagFormatter()) # vim: et sts=4 sw=4 dist/copy/PaxHeaders.26361/doc0000644000175000017500000000013212233027261014511 xustar000000000000000030 mtime=1382821553.281046938 30 atime=1382821552.785046922 30 ctime=1382821553.281046938 exaile-3.3.2/doc/0000755000000000000000000000000012233027261013527 5ustar00rootroot00000000000000dist/copy/doc/PaxHeaders.26361/_static0000644000175000017500000000013212233027260016136 xustar000000000000000030 mtime=1382821552.777046921 30 atime=1382821552.785046922 30 ctime=1382821552.777046921 exaile-3.3.2/doc/_static/0000755000000000000000000000000012233027260015154 5ustar00rootroot00000000000000dist/copy/doc/PaxHeaders.26361/conf.py0000644000175000017500000000012412233027260016065 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.177046934 exaile-3.3.2/doc/conf.py0000644000000000000000000001507312233027260015033 0ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Exaile documentation build configuration file, created by # sphinx-quickstart on Sun May 10 19:24:12 2009. # # This file is execfile()d with the current directory set to its containing dir. # # Note that not all possible configuration values are present in this # autogenerated file. # # All configuration values have a default; values that are commented out # serve to show the default. import sys, os # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. sys.path.append(os.path.abspath(os.pardir)) # -- General configuration ----------------------------------------------------- # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. extensions = ['sphinx.ext.autodoc', 'sphinx.ext.doctest', 'sphinx.ext.todo', 'sphinx.ext.coverage'] # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] # The suffix of source filenames. source_suffix = '.rst' # The encoding of source files. source_encoding = 'utf-8' # The master toctree document. master_doc = 'index' # General information about the project. project = u'Exaile' copyright = u'2009-2010, Adam Olsen ' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. version = '0.3' # The full version, including alpha/beta/rc tags. release = '0.3.x' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. #language = None # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: #today = '' # Else, today_fmt is used as the format for a strftime call. #today_fmt = '%B %d, %Y' # List of documents that shouldn't be included in the build. #unused_docs = [] # List of directories, relative to source directory, that shouldn't be searched # for source files. exclude_trees = ['_build'] # The reST default role (used for this markup: `text`) to use for all documents. #default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. #add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). #add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. #show_authors = False # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' # A list of ignored prefixes for module index sorting. #modindex_common_prefix = [] # -- Options for HTML output --------------------------------------------------- # The theme to use for HTML and HTML Help pages. Major themes that come with # Sphinx are currently 'default' and 'sphinxdoc'. html_theme = 'default' # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. #html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. #html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". #html_title = None # A shorter title for the navigation bar. Default is the same as html_title. #html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. #html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. #html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['_static'] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. #html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. #html_use_smartypants = True # Custom sidebar templates, maps document names to template names. #html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. #html_additional_pages = {} # If false, no module index is generated. #html_use_modindex = True # If false, no index is generated. #html_use_index = True # If true, the index is split into individual pages for each letter. #html_split_index = False # If true, links to the reST sources are added to the pages. #html_show_sourcelink = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. #html_use_opensearch = '' # If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml"). #html_file_suffix = '' # Output file base name for HTML help builder. htmlhelp_basename = 'Exailedoc' # -- Options for LaTeX output -------------------------------------------------- # The paper size ('letter' or 'a4'). #latex_paper_size = 'letter' # The font size ('10pt', '11pt' or '12pt'). #latex_font_size = '10pt' # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass [howto/manual]). latex_documents = [ ('index', 'Exaile.tex', u'Exaile Documentation', u'Adam Olsen \\textless{}arolsen@gmail.com\\textgreater{}, Johannes Sasongko \\textless{}sasongko@gmail.com\\textgreater{}, Aren Olsen \\textless{}reacocard@gmail.com\\textgreater{}, Mathias Brodala \\textless{}info@noctus.net\\textgreater{}', 'manual'), ] # The name of an image file (relative to this directory) to place at the top of # the title page. #latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. #latex_use_parts = False # Additional stuff for the LaTeX preamble. #latex_preamble = '' # Documents to append as an appendix to all manuals. #latex_appendices = [] # If false, no module index is generated. #latex_use_modindex = True # -- Options for autodoc autodoc_member_order = "groupwise" autoclass_content = "both" dist/copy/doc/PaxHeaders.26361/xl0000644000175000017500000000013012233027261015132 xustar000000000000000029 mtime=1382821553.34104694 30 atime=1382821552.785046922 29 ctime=1382821553.34104694 exaile-3.3.2/doc/xl/0000755000000000000000000000000012233027261014152 5ustar00rootroot00000000000000dist/copy/doc/xl/PaxHeaders.26361/xldbus.rst0000644000175000017500000000012312233027260017243 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 29 ctime=1382821553.34104694 exaile-3.3.2/doc/xl/xldbus.rst0000644000000000000000000000117712233027260016212 0ustar00rootroot00000000000000D-Bus ===== .. automodule:: xl.xldbus org.exaile.Exaile Interface *************************** .. autoclass:: DbusManager :members: TestService, IsPlaying, GetTrackAttr, SetTrackAttr, GetRating, SetRating, ChangeVolume, ToggleMute, Seek, Prev, Stop, Next, Play, PlayPause, StopAfterCurrent, CurrentProgress, CurrentPosition, GetVolume, Query, GetVersion, PlayFile, Enqueue, Add, ExportPlaylist, GuiToggleVisible, GetCoverData, GetState, StateChanged, TrackChanged dist/copy/doc/xl/PaxHeaders.26361/formatter.rst0000644000175000017500000000012412233027260017746 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.241046936 exaile-3.3.2/doc/xl/formatter.rst0000644000000000000000000000137312233027260016712 0ustar00rootroot00000000000000Formatter ========= .. automodule:: xl.formatter Formatters ********** .. autoclass:: Formatter :members: extract, format .. autoclass:: ProgressTextFormatter :members: format .. autoclass:: TrackFormatter :members: format .. autoclass:: TagFormatter :members: format .. autoclass:: TrackNumberTagFormatter :show-inheritance: .. autoclass:: DiscNumberTagFormatter :show-inheritance: .. autoclass:: ArtistTagFormatter :show-inheritance: :members: format .. autoclass:: LengthTagFormatter :show-inheritance: :members: format, format_value .. autoclass:: RatingTagFormatter :show-inheritance: .. autoclass:: LastPlayedTagFormatter :show-inheritance: Templates ********* .. autoclass:: ParameterTemplate dist/copy/doc/xl/PaxHeaders.26361/metadata.rst0000644000175000017500000000012412233027260017523 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.285046938 exaile-3.3.2/doc/xl/metadata.rst0000644000000000000000000000040712233027260016464 0ustar00rootroot00000000000000Metadata ======== .. automodule:: xl.metadata .. autodata:: formats .. autofunction:: get_format Format Objects ************** .. exception:: NotWritable .. exception:: NotReadable .. autoclass:: BaseFormat :members: read_all, read_tags, write_tags dist/copy/doc/xl/PaxHeaders.26361/playlist.rst0000644000175000017500000000012412233027260017604 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.297046938 exaile-3.3.2/doc/xl/playlist.rst0000644000000000000000000000214412233027260016545 0ustar00rootroot00000000000000Playlist ======== .. automodule:: xl.playlist Playlists ********* .. autoclass:: Playlist :members: name, current_position, spat_position, dirty, shuffle_modes, shuffle_mode_names, shuffle_mode, repeat_mode, dynamic_mode, append, extend, count, index, pop, clear, get_current_position, set_current_position, get_spat_position, set_spat_position, get_current, get_shuffle_history, clear_shuffle_history, next, prev, get_shuffle_mode, set_shuffle_mode, get_repeat_mode, set_repeat_mode, get_dynamic_mode, set_dynamic_mode, randomize, sort, save_to_location, load_from_location Playlist Converters ******************* .. autoclass:: FormatConverter :members: export_to_file, import_from_file, name_from_path .. autoclass:: M3UConverter :show-inheritance: .. autoclass:: PLSConverter :show-inheritance: .. autoclass:: ASXConverter :show-inheritance: .. autoclass:: XSPFConverter :show-inheritance: dist/copy/doc/xl/PaxHeaders.26361/trax.rst0000644000175000017500000000012412233027260016721 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.329046939 exaile-3.3.2/doc/xl/trax.rst0000644000000000000000000000151612233027260015664 0ustar00rootroot00000000000000Trax ==== .. automodule:: xl.trax Tracks ****** .. autoclass:: Track :members: list_tags, get_tag_sort, get_tag_display, get_tag_raw, set_tag_raw, get_rating, set_rating, get_type, get_loc_for_io, local_file_name, set_loc, exists, read_tags, write_tags .. autofunction:: is_valid_track .. autofunction:: get_uris_from_tracks .. autofunction:: get_tracks_from_uri .. autofunction:: sort_tracks .. autofunction:: sort_result_tracks .. autofunction:: get_rating_from_tracks Track Database ************** Track databases are a simple persistence layer to hold collections of Track objects. .. autoclass:: TrackDB :members: add, add_tracks, remove, remove_tracks, load_from_location, save_to_location Searching ********* .. autoclass:: TracksMatcher .. autofunction:: search_tracks .. autofunction:: search_tracks_from_string dist/copy/doc/xl/PaxHeaders.26361/providers.rst0000644000175000017500000000012412233027260017760 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.309046938 exaile-3.3.2/doc/xl/providers.rst0000644000000000000000000000050512233027260016720 0ustar00rootroot00000000000000Providers & Services ==================== .. automodule:: xl.providers .. data:: MANAGER Singleton instance of the :class:`ProviderManager` .. autofunction:: register .. autofunction:: unregister .. autofunction:: get .. autofunction:: get_provider .. autoclass:: ProviderManager .. autoclass:: ProviderHandler dist/copy/doc/xl/PaxHeaders.26361/collection.rst0000644000175000017500000000012412233027260020076 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.177046934 exaile-3.3.2/doc/xl/collection.rst0000644000000000000000000000045512233027260017042 0ustar00rootroot00000000000000Collection ========== .. automodule:: xl.collection Collections *********** .. autofunction:: get_collection_by_loc .. autoclass:: Collection :members: .. autoclass:: CollectionScanThread :members: Libraries ********* .. autoclass:: Library :members: .. autoclass:: LibraryMonitor dist/copy/doc/xl/PaxHeaders.26361/player.rst0000644000175000017500000000012412233027260017237 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.289046938 exaile-3.3.2/doc/xl/player.rst0000644000000000000000000000233112233027260016176 0ustar00rootroot00000000000000Player ====== .. automodule:: xl.player .. autodata:: PLAYER The player singleton of :class:`ExailePlayer` for playback control .. automethod:: xl.player._base.ExailePlayer.play .. automethod:: xl.player._base.ExailePlayer.stop .. automethod:: xl.player._base.ExailePlayer.pause .. automethod:: xl.player._base.ExailePlayer.unpause .. automethod:: xl.player._base.ExailePlayer.toggle_pause .. automethod:: xl.player._base.ExailePlayer.seek .. automethod:: xl.player._base.ExailePlayer.get_position .. automethod:: xl.player._base.ExailePlayer.get_time .. automethod:: xl.player._base.ExailePlayer.get_progress .. automethod:: xl.player._base.ExailePlayer.set_progress .. automethod:: xl.player._base.ExailePlayer.get_volume .. automethod:: xl.player._base.ExailePlayer.set_volume .. automethod:: xl.player._base.ExailePlayer.get_state .. automethod:: xl.player._base.ExailePlayer.is_playing .. automethod:: xl.player._base.ExailePlayer.is_paused .. automethod:: xl.player._base.ExailePlayer.is_stopped .. autodata:: QUEUE The queue singleton of :class:`PlayQueue` .. autoclass:: xl.player.queue.PlayQueue :show-inheritance: :members: dist/copy/doc/xl/PaxHeaders.26361/covers.rst0000644000175000017500000000012412233027260017244 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.177046934 exaile-3.3.2/doc/xl/covers.rst0000644000000000000000000000101612233027260016202 0ustar00rootroot00000000000000Cover ===== .. automodule:: xl.covers Cover Manager ************* .. autodata:: MANAGER .. autoclass:: CoverManager :members: find_covers, get_cover, set_cover, remove_cover, get_cover_data, get_default_cover, set_preferred_order, load, save Cover Search Methods ******************** .. autoclass:: CoverSearchMethod :members: use_cache, name, find_covers, get_cover_data .. autoclass:: TagCoverFetcher .. autoclass:: LocalFileCoverFetcher dist/copy/doc/xl/PaxHeaders.26361/event.rst0000644000175000017500000000012412233027260017064 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.189046935 exaile-3.3.2/doc/xl/event.rst0000644000000000000000000000021112233027260016016 0ustar00rootroot00000000000000Events ====== .. automodule:: xl.event .. autofunction:: log_event .. autofunction:: add_callback .. autofunction:: remove_callback dist/copy/doc/xl/PaxHeaders.26361/common.rst0000644000175000017500000000012412233027260017233 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.177046934 exaile-3.3.2/doc/xl/common.rst0000644000000000000000000000140012233027260016166 0ustar00rootroot00000000000000Common utilities ================ .. automodule:: xl.common General functions ***************** .. autofunction:: log_exception .. autofunction:: to_unicode .. autofunction:: order_poset Filesystem ********** .. autofunction:: open_file .. autofunction:: open_file_directory .. autofunction:: walk .. autofunction:: walk_directories Decorators ********** .. autofunction:: threaded .. autofunction:: synchronized .. autofunction:: profileit .. autofunction:: classproperty .. autofunction:: cached Classes ******* .. exception:: VersionError(message) .. autoclass:: LimitedCache :show-inheritance: .. autoclass:: TimeSpan :members: .. autoclass:: MetadataList .. autoclass:: ProgressThread :members: run, stop .. autoclass:: PosetItem dist/copy/doc/xl/PaxHeaders.26361/settings.rst0000644000175000017500000000012412233027260017603 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.317046939 exaile-3.3.2/doc/xl/settings.rst0000644000000000000000000000050112233027260016537 0ustar00rootroot00000000000000Settings ======== .. automodule:: xl.settings .. data:: MANAGER Singleton instance of the :class:`SettingsManager` .. autofunction:: get_option .. autofunction:: set_option .. autoclass:: SettingsManager :members: get_option, set_option, has_option, remove_option, save :show-inheritance: dist/copy/doc/PaxHeaders.26361/make.bat0000644000175000017500000000012412233027260016173 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.281046938 exaile-3.3.2/doc/make.bat0000644000000000000000000000561712233027260015144 0ustar00rootroot00000000000000@ECHO OFF REM Command file for Sphinx documentation set SPHINXBUILD=sphinx-build set ALLSPHINXOPTS=-d _build/doctrees %SPHINXOPTS% . if NOT "%PAPER%" == "" ( set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS% ) if "%1" == "" goto help if "%1" == "help" ( :help echo.Please use `make ^` where ^ is one of echo. html to make standalone HTML files echo. dirhtml to make HTML files named index.html in directories echo. pickle to make pickle files echo. json to make JSON files echo. htmlhelp to make HTML files and a HTML help project echo. qthelp to make HTML files and a qthelp project echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter echo. changes to make an overview over all changed/added/deprecated items echo. linkcheck to check all external links for integrity echo. doctest to run all doctests embedded in the documentation if enabled goto end ) if "%1" == "clean" ( for /d %%i in (_build\*) do rmdir /q /s %%i del /q /s _build\* goto end ) if "%1" == "html" ( %SPHINXBUILD% -b html %ALLSPHINXOPTS% _build/html echo. echo.Build finished. The HTML pages are in _build/html. goto end ) if "%1" == "dirhtml" ( %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% _build/dirhtml echo. echo.Build finished. The HTML pages are in _build/dirhtml. goto end ) if "%1" == "pickle" ( %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% _build/pickle echo. echo.Build finished; now you can process the pickle files. goto end ) if "%1" == "json" ( %SPHINXBUILD% -b json %ALLSPHINXOPTS% _build/json echo. echo.Build finished; now you can process the JSON files. goto end ) if "%1" == "htmlhelp" ( %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% _build/htmlhelp echo. echo.Build finished; now you can run HTML Help Workshop with the ^ .hhp project file in _build/htmlhelp. goto end ) if "%1" == "qthelp" ( %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% _build/qthelp echo. echo.Build finished; now you can run "qcollectiongenerator" with the ^ .qhcp project file in _build/qthelp, like this: echo.^> qcollectiongenerator _build\qthelp\Exaile.qhcp echo.To view the help file: echo.^> assistant -collectionFile _build\qthelp\Exaile.ghc goto end ) if "%1" == "latex" ( %SPHINXBUILD% -b latex %ALLSPHINXOPTS% _build/latex echo. echo.Build finished; the LaTeX files are in _build/latex. goto end ) if "%1" == "changes" ( %SPHINXBUILD% -b changes %ALLSPHINXOPTS% _build/changes echo. echo.The overview file is in _build/changes. goto end ) if "%1" == "linkcheck" ( %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% _build/linkcheck echo. echo.Link check complete; look for any errors in the above output ^ or in _build/linkcheck/output.txt. goto end ) if "%1" == "doctest" ( %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% _build/doctest echo. echo.Testing of doctests in the sources finished, look at the ^ results in _build/doctest/output.txt. goto end ) :end dist/copy/doc/PaxHeaders.26361/index.rst0000644000175000017500000000012412233027260016427 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.257046937 exaile-3.3.2/doc/index.rst0000644000000000000000000000034712233027260015373 0ustar00rootroot00000000000000Welcome to Exaile's documentation! ================================== Core: .. toctree:: :glob: xl/* GUI: .. toctree:: :glob: xlgui/* Indices and tables ================== * :ref:`modindex` * :ref:`search` dist/copy/doc/PaxHeaders.26361/xlgui0000644000175000017500000000013212233027261015641 xustar000000000000000030 mtime=1382821553.257046937 30 atime=1382821552.785046922 30 ctime=1382821553.257046937 exaile-3.3.2/doc/xlgui/0000755000000000000000000000000012233027261014657 5ustar00rootroot00000000000000dist/copy/doc/xlgui/PaxHeaders.26361/icons.rst0000644000175000017500000000012412233027260017563 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.257046937 exaile-3.3.2/doc/xlgui/icons.rst0000644000000000000000000000166112233027260016527 0ustar00rootroot00000000000000Icons & Images ============== .. automodule:: xlgui.icons Icon management *************** .. data:: xlgui.icons.MANAGER Singleton instance of the :class:`IconManager` .. autoclass:: IconManager :members: add_icon_name_from_directory, add_icon_name_from_file, add_icon_name_from_pixbuf, add_stock_from_directory, add_stock_from_file, add_stock_from_files, add_stock_from_pixbuf, add_stock_from_pixbufs, pixbuf_from_stock, pixbuf_from_icon_name, pixbuf_from_data, pixbuf_from_text, pixbuf_from_rating Utilities ********* .. autoclass:: ExtendedPixbuf :members: add_horizontal, add_vertical, multiply_horizontal, multiply_vertical, composite_simple, move .. autofunction:: extended_pixbuf_new_from_file dist/copy/doc/PaxHeaders.26361/_templates0000644000175000017500000000013212233027260016645 xustar000000000000000030 mtime=1382821552.777046921 30 atime=1382821552.785046922 30 ctime=1382821552.777046921 exaile-3.3.2/doc/_templates/0000755000000000000000000000000012233027260015663 5ustar00rootroot00000000000000dist/copy/doc/PaxHeaders.26361/Makefile0000644000175000017500000000012412233027260016226 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.281046938 exaile-3.3.2/doc/Makefile0000644000000000000000000000566112233027260015176 0ustar00rootroot00000000000000# Makefile for Sphinx documentation # # You can set these variables from the command line. SPHINXOPTS = SPHINXBUILD = sphinx-build PAPER = # Internal variables. PAPEROPT_a4 = -D latex_paper_size=a4 PAPEROPT_letter = -D latex_paper_size=letter ALLSPHINXOPTS = -d _build/doctrees ${PAPEROPT_${PAPER}} ${SPHINXOPTS} . .PHONY: help clean html dirhtml pickle json htmlhelp qthelp latex changes linkcheck doctest help: @echo "Please use \`make ' where is one of" @echo " html to make standalone HTML files" @echo " dirhtml to make HTML files named index.html in directories" @echo " pickle to make pickle files" @echo " json to make JSON files" @echo " htmlhelp to make HTML files and a HTML help project" @echo " qthelp to make HTML files and a qthelp project" @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" @echo " changes to make an overview of all changed/added/deprecated items" @echo " linkcheck to check all external links for integrity" @echo " doctest to run all doctests embedded in the documentation (if enabled)" clean: -rm -rf _build/* html: ${SPHINXBUILD} -b html ${ALLSPHINXOPTS} _build/html @echo @echo "Build finished. The HTML pages are in _build/html." dirhtml: ${SPHINXBUILD} -b dirhtml ${ALLSPHINXOPTS} _build/dirhtml @echo @echo "Build finished. The HTML pages are in _build/dirhtml." pickle: ${SPHINXBUILD} -b pickle ${ALLSPHINXOPTS} _build/pickle @echo @echo "Build finished; now you can process the pickle files." json: ${SPHINXBUILD} -b json ${ALLSPHINXOPTS} _build/json @echo @echo "Build finished; now you can process the JSON files." htmlhelp: ${SPHINXBUILD} -b htmlhelp ${ALLSPHINXOPTS} _build/htmlhelp @echo @echo "Build finished; now you can run HTML Help Workshop with the" \ ".hhp project file in _build/htmlhelp." qthelp: ${SPHINXBUILD} -b qthelp ${ALLSPHINXOPTS} _build/qthelp @echo @echo "Build finished; now you can run "qcollectiongenerator" with the" \ ".qhcp project file in _build/qthelp, like this:" @echo "# qcollectiongenerator _build/qthelp/Exaile.qhcp" @echo "To view the help file:" @echo "# assistant -collectionFile _build/qthelp/Exaile.qhc" latex: ${SPHINXBUILD} -b latex ${ALLSPHINXOPTS} _build/latex @echo @echo "Build finished; the LaTeX files are in _build/latex." @echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \ "run these through (pdf)latex." changes: ${SPHINXBUILD} -b changes ${ALLSPHINXOPTS} _build/changes @echo @echo "The overview file is in _build/changes." linkcheck: ${SPHINXBUILD} -b linkcheck ${ALLSPHINXOPTS} _build/linkcheck @echo @echo "Link check complete; look for any errors in the above output " \ "or in _build/linkcheck/output.txt." doctest: ${SPHINXBUILD} -b doctest ${ALLSPHINXOPTS} _build/doctest @echo "Testing of doctests in the sources finished, look at the " \ "results in _build/doctest/output.txt." dist/copy/PaxHeaders.26361/INSTALL0000644000175000017500000000012412233027260015052 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.565046947 exaile-3.3.2/INSTALL0000644000000000000000000000321212233027260014010 0ustar00rootroot00000000000000 Linux/*nix ========== On *nix-based systems, run the following to install: $ make # make install The "make" step is optional and only compiles the modules and translations. There is also an install_no_locale target if you wish to install without translations. Install on OSX ============== On OSX with macports, you probably want to run the following: $ make # DEFAULTARGS="--no-hal --no-dbus" PREFIX=/opt/local make install See README.OSX for more information. Windows ======= On Windows, using the official Windows installation program is recommended. See README.Windows for more information. Environment Variables ===================== Environment variables that affect "make install": LIBINSTALLDIR The lib directory to be appended to PREFIX. Default: /lib PREFIX The installation prefix. Default: /usr/local Note: If this default is changed, you may need to set the XDG_DATA_DIRS environment variable to include the changed path. See [1]. XDGCONFDIR The directory to install system-wide config files in, following xdg spec. Default: /etc/xdg Note: If this default is changed, you may need to set the XDG_CONFIG_DIRS environment variable to include the changed path. See [1]. DESTDIR Destination directory to put the file structure under. Mainly of use for packagers. Default: not set (/) DEFAULTARGS Default arguments that the 'exaile' launcher script (installed to $PREFIX/bin/exaile) will pass to exaile on startup Additional Resources: [1] - XDG Base Directory Specification http://standards.freedesktop.org/basedir-spec/basedir-spec-0.6.html dist/copy/PaxHeaders.26361/README0000644000175000017500000000012412233027260014701 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.317046939 exaile-3.3.2/README0000644000000000000000000000005412233027260013640 0ustar00rootroot00000000000000 See INSTALL for installation instructions. dist/copy/PaxHeaders.26361/COPYING0000644000175000017500000000012412233027260015054 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.177046934 exaile-3.3.2/COPYING0000644000000000000000000004310312233027260014015 0ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 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. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. dist/copy/PaxHeaders.26361/FUTURE0000644000175000017500000000012412233027260014756 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.245046936 exaile-3.3.2/FUTURE0000644000000000000000000000440212233027260013716 0ustar00rootroot00000000000000NOTE: This file is for significant code changes and improvements that have a high probability of happening. General feature requests and bugs should go on launchpad instead. add good album-level handling to xl.trax - what features are needed here? - current modules that need this: xl.covers xl.playlist (for album shuffle) backwards-incompatible changes to make (0.4?): database: use tuples instead of lists to store multiple values (saves 16 bytes or more per use) divide tracknumber and discnumber into separate tags instead of using / - tracknumber/tracktotal, discnumber/disctotal, as picard uses get rid of __basedir and __compilation as they are unnecessary and waste LOTS of space - replace __compilation with just an __is_compilation boolean flag, move heuristics elsewhere - basedir can be gotten with gio.File.get_basedir, no need to store it make db into a dir so it can be split into multiple files as needed db/ music music-libraries music-blacklist use pickle instead of shelve to persist the database - scales better, more compact playlists: remove internal format in favor of an extension of XSPF - more future-proof, extensible, and compatible - use XML namespaces to separate exaile-specific tags event: make events capable of sending variable numbers of arguments change argument order to be more like gobject signals? make all events synchronous - event listeners can add async trivially with glib.idle_add or @common.threaded settings: make settings have a registered default value, so that defaults don't have to be passed to EVERY instance of get_option. - maybe make type explicit too. misc: store volume and mute separately so they persist properly. TODO: figure out some way of dealing with Collections that have overlapping sets of Tracks - right now if you load both from disk one after the other one's data for the intersecting Tracks gets clobbered dist/copy/PaxHeaders.26361/exaile0000644000175000017500000000012412233027260015213 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.189046935 exaile-3.3.2/exaile0000755000000000000000000000101012233027260014146 0ustar00rootroot00000000000000#!/bin/sh ######## CONFIGURATION OPTIONS ######## ## Full path to Exaile bin dir #PROGRAM_DIR="/home/username/apps/exaile" ## Python command to run #PYTHON2=python2 ####################################### # get the app dir if not already defined if [ -z "${PROGRAM_DIR}" ]; then PROGRAM_DIR=`dirname "$0"` fi if [ -z "${PYTHON2}" ]; then if [ "`which python2 2> /dev/null`" ]; then PYTHON2=python2 else PYTHON2=python fi fi exec ${PYTHON2} -O ${PROGRAM_DIR}/exaile.py --startgui "$@" dist/copy/PaxHeaders.26361/xlgui0000644000175000017500000000013212233027261015074 xustar000000000000000030 mtime=1382821553.605046948 30 atime=1382821552.785046922 30 ctime=1382821553.605046948 exaile-3.3.2/xlgui/0000755000000000000000000000000012233027261014112 5ustar00rootroot00000000000000dist/copy/xlgui/PaxHeaders.26361/progress.py0000644000175000017500000000012412233027260017367 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.569046947 exaile-3.3.2/xlgui/progress.py0000644000000000000000000001274712233027260016342 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import glib import gobject import gtk import time from xl.common import clamp from xl.nls import gettext as _ class ProgressMonitor(gtk.VBox): """ A graphical progress monitor """ def __init__(self, manager, thread, description, image=None): """ Initializes the monitor :param manager: the parent manager :type manager: :class:`ProgressManager` :param thread: the thread to run :type thread: :class:`threading.Thread` :param description: the description for this process :type description: string """ gtk.VBox.__init__(self, spacing=3) self.manager = manager self.thread = thread self._progress_updated = False box = gtk.HBox(spacing=6) self.pack_start(box) if image is not None: box.pack_start(image, False) label = gtk.Label(description) label.props.xalign = 0 box.pack_start(label) box = gtk.HBox(spacing=3) self.pack_start(box) alignment = gtk.Alignment(xscale=1, yscale=1) alignment.set_padding(3, 3, 0, 0) self.progressbar = gtk.ProgressBar() self.progressbar.set_pulse_step(0.05) alignment.add(self.progressbar) box.pack_start(alignment) button = gtk.Button() button.set_image(gtk.image_new_from_stock( gtk.STOCK_CANCEL, gtk.ICON_SIZE_BUTTON)) button.set_tooltip_text(_('Cancel')) button.connect('clicked', self.on_button_clicked) box.pack_start(button, False) self.show_all() glib.timeout_add(50, self.pulsate_progress) self.progress_update_id = self.thread.connect('progress-update', self.on_progress_update) self.done_id = self.thread.connect('done', self.on_done) self.thread.start() def destroy(self): """ Cleans up """ self._progress_updated = True self.thread.disconnect(self.progress_update_id) self.thread.disconnect(self.done_id) def pulsate_progress(self): """ Pulses the progress indicator until the first status update is received """ if self._progress_updated: return False self.progressbar.pulse() return True def on_progress_update(self, thread, percent): """ Called when the progress has been updated """ if percent > 0: self._progress_updated = True fraction = clamp(float(percent) / 100, 0, 1) self.progressbar.set_fraction(fraction) self.progressbar.set_text('%d%%' % percent) def on_done(self, thread): """ Called when the thread is finished """ self.manager.remove_monitor(self) def on_button_clicked(self, widget): """ Stops the running thread """ self.hide() self.thread.stop() self.destroy() class ProgressManager(object): """ Manages the [possibly multiple] progress bars that will allow the user to interact with different long running tasks that may occur in the application. The user should be able to see what task is running, the description, the current progress, and also be able to stop the task if they wish. """ def __init__(self, container): """ Initializes the manager :param container: the gtk.VBox that will be holding the different progress indicators """ self.box = container def add_monitor(self, thread, description, stock_id): """ Adds a progress box :param thread: the ProgressThread that should be run once the monitor is started :param description: a description of the event :param stock_id: the stock id of an icon to display """ image = gtk.image_new_from_stock(stock_id, gtk.ICON_SIZE_BUTTON) monitor = ProgressMonitor(self, thread, description, image) self.box.pack_start(monitor, False) return monitor def remove_monitor(self, monitor): """ Removes a monitor from the manager """ monitor.hide() monitor.destroy() dist/copy/xlgui/PaxHeaders.26361/main.py0000644000175000017500000000012412233027260016447 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.449046943 exaile-3.3.2/xlgui/main.py0000644000000000000000000011705512233027260015420 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import datetime import logging import os import re import threading import cairo import glib import gobject import pygst pygst.require('0.10') import gst import pygtk pygtk.require('2.0') import gtk import pango from xl.nls import gettext as _ from xl import ( common, covers, event, formatter, player, playlist, providers, settings, trax, xdg ) from xlgui.accelerators import AcceleratorManager from xlgui.playlist import PlaylistNotebook from xlgui.widgets import ( dialogs, info, menu, playback ) from xlgui.widgets.playlist import ( PlaylistPage, PlaylistView ) from xlgui import ( cover, guiutil, tray, menu as mainmenu ) logger = logging.getLogger(__name__) # Length of playback step when user presses seek key (sec) SEEK_STEP_DEFAULT = 10 # Length of volume steps when user presses up/down key VOLUME_STEP_DEFAULT = 0.1 class MainWindow(gobject.GObject): """ Main Exaile Window """ __gsignals__ = {'main-visible-toggle': (gobject.SIGNAL_RUN_LAST, bool, ())} _mainwindow = None def __init__(self, controller, builder, collection): """ Initializes the main window @param controller: the main gui controller """ gobject.GObject.__init__(self) self.controller = controller self.collection = collection self.playlist_manager = controller.exaile.playlists self.current_page = -1 self._fullscreen = False self.resuming = False self.window_state = 0 self.minimized = False self.builder = builder self.window = self.builder.get_object('ExaileWindow') self.window.set_title('Exaile') self.title_formatter = formatter.TrackFormatter(settings.get_option( 'gui/main_window_title_format', _('$title (by $artist)') + ' - Exaile')) self.accelgroup = gtk.AccelGroup() self.window.add_accel_group(self.accelgroup) self.accel_manager = AcceleratorManager('mainwindow-accelerators', self.accelgroup) self.menubar = self.builder.get_object("mainmenu") fileitem = self.builder.get_object("file_menu_item") filemenu = menu.ProviderMenu('menubar-file-menu', self) fileitem.set_submenu(filemenu) edititem = self.builder.get_object("edit_menu_item") editmenu = menu.ProviderMenu('menubar-edit-menu', self) edititem.set_submenu(editmenu) viewitem = self.builder.get_object("view_menu_item") viewmenu = menu.ProviderMenu('menubar-view-menu', self) viewitem.set_submenu(viewmenu) toolsitem = self.builder.get_object("tools_menu_item") toolsmenu = menu.ProviderMenu('menubar-tools-menu', self) toolsitem.set_submenu(toolsmenu) helpitem = self.builder.get_object("help_menu_item") helpmenu = menu.ProviderMenu('menubar-help-menu', self) helpitem.set_submenu(helpmenu) self._setup_widgets() self._setup_position() self._setup_hotkeys() logger.info("Connecting main window events...") self._connect_events() MainWindow._mainwindow = self mainmenu._create_menus() def _setup_hotkeys(self): """ Sets up accelerators that haven't been set up in UI designer """ hotkeys = ( ('S', lambda *e: self.on_save_playlist()), ('S', lambda *e: self.on_save_playlist_as()), ('F', lambda *e: self.on_panel_filter_focus()), ('G', lambda *e: self.on_search_playlist_focus()), # FIXME ('l', lambda *e: player.QUEUE.clear()), # FIXME ('P', self._on_playpause_button), ('Right', lambda *e: self._on_seek_key(True)), ('Left', lambda *e: self._on_seek_key(False)), ('plus', lambda *e: self._on_volume_key(True)), ('minus', lambda *e: self._on_volume_key(False)), ('Page_Up', self._on_prev_tab_key), ('Page_Down', self._on_next_tab_key), ('N', self._on_focus_playlist_notebook), # These 4 are subject to change.. probably should do this # via a different mechanism too... ('I', lambda *e: self.controller.focus_panel('files')), #('C', lambda *e: self.controller.focus_panel('collection')), ('R', lambda *e: self.controller.focus_panel('radio')), ('L', lambda *e: self.controller.focus_panel('playlists')), ('1', lambda *e: self._on_focus_playlist_tab(0)), ('2', lambda *e: self._on_focus_playlist_tab(1)), ('3', lambda *e: self._on_focus_playlist_tab(2)), ('4', lambda *e: self._on_focus_playlist_tab(3)), ('5', lambda *e: self._on_focus_playlist_tab(4)), ('6', lambda *e: self._on_focus_playlist_tab(5)), ('7', lambda *e: self._on_focus_playlist_tab(6)), ('8', lambda *e: self._on_focus_playlist_tab(7)), ('9', lambda *e: self._on_focus_playlist_tab(8)), ('0', lambda *e: self._on_focus_playlist_tab(9)), ) self.accel_group = gtk.AccelGroup() for key, function in hotkeys: key, mod = gtk.accelerator_parse(key) self.accel_group.connect_group(key, mod, gtk.ACCEL_VISIBLE, function) self.window.add_accel_group(self.accel_group) def _setup_widgets(self): """ Sets up the various widgets """ # TODO: Maybe make this stackable self.message = dialogs.MessageBar( parent=self.builder.get_object('player_box'), buttons=gtk.BUTTONS_CLOSE ) self.message.connect('response', self.on_messagebar_response) self.info_area = info.TrackInfoPane(player.PLAYER) self.info_area.set_auto_update(True) self.info_area.set_padding(3, 3, 3, 3) self.info_area.hide_all() self.info_area.set_no_show_all(True) guiutil.gtk_widget_replace(self.builder.get_object('info_area'), self.info_area) self.cover = cover.CoverWidget(self.info_area.cover_image, player.PLAYER) self.cover.hide_all() self.cover.set_no_show_all(True) self.volume_control = playback.VolumeControl(player.PLAYER) self.info_area.get_action_area().pack_start(self.volume_control) if settings.get_option('gui/use_alpha', False): screen = self.window.get_screen() colormap = screen.get_rgba_colormap() if colormap is not None: self.window.set_app_paintable(True) self.window.set_colormap(colormap) self.window.connect('expose-event', self.on_expose_event) self.window.connect('screen-changed', self.on_screen_changed) playlist_area = self.builder.get_object('playlist_area') self.playlist_notebook = PlaylistNotebook('saved_tabs', player.PLAYER) self.playlist_notebook.connect_after('switch-page', self.on_playlist_notebook_switch_page) playlist_area.pack_start(self.playlist_notebook, padding=3) page_num = self.playlist_notebook.get_current_page() page = self.playlist_notebook.get_nth_page(page_num) selection = page.view.get_selection() selection.connect('changed', self.on_playlist_view_selection_changed) self.splitter = self.builder.get_object('splitter') self.progress_bar = playback.SeekProgressBar(player.PLAYER) guiutil.gtk_widget_replace( self.builder.get_object('playback_progressbar'), self.progress_bar ) for button in ('playpause', 'next', 'prev', 'stop'): setattr(self, '%s_button' % button, self.builder.get_object('%s_button' % button)) self.stop_button.add_events(gtk.gdk.POINTER_MOTION_MASK) self.stop_button.connect('motion-notify-event', self.on_stop_button_motion_notify_event) self.stop_button.connect('leave-notify-event', self.on_stop_button_leave_notify_event) self.stop_button.connect('key-press-event', self.on_stop_button_key_press_event) self.stop_button.connect('key-release-event', self.on_stop_button_key_release_event) self.stop_button.connect('focus-out-event', self.on_stop_button_focus_out_event) self.stop_button.connect('button-press-event', self.on_stop_button_press_event) self.stop_button.connect('button-release-event', self.on_stop_button_release_event) self.stop_button.drag_dest_set(gtk.DEST_DEFAULT_ALL, [("exaile-index-list", gtk.TARGET_SAME_APP, 0)], gtk.gdk.ACTION_COPY) self.stop_button.connect('drag-motion', self.on_stop_button_drag_motion) self.stop_button.connect('drag-leave', self.on_stop_button_drag_leave) self.stop_button.connect('drag-data-received', self.on_stop_button_drag_data_received) self.statusbar = info.Statusbar(self.builder.get_object('status_bar')) event.add_callback(self.on_exaile_loaded, 'exaile_loaded') def _connect_events(self): """ Connects the various events to their handlers """ self.builder.connect_signals({ 'on_configure_event': self.configure_event, 'on_window_state_event': self.window_state_change_event, 'on_delete_event': self.on_delete_event, 'on_playpause_button_clicked': self._on_playpause_button, 'on_next_button_clicked': lambda *e: player.QUEUE.next(), 'on_prev_button_clicked': lambda *e: player.QUEUE.prev(), 'on_about_item_activate': self.on_about_item_activate, # Controller # 'on_scan_collection_item_activate': self.controller.on_rescan_collection, # 'on_device_manager_item_activate': lambda *e: self.controller.show_devices(), 'on_panel_notebook_switch_page': self.controller.on_panel_switch, # 'on_track_properties_activate':self.controller.on_track_properties, }) event.add_callback(self.on_playback_resume, 'playback_player_resume', player.PLAYER) event.add_callback(self.on_playback_end, 'playback_player_end', player.PLAYER) event.add_callback(self.on_playback_end, 'playback_error', player.PLAYER) event.add_callback(self.on_playback_start, 'playback_track_start', player.PLAYER) event.add_callback(self.on_toggle_pause, 'playback_toggle_pause', player.PLAYER) event.add_callback(self.on_tags_parsed, 'tags_parsed', player.PLAYER) event.add_callback(self.on_track_tags_changed, 'track_tags_changed') event.add_callback(self.on_buffering, 'playback_buffering', player.PLAYER) event.add_callback(self.on_playback_error, 'playback_error', player.PLAYER) event.add_callback(self.on_playlist_tracks_added, 'playlist_tracks_added') event.add_callback(self.on_playlist_tracks_removed, 'playlist_tracks_removed') # Settings self._on_option_set('gui_option_set', settings, 'gui/show_info_area') self._on_option_set('gui_option_set', settings, 'gui/show_info_area_covers') event.add_callback(self._on_option_set, 'option_set') def _connect_panel_events(self): """ Sets up panel events """ # panels panels = self.controller.panels for panel_name in ('playlists', 'radio', 'files', 'collection'): panel = panels[panel_name] sort = False if panel_name in ('files', 'collection'): sort = True panel.connect('append-items', lambda panel, items, force_play, sort=sort: self.on_append_items(items, force_play, sort=sort)) panel.connect('queue-items', lambda panel, items, sort=sort: self.on_append_items(items, queue=True, sort=sort)) panel.connect('replace-items', lambda panel, items, sort=sort: self.on_append_items(items, replace=True, sort=sort)) ## Collection Panel panel = panels['collection'] panel.connect('collection-tree-loaded', self.on_collection_tree_loaded) ## Playlist Panel panel = panels['playlists'] panel.connect('playlist-selected', lambda panel, playlist: self.playlist_notebook.create_tab_from_playlist(playlist)) ## Radio Panel panel = panels['radio'] panel.connect('playlist-selected', lambda panel, playlist: self.playlist_notebook.create_tab_from_playlist(playlist)) ## Files Panel panel = panels['files'] def on_expose_event(self, widget, event): """ Paints the window alpha transparency """ opacity = 1 - settings.get_option('gui/transparency', 0.3) context = widget.props.window.cairo_create() background = widget.style.bg[gtk.STATE_NORMAL] context.set_source_rgba( float(background.red) / 256**2, float(background.green) / 256**2, float(background.blue) / 256**2, opacity ) context.set_operator(cairo.OPERATOR_SOURCE) context.paint() def on_screen_changed(self, widget, event): """ Updates the colormap on screen change """ screen = widget.get_screen() colormap = screen.get_rgba_colormap() or screen.get_rgb_colormap() self.window.set_colormap(rgbamap) def on_messagebar_response(self, widget, response): """ Hides the messagebar if requested """ if response == gtk.RESPONSE_CLOSE: widget.hide() def on_stop_button_motion_notify_event(self, widget, event): """ Sets the hover state and shows SPAT icon """ widget.set_data('hovered', True) if event.state & gtk.gdk.SHIFT_MASK: widget.set_image(gtk.image_new_from_stock( gtk.STOCK_STOP, gtk.ICON_SIZE_BUTTON)) else: widget.set_image(gtk.image_new_from_stock( gtk.STOCK_MEDIA_STOP, gtk.ICON_SIZE_BUTTON)) def on_stop_button_leave_notify_event(self, widget, event): """ Unsets the hover state and resets the button icon """ widget.set_data('hovered', False) if not widget.is_focus() and \ ~(event.state & gtk.gdk.SHIFT_MASK): widget.set_image(gtk.image_new_from_stock( gtk.STOCK_MEDIA_STOP, gtk.ICON_SIZE_BUTTON)) def on_stop_button_key_press_event(self, widget, event): """ Shows SPAT icon on Shift key press """ if event.keyval in (gtk.keysyms.Shift_L, gtk.keysyms.Shift_R): widget.set_image(gtk.image_new_from_stock( gtk.STOCK_STOP, gtk.ICON_SIZE_BUTTON)) widget.set_data('toggle_spat', True) if event.keyval in (gtk.keysyms.space, gtk.keysyms.Return): if widget.get_data('toggle_spat'): self.on_spat_clicked() else: player.PLAYER.stop() def on_stop_button_key_release_event(self, widget, event): """ Resets the button icon """ if event.keyval in (gtk.keysyms.Shift_L, gtk.keysyms.Shift_R): widget.set_image(gtk.image_new_from_stock( gtk.STOCK_MEDIA_STOP, gtk.ICON_SIZE_BUTTON)) widget.set_data('toggle_spat', False) def on_stop_button_focus_out_event(self, widget, event): """ Resets the button icon unless the button is still hovered """ if not widget.get_data('hovered'): widget.set_image(gtk.image_new_from_stock( gtk.STOCK_MEDIA_STOP, gtk.ICON_SIZE_BUTTON)) def on_stop_button_press_event(self, widget, event): """ Called when the user clicks on the stop button """ if event.button == 1: if event.state & gtk.gdk.SHIFT_MASK: self.on_spat_clicked() elif event.button == 3: menu = guiutil.Menu() menu.append(_("Toggle: Stop after Selected Track"), self.on_spat_clicked, gtk.STOCK_STOP) menu.popup(None, None, None, event.button, event.time) def on_stop_button_release_event(self, widget, event): """ Called when the user releases the mouse from the stop button """ rect = widget.get_allocation() if 0 <= event.x < rect.width and 0 <= event.y < rect.height: player.PLAYER.stop() def on_stop_button_drag_motion(self, widget, context, x, y, time): """ Indicates possible SPAT during drag motion of tracks """ target = widget.drag_dest_find_target(context, widget.drag_dest_get_target_list()) if target == 'exaile-index-list': widget.set_image(gtk.image_new_from_stock( gtk.STOCK_STOP, gtk.ICON_SIZE_BUTTON)) def on_stop_button_drag_leave(self, widget, context, time): """ Resets the stop button """ widget.set_image(gtk.image_new_from_stock( gtk.STOCK_MEDIA_STOP, gtk.ICON_SIZE_BUTTON)) def on_stop_button_drag_data_received(self, widget, context, x, y, selection, info, time): """ Allows for triggering the SPAT feature by dropping tracks on the stop button """ source_widget = context.get_source_widget() if selection.target == 'exaile-index-list' and isinstance(source_widget, PlaylistView): position = int(selection.data.split(',')[0]) if position == source_widget.playlist.spat_position: position = -1 source_widget.playlist.spat_position = position source_widget.queue_draw() def on_spat_clicked(self, *e): """ Called when the user clicks on the SPAT item """ trs = self.get_selected_page().view.get_selected_items() if not trs: return # TODO: this works, but implement this some other way in the future if player.QUEUE.current_playlist.spat_position == -1: player.QUEUE.current_playlist.spat_position = trs[0][0] else: player.QUEUE.current_playlist.spat_position = -1 self.get_selected_page().view.queue_draw() def on_append_items(self, tracks, force_play=False, queue=False, sort=False, replace=False): """ Called when a panel (or other component) has tracks to append and possibly queue :param tracks: The tracks to append :param force_play: Force playing the first track if there is no track currently playing. Otherwise check a setting to determine whether the track should be played :param queue: Additionally queue tracks :param sort: Sort before adding :param replace: Clear playlist before adding """ if not tracks: return page = self.get_selected_page() if sort: tracks = trax.sort_tracks( ('artist', 'date', 'album', 'discnumber', 'tracknumber'), tracks) if replace: page.playlist.clear() offset = len(page.playlist) page.playlist.extend(tracks) # extending the queue automatically starts playback if queue: if player.QUEUE is not page.playlist: player.QUEUE.extend(tracks) elif (force_play or settings.get_option( 'playlist/append_menu_starts_playback', False )) and \ not player.PLAYER.current: page.view.play_track_at(offset, tracks[0]) def on_playback_error(self, type, player, message): """ Called when there has been a playback error """ glib.idle_add(self.message.show_error, _('Playback error encountered!'), message) def on_buffering(self, type, player, percent): """ Called when a stream is buffering """ percent = min(percent, 100) glib.idle_add(self.statusbar.set_status, _("Buffering: %d%%...") % percent, 1) def on_tags_parsed(self, type, player, args): """ Called when tags are parsed from a stream/track """ (tr, args) = args if not tr or tr.is_local(): return if player.parse_stream_tags(tr, args): self._update_track_information() def on_track_tags_changed(self, type, track, tag): """ Called when tags are changed """ if track is player.PLAYER.current: self._update_track_information() def on_collection_tree_loaded(self, tree): """ Updates information on collection tree load """ self.statusbar.update_info() def on_exaile_loaded(self, event_type, exaile, nothing): """ Updates information on exaile load """ glib.idle_add(self.statusbar.update_info) event.remove_callback(self.on_exaile_loaded, 'exaile_loaded') def on_playlist_tracks_added(self, type, playlist, tracks): """ Updates information on track add """ glib.idle_add(self.statusbar.update_info) def on_playlist_tracks_removed(self, type, playlist, tracks): """ Updates information on track removal """ glib.idle_add(self.statusbar.update_info) def on_toggle_pause(self, type, player, object): """ Called when the user clicks the play button after playback has already begun """ if player.is_paused(): image = gtk.image_new_from_stock(gtk.STOCK_MEDIA_PLAY, gtk.ICON_SIZE_SMALL_TOOLBAR) tooltip = _('Continue Playback') else: image = gtk.image_new_from_stock(gtk.STOCK_MEDIA_PAUSE, gtk.ICON_SIZE_SMALL_TOOLBAR) tooltip = _('Pause Playback') glib.idle_add(self.playpause_button.set_image, image) glib.idle_add(self.playpause_button.set_tooltip_text, tooltip) self._update_track_information() # refresh the current playlist pl = self.get_selected_page() def on_collection_tree_loaded(self, tree): """ Updates info after collection tree load """ self.statusbar.update_info() def on_playlist_notebook_switch_page(self, notebook, page, page_num): """ Updates info after notebook page switch """ page = self.playlist_notebook.get_nth_page(page_num) selection = page.view.get_selection() selection.connect('changed', self.on_playlist_view_selection_changed) self.statusbar.update_info() def on_playlist_view_selection_changed(self, selection): """ Updates info after playlist page selection change """ self.statusbar.update_info() def on_panel_filter_focus(self, *e): """ Gives focus to the filter field of the current panel """ panel_name = settings.get_option('gui/last_selected_panel', 'collection') try: self.controller.panels[panel_name].filter.grab_focus() except (AttributeError, KeyError): pass def on_search_playlist_focus(self, *e): """ Gives focus to the playlist search bar """ plpage = get_selected_playlist() if plpage: plpage.get_search_entry().grab_focus() def on_save_playlist(self, *e): """ Called when the user presses Ctrl+S Spawns the save dialog of the currently selected playlist tab if not custom, saves changes directly if custom """ tab = self.get_selected_tab() if not tab: return if tab.page.playlist.get_is_custom(): tab.do_save_changes_to_custom() else: tab.do_save_custom() def on_save_playlist_as(self, *e): """ Called when the user presses Ctrl+S Spawns the save as dialog of the current playlist tab """ tab = self.get_selected_tab() if not tab: return tab.do_save_custom() def on_clear_playlist(self, *e): """ Clears the current playlist tab """ page = self.get_selected_page() if page: page.playlist.clear() def on_open_item_activate(self, menuitem): """ Shows a dialog to open media """ def on_uris_selected(dialog, uris): uris.reverse() if len(uris) > 0: self.controller.open_uri(uris.pop(), play=True) for uri in uris: self.controller.open_uri(uri, play=False) dialog = dialogs.MediaOpenDialog(self.window) dialog.connect('uris-selected', on_uris_selected) dialog.show() def on_open_url_item_activate(self, menuitem): """ Shows a dialog to open an URI """ def on_uri_selected(dialog, uri): self.controller.open_uri(uri, play=False) dialog = dialogs.URIOpenDialog(self.window) dialog.connect('uri-selected', on_uri_selected) dialog.show() def on_open_directories_item_activate(self, menuitem): """ Shows a dialog to open directories """ def on_uris_selected(dialog, uris): uris.reverse() if len(uris) > 0: self.controller.open_uri(uris.pop(), play=True) for uri in uris: self.controller.open_uri(uri, play=False) dialog = dialogs.DirectoryOpenDialog(self.window) # Selecting empty folders is useless dialog.props.create_folders = False dialog.connect('uris-selected', on_uris_selected) dialog.show() def on_export_current_playlist_activate(self, menuitem): """ Shows a dialog to export the current playlist """ page = self.get_selected_page() if not page or not isinstance(page, PlaylistPage): return def on_message(dialog, message_type, message): """ Show messages in the main window message area """ if message_type == gtk.MESSAGE_INFO: self.message.show_info(markup=message) elif message_type == gtk.MESSAGE_ERROR: self.message.show_error(_('Playlist export failed!'), message) return True dialog = dialogs.PlaylistExportDialog(page.playlist, self.window) dialog.connect('message', on_message) dialog.show() def on_playlist_utilities_bar_visible_toggled(self, checkmenuitem): """ Shows or hides the playlist utilities bar """ settings.set_option('gui/playlist_utilities_bar_visible', checkmenuitem.get_active()) def on_show_playing_track_item_activate(self, menuitem): """ Tries to show the currently playing track """ self.playlist_notebook.show_current_track() def on_about_item_activate(self, menuitem): """ Shows the about dialog """ dialog = dialogs.AboutDialog(self.window) dialog.show() def on_playback_resume(self, type, player, data): self.resuming = True def on_playback_start(self, type, player, object): """ Called when playback starts Sets the currently playing track visible in the currently selected playlist if the user has chosen this setting """ if self.resuming: self.resuming = False return self._update_track_information() glib.idle_add(self.playpause_button.set_image, gtk.image_new_from_stock(gtk.STOCK_MEDIA_PAUSE, gtk.ICON_SIZE_SMALL_TOOLBAR)) glib.idle_add(self.playpause_button.set_tooltip_text, _('Pause Playback')) def on_playback_end(self, type, player, object): """ Called when playback ends """ glib.idle_add(self.window.set_title, 'Exaile') glib.idle_add(self.playpause_button.set_image, gtk.image_new_from_stock(gtk.STOCK_MEDIA_PLAY, gtk.ICON_SIZE_SMALL_TOOLBAR)) glib.idle_add(self.playpause_button.set_tooltip_text, _('Start Playback')) def _on_option_set(self, name, object, option): """ Handles changes of settings """ if option == 'gui/main_window_title_format': self.title_formatter.props.format = settings.get_option( option, self.title_formatter.props.format) if option == 'gui/use_tray': usetray = settings.get_option(option, False) if self.controller.tray_icon and not usetray: glib.idle_add(self.controller.tray_icon.destroy) self.controller.tray_icon = None elif not self.controller.tray_icon and usetray: self.controller.tray_icon = tray.TrayIcon(self) if option == 'gui/show_info_area': glib.idle_add(self.info_area.set_no_show_all, False) if settings.get_option(option, True): glib.idle_add(self.info_area.show_all) else: glib.idle_add(self.info_area.hide_all) glib.idle_add(self.info_area.set_no_show_all, True) if option == 'gui/show_info_area_covers': def _setup_info_covers(): self.cover.set_no_show_all(False) if settings.get_option(option, True): self.cover.show_all() else: self.cover.hide_all() self.cover.set_no_show_all(True) glib.idle_add(_setup_info_covers) def _on_volume_key(self, is_up): diff = int(100 * settings.get_option('gui/volue_key_step_size', VOLUME_STEP_DEFAULT)) if not is_up: diff = -diff player.PLAYER.modify_volume(diff) return True def _on_seek_key(self, is_forward): diff = settings.get_option('gui/seek_key_step_size', SEEK_STEP_DEFAULT) if not is_forward: diff = -diff if player.PLAYER.current: player.PLAYER.modify_time(diff) self.progress_bar.update_progress() return True def _on_prev_tab_key(self, *e): self.playlist_notebook.select_prev_tab() return True def _on_next_tab_key(self, *e): self.playlist_notebook.select_next_tab() return True def _on_playpause_button(self, *e): self.playpause() return True def _on_focus_playlist_tab(self, tab_nr): if tab_nr < self.playlist_notebook.get_n_pages(): self.playlist_notebook.focus_tab(tab_nr) return True def _on_focus_playlist_notebook(self, *_e): self.playlist_notebook.focus() return True def _update_track_information(self): """ Sets track information """ track = player.PLAYER.current if not track: return glib.idle_add(self.window.set_title, self.title_formatter.format(track)) def playpause(self): """ Pauses the playlist if it is playing, starts playing if it is paused. If stopped, try to start playing the next suitable track. """ if player.PLAYER.is_paused() or player.PLAYER.is_playing(): player.PLAYER.toggle_pause() else: pl = self.get_selected_page() player.QUEUE.set_current_playlist(pl.playlist) try: trackpath = pl.view.get_selected_paths()[0] pl.playlist.current_position = trackpath[0] except IndexError: pass player.QUEUE.play(track=pl.playlist.current) def _setup_position(self): """ Sets up the position and sized based on the size the window was when it was last moved or resized """ if settings.get_option('gui/mainw_maximized', False): self.window.maximize() width = settings.get_option('gui/mainw_width', 500) height = settings.get_option('gui/mainw_height', 475) x = settings.get_option('gui/mainw_x', 10) y = settings.get_option('gui/mainw_y', 10) self.window.move(x, y) self.window.resize(width, height) pos = settings.get_option('gui/mainw_sash_pos', 200) self.splitter.set_position(pos) def on_delete_event(self, *e): """ Called when the user attempts to close the window """ sash_pos = self.splitter.get_position() if sash_pos > 10: settings.set_option('gui/mainw_sash_pos', sash_pos) if settings.get_option('gui/use_tray', False) and \ settings.get_option('gui/close_to_tray', False): self.window.hide() else: self.quit() return True def quit(self, *e): """ Quits Exaile """ self.window.hide() glib.idle_add(self.controller.exaile.quit) return True def on_restart_item_activate(self, menuitem): """ Restarts Exaile """ self.window.hide() glib.idle_add(self.controller.exaile.quit, True) def toggle_visible(self, bringtofront=False): """ Toggles visibility of the main window """ toggle_handled = self.emit('main-visible-toggle') if not toggle_handled: if bringtofront and self.window.is_active() or \ not bringtofront and self.window.get_property('visible'): self.window.hide() else: # the ordering for deiconify/show matters -- if this gets # switched, then the minimization detection breaks self.window.deiconify() self.window.show() def configure_event(self, *e): """ Called when the window is resized or moved """ # Don't save window size if it is maximized or fullscreen. if settings.get_option('gui/mainw_maximized', False) or \ self._fullscreen: return False (width, height) = self.window.get_size() if [width, height] != [ settings.get_option("gui/mainw_"+key, -1) for \ key in ["width", "height"] ]: settings.set_option('gui/mainw_height', height) settings.set_option('gui/mainw_width', width) (x, y) = self.window.get_position() if [x, y] != [ settings.get_option("gui/mainw_"+key, -1) for \ key in ["x", "y"] ]: settings.set_option('gui/mainw_x', x) settings.set_option('gui/mainw_y', y) return False def window_state_change_event(self, window, event): """ Saves the current maximized and fullscreen states and minimizes to tray if requested """ if event.changed_mask & gtk.gdk.WINDOW_STATE_MAXIMIZED: settings.set_option('gui/mainw_maximized', bool(event.new_window_state & gtk.gdk.WINDOW_STATE_MAXIMIZED)) if event.changed_mask & gtk.gdk.WINDOW_STATE_FULLSCREEN: self._fullscreen = bool(event.new_window_state & gtk.gdk.WINDOW_STATE_FULLSCREEN) # detect minimization state changes prev_minimized = self.minimized if not self.minimized: if event.changed_mask & gtk.gdk.WINDOW_STATE_ICONIFIED and \ not event.changed_mask & gtk.gdk.WINDOW_STATE_WITHDRAWN and \ event.new_window_state & gtk.gdk.WINDOW_STATE_ICONIFIED and \ not event.new_window_state & gtk.gdk.WINDOW_STATE_WITHDRAWN and \ not self.window_state & gtk.gdk.WINDOW_STATE_ICONIFIED: self.minimized = True else: if event.changed_mask & gtk.gdk.WINDOW_STATE_WITHDRAWN and \ not event.new_window_state & (gtk.gdk.WINDOW_STATE_WITHDRAWN): #and \ self.minimized = False # track this self.window_state = event.new_window_state if settings.get_option('gui/minimize_to_tray', False): # old code to detect minimization # -> it must have worked at some point, perhaps this is a GTK version # specific set of behaviors? Current code works now on 2.24.17 #if wm_state is not None: # if '_NET_WM_STATE_HIDDEN' in wm_state[2]: # show tray # window.hide #else # destroy tray if self.minimized != prev_minimized and self.minimized == True: if not settings.get_option('gui/use_tray', False) and \ self.controller.tray_icon is None: self.controller.tray_icon = tray.TrayIcon(self) window.hide() elif window.window.property_get('_NET_WM_STATE') is None: if not settings.get_option('gui/use_tray', False) and \ self.controller.tray_icon is not None: self.controller.tray_icon.destroy() self.controller.tray_icon = None return False def get_selected_page(self): """ Returns the currentry displayed playlist notebook page """ return self.playlist_notebook.get_current_tab() def get_selected_playlist(self): try: page = self.get_selected_page() except AttributeError: return None if not isinstance(page, PlaylistPage): return None return page def get_playlist_notebook(): return MainWindow._mainwindow.playlist_notebook def get_selected_page(): return MainWindow._mainwindow.get_selected_page() def get_selected_playlist(): return MainWindow._mainwindow.get_selected_playlist() def mainwindow(): return MainWindow._mainwindow # vim: et sts=4 sw=4 dist/copy/xlgui/PaxHeaders.26361/oldmenu.py0000644000175000017500000000012412233027260017166 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.565046947 exaile-3.3.2/xlgui/oldmenu.py0000644000000000000000000002644012233027260016134 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. """ Old menu system. This code is fully deprecated and should NOT be added to. Users of oldmenu need to be rewritten to use widgets.menu instead. """ import gobject import gtk from xlgui import guiutil, icons from xlgui.widgets import dialogs, rating from xl import ( common, event, playlist, settings, xdg ) from xl.nls import gettext as _ from xl.trax.util import get_rating_from_tracks class GenericTrackMenu(guiutil.Menu): """ A menu that can be subclassed to use on any widget that displays tracks and defines the "get_selected_tracks" method """ __gsignals__ = { 'queue-items': ( gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, () ), } def __init__(self): guiutil.Menu.__init__(self) self._add_queue_pixbuf() self._create_menu() def _create_menu(self): """ Creates the menu """ self.queue_item = self.append(_('Toggle Queue'), lambda *e: self.on_queue(), 'exaile-queue-icon') def on_queue(self): """ Called when the user clicks the "toggle queue" item """ self.emit('queue-items') def _add_queue_pixbuf(self): """ Creates the icon for "toggle queue" """ pixbuf = icons.MANAGER.pixbuf_from_text(u'\u2610', (16, 16)) icons.MANAGER.add_stock_from_pixbuf('exaile-queue-icon', pixbuf) def popup(self, event): """ Displays the menu """ guiutil.Menu.popup(self, None, None, None, event.button, event.time) class TrackSelectMenu(GenericTrackMenu): """ Menu for any panel that operates on selecting tracks, IE, Files panel and the Collection panel """ __gsignals__ = { 'append-items': (gobject.SIGNAL_RUN_LAST, None, ()), 'replace-items': (gobject.SIGNAL_RUN_LAST, None, ()), 'properties': (gobject.SIGNAL_RUN_LAST, None, ()), } def __init__(self): """ Initializes the menu """ GenericTrackMenu.__init__(self) def _create_menu(self): """ Actually adds the menu items """ self.append_item = self.append(_('Append to Current'), lambda *e: self.emit('append-items'), gtk.STOCK_ADD) self.replace_item = self.append(_('Replace Current'), lambda *e: self.emit('replace-items')) self.queue_item = self.append(_('Queue Items'), lambda *e: self.emit('queue-items'), 'exaile-queue-icon') self.append_separator() self.append(_('Properties'), lambda *e: self.emit('properties'), gtk.STOCK_PROPERTIES) class RatedTrackSelectMenu(TrackSelectMenu): """ Menu for any panel that operates on selecting tracks including an option to rate tracks """ __gsignals__ = { 'rating-changed': ( gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_INT,) ) } def __init__(self): self.rating_item = rating.RatingMenuItem() self._rating_changed_id = self.rating_item.connect('rating-changed', self.on_rating_changed) self._updating = False TrackSelectMenu.__init__(self) def _create_menu(self): """ Actually adds the menu items """ gtk.Menu.append(self, self.rating_item) self.rating_item.show_all() TrackSelectMenu._create_menu(self) def on_rating_changed(self, widget, rating): """ Passes the 'rating-changed' signal """ self.emit('rating-changed', rating) self.rating_item.disconnect(self._rating_changed_id) self.rating_item.props.rating = 0 self._rating_changed_id = self.rating_item.connect('rating-changed', self.on_rating_changed) class PlaylistsPanelMenu(guiutil.Menu): """ Menu for xlgui.panel.playlists.PlaylistsPanel, for when the user does not click on a playlist/track. The default menu """ __gsignals__ = { 'add-playlist': (gobject.SIGNAL_RUN_LAST, None, ()), 'add-smart-playlist': (gobject.SIGNAL_RUN_LAST, None, ()), 'import-playlist': (gobject.SIGNAL_RUN_LAST, None, ()), } def __init__(self, radio=False): """ @param widget: playlists panel widget """ guiutil.Menu.__init__(self) self.radio = radio self._create_playlist_menu() def _create_playlist_menu(self): if self.radio: self.append(_('New Station'), lambda *e: self.on_add_playlist(), gtk.STOCK_NEW) else: self.append(_('New Playlist'), lambda *e: self.on_add_playlist(), gtk.STOCK_NEW) self.append(_('New Smart Playlist'), lambda *e: self.on_add_smart_playlist(), gtk.STOCK_NEW) self.append(_('Import Playlist'), lambda *e: self.on_import_playlist(), gtk.STOCK_OPEN) def on_add_playlist(self, selected = None): self.emit('add-playlist') def on_add_smart_playlist(self, selected = None): self.emit('add-smart-playlist') def on_import_playlist(self, selected = None): self.emit('import-playlist') def popup(self, event): """ Displays the menu """ guiutil.Menu.popup(self, None, None, None, event.button, event.time) class PlaylistsPanelPlaylistMenu(RatedTrackSelectMenu, PlaylistsPanelMenu): """ Menu for xlgui.panel.playlists.PlaylistsPanel, for when the user right clicks on an actual playlist entry """ __gsignals__ = { # also inherits from TrackSelectMenu 'add-playlist': (gobject.SIGNAL_RUN_LAST, None, ()), 'add-smart-playlist': (gobject.SIGNAL_RUN_LAST, None, ()), 'import-playlist': (gobject.SIGNAL_RUN_LAST, None, ()), 'open-playlist': (gobject.SIGNAL_RUN_LAST, None, ()), 'export-playlist': (gobject.SIGNAL_RUN_LAST, None, ()), 'export-playlist-files': (gobject.SIGNAL_RUN_LAST, None, (str,)), 'rename-playlist': (gobject.SIGNAL_RUN_LAST, None, (str,)), 'remove-playlist': (gobject.SIGNAL_RUN_LAST, None, ()), 'edit-playlist': (gobject.SIGNAL_RUN_LAST, None, ()), } def __init__(self, radio=False, smart=False): """ @param widget: playlists panel widget """ #Adds the menu options to add playlist PlaylistsPanelMenu.__init__(self, radio) self.append_separator() #Adds track menu options (like append, queue) RatedTrackSelectMenu.__init__(self) self.smart = smart self.append_separator() self.append(callback=lambda *e: self.on_open_playlist(), stock_id=gtk.STOCK_OPEN) name = _('Rename') if self.smart: name = _('Edit') self.append(name, lambda *e: self.on_rename_playlist(), gtk.STOCK_EDIT) self.append(_('Export Playlist'), lambda *e: self.on_export_playlist(), gtk.STOCK_SAVE) self.append(_('Export Files'), lambda *e: self.on_export_playlist_files(), gtk.STOCK_SAVE) self.append_separator() self.append(_('Delete Playlist'), lambda *e: self.on_delete_playlist(), gtk.STOCK_DELETE) def on_export_playlist(self, selected = None): """ Emits the "export-playlist" signal """ self.emit('export-playlist') def on_export_playlist_files(self, selected=None): ''' Asks the user where to export the files, then copies the files to that directory ''' dialog = dialogs.DirectoryOpenDialog(title=_('Choose directory to export files to')) dialog.set_select_multiple(False) dialog.connect( 'uris-selected', lambda widget, uris: self.emit('export-playlist-files', uris[0] )) dialog.run() dialog.destroy() def on_delete_playlist(self, selected = None): dialog = gtk.MessageDialog(None, gtk.DIALOG_MODAL, gtk.MESSAGE_QUESTION, gtk.BUTTONS_YES_NO, _("Are you sure you want to permanently delete the selected" " playlist?")) if dialog.run() == gtk.RESPONSE_YES: self.emit('remove-playlist') dialog.destroy() def on_rename_playlist(self, selected = None): if self.smart: self.emit('edit-playlist') return # Ask for new name dialog = dialogs.TextEntryDialog( _("Enter the new name you want for your playlist"), _("Rename Playlist")) result = dialog.run() if result == gtk.RESPONSE_OK: name = dialog.get_value() if not name == "": self.emit('rename-playlist', name) def on_open_playlist(self, selected = None): self.emit('open-playlist') def popup(self, event): """ Displays the menu """ guiutil.Menu.popup(self, None, None, None, event.button, event.time) class RadioPanelPlaylistMenu(PlaylistsPanelPlaylistMenu): """ Menu for xlgui.panel.playlists.RadioPanel, for when the user right clicks on an actual playlist entry """ def __init__(self): PlaylistsPanelPlaylistMenu.__init__(self, radio=True) class PlaylistsPanelTrackMenu(guiutil.Menu): """ Menu for xlgui.panel.playlists.PlaylistsPanel, for when the user right clicks on a track under a custom playlist """ __gsignals__ = { 'remove-track': (gobject.SIGNAL_RUN_LAST, None, ()), } def __init__(self): """ @param widget: playlists panel widget """ guiutil.Menu.__init__(self) self.append(_('Remove'), lambda *e: self.on_remove_track(), gtk.STOCK_REMOVE) def on_remove_track(self, selected = None): self.emit('remove-track') def popup(self, event): """ Displays the menu """ guiutil.Menu.popup(self, None, None, None, event.button, event.time) dist/copy/xlgui/PaxHeaders.26361/cover.py0000644000175000017500000000012412233027260016641 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.517046945 exaile-3.3.2/xlgui/cover.py0000644000000000000000000011207712233027260015611 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import logging import os import os.path import tempfile import time import threading import traceback import cairo import gio import glib import gobject import gtk from xl import ( common, event, metadata, providers, settings, xdg ) from xl.covers import MANAGER as COVER_MANAGER from xl.nls import gettext as _ from xlgui.widgets import dialogs from xlgui import ( guiutil, icons ) logger = logging.getLogger(__name__) class CoverManager(gobject.GObject): """ Cover manager window """ __gsignals__ = { 'prefetch-started': ( gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, () ), 'prefetch-progress': ( gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_INT,) ), 'prefetch-completed': ( gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_INT,) ), 'fetch-started': ( gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_INT,) ), 'fetch-completed': ( gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_INT,) ), 'fetch-progress': ( gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_INT,) ), 'cover-fetched': ( gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_PYOBJECT, gtk.gdk.Pixbuf) ) } def __init__(self, parent, collection): """ Initializes the window """ gobject.GObject.__init__(self) # List of identifiers of albums without covers self.outstanding = [] # Map of album identifiers and their tracks self.album_tracks = {} self.outstanding_text = _('{outstanding} covers left to fetch') self.completed_text = _('All covers fetched') self.cover_size = (90, 90) self.default_cover_pixbuf = icons.MANAGER.pixbuf_from_data( COVER_MANAGER.get_default_cover(), self.cover_size) builder = gtk.Builder() builder.add_from_file(xdg.get_data_path('ui/covermanager.ui')) builder.connect_signals(self) self.window = builder.get_object('window') self.window.set_transient_for(parent) self.message = dialogs.MessageBar( parent=builder.get_object('content_area'), buttons=gtk.BUTTONS_CLOSE ) self.previews_box = builder.get_object('previews_box') self.model = builder.get_object('covers_model') # Map of album identifiers and model paths self.model_path_cache = {} self.menu = CoverMenu(self) self.menu.attach_to_widget(self.previews_box, lambda menu, widget: True) self.progress_bar = builder.get_object('progressbar') self.progress_bar.set_text(_('Collecting albums and covers...')) self.progress_bar.set_data('pulse-timeout', glib.timeout_add(100, self.on_progress_pulse_timeout)) self.close_button = builder.get_object('close_button') self.stop_button = builder.get_object('stop_button') self.stop_button.set_sensitive(False) self.fetch_button = builder.get_object('fetch_button') self.window.show_all() self.stopper = threading.Event() thread = threading.Thread(target=self.prefetch, name='CoverPrefetch', args=(collection,)) thread.daemon = True thread.start() def prefetch(self, collection): """ Collects all albums and sets the list of outstanding items """ albums = set() for track in collection: if self.stopper.is_set(): return try: artist = track.get_tag_raw('artist')[0] album = track.get_tag_raw('album')[0] except TypeError: continue if not album or not artist: continue album = (artist, album) try: self.album_tracks[album].append(track) except KeyError: self.album_tracks[album] = [track] albums.add(album) albums = list(albums) albums.sort() outstanding = [] # Speed up the following loop get_cover = COVER_MANAGER.get_cover pixbuf_from_data = icons.MANAGER.pixbuf_from_data default_cover_pixbuf = self.default_cover_pixbuf cover_size = self.cover_size self.emit('prefetch-started') for i, album in enumerate(albums): if self.stopper.is_set(): return cover_data = get_cover(self.album_tracks[album][0], set_only=True) cover_pixbuf = pixbuf_from_data(cover_data) if cover_data else None try: thumbnail_pixbuf = cover_pixbuf.scale_simple(*cover_size, interp_type=gtk.gdk.INTERP_BILINEAR) except AttributeError: # cover_pixbuf is None cover_pixbuf = thumbnail_pixbuf = default_cover_pixbuf outstanding.append(album) label = '{0} - {1}'.format(*album) iter = self.model.append((album, cover_pixbuf, thumbnail_pixbuf, label)) self.model_path_cache[album] = self.model.get_path(iter) self.emit('prefetch-progress', i + 1) self.outstanding = outstanding self.emit('prefetch-completed', len(self.outstanding)) def fetch(self): """ Collects covers for all outstanding items """ self.emit('fetch-started', len(self.outstanding)) # Speed up the following loop get_cover = COVER_MANAGER.get_cover save = COVER_MANAGER.save pixbuf_from_data = icons.MANAGER.pixbuf_from_data for i, album in enumerate(self.outstanding[:]): if self.stopper.is_set(): # Allow for "fetch-completed" signal to be emitted break cover_data = get_cover(self.album_tracks[album][0], save_cover=True) cover_pixbuf = pixbuf_from_data(cover_data) if cover_data else None self.emit('fetch-progress', i + 1) if not cover_pixbuf: continue self.outstanding.remove(album) self.emit('cover-fetched', album, cover_pixbuf) if i % 50 == 0: logger.debug('Saving cover database') save() logger.debug('Saving cover database') save() self.emit('fetch-completed', len(self.outstanding)) def show_cover(self): """ Shows the currently selected cover """ paths = self.previews_box.get_selected_items() if paths: path = paths[0] album = self.model[path][0] cover_pixbuf = self.model[path][1] title = '{0} - {1}'.format(*album) cover_window = CoverWindow(self.window, cover_pixbuf, title) cover_window.show_all() def fetch_cover(self): """ Shows the cover chooser for the currently selected album """ paths = self.previews_box.get_selected_items() if paths: path = paths[0] album = self.model[path][0] track = self.album_tracks[album][0] cover_chooser = CoverChooser(self.window, track) # Make sure we're updating the correct album after selection cover_chooser.set_data('path', path) cover_chooser.connect('cover-chosen', self.on_cover_chosen) def remove_cover(self): """ Removes the cover of the currently selected album """ paths = self.previews_box.get_selected_items() if paths: path = paths[0] album = self.model[path][0] track = self.album_tracks[album][0] COVER_MANAGER.remove_cover(track) self.model[path][1] = self.model[path][2] = self.default_cover_pixbuf def do_prefetch_started(self): """ Sets the widget states to prefetching """ self.previews_box.set_model(None) self.previews_box.set_sensitive(False) self.fetch_button.set_sensitive(False) self.progress_bar.set_fraction(0) glib.source_remove(self.progress_bar.get_data('pulse-timeout')) def do_prefetch_completed(self, outstanding): """ Sets the widget states to ready for fetching """ self.previews_box.set_sensitive(True) self.previews_box.set_model(self.model) self.fetch_button.set_sensitive(True) self.progress_bar.set_fraction(0) self.progress_bar.set_text(self.outstanding_text.format( outstanding=outstanding)) def do_prefetch_progress(self, progress): """ Updates the wiedgets to reflect the processed album """ fraction = progress / float(len(self.album_tracks)) self.progress_bar.set_fraction(fraction) def do_fetch_started(self, outstanding): """ Sets the widget states to fetching """ self.previews_box.set_sensitive(False) self.stop_button.set_sensitive(True) self.fetch_button.set_sensitive(False) self.progress_bar.set_fraction(0) # We need float for the fraction during progress self.progress_bar.set_data('outstanding-total', float(outstanding)) def do_fetch_completed(self, outstanding): """ Sets the widget states to ready for fetching """ self.previews_box.set_sensitive(True) self.stop_button.set_sensitive(False) if outstanding > 0: # If there are covers left for some reason, allow re-fetch self.fetch_button.set_sensitive(True) self.progress_bar.set_fraction(0) def do_fetch_progress(self, progress): """ Updates the widgets to reflect the processed album """ outstanding = len(self.outstanding) if outstanding > 0: progress_text = self.outstanding_text.format( outstanding=outstanding) else: progress_text = self.completed_text self.progress_bar.set_text(progress_text) fraction = progress / self.progress_bar.get_data('outstanding-total') self.progress_bar.set_fraction(fraction) def do_cover_fetched(self, album, pixbuf): """ Updates the widgets to reflect the newly fetched cover """ path = self.model_path_cache[album] self.model[path][1] = pixbuf self.model[path][2] = pixbuf.scale_simple(*self.cover_size, interp_type=gtk.gdk.INTERP_BILINEAR) def on_cover_chosen(self, cover_chooser, cover_data): """ Updates the cover of the current album after user selection """ path = cover_chooser.get_data('path') if path: album = self.model[path][0] pixbuf = icons.MANAGER.pixbuf_from_data(cover_data) self.emit('cover-fetched', album, pixbuf) try: self.outstanding.remove(album) except ValueError: pass else: outstanding = len(self.outstanding) if outstanding > 0: progress_text = self.outstanding_text.format( outstanding=outstanding) else: progress_text = self.completed_text self.progress_bar.set_text(progress_text) def on_previews_box_item_activated(self, iconview, path): """ Shows the currently selected cover """ self.show_cover() def on_previews_box_button_press_event(self, widget, e): """ Shows the cover menu upon click """ path = self.previews_box.get_path_at_pos(int(e.x), int(e.y)) if path: self.previews_box.select_path(path) if e.button == 3: self.menu.popup(None, None, None, 3, e.time) def on_previews_box_popup_menu(self, menu): """ Shows the cover menu upon keyboard interaction """ paths = self.previews_box.get_selected_items() if paths: self.menu.popup(None, None, None, 0, gtk.get_current_event_time()) def on_previews_box_query_tooltip(self, widget, x, y, keyboard_mode, tooltip): """ Custom tooltip display to prevent markup errors (e.g. due to album names containing "<") """ x, y = self.previews_box.convert_widget_to_bin_window_coords(x, y) path = self.previews_box.get_path_at_pos(x, y) if path: tooltip.set_text(self.model[path][3]) self.previews_box.set_tooltip_item(tooltip, path) return True return False def on_progress_pulse_timeout(self): """ Updates the progress during prefetching """ self.progress_bar.pulse() return True def on_close_button_clicked(self, button): """ Stops the current fetching process and closes the dialog """ self.stopper.set() self.window.destroy() def on_stop_button_clicked(self, button): """ Stops the current fetching process """ self.stopper.set() def on_fetch_button_clicked(self, button): """ Starts the cover fetching process """ self.stopper.clear() thread = threading.Thread(target=self.fetch, name='CoverFetch') thread.daemon = True thread.start() def on_window_delete_event(self, window, e): """ Stops the current fetching process and closes the dialog """ self.close_button.clicked() return True class CoverMenu(guiutil.Menu): """ Cover menu """ def __init__(self, widget): """ Initializes the menu """ guiutil.Menu.__init__(self) self.widget = widget self.append(_('Show Cover'), self.on_show_clicked) self.append(_('Fetch Cover'), self.on_fetch_clicked) self.append(_('Remove Cover'), self.on_remove_clicked) def on_show_clicked(self, *e): """ Shows the current cover """ self.widget.show_cover() def on_fetch_clicked(self, *e): self.widget.fetch_cover() def on_remove_clicked(self, *e): self.widget.remove_cover() class CoverWidget(gtk.EventBox): """ Represents the cover widget displayed by the track information """ __gsignals__ = { 'cover-found': (gobject.SIGNAL_RUN_LAST, None, (object,)), } def __init__(self, image, player): """ Initializes the widget :param image: the image to wrap :type image: :class:`gtk.Image` """ gtk.EventBox.__init__(self) self._player = player self.image = image self.cover_data = None self.menu = CoverMenu(self) self.parent_window = image.get_toplevel() self.filename = None guiutil.gtk_widget_replace(image, self) self.add(self.image) self.set_blank() self.image.show() event.add_callback(self.on_playback_start, 'playback_track_start', self._player) event.add_callback(self.on_playback_end, 'playback_player_end', self._player) event.add_callback(self.on_quit_application, 'quit_application') if settings.get_option('gui/use_alpha', False): self.set_app_paintable(True) def destroy(self): """ Cleanups """ if self.filename is not None and os.path.exists(self.filename): os.remove(self.filename) self.filename = None event.remove_callback(self.on_playback_start, 'playback_track_start', self._player) event.remove_callback(self.on_playback_end, 'playback_player_end', self._player) event.remove_callback(self.on_quit_application, 'quit-application') def show_cover(self): """ Shows the current cover """ if not self.cover_data: return pixbuf = icons.MANAGER.pixbuf_from_data(self.cover_data) if pixbuf: window = CoverWindow(self.parent_window, pixbuf, self._player.current.get_tag_display('title')) window.show_all() def fetch_cover(self): """ Fetches a cover for the current track """ current_track = self._player.current if not current_track: return window = CoverChooser(self.parent_window, current_track) window.connect('cover-chosen', self.on_cover_chosen) def remove_cover(self): """ Removes the cover for the current track from the database """ COVER_MANAGER.remove_cover(self._player.current) self.set_blank() def set_blank(self): """ Sets the default cover to display """ pixbuf = icons.MANAGER.pixbuf_from_data( COVER_MANAGER.get_default_cover()) self.image.set_from_pixbuf(pixbuf) self.set_drag_source_enabled(False) self.cover_data = None self.emit('cover-found', None) def set_drag_source_enabled(self, enabled): """ Changes the behavior for drag and drop :param drag_enabled: Whether to allow drag to other applications :type enabled: bool """ if enabled == self.get_data('drag_source_enabled'): return if enabled: self.drag_source_set(gtk.gdk.BUTTON1_MASK, [('text/uri-list', 0, 0)], gtk.gdk.ACTION_DEFAULT | gtk.gdk.ACTION_MOVE ) else: self.drag_source_unset() self.set_data('drag_source_enabled', enabled) def do_button_press_event(self, event): """ Called when someone clicks on the cover widget """ if self._player.current is None or self.parent_window is None: return if event.type == gtk.gdk._2BUTTON_PRESS: self.show_cover() elif event.button == 3: self.menu.popup(event) def do_expose_event(self, event): """ Paints alpha transparency """ opacity = 1 - settings.get_option('gui/transparency', 0.3) context = self.props.window.cairo_create() background = self.style.bg[gtk.STATE_NORMAL] context.set_source_rgba( float(background.red) / 256**2, float(background.green) / 256**2, float(background.blue) / 256**2, opacity ) context.set_operator(cairo.OPERATOR_SOURCE) context.paint() gtk.EventBox.do_expose_event(self, event) def do_drag_begin(self, context): """ Sets the cover as drag icon """ self.drag_source_set_icon_pixbuf(self.image.get_pixbuf()) def do_drag_data_get(self, context, selection, info, time): """ Fills the selection with the current cover """ if self.filename is None: self.filename = tempfile.mkstemp(prefix='exaile_cover_')[1] pixbuf = icons.MANAGER.pixbuf_from_data(self.cover_data) pixbuf.save(self.filename, 'png') selection.set_uris([gio.File(self.filename).get_uri()]) def do_drag_data_delete(self, context): """ Cleans up after drag from cover widget """ if self.filename is not None and os.path.exists(self.filename): os.remove(self.filename) self.filename = None def do_drag_data_received(self, context, x, y, selection, info, time): """ Sets the cover based on the dragged data """ if self._player.current is not None: uri = selection.get_uris()[0] db_string = 'localfile:%s' % uri try: stream = gio.File(uri).read() except gio.Error: return self.cover_data = stream.read() width = settings.get_option('gui/cover_width', 100) pixbuf = icons.MANAGER.pixbuf_from_data(self.cover_data, (width, width)) if pixbuf is not None: self.image.set_from_pixbuf(pixbuf) COVER_MANAGER.set_cover(self._player.current, db_string, self.cover_data) def on_cover_chosen(self, object, cover_data): """ Called when a cover is selected from the coverchooser """ width = settings.get_option('gui/cover_width', 100) pixbuf = icons.MANAGER.pixbuf_from_data(cover_data, (width, width)) self.image.set_from_pixbuf(pixbuf) self.set_drag_source_enabled(True) self.cover_data = cover_data self.emit('cover-found', pixbuf) @common.threaded def on_playback_start(self, type, player, track): """ Called when playback starts. Fetches album covers, and displays them """ glib.idle_add(self.set_blank) glib.idle_add(self.drag_dest_set, gtk.DEST_DEFAULT_ALL, [('text/uri-list', 0, 0)], gtk.gdk.ACTION_COPY | gtk.gdk.ACTION_DEFAULT | gtk.gdk.ACTION_MOVE ) fetch = not settings.get_option('covers/automatic_fetching', True) cover_data = COVER_MANAGER.get_cover(track, set_only=fetch) if not cover_data: return if player.current == track: glib.idle_add(self.on_cover_chosen, None, cover_data) def on_playback_end(self, type, player, object): """ Called when playback stops. Resets to the nocover image """ glib.idle_add(self.drag_dest_unset) glib.idle_add(self.set_blank) def on_track_tags_changed(self, e, track, tag): """ Updates the displayed cover upon tag changes """ if self._player.current == track: cover_data = COVER_MANAGER.get_cover(track) if not cover_data: return glib.idle_add(self.on_cover_chosen, None, cover_data) def on_quit_application(self, type, exaile, nothing): """ Cleans up temporary files """ if self.filename is not None and os.path.exists(self.filename): os.remove(self.filename) self.filename = None class CoverWindow(object): """Shows the cover in a simple image viewer""" def __init__(self, parent, pixbuf, title=None): """Initializes and shows the cover""" self.builder = gtk.Builder() self.builder.add_from_file(xdg.get_data_path('ui/coverwindow.ui')) self.builder.connect_signals(self) self.cover_window = self.builder.get_object('CoverWindow') self.layout = self.builder.get_object('layout') self.toolbar = self.builder.get_object('toolbar') self.zoom_in_button = self.builder.get_object('zoom_in_button') self.zoom_out_button = self.builder.get_object('zoom_out_button') self.zoom_100_button = self.builder.get_object('zoom_100_button') self.zoom_fit_button = self.builder.get_object('zoom_fit_button') self.close_button = self.builder.get_object('close_button') self.image = self.builder.get_object('image') self.statusbar = self.builder.get_object('statusbar') self.scrolledwindow = self.builder.get_object('scrolledwindow') self.scrolledwindow.set_hadjustment(self.layout.get_hadjustment()) self.scrolledwindow.set_vadjustment(self.layout.get_vadjustment()) if title is None: title = _('Cover') else: title = _('Cover for %s') % title self.cover_window.set_title(title) self.cover_window.set_transient_for(parent) self.cover_window_width = 500 self.cover_window_height = 500 + self.toolbar.size_request()[1] + \ self.statusbar.size_request()[1] self.cover_window.set_default_size(self.cover_window_width, \ self.cover_window_height) self.image_original_pixbuf = pixbuf self.image_pixbuf = self.image_original_pixbuf self.min_percent = 1 self.max_percent = 500 self.ratio = 1.5 self.image_interp = gtk.gdk.INTERP_BILINEAR self.image_fitted = True self.set_ratio_to_fit() self.update_widgets() def show_all(self): self.cover_window.show_all() def available_image_width(self): """Returns the available horizontal space for the image""" return self.cover_window.get_size()[0] def available_image_height(self): """Returns the available vertical space for the image""" return self.cover_window.get_size()[1] - \ self.toolbar.size_request()[1] - \ self.statusbar.size_request()[1] def center_image(self): """Centers the image in the layout""" new_x = max(0, int((self.available_image_width() - \ self.image_pixbuf.get_width()) / 2)) new_y = max(0, int((self.available_image_height() - \ self.image_pixbuf.get_height()) / 2)) self.layout.move(self.image, new_x, new_y) def update_widgets(self): """Updates image, layout, scrolled window, tool bar and status bar""" if self.cover_window.window: self.cover_window.window.freeze_updates() self.apply_zoom() self.layout.set_size(self.image_pixbuf.get_width(), \ self.image_pixbuf.get_height()) if self.image_fitted or \ (self.image_pixbuf.get_width() == self.available_image_width() and \ self.image_pixbuf.get_height() == self.available_image_height()): self.scrolledwindow.set_policy(gtk.POLICY_NEVER, gtk.POLICY_NEVER) else: self.scrolledwindow.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) percent = int(100 * self.image_ratio) message = str(self.image_original_pixbuf.get_width()) + " x " + \ str(self.image_original_pixbuf.get_height()) + \ " pixels " + str(percent) + '%' self.zoom_in_button.set_sensitive(percent < self.max_percent) self.zoom_out_button.set_sensitive(percent > self.min_percent) self.statusbar.pop(self.statusbar.get_context_id('')) self.statusbar.push(self.statusbar.get_context_id(''), message) self.image.set_from_pixbuf(self.image_pixbuf) self.center_image() if self.cover_window.window: self.cover_window.window.thaw_updates() def apply_zoom(self): """Scales the image if needed""" new_width = int(self.image_original_pixbuf.get_width() * \ self.image_ratio) new_height = int(self.image_original_pixbuf.get_height() * \ self.image_ratio) if new_width != self.image_pixbuf.get_width() or \ new_height != self.image_pixbuf.get_height(): self.image_pixbuf = self.image_original_pixbuf.scale_simple(new_width, \ new_height, self.image_interp) def set_ratio_to_fit(self): """Calculates and sets the needed ratio to show the full image""" width_ratio = float(self.image_original_pixbuf.get_width()) / \ self.available_image_width() height_ratio = float(self.image_original_pixbuf.get_height()) / \ self.available_image_height() self.image_ratio = 1 / max(1, width_ratio, height_ratio) def on_zoom_in_button_clicked(self, widget): """ Zooms into the image """ self.image_fitted = False self.image_ratio *= self.ratio self.update_widgets() def on_zoom_out_button_clicked(self, widget): """ Zooms out of the image """ self.image_fitted = False self.image_ratio *= 1 / self.ratio self.update_widgets() def on_zoom_100_button_clicked(self, widget): """ Restores the original image zoom """ self.image_fitted = False self.image_ratio = 1 self.update_widgets() def on_zoom_fit_button_clicked(self, widget): """ Zooms the image to fit the window width """ self.image_fitted = True self.set_ratio_to_fit() self.update_widgets() def on_close_button_clicked(self, widget): """ Hides the window """ self.cover_window.hide_all() def cover_window_size_allocate(self, widget, allocation): if self.cover_window_width != allocation.width or \ self.cover_window_height != allocation.height: if self.image_fitted: self.set_ratio_to_fit() self.update_widgets() self.cover_window_width = allocation.width self.cover_window_height = allocation.height class CoverChooser(gobject.GObject): """ Fetches all album covers for a string, and allows the user to choose one out of the list """ __gsignals__ = { 'covers-fetched': ( gobject.SIGNAL_RUN_LAST, None, (object,) ), 'cover-chosen': ( gobject.SIGNAL_RUN_LAST, None, (object,) ) } def __init__(self, parent, track, search=None): """ Expects the parent control, a track, an an optional search string """ gobject.GObject.__init__(self) self.parent = parent self.builder = gtk.Builder() self.builder.add_from_file(xdg.get_data_path('ui/coverchooser.ui')) self.builder.connect_signals(self) self.window = self.builder.get_object('CoverChooser') self.window.set_title(_("Cover options for %(artist)s - %(album)s") % { 'artist': track.get_tag_display('artist'), 'album': track.get_tag_display('album') }) self.window.set_transient_for(parent) self.message = dialogs.MessageBar( parent=self.builder.get_object('main_container'), buttons=gtk.BUTTONS_CLOSE ) self.message.connect('response', self.on_message_response) self.track = track self.covers = [] self.current = 0 self.cover = guiutil.ScalableImageWidget() self.cover.set_image_size(350, 350) self.cover_image_box = self.builder.get_object('cover_image_box') self.loading_indicator = gtk.Alignment() self.loading_indicator.props.xalign = 0.5 self.loading_indicator.props.yalign = 0.5 self.loading_indicator.set_size_request(350, 350) self.cover_image_box.pack_start(self.loading_indicator) try: spinner = gtk.Spinner() spinner.set_size_request(100, 100) spinner.start() self.loading_indicator.add(spinner) except AttributeError: # Older than GTK 2.20 and PyGTK 2.22 self.loading_indicator.add(gtk.Label(_('Loading...'))) self.size_label = self.builder.get_object('size_label') self.source_label = self.builder.get_object('source_label') self.covers_model = self.builder.get_object('covers_model') self.previews_box = self.builder.get_object('previews_box') self.previews_box.set_no_show_all(True) self.previews_box.hide() self.previews_box.set_model(None) self.set_button = self.builder.get_object('set_button') self.set_button.set_sensitive(False) self.window.show_all() self.stopper = threading.Event() self.fetcher_thread = threading.Thread(target=self.fetch_cover, name='Coverfetcher') self.fetcher_thread.start() def fetch_cover(self): """ Searches for covers for the current track """ db_strings = COVER_MANAGER.find_covers(self.track) if db_strings: for db_string in db_strings: if self.stopper.is_set(): return coverdata = COVER_MANAGER.get_cover_data(db_string) # Pre-render everything for faster display later pixbuf = icons.MANAGER.pixbuf_from_data(coverdata) if pixbuf: self.covers_model.append([ (db_string, coverdata), pixbuf, pixbuf.scale_simple(50, 50, gtk.gdk.INTERP_BILINEAR) ]) self.emit('covers-fetched', db_strings) def do_covers_fetched(self, db_strings): """ Finishes the dialog setup after all covers have been fetched """ if self.stopper.is_set(): return self.cover_image_box.remove(self.loading_indicator) self.previews_box.set_model(self.covers_model) if db_strings: self.cover_image_box.pack_start(self.cover, True, True) self.cover.show() self.set_button.set_sensitive(True) # Show thumbnail bar if more than one cover was found if len(db_strings) > 1: self.previews_box.set_no_show_all(False) self.previews_box.show_all() # Try to select the current cover of the track, fallback to first track_db_string = COVER_MANAGER.get_db_string(self.track) position = db_strings.index(track_db_string) if track_db_string in db_strings else 0 self.previews_box.select_path((position,)) else: self.builder.get_object('info_box').hide() self.builder.get_object('actions_box').hide() self.message.show_warning( _('No covers found.'), _('None of the enabled sources has a cover for this track, try enabling more sources.') ) def on_cancel_button_clicked(self, button): """ Closes the cover chooser """ # Notify the fetcher thread to stop self.stopper.set() self.window.destroy() def on_set_button_clicked(self, button): """ Chooses the current cover and saves it to the database """ paths = self.previews_box.get_selected_items() if paths: path = paths[0] coverdata = self.covers_model[path][0] COVER_MANAGER.set_cover(self.track, coverdata[0], coverdata[1]) self.emit('cover-chosen', coverdata[1]) self.window.destroy() def on_previews_box_selection_changed(self, iconview): """ Switches the currently displayed cover """ paths = self.previews_box.get_selected_items() if paths: path = paths[0] db_string = self.covers_model[path][0] source = db_string[0].split(':', 1)[0] provider = providers.get_provider('covers', source) pixbuf = self.covers_model[path][1] self.cover.set_image_pixbuf(pixbuf) self.size_label.set_text(_('{width}x{height} pixels').format( width=pixbuf.get_width(), height=pixbuf.get_height())) # Display readable title of the provider, fallback to its name self.source_label.set_text(getattr(provider, 'title', source)) self.set_button.set_sensitive(True) else: self.set_button.set_sensitive(False) def on_previews_box_item_activated(self, iconview, path): """ Triggers selecting the current cover """ self.set_button.clicked() def on_message_response(self, widget, response): """ Handles the response for closing """ if response == gtk.RESPONSE_CLOSE: self.window.destroy() dist/copy/xlgui/PaxHeaders.26361/icons.py0000644000175000017500000000012412233027260016636 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.565046947 exaile-3.3.2/xlgui/icons.py0000644000000000000000000007054012233027260015604 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. """ Provides methods for convenient icons and image handling """ import cairo import glob import glib import gtk import logging import os from xl import ( common, event, settings, xdg ) logger = logging.getLogger(__name__) class ExtendedPixbuf(gtk.gdk.Pixbuf): """ A :class:`gtk.gdk.Pixbuf` wrapper class allowing for interaction using standard operators Thus you can do the following: * ``pixbuf1 + pixbuf2`` (horizontally appends ``pixbuf2`` to ``pixbuf1``) * ``pixbuf * 5`` (multiplies the content of ``pixbuf``) * ``pixbuf1 & pixbuf2`` (simple composition of ``pixbuf2`` on ``pixbuf1``, the desired alpha value has to be included in the pixbufs themselves) * ``pixbuf1 < pixbuf2``, ``pixbuf1 > pixbuf2`` (compares the pixbuf dimensions) * ``pixbuf1 == pixbuf2`` (compares the pixel data, use the *is* operator to check for identity) Even more is possible with the provided verbose methods """ def __init__(self, pixbuf): gtk.gdk.Pixbuf.__init__(self, pixbuf.get_colorspace(), pixbuf.get_has_alpha(), pixbuf.get_bits_per_sample(), pixbuf.get_width(), pixbuf.get_height() ) pixbuf.copy_area( src_x=0, src_y=0, width=self.get_width(), height=self.get_height(), dest_pixbuf=self, dest_x=0, dest_y=0 ) def __add__(self, other): """ Horizontally appends a pixbuf to the current :param other: the pixbuf to append :type other: :class:`gtk.gdk.Pixbuf` :returns: a new pixbuf :rtype: :class:`ExtendedPixbuf` """ return self.add_horizontal(other) def __mul__(self, multiplier): """ Horizontally multiplies the current pixbuf content :param multiplier: How often the pixbuf shall be multiplied :type multiplier: int :returns: a new pixbuf :rtype: :class:`ExtendedPixbuf` """ return self.multiply_horizontal(multiplier) def __and__(self, other): """ Composites a pixbuf on the current pixbuf at the location (0, 0) :param other: the pixbuf to composite :type other: :class:`gtk.gdk.Pixbuf` :returns: a new pixbuf :rtype: :class:`ExtendedPixbuf` """ return self.composite_simple(other) def __lt__(self, other): """ True if the size (width * height) of the current pixbuf is lower than the size of the other pixbuf """ self_size = self.get_width() * self.get_height() other_size = other.get_width() * other.get_height() return self_size < other_size def __le__(self, other): """ True if the size (width * height) of the current pixbuf is lower than or equal to the size of the other pixbuf """ self_size = self.get_width() * self.get_height() other_size = other.get_width() * other.get_height() return self_size <= other_size def __gt__(self, other): """ True if the size (width * height) of the current pixbuf is higher than the size of the other pixbuf """ self_size = self.get_width() * self.get_height() other_size = other.get_width() * other.get_height() return self_size > other_size def __ge__(self, other): """ True if the size (width * height) of the current pixbuf is higher than or equal to the size of the other pixbuf """ self_size = self.get_width() * self.get_height() other_size = other.get_width() * other.get_height() return self_size >= other_size def __eq__(self, other): """ True if the pixels of the current pixbuf are the same as the pixels from the other pixbuf """ return self.get_pixels() == other.get_pixels() def __ne__(self, other): """ True if the pixels of the current pixbuf are not the same as the pixels from the other pixbuf """ return not self.__eq__(other) def add_horizontal(self, other, spacing=0): """ Horizontally appends a pixbuf to the current :param other: the pixbuf to append :type other: :class:`gtk.gdk.Pixbuf` :param spacing: amount of pixels between the pixbufs :type spacing: int :returns: a new pixbuf :rtype: :class:`ExtendedPixbuf` """ height = max(self.get_height(), other.get_height()) spacing = max(0, spacing) new_pixbuf = gtk.gdk.Pixbuf( self.get_colorspace(), self.get_has_alpha(), self.get_bits_per_sample(), self.get_width() + spacing + other.get_width(), height ) new_pixbuf.fill(0xffffff00) self.copy_area( src_x=0, src_y=0, width=self.get_width(), height=self.get_height(), dest_pixbuf=new_pixbuf, dest_x=0, dest_y=0 ) other.copy_area( src_x=0, src_y=0, width=other.get_width(), height=other.get_height(), dest_pixbuf=new_pixbuf, dest_x=self.get_width() + spacing, dest_y=0 ) return ExtendedPixbuf(new_pixbuf) def add_vertical(self, other, spacing=0): """ Vertically appends a pixbuf to the current :param other: the pixbuf to append :type other: :class:`gtk.gdk.Pixbuf` :param spacing: amount of pixels between the pixbufs :type spacing: int :returns: a new pixbuf :rtype: :class:`ExtendedPixbuf` """ width = max(self.get_width(), other.get_width()) spacing = max(0, spacing) new_pixbuf = gtk.gdk.Pixbuf( self.get_colorspace(), self.get_has_alpha(), self.get_bits_per_sample(), width, self.get_height() + spacing + other.get_height() ) new_pixbuf.fill(0xffffff00) self.copy_area( src_x=0, src_y=0, width=self.get_width(), height=self.get_height(), dest_pixbuf=new_pixbuf, dest_x=0, dest_y=0 ) other.copy_area( src_x=0, src_y=0, width=other.get_width(), height=other.get_height(), dest_pixbuf=new_pixbuf, dest_x=0, dest_y=self.get_height() + spacing ) return ExtendedPixbuf(new_pixbuf) def multiply_horizontal(self, multiplier, spacing=0): """ Horizontally multiplies the current pixbuf content :param multiplier: How often the pixbuf shall be multiplied :type multiplier: int :param spacing: amount of pixels between the pixbufs :type spacing: int :returns: a new pixbuf :rtype: :class:`ExtendedPixbuf` """ spacing = max(0, spacing) new_pixbuf = gtk.gdk.Pixbuf( self.get_colorspace(), self.get_has_alpha(), self.get_bits_per_sample(), self.get_width() * multiplier + spacing * multiplier, self.get_height() ) new_pixbuf.fill(0xffffff00) for n in xrange(0, multiplier): self.copy_area( src_x=0, src_y=0, width=self.get_width(), height=self.get_height(), dest_pixbuf=new_pixbuf, dest_x=n * self.get_width() + n * spacing, dest_y=0 ) return ExtendedPixbuf(new_pixbuf) def multiply_vertical(self, multiplier, spacing=0): """ Vertically multiplies the current pixbuf content :param multiplier: How often the pixbuf shall be multiplied :type multiplier: int :param spacing: amount of pixels between the pixbufs :type spacing: int :returns: a new pixbuf :rtype: :class:`ExtendedPixbuf` """ spacing = max(0, spacing) new_pixbuf = gtk.gdk.Pixbuf( self.get_colorspace(), self.get_has_alpha(), self.get_bits_per_sample(), self.get_width(), self.get_height() * multiplier + spacing * multiplier ) new_pixbuf.fill(0xffffff00) for n in xrange(0, multiplier): self.copy_area( src_x=0, src_y=0, width=self.get_width(), height=self.get_height(), dest_pixbuf=new_pixbuf, dest_x=0, dest_y=n * self.get_height() + n * spacing ) return ExtendedPixbuf(new_pixbuf) def composite_simple(self, other): """ Composites a pixbuf on the current pixbuf at the location (0, 0) :param other: the pixbuf to composite :type other: :class:`gtk.gdk.Pixbuf` :returns: a new pixbuf :rtype: :class:`ExtendedPixbuf` """ width = max(self.get_width(), other.get_width()) height = max(self.get_height(), other.get_height()) new_pixbuf = gtk.gdk.Pixbuf( self.get_colorspace(), self.get_has_alpha(), self.get_bits_per_sample(), width, height ) new_pixbuf.fill(0xffffff00) for pixbuf in (self, other): pixbuf.composite( dest=new_pixbuf, dest_x=0, dest_y=0, dest_width=pixbuf.get_width(), dest_height=pixbuf.get_height(), offset_x=0, offset_y=0, scale_x=1, scale_y=1, interp_type=gtk.gdk.INTERP_BILINEAR, # Alpha needs to be embedded in the pixbufs overall_alpha=255 ) return ExtendedPixbuf(new_pixbuf) def move(self, offset_x, offset_y, resize=False): """ Moves the content of the current pixbuf within its boundaries (clips overlapping data) and optionally resizes the pixbuf to contain the movement :param offset_x: the amount of pixels to move in horizontal direction :type offset_x: int :param offset_y: the amount of pixels to move in vertical direction :type offset_y: int :param resize: whether to resize the pixbuf on movement :type resize: bool :returns: a new pixbuf :rtype: :class:`ExtendedPixbuf` """ width = self.get_width() height = self.get_height() if resize: width += offset_x height += offset_y new_pixbuf = gtk.gdk.Pixbuf( self.get_colorspace(), self.get_has_alpha(), self.get_bits_per_sample(), width, height ) new_pixbuf.fill(0xffffff00) self.copy_area( src_x=0, src_y=0, width=self.get_width(), height=self.get_height(), dest_pixbuf=new_pixbuf, dest_x=offset_x, dest_y=offset_y ) return ExtendedPixbuf(new_pixbuf) def copy(self): """ Override to return same type """ return ExtendedPixbuf(gtk.gdk.Pixbuf.copy(self)) def add_alpha(self, substitute_color, r, g, b): """ Override to return same type """ return ExtendedPixbuf(gtk.gdk.Pixbuf.add_alpha( self, substitute_color, r, g, b)) def scale_simple(self, dest_width, dest_height, interp_type): """ Override to return same type """ return ExtendedPixbuf(gtk.gdk.Pixbuf.scale_simple( self, dest_width, dest_height, interp_type)) def composite_color_simple(self, dest_width, dest_height, interp_type, overall_alpha, check_size, color1, color2): """ Override to return same type """ return ExtendedPixbuf(gtk.gdk.Pixbuf.composite_color_simple( self, dest_width, dest_height, interp_type, overall_alpha, check_size, color1, color2)) def subpixbuf(self, src_x, src_y, width, height): """ Override to return same type """ return ExtendedPixbuf(gtk.gdk.Pixbuf.subpixbuf( self, src_x, src_y, width, height)) def rotate_simple(self, angle): """ Override to return same type """ return ExtendedPixbuf(gtk.gdk.Pixbuf.rotate_simple(self, angle)) def flip(self, horizontal): """ Override to return sampe type """ return ExtendedPixbuf(gtk.gdk.Pixbuf.flip(self, horizontal)) def extended_pixbuf_new_from_file(filename): """ Returns a new :class:`ExtendedPixbuf` containing an image loaded from the specified file :param filename: the name of the file containing the image to load :type filename: string :returns: a new pixbuf :rtype: :class:`ExtendedPixbuf` """ return ExtendedPixbuf(gtk.gdk.pixbuf_new_from_file(filename)) class IconManager(object): """ Provides convenience functions for managing icons and images in general """ def __init__(self): self.icon_theme = gtk.icon_theme_get_default() self.icon_factory = gtk.IconFactory() self.icon_factory.add_default() # Any arbitrary widget is fine self.render_widget = gtk.Button() self.system_visual = gtk.gdk.visual_get_system() self.system_colormap = gtk.gdk.colormap_get_system() # TODO: Make svg actually recognized self._sizes = [16, 22, 24, 32, 48, 'scalable'] self._cache = {} self.rating_active_pixbuf = extended_pixbuf_new_from_file( xdg.get_data_path('images', 'star.png')) self.rating_inactive_pixbuf = extended_pixbuf_new_from_file( xdg.get_data_path('images', 'emptystar.png')) # nobody actually sets the rating option, so don't handle it for now #event.add_callback(self.on_option_set, 'rating_option_set') def add_icon_name_from_directory(self, icon_name, directory): """ Registers an icon name from files found in a directory :param icon_name: the name for the icon :type icon_name: string :param directory: the location to search for icons :type directory: string """ for size in self._sizes: try: # WxH/icon_name.png and scalable/icon_name.svg sizedir = '%dx%d' % (size, size) except TypeError: sizedir = size filepath = os.path.join(directory, sizedir, icon_name) files = glob.glob('%s.*' % filepath) try: icon_size = size if size != 'scalable' else -1 self.add_icon_name_from_file(icon_name, files[0], icon_size) except IndexError: # icon_nameW.png and icon_name.svg try: filename = '%s%d' % (icon_name, size) except TypeError: filename = icon_name filepath = os.path.join(directory, filename) files = glob.glob('%s.*' % filepath) try: icon_size = size if size != 'scalable' else -1 self.add_icon_name_from_file(icon_name, files[0], icon_size) except IndexError: # Give up pass def add_icon_name_from_file(self, icon_name, filename, size=None): """ Registers an icon name from a filename :param icon_name: the name for the icon :type icon_name: string :param filename: the filename of an image :type filename: string :param size: the size the icon shall be registered for :type size: int """ try: pixbuf = gtk.gdk.pixbuf_new_from_file(filename) self.add_icon_name_from_pixbuf(icon_name, pixbuf, size) except Exception as e: # Happens if, e.g., librsvg is not installed. logger.warning('Failed to add icon name "{icon_name}" ' 'from file "{filename}": {error}'.format( icon_name=icon_name, filename=filename, error=e.message )) pass def add_icon_name_from_pixbuf(self, icon_name, pixbuf, size=None): """ Registers an icon name from a pixbuf :param icon_name: the name for the icon :type icon_name: string :param pixbuf: the pixbuf of an image :type pixbuf: :class:`gtk.gdk.Pixbuf` :param size: the size the icon shall be registered for :type size: int """ if size is None: size = pixbuf.get_width() gtk.icon_theme_add_builtin_icon(icon_name, size, pixbuf) def add_stock_from_directory(self, stock_id, directory): """ Registers a stock icon from files found in a directory :param stock_id: the stock id for the icon :type stock_id: string :param directory: the location to search for icons :type directory: string """ files = [] self._sizes.reverse() # Prefer small over downscaled icons for size in self._sizes: try: # WxH/stock_id.png and scalable/stock_id.svg sizedir = '%dx%d' % (size, size) except TypeError: sizedir = size filepath = os.path.join(directory, sizedir, stock_id) try: files += [glob.glob('%s.*' % filepath)[0]] except IndexError: # stock_idW.png and stock_id.svg try: filename = '%s%d' % (stock_id, size) except TypeError: filename = stock_id filepath = os.path.join(directory, filename) try: files += [glob.glob('%s.*' % filepath)[0]] except IndexError: # Give up pass self.add_stock_from_files(stock_id, files) def add_stock_from_file(self, stock_id, filename): """ Registers a stock icon from a filename :param stock_id: the stock id for the icon :type stock_id: string :param filename: the filename of an image :type filename: string """ self.add_stock_from_files([filename]) def add_stock_from_files(self, stock_id, filenames): """ Registers a stock icon from filenames :param stock_id: the stock id for the icon :type stock_id: string :param filenames: the filenames of images :type filenames: list of string """ pixbufs = [gtk.gdk.pixbuf_new_from_file(filename) for filename in filenames] self.add_stock_from_pixbufs(stock_id, pixbufs) def add_stock_from_pixbuf(self, stock_id, pixbuf): """ Registers a stock icon from a pixbuf :param stock_id: the stock id for the icon :type stock_id: string :param pixbuf: the pixbuf of an image :type pixbuf: :class:`gtk.gdk.Pixbuf` """ self.add_stock_from_pixbufs(stock_id, [pixbuf]) def add_stock_from_pixbufs(self, stock_id, pixbufs): """ Registers a stock icon from pixbufs :param stock_id: the stock id for the icon :type stock_id: string :param pixbuf: the pixbufs of images :type pixbuf: list of :class:`gtk.gdk.Pixbuf` """ icon_set = gtk.IconSet() for pixbuf in pixbufs: icon_source = gtk.IconSource() icon_source.set_pixbuf(pixbuf) icon_set.add_source(icon_source) self.icon_factory.add(stock_id, icon_set) def pixbuf_from_stock(self, stock_id, size=gtk.ICON_SIZE_BUTTON): """ Generates a pixbuf from a stock id :param stock_id: a stock id :type stock_id: string :param size: the size of the icon :type size: GtkIconSize :returns: the generated pixbuf :rtype: :class:`gtk.gdk.Pixbuf` or None """ # TODO: Check if fallbacks are necessary return self.render_widget.render_icon(stock_id, size) def pixbuf_from_icon_name(self, icon_name, size=gtk.ICON_SIZE_BUTTON): """ Generates a pixbuf from an icon name :param stock_id: an icon name :type stock_id: string :param size: the size of the icon, will be tried to converted to a GTK icon size :type size: int or GtkIconSize :returns: the generated pixbuf :rtype: :class:`gtk.gdk.Pixbuf` or None """ if type(size) == gtk.IconSize: icon_size = gtk.icon_size_lookup(size) size = icon_size[0] try: pixbuf = self.icon_theme.load_icon( icon_name, size, gtk.ICON_LOOKUP_NO_SVG) except glib.GError as e: logger.warning('Failed to get pixbuf from "{icon_name}": {error}'.format( icon_name=icon_name, error=e.message )) pixbuf = None # TODO: Check if fallbacks are necessary return pixbuf def pixbuf_from_data(self, data, size=None, keep_ratio=True, upscale=False): """ Generates a pixbuf from arbitrary image data :param data: The raw image data :type data: byte :param size: Size to scale to; if not specified, the image will render to its native size :type size: tuple of int :param keep_ratio: Whether to keep the original image ratio on resizing operations :type keep_ratio: bool :param upscale: Whether to upscale if the requested size exceeds the native size :type upscale: bool :returns: the generated pixbuf :rtype: :class:`gtk.gdk.Pixbuf` or None """ if not data: return None pixbuf = None loader = gtk.gdk.PixbufLoader() if size is not None: def on_size_prepared(loader, width, height): """ Keeps the ratio if requested """ if keep_ratio: scale = min(size[0] / float(width), size[1] / float(height)) if scale > 1.0 and upscale: width = int(width * scale) height = int(height * scale) elif scale <= 1.0: width = int(width * scale) height = int(height * scale) else: if upscale: width, height = size else: width = height = max(width, height) loader.set_size(width, height) loader.connect('size-prepared', on_size_prepared) try: loader.write(data) loader.close() except glib.GError as e: logger.warning('Failed to get pixbuf from data: {error}'.format( error=e.message )) else: pixbuf = loader.get_pixbuf() return pixbuf def pixbuf_from_text(self, text, size, background_color='#456eac', border_color='#000', text_color='#fff'): """ Generates a pixbuf based on a text, width and height :param size: A tuple describing width and height :type size: tuple of int :param background_color: The color of the background as hexadecimal value :type background_color: string :param border_color: The color of the border as hexadecimal value :type border_color: string :param text_color: The color of the text as hexadecimal value :type text_color: string """ pixmap_width, pixmap_height = size key = '%s - %sx%s - %s' % (text, pixmap_width, pixmap_height, background_color) if self._cache.has_key(key): return self._cache[key] pixmap = gtk.gdk.Pixmap(None, pixmap_width, pixmap_height, self.system_visual.depth) context = pixmap.cairo_create() context.set_source_color(gtk.gdk.Color(background_color)) context.set_line_width(1) context.rectangle(1, 1, pixmap_width - 2, pixmap_height - 2) context.fill() context.set_source_color(gtk.gdk.Color(text_color)) context.select_font_face('sans-serif 10') x_bearing, y_bearing, width, height = context.text_extents(text)[:4] x = pixmap_width / 2 - width / 2 - x_bearing y = pixmap_height / 2 - height / 2 - y_bearing context.move_to(x, y) context.show_text(text) context.set_source_color(gtk.gdk.Color(border_color)) context.set_antialias(cairo.ANTIALIAS_NONE) context.rectangle(0, 0, pixmap_width - 1, pixmap_height - 1) context.stroke() pixbuf = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, False, 8, pixmap_width, pixmap_height) pixbuf = pixbuf.get_from_drawable(pixmap, self.system_colormap, 0, 0, 0, 0, pixmap_width, pixmap_height) self._cache[key] = pixbuf return pixbuf @common.cached(limit=settings.get_option('rating/maximum', 5)*3) def pixbuf_from_rating(self, rating, size_ratio=1): """ Returns a pixbuf representing a rating :param rating: the rating :type rating: int :returns: the rating pixbuf :rtype: :class:`gtk.gdk.Pixbuf` """ maximum = settings.get_option('rating/maximum', 5) width = self.rating_active_pixbuf.get_width() height = self.rating_active_pixbuf.get_height() active_pixbuf = self.rating_active_pixbuf.scale_simple(int(width*size_ratio), int(height*size_ratio), gtk.gdk.INTERP_BILINEAR) inactive_pixbuf = self.rating_inactive_pixbuf.scale_simple(int(width*size_ratio), int(height*size_ratio), gtk.gdk.INTERP_BILINEAR) rating = max(0, rating) rating = min(rating, maximum) if rating == 0: return inactive_pixbuf*maximum elif rating == maximum: return active_pixbuf*maximum active_pixbufs = active_pixbuf * rating inactive_pixbufs = inactive_pixbuf * (maximum - rating) return active_pixbufs + inactive_pixbufs MANAGER = IconManager() # vim: et sts=4 sw=4 dist/copy/xlgui/PaxHeaders.26361/widgets0000644000175000017500000000013212233027261016542 xustar000000000000000030 mtime=1382821553.609046948 30 atime=1382821552.793046922 30 ctime=1382821553.609046948 exaile-3.3.2/xlgui/widgets/0000755000000000000000000000000012233027261015560 5ustar00rootroot00000000000000dist/copy/xlgui/widgets/PaxHeaders.26361/notebook.py0000644000175000017500000000012412233027260021011 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.565046947 exaile-3.3.2/xlgui/widgets/notebook.py0000644000000000000000000002372712233027260017764 0ustar00rootroot00000000000000# Copyright (C) 2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import gobject import gtk import pango from xl.nls import gettext as _ from xlgui import guiutil from xlgui.widgets import menu class SmartNotebook(gtk.Notebook): def __init__(self): gtk.Notebook.__init__(self) self.set_scrollable(True) self.connect('button-press-event', self.on_button_press) self.connect('popup-menu', self.on_popup_menu) def get_current_tab(self): return self.get_nth_page(self.get_current_page()) def add_tab(self, tab, page, position=-1, switch=True): """ Add a tab to the notebook. It will be given focus. :param tab: The tab to use :type tab: NotebookTab :param page: The page to use :type page: NotebookPage :param position: index to insert page at, or -1 for append :type position: int """ self.insert_page(page, tab, position=position) self.set_tab_reorderable(page, page.reorderable) if switch: self.set_current_page(self.page_num(page)) def add_default_tab(self): """ Action taken when a generic "new tab" option is triggered. Subclasses need to override this if they want new tab functionality to work automatically. :return: The NotebookTab created, or None """ pass def remove_page(self, page_num): gtk.Notebook.remove_page(self, page_num) if self.get_n_pages() == 0: self.add_default_tab() def on_button_press(self, widget, event): if event.type == gtk.gdk.BUTTON_PRESS and event.button == 2: self.add_default_tab() def on_popup_menu(self, widget): page = self.get_current_tab() tab_label = self.get_tab_label(self.get_current_tab()) page.tab_menu.popup(None, None, guiutil.position_menu, 0, 0, (self.window, tab_label)) return True # Reduce the notebook tabs' close button padding size. gtk.rc_parse_string(""" style "thinWidget" { xthickness = 0 ythickness = 0 } widget "*.tabCloseButton" style "thinWidget" """) class NotebookTab(gtk.EventBox): """ Class to represent a generic tab in a gtk.Notebook. """ menu_provider_name = 'notebooktab' # Change this in subclasses! reorderable = True def __init__(self, notebook, page): """ :param notebook: The notebook this tab will belong to :param page: The page this tab will be associated with """ gtk.EventBox.__init__(self) self.set_visible_window(False) self.closable = True self.notebook = notebook self.page = page self.menu = menu.ProviderMenu(self.menu_provider_name, self) self.connect('button-press-event', self.on_button_press) box = gtk.HBox(False, 2) self.add(box) self.icon = gtk.Image() self.icon.set_property("visible", False) box.pack_start(self.icon, False, False) self.label = gtk.Label(self.page.get_name()) self.label.set_max_width_chars(20) self.label.set_ellipsize(pango.ELLIPSIZE_END) self.label.set_tooltip_text(self.page.get_name()) box.pack_start(self.label, False, False) self.entry = gtk.Entry() self.entry.set_width_chars(self.label.get_max_width_chars()) self.entry.set_text(self.label.get_text()) self.entry.set_inner_border(gtk.Border(left=1, right=1)) self.entry.connect('activate', self.on_entry_activate) self.entry.connect('focus-out-event', self.on_entry_focus_out_event) self.entry.connect('key-press-event', self.on_entry_key_press_event) self.entry.set_no_show_all(True) box.pack_start(self.entry, False, False) self.button = button = gtk.Button() button.set_name("tabCloseButton") button.set_relief(gtk.RELIEF_NONE) button.set_focus_on_click(False) button.set_tooltip_text(_("Close Tab")) button.add(gtk.image_new_from_stock(gtk.STOCK_CLOSE, gtk.ICON_SIZE_MENU)) button.connect('clicked', self.close) button.connect('button-press-event', self.on_button_press) box.pack_end(button, False, False) page.set_tab(self) page.connect('name-changed', self.on_name_changed) self.show_all() def set_icon(self, pixbuf): """ Set the primary icon for the tab. :param pixbuf: The icon to use, or None to hide :type pixbuf: :class:`gtk.gdk.Pixbuf` """ if pixbuf is None: self.icon.set_property("visible", False) else: self.icon.set_from_pixbuf(pixbuf) self.icon.set_property("visible", True) def set_closable(self, closable): self.closable = closable self.button.set_sensitive(closable) def on_button_press(self, widget, event): """ Handles mouse button events on the tab. Typically triggers renaming, closing and menu. """ if event.button == 1 and event.type == gtk.gdk._2BUTTON_PRESS: self.start_rename() elif event.button == 2: self.close() elif event.button == 3: self.page.tab_menu.popup( None, None, None, event.button, event.time) return True def on_entry_activate(self, entry): """ Handles end of editing and triggers the actual rename. """ self.entry.props.editing_canceled = False self.end_rename() def on_entry_focus_out_event(self, widget, event): """ Make defocusing the rename box equivalent to activating it. """ if not self.entry.props.editing_canceled: widget.activate() def on_entry_key_press_event(self, widget, event): """ Cancel rename if Escape is pressed """ if event.keyval == gtk.keysyms.Escape: self.entry.props.editing_canceled = True self.end_rename() return True def on_name_changed(self, *args): self.label.set_text(self.page.get_name()) def start_rename(self): """ Initiates the renaming of a tab, if the page supports this. """ if not self.can_rename(): return self.entry.set_text(self.page.get_name()) self.label.hide() self.button.hide() self.entry.show() self.entry.select_region(0, -1) self.entry.grab_focus() def end_rename(self, cancel=False): """ Finishes or cancels the renaming """ name = self.entry.get_text() if name.strip() != "" and not self.entry.props.editing_canceled: self.page.set_name(name) self.label.set_text(name) self.label.set_tooltip_text(name) self.entry.hide() self.label.show() self.button.show() self.entry.props.editing_canceled = False def can_rename(self): return hasattr(self.page, 'set_name') def close(self, *args): if self.closable and not self.page.emit('closing'): self.notebook.remove_page(self.notebook.page_num(self.page)) class NotebookPage(gtk.VBox): """ Base class representing a page. Should never be used directly. """ menu_provider_name = 'tab-context' #override this in subclasses reorderable = True __gsignals__ = { 'name-changed': ( gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, () ), 'closing': ( gobject.SIGNAL_RUN_LAST, gobject.TYPE_BOOLEAN, () ) } def __init__(self): gtk.VBox.__init__(self) self.tab = None self.tab_menu = menu.ProviderMenu(self.menu_provider_name, self) def focus(self): ''' Grabs focus for this page. Should be overriden in subclasses. ''' self.grab_focus() def get_name(self): """ Returns the name of this tab. Should be overriden in subclasses. Subclasses can also implement set_name(self, name) to allow renaming, but this is not mandatory. """ return "UNNAMED PAGE" def set_tab(self, tab): """ Set the tab that holds this page. This will be called directly from the tab itself when it is created, and should not be used outside of that. """ self.tab = tab def is_current_page(self): """ Returns True if this page is the currently-visible page in the Notebook. """ return self.tab.get_nth_page(self.tab.get_current_page()) == self def name_changed(self): self.emit('name-changed') dist/copy/xlgui/widgets/PaxHeaders.26361/playlist_columns.py0000644000175000017500000000012412233027260022572 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.569046947 exaile-3.3.2/xlgui/widgets/playlist_columns.py0000644000000000000000000005000212233027260021527 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import gio import glib import gtk import logging import pango import time from xl import ( common, event, player, settings, providers ) from xl.common import classproperty from xl.formatter import TrackFormatter from xl.nls import gettext as _ from xlgui import icons from xlgui.widgets import rating, menu logger = logging.getLogger(__name__) DEFAULT_COLUMNS = ['tracknumber', 'title', 'album', 'artist', '__length'] class Column(gtk.TreeViewColumn): name = '' display = '' menu_title = classproperty(lambda c: c.display) renderer = gtk.CellRendererText formatter = classproperty(lambda c: TrackFormatter('$%s' % c.name)) size = 10 # default size autoexpand = False # whether to expand to fit space in Autosize mode datatype = str dataproperty = 'text' cellproperties = {} def __init__(self, container, index, player, font): if self.__class__ == Column: raise NotImplementedError("Can't instantiate " "abstract class %s" % repr(self.__class__)) self.container = container self.player = player self.settings_width_name = "gui/col_width_%s" % self.name self.cellrenderer = self.renderer() self.extrasize = 0 self._setup_font(font) if index == 2: gtk.TreeViewColumn.__init__(self, self.display) self.icon_cellr = gtk.CellRendererPixbuf() pbufsize = self.get_icon_height() self.icon_cellr.set_fixed_size(pbufsize, pbufsize) self.extrasize = pbufsize self.icon_cellr.set_property('xalign', 0.0) self.pack_start(self.icon_cellr, False) self.pack_start(self.cellrenderer, True) self.set_attributes(self.icon_cellr, pixbuf=1) self.set_attributes(self.cellrenderer, **{self.dataproperty: index}) else: gtk.TreeViewColumn.__init__(self, self.display, self.cellrenderer, **{self.dataproperty: index}) self.set_cell_data_func(self.cellrenderer, self.data_func) try: self.cellrenderer.set_property('ellipsize', pango.ELLIPSIZE_END) except TypeError: #cellrenderer doesn't do ellipsize - eg. rating pass for name, val in self.cellproperties.iteritems(): self.cellrenderer.set_property(name, val) self.set_reorderable(True) self.set_clickable(True) self.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED) # needed for fixed-height mode self.set_sort_order(gtk.SORT_DESCENDING) # hack to allow button press events on the header to be detected self.set_widget(gtk.Label(self.display)) self.connect('notify::width', self.on_width_changed) self._setup_sizing() event.add_callback(self.on_option_set, "gui_option_set") def on_option_set(self, typ, obj, data): if data in ("gui/resizable_cols", self.settings_width_name): glib.idle_add(self._setup_sizing) def on_width_changed(self, column, wid): if not self.container.button_pressed: return width = self.get_width() if width != settings.get_option(self.settings_width_name, -1): settings.set_option(self.settings_width_name, width) def _setup_font(self, font): ''' This should be set even for non-text columns. ::param font:: is None or a pango.FontDescription ''' default_font = gtk.widget_get_default_style().font_desc if font is None: font = default_font def_font_sz = float(default_font.get_size()) try: self.cellrenderer.set_property('font-desc', font) except TypeError: pass # how much has the font deviated from normal? self._font_ratio = font.get_size()/def_font_sz try: # adjust the display size of the column ratio = self._font_ratio # small fonts can be problematic.. # -> TODO: perhaps default widths could be specified # in character widths instead? then we could # calculate it instead of using arbitrary widths if ratio < 1: ratio = ratio * 1.25 self.size = max(int(self.size*ratio),1) except AttributeError: pass def _setup_sizing(self): if settings.get_option('gui/resizable_cols', False): self.set_resizable(True) self.set_expand(False) width = settings.get_option(self.settings_width_name, self.size+self.extrasize) self.set_fixed_width(width) else: self.set_resizable(False) if self.autoexpand: self.set_expand(True) self.set_fixed_width(1) else: self.set_expand(False) self.set_fixed_width(self.size+self.extrasize) def get_icon_height(self): '''Returns a default icon height based on the font size''' sz = gtk.icon_size_lookup(gtk.ICON_SIZE_BUTTON)[0] return max(int(sz*self._font_ratio), 1) def get_icon_size_ratio(self): '''Returns how much bigger or smaller an icon should be''' return self._font_ratio def data_func(self, col, cell, model, iter): if type(cell) == gtk.CellRendererText: playlist = self.container.playlist if playlist is not self.player.queue.current_playlist: return path = model.get_path(iter) track = model.get_value(iter, 0) if track == self.player.current and \ path[0] == playlist.get_current_position(): weight = pango.WEIGHT_HEAVY else: weight = pango.WEIGHT_NORMAL cell.props.weight = weight if -1 < playlist.spat_position < path[0] and \ playlist.shuffle_mode == 'disabled': cell.props.sensitive = False else: cell.props.sensitive = True def __repr__(self): return '%s(%s, %s, %s)' % (self.__class__.__name__, `self.name`, `self.display`, `self.size`) class TrackNumberColumn(Column): name = 'tracknumber' #TRANSLATORS: Title of the track number column display = _('#') menu_title = _('Track Number') size = 30 cellproperties = {'xalign': 1.0, 'width-chars': 4} providers.register('playlist-columns', TrackNumberColumn) class TitleColumn(Column): name = 'title' display = _('Title') size = 200 autoexpand = True providers.register('playlist-columns', TitleColumn) class ArtistColumn(Column): name = 'artist' display = _('Artist') size = 150 autoexpand = True providers.register('playlist-columns', ArtistColumn) class ComposerColumn(Column): name = 'composer' display = _('Composer') size = 150 autoexpand = True providers.register('playlist-columns', ComposerColumn) class AlbumColumn(Column): name = 'album' display = _('Album') size = 150 autoexpand = True providers.register('playlist-columns', AlbumColumn) class LengthColumn(Column): name = '__length' display = _('Length') size = 50 cellproperties = {'xalign': 1.0} providers.register('playlist-columns', LengthColumn) class DiscNumberColumn(Column): name = 'discnumber' display = _('Disc') menu_title = _('Disc Number') size = 40 cellproperties = {'xalign': 1.0, 'width-chars': 2} providers.register('playlist-columns', DiscNumberColumn) class RatingColumn(Column): name = '__rating' display = _('Rating') renderer = rating.RatingCellRenderer dataproperty = 'rating' cellproperties = {'follow-state': False} def __init__(self, *args): Column.__init__(self, *args) self.cellrenderer.connect('rating-changed', self.on_rating_changed) self.cellrenderer.size_ratio = self.get_icon_size_ratio() self.saved_model = None def data_func(self, col, cell, model, iter): track = model.get_value(iter, 0) cell.props.rating = track.get_rating() self.saved_model = model def __get_size(self): """ Retrieves the optimal size """ size = icons.MANAGER.pixbuf_from_rating(0, self.get_icon_size_ratio()).get_width() size += 2 # FIXME: Find the source of this return size size = property(__get_size) def on_rating_changed(self, widget, path, rating): """ Updates the rating of the selected track """ iter = self.saved_model.get_iter(path) track = self.saved_model.get_value(iter, 0) oldrating = track.get_rating() if rating == oldrating: rating = 0 rating = track.set_rating(rating) event.log_event('rating_changed', self, rating) providers.register('playlist-columns', RatingColumn) class DateColumn(Column): name = 'date' display = _('Date') size = 50 providers.register('playlist-columns', DateColumn) class GenreColumn(Column): name = 'genre' display = _('Genre') size = 100 autoexpand = True providers.register('playlist-columns', GenreColumn) class BitrateColumn(Column): name = '__bitrate' display = _('Bitrate') size = 45 cellproperties = {'xalign': 1.0} providers.register('playlist-columns', BitrateColumn) class IoLocColumn(Column): name = '__loc' display = _('Location') size = 200 autoexpand = True providers.register('playlist-columns', IoLocColumn) class FilenameColumn(Column): name = '__basename' display = _('Filename') size = 200 autoexpand = True providers.register('playlist-columns', FilenameColumn) class PlayCountColumn(Column): name = '__playcount' display = _('Playcount') size = 50 cellproperties = {'xalign': 1.0} providers.register('playlist-columns', PlayCountColumn) class BPMColumn(Column): name = 'bpm' display = _('BPM') size = 50 cellproperties = {'xalign': 1.0} providers.register('playlist-columns', BPMColumn) class LastPlayedColumn(Column): name = '__last_played' display = _('Last played') size = 80 providers.register('playlist-columns', LastPlayedColumn) class DateAddedColumn(Column): name = '__date_added' display = _('Date added') size = 80 providers.register('playlist-columns', DateAddedColumn) class ScheduleTimeColumn(Column): name = 'schedule_time' display = _('Schedule') size = 80 def __init__(self, *args): Column.__init__(self, *args) event.add_callback(self.on_queue_current_playlist_changed, 'queue_current_playlist_changed', player.QUEUE) event.add_callback(self.on_playback_player_start, 'playback_player_start', player.PLAYER) event.add_callback(self.on_playback_player_end, 'playback_player_end', player.PLAYER) def data_func(self, col, cell, model, iter): """ Sets the schedule time if appropriate """ text = None playlist = self.container.playlist # Only display the schedule time if # 1) there is playback at all # 2) this playlist is currently played # 3) playback is not in shuffle mode # 4) the current track is not repeated if not self.player.is_stopped() and \ playlist is self.player.queue.current_playlist and \ playlist.shuffle_mode == 'disabled' and \ playlist.repeat_mode != 'track': track = model.get_value(iter, 0) position = playlist.index(track) current_position = playlist.current_position # 5) this track is after the currently played one if position > current_position: # The delay is the accumulated length of all tracks # between the currently playing and this one try: delay = sum([t.get_tag_raw('__length') \ for t in playlist[current_position:position]]) except TypeError: # on tracks with length == None, we cannot determine # when later tracks will play pass else: # Subtract the time which already has passed delay -= self.player.get_time() # The schedule time is the current time plus delay schedule_time = time.localtime(time.time() + delay) text = time.strftime('%H:%M', schedule_time) cell.props.text = text def start_timer(self): """ Enables realtime updates """ timeout_id = self.get_data('timeout_id') # Make sure to stop any timer still running if timeout_id is not None: glib.source_remove(timeout_id) self.set_data('timeout_id', glib.timeout_add_seconds(60, self.on_timeout)) def stop_timer(self): """ Disables realtime updates """ timeout_id = self.get_data('timeout_id') if timeout_id is not None: glib.source_remove(timeout_id) # Update once more self.on_timeout() def on_timeout(self): """ Makes sure schedule times are updated in realtime """ self.queue_resize() view = self.get_tree_view() if view is not None: view.queue_draw() return True return False def on_queue_current_playlist_changed(self, e, queue, current_playlist): """ Disables realtime updates for all playlists and re-enables them for the current playlist """ self.stop_timer() if current_playlist is self.container.playlist: self.start_timer() def on_playback_player_start(self, e, player, track): """ Enables realtime updates for the current playlist """ self.stop_timer() if self.player.queue.current_playlist is self.container.playlist: logger.debug('Playback started, enabling realtime updates') self.start_timer() def on_playback_player_end(self, e, player, track): """ Disables realtime updates for all playlists """ self.stop_timer() providers.register('playlist-columns', ScheduleTimeColumn) class CommentColumn(Column): name = 'comment' display = _('Comment') size = 200 autoexpand = True # Remove the newlines to fit into the vertical space of rows formatter = TrackFormatter('${comment:newlines=strip}') providers.register('playlist-columns', CommentColumn) class GroupingColumn(Column): name = 'grouping' display = _('Grouping') size = 200 autoexpand = True providers.register('playlist-columns', GroupingColumn) class ColumnMenuItem(menu.MenuItem): """ A menu item dedicated to display the status of a column and change it """ def __init__(self, column, after=None): """ Sets up the menu item from a column description :param column: the playlist column :type column: :class:`Column` :param after: enumeration of menu items before this one :type after: list of strings """ menu.MenuItem.__init__(self, column.name, self.factory, after) self.title = column.menu_title def factory(self, menu, parent, context): """ Creates the menu item """ item = gtk.CheckMenuItem(self.title) active = self.is_selected(self.name, parent, context) item.set_active(active) item.connect('activate', self.on_item_activate, self.name, parent, context) return item def is_selected(self, name, parent, context): """ Returns whether a column is selected :rtype: bool """ return name in settings.get_option('gui/columns', DEFAULT_COLUMNS) def on_item_activate(self, menu_item, name, parent, context): """ Updates the columns setting """ columns = settings.get_option('gui/columns', DEFAULT_COLUMNS) if name in columns: columns.remove(name) else: columns.append(name) settings.set_option('gui/columns', columns) def __register_playlist_columns_menuitems(): """ Registers standard menu items for playlist columns """ def is_column_selected(name, parent, context): """ Returns whether a menu item should be checked """ return name in settings.get_option('gui/columns', DEFAULT_COLUMNS) def is_resizable(name, parent, context): """ Returns whether manual or automatic sizing is requested """ resizable = settings.get_option('gui/resizable_cols', False) if name == 'resizable': return resizable elif name == 'autosize': return not resizable def on_column_item_activate(menu_item, name, parent, context): """ Updates columns setting """ columns = settings.get_option('gui/columns', DEFAULT_COLUMNS) if name in columns: columns.remove(name) else: columns.append(name) settings.set_option('gui/columns', columns) def on_sizing_item_activate(menu_item, name, parent, context): """ Updates column sizing setting """ if name == 'resizable': settings.set_option('gui/resizable_cols', True) elif name == 'autosize': settings.set_option('gui/resizable_cols', False) columns = ['tracknumber', 'title', 'artist', 'album', '__length', 'genre', '__rating', 'date'] for provider in providers.get('playlist-columns'): if provider.name not in columns: columns += [provider.name] menu_items = [] after = [] for name in columns: column = providers.get_provider('playlist-columns', name) menu_item = ColumnMenuItem(column, after) menu_items += [menu_item] after = [menu_item.name] separator_item = menu.simple_separator('columns_separator', after) menu_items += [separator_item] after = [separator_item.name] sizing_item = menu.radio_menu_item('resizable', after, _('_Resizable'), 'column-sizing', is_resizable, on_sizing_item_activate) menu_items += [sizing_item] after = [sizing_item.name] sizing_item = menu.radio_menu_item('autosize', after, _('_Autosize'), 'column-sizing', is_resizable, on_sizing_item_activate) menu_items += [sizing_item] for menu_item in menu_items: providers.register('playlist-columns-menu', menu_item) __register_playlist_columns_menuitems() dist/copy/xlgui/widgets/PaxHeaders.26361/dialogs.py0000644000175000017500000000012412233027260020613 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.517046945 exaile-3.3.2/xlgui/widgets/dialogs.py0000644000000000000000000014001312233027260017552 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import gio import glib import gobject import gtk import logging import pango import os.path from xl import ( metadata, providers, xdg ) from xl.common import clamp from xl.playlist import ( is_valid_playlist, import_playlist, export_playlist, InvalidPlaylistTypeError, PlaylistExportOptions ) from xl.nls import gettext as _ logger = logging.getLogger(__name__) def force_unicode(obj): if obj is None: return None try: # Try this first because errors='replace' fails if the object is unicode # or some other non-str object. return unicode(obj) except UnicodeDecodeError: return unicode(obj, errors='replace') def error(parent, message=None, markup=None, _flags=gtk.DIALOG_MODAL): """ Shows an error dialog """ if message is markup is None: raise ValueError("message or markup must be specified") dialog = gtk.MessageDialog(parent, _flags, gtk.MESSAGE_ERROR, gtk.BUTTONS_CLOSE) if markup is None: dialog.props.text = message else: dialog.set_markup(markup) dialog.run() dialog.destroy() def info(parent, message=None, markup=None): """ Shows an info dialog """ if message is markup is None: raise ValueError("message or markup must be specified") dialog = gtk.MessageDialog(parent, gtk.DIALOG_MODAL, gtk.MESSAGE_INFO, gtk.BUTTONS_OK) if markup is None: dialog.props.text = message else: dialog.set_markup(markup) dialog.run() dialog.destroy() class AboutDialog(object): """ A dialog showing program info and more """ def __init__(self, parent=None): builder = gtk.Builder() builder.add_from_file(xdg.get_data_path('ui', 'about_dialog.ui')) self.dialog = builder.get_object('AboutDialog') self.dialog.set_transient_for(parent) logo = gtk.gdk.pixbuf_new_from_file( xdg.get_data_path('images', 'exailelogo.png')) self.dialog.set_logo(logo) from xl.main import __version__ self.dialog.set_version('\n%s' % __version__) self.dialog.connect('response', lambda dialog, response: dialog.destroy()) def show(self): """ Shows the dialog """ self.dialog.show() class MultiTextEntryDialog(gtk.Dialog): """ Exactly like a TextEntryDialog, except it can contain multiple labels/fields. Instead of using GetValue, use GetValues. It will return a list with the contents of the fields. Each field must be filled out or the dialog will not close. """ def __init__(self, parent, title): gtk.Dialog.__init__(self, title, parent) self.hbox = gtk.HBox() self.vbox.pack_start(self.hbox, True, True) self.vbox.set_border_width(5) self.hbox.set_border_width(5) self.left = gtk.VBox() self.right = gtk.VBox() self.hbox.pack_start(self.left, True, True) self.hbox.pack_start(self.right, True, True) self.add_buttons(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OK, gtk.RESPONSE_OK) self.fields = [] def add_field(self, label): """ Adds a field and corresponding label :param label: the label to display :returns: the newly created entry :rtype: :class:`gtk.Entry` """ label = gtk.Label(label) label.set_alignment(0, 0) label.set_padding(0, 5) self.left.pack_start(label, False, False) entry = gtk.Entry() entry.set_width_chars(30) entry.set_icon_activatable(gtk.ENTRY_ICON_SECONDARY, False) entry.connect('activate', lambda *e: self.response(gtk.RESPONSE_OK)) self.right.pack_start(entry, True, True) label.show() entry.show() self.fields.append(entry) return entry def get_values(self): """ Returns a list of the values from the added fields """ return [unicode(a.get_text(), 'utf-8') for a in self.fields] def run(self): """ Shows the dialog, runs, hides, and returns """ self.show_all() while True: response = gtk.Dialog.run(self) if response in (gtk.RESPONSE_CANCEL, gtk.RESPONSE_DELETE_EVENT): break if response == gtk.RESPONSE_OK: # Leave loop if all fields where filled if len(min([f.get_text() for f in self.fields])) > 0: break # At least one field was not filled for field in self.fields: if len(field.get_text()) > 0: # Unset possible previous marks field.set_icon_from_stock( gtk.ENTRY_ICON_SECONDARY, None ) else: # Mark via warning field.set_icon_from_stock( gtk.ENTRY_ICON_SECONDARY, gtk.STOCK_DIALOG_WARNING ) self.hide() return response class TextEntryDialog(gtk.Dialog): """ Shows a dialog with a single line of text """ def __init__(self, message, title, default_text=None, parent=None, cancelbutton=None, okbutton=None): """ Initializes the dialog """ if not cancelbutton: cancelbutton = gtk.STOCK_CANCEL if not okbutton: okbutton = gtk.STOCK_OK gtk.Dialog.__init__(self, title, parent, gtk.DIALOG_DESTROY_WITH_PARENT, (cancelbutton, gtk.RESPONSE_CANCEL, okbutton, gtk.RESPONSE_OK)) label = gtk.Label(message) label.set_alignment(0.0, 0.0) self.vbox.set_border_width(5) main = gtk.VBox() main.set_spacing(3) main.set_border_width(5) self.vbox.pack_start(main, True, True) main.pack_start(label, False, False) self.entry = gtk.Entry() self.entry.set_width_chars(35) if default_text: self.entry.set_text(default_text) main.pack_start(self.entry, False, False) self.entry.connect('activate', lambda e: self.response(gtk.RESPONSE_OK)) def get_value(self): """ Returns the text value """ return unicode(self.entry.get_text(), 'utf-8') def set_value(self, value): """ Sets the value of the text """ self.entry.set_text(value) def run(self): self.show_all() response = gtk.Dialog.run(self) self.hide() return response class URIOpenDialog(TextEntryDialog): """ A dialog specialized for opening an URI """ __gsignals__ = { 'uri-selected': ( gobject.SIGNAL_RUN_LAST, gobject.TYPE_BOOLEAN, (gobject.TYPE_PYOBJECT,), gobject.signal_accumulator_true_handled ) } def __init__(self, parent=None): """ :param parent: a parent window for modal operation or None :type parent: :class:`gtk.Window` """ TextEntryDialog.__init__(self, message=_('Enter the URL to open'), title=_('Open URL'), parent=parent) self.set_position(gtk.WIN_POS_CENTER_ON_PARENT) self.connect('response', self.on_response) def run(self): """ Override to take care of the response """ clipboard = gtk.clipboard_get() text = clipboard.wait_for_text() if text is not None: location = gio.File(uri=text) if location.get_uri_scheme() is not None: self.set_value(text) self.show_all() response = TextEntryDialog.run(self) self.emit('response', response) def show(self): """ Override to capture clipboard content """ clipboard = gtk.clipboard_get() text = clipboard.wait_for_text() if text is not None: location = gio.File(uri=text) if location.get_uri_scheme() is not None: self.set_value(text) TextEntryDialog.show_all(self) def do_uri_selected(self, uri): """ Destroys the dialog """ self.destroy() def on_response(self, dialog, response): """ Notifies about the selected URI """ self.hide() if response == gtk.RESPONSE_OK: self.emit('uri-selected', self.get_value()) #self.destroy() ''' dialog = dialogs.TextEntryDialog(_('Enter the URL to open'), _('Open URL')) dialog.set_transient_for(self.main.window) dialog.set_position(gtk.WIN_POS_CENTER_ON_PARENT) clipboard = gtk.clipboard_get() text = clipboard.wait_for_text() if text is not None: location = gio.File(uri=text) if location.get_uri_scheme() is not None: dialog.set_value(text) result = dialog.run() dialog.hide() if result == gtk.RESPONSE_OK: url = dialog.get_value() self.open_uri(url, play=False) ''' class ListDialog(gtk.Dialog): """ Shows a dialog with a list of specified items Items must define a __str__ method, or be a string """ def __init__(self, title, parent=None, multiple=False, write_only=False): """ Initializes the dialog """ gtk.Dialog.__init__(self, title, parent) self.vbox.set_border_width(5) scroll = gtk.ScrolledWindow() scroll.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) self.model = gtk.ListStore(object) self.list = gtk.TreeView(self.model) self.list.set_headers_visible(False) self.list.connect('row-activated', lambda *e: self.response(gtk.RESPONSE_OK)) scroll.add(self.list) scroll.set_shadow_type(gtk.SHADOW_IN) self.vbox.pack_start(scroll, True, True) if write_only: self.add_buttons(gtk.STOCK_OK, gtk.RESPONSE_OK) else: self.add_buttons(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OK, gtk.RESPONSE_OK) self.selection = self.list.get_selection() if multiple: self.selection.set_mode(gtk.SELECTION_MULTIPLE) else: self.selection.set_mode(gtk.SELECTION_SINGLE) text = gtk.CellRendererText() col = gtk.TreeViewColumn("Item") col.pack_start(text, True) col.set_cell_data_func(text, self.cell_data_func) self.list.append_column(col) self.list.set_model(self.model) self.resize(400, 240) def get_items(self): """ Returns the selected items """ items = [] check = self.selection.get_selected_rows() if not check: return None (model, paths) = check for path in paths: iter = self.model.get_iter(path) item = self.model.get_value(iter, 0) items.append(item) return items def run(self): self.show_all() result = gtk.Dialog.run(self) self.hide() return result def set_items(self, items): """ Sets the items """ for item in items: self.model.append([item]) def cell_data_func(self, column, cell, model, iter): """ Called when the tree needs a value for column 1 """ object = model.get_value(iter, 0) cell.set_property('text', str(object)) # TODO: combine this and list dialog class ListBox(object): """ Represents a list box """ def __init__(self, widget, rows=None): """ Initializes the widget """ self.list = widget self.store = gtk.ListStore(str) widget.set_headers_visible(False) cell = gtk.CellRendererText() col = gtk.TreeViewColumn('', cell, text=0) self.list.append_column(col) self.rows = rows if not rows: self.rows = [] if rows: for row in rows: self.store.append([row]) self.list.set_model(self.store) def connect(self, signal, func, data=None): """ Connects a signal to the underlying treeview """ self.list.connect(signal, func, data) def append(self, row): """ Appends a row to the list """ self.rows.append(row) self.set_rows(self.rows) def remove(self, row): """ Removes a row """ try: index = self.rows.index(row) except ValueError: return path = (index,) iter = self.store.get_iter(path) self.store.remove(iter) del self.rows[index] def set_rows(self, rows): """ Sets the rows """ self.rows = rows self.store = gtk.ListStore(str) for row in rows: self.store.append([row]) self.list.set_model(self.store) def get_selection(self): """ Returns the selection """ selection = self.list.get_selection() (model, iter) = selection.get_selected() if not iter: return None return model.get_value(iter, 0) class FileOperationDialog(gtk.FileChooserDialog): """ An extension of the gtk.FileChooserDialog that adds a collapsable panel to the bottom listing valid file extensions that the file can be saved in. (similar to the one in GIMP) """ def __init__(self, title=None, parent=None, action=gtk.FILE_CHOOSER_ACTION_OPEN, buttons=None, backend=None): """ Standard __init__ of the gtk.FileChooserDialog. Also sets up the expander and list for extensions """ gtk.FileChooserDialog.__init__(self, title, parent, action, buttons, backend) self.set_do_overwrite_confirmation(True) # Container for additional option widgets self.extras_box = gtk.VBox(spacing=3) self.set_extra_widget(self.extras_box) self.extras_box.show() # Create the list that will hold the file type/extensions pair self.liststore = gtk.ListStore(str, str) self.list = gtk.TreeView(self.liststore) self.list.set_headers_visible(False) # Create the columns filetype_cell = gtk.CellRendererText() extension_cell = gtk.CellRendererText() column = gtk.TreeViewColumn() column.pack_start(filetype_cell) column.pack_start(extension_cell, expand=False) column.set_attributes(filetype_cell, text=0) column.set_attributes(extension_cell, text=1) self.list.append_column(column) self.list.show_all() self.expander = gtk.Expander(_('Select File Type (by Extension)')) self.expander.add(self.list) self.extras_box.pack_start(self.expander, False, False) self.expander.show() selection = self.list.get_selection() selection.connect('changed', self.on_selection_changed) def on_selection_changed(self, selection): """ When the user selects an extension the filename that is entered will have its extension changed to the selected extension """ model, iter = selection.get_selected() extension, = model.get(iter, 1) filename = "" if self.get_filename(): filename = os.path.basename(self.get_filename()) filename, old_extension = os.path.splitext(filename) filename += '.' + extension else: filename = '*.' + extension self.set_current_name(filename) def add_extensions(self, extensions): """ Adds extensions to the list @param extensions: a dictionary of extension:file type pairs i.e. { 'm3u':'M3U Playlist' } """ keys = extensions.keys() for key in keys: self.liststore.append([extensions[key], key]) class MediaOpenDialog(gtk.FileChooserDialog): """ A dialog for opening general media """ __gsignals__ = { 'uris-selected': ( gobject.SIGNAL_RUN_LAST, gobject.TYPE_BOOLEAN, (gobject.TYPE_PYOBJECT,), gobject.signal_accumulator_true_handled ) } _last_location = None def __init__(self, parent=None): """ :param parent: a parent window for modal operation or None :type parent: :class:`gtk.Window` """ gtk.FileChooserDialog.__init__(self, title=_('Choose Media to Open'), parent=parent, buttons=( gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OPEN, gtk.RESPONSE_OK)) self.set_position(gtk.WIN_POS_CENTER_ON_PARENT) self.set_local_only(False) self.set_select_multiple(True) supported_filter = gtk.FileFilter() supported_filter.set_name(_('Supported Files')) audio_filter = gtk.FileFilter() audio_filter.set_name(_('Music Files')) playlist_filter = gtk.FileFilter() playlist_filter.set_name(_('Playlist Files')) all_filter = gtk.FileFilter() all_filter.set_name(_('All Files')) all_filter.add_pattern('*') for extension in metadata.formats.iterkeys(): pattern = '*.%s' % extension supported_filter.add_pattern(pattern) audio_filter.add_pattern(pattern) playlist_file_extensions = sum([p.file_extensions \ for p in providers.get('playlist-format-converter')], []) for extension in playlist_file_extensions: pattern = '*.%s' % extension supported_filter.add_pattern(pattern) playlist_filter.add_pattern(pattern) self.add_filter(supported_filter) self.add_filter(audio_filter) self.add_filter(playlist_filter) self.add_filter(all_filter) self.connect('response', self.on_response) def run(self): """ Override to take care of the response """ if MediaOpenDialog._last_location is not None: self.set_current_folder_uri(MediaOpenDialog._last_location) response = gtk.FileChooserDialog.run(self) self.emit('response', response) def show(self): """ Override to restore last location """ if MediaOpenDialog._last_location is not None: self.set_current_folder_uri(MediaOpenDialog._last_location) gtk.FileChooserDialog.show(self) def do_uris_selected(self, uris): """ Destroys the dialog """ self.destroy() def on_response(self, dialog, response): """ Notifies about selected URIs """ self.hide() if response == gtk.RESPONSE_OK: MediaOpenDialog._last_location = self.get_current_folder_uri() self.emit('uris-selected', self.get_uris()) #self.destroy() class DirectoryOpenDialog(gtk.FileChooserDialog): """ A dialog specialized for opening directories """ __gsignals__ = { 'uris-selected': ( gobject.SIGNAL_RUN_LAST, gobject.TYPE_BOOLEAN, (gobject.TYPE_PYOBJECT,), gobject.signal_accumulator_true_handled ) } _last_location = None def __init__(self, parent=None, title=_('Choose Directory to Open')): gtk.FileChooserDialog.__init__(self, title, parent=parent, buttons=( gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OPEN, gtk.RESPONSE_OK)) self.set_position(gtk.WIN_POS_CENTER_ON_PARENT) self.set_action(gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER) self.set_local_only(False) self.set_select_multiple(True) self.connect('response', self.on_response) def run(self): """ Override to take care of the response """ if DirectoryOpenDialog._last_location is not None: self.set_current_folder_uri(DirectoryOpenDialog._last_location) response = gtk.FileChooserDialog.run(self) def show(self): """ Override to restore last location """ if DirectoryOpenDialog._last_location is not None: self.set_current_folder_uri(DirectoryOpenDialog._last_location) gtk.FileChooserDialog.show(self) def do_uris_selected(self, uris): """ Destroys the dialog """ self.destroy() def on_response(self, dialog, response): """ Notifies about selected URIs """ self.hide() if response == gtk.RESPONSE_OK: DirectoryOpenDialog._last_location = self.get_current_folder_uri() self.emit('uris-selected', self.get_uris()) #self.destroy() class PlaylistImportDialog(gtk.FileChooserDialog): """ A dialog for importing a playlist """ __gsignals__ = { 'playlist-selected': ( gobject.SIGNAL_RUN_LAST, gobject.TYPE_BOOLEAN, (gobject.TYPE_PYOBJECT,), gobject.signal_accumulator_true_handled ) } _last_location = None def __init__(self, parent=None): """ :param parent: a parent window for modal operation or None :type parent: :class:`gtk.Window` """ gtk.FileChooserDialog.__init__(self, title=_('Import Playlist'), parent=parent, buttons=( gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OPEN, gtk.RESPONSE_OK)) self.set_position(gtk.WIN_POS_CENTER_ON_PARENT) self.set_local_only(False) self.set_select_multiple(False) playlist_filter = gtk.FileFilter() playlist_filter.set_name(_('Playlist Files')) all_filter = gtk.FileFilter() all_filter.set_name(_('All Files')) all_filter.add_pattern('*') playlist_file_extensions = sum([p.file_extensions \ for p in providers.get('playlist-format-converter')], []) for extension in playlist_file_extensions: pattern = '*.%s' % extension playlist_filter.add_pattern(pattern) self.add_filter(playlist_filter) self.add_filter(all_filter) self.connect('response', self.on_response) def run(self): """ Override to take care of the response """ if PlaylistImportDialog._last_location is not None: self.set_current_folder_uri(PlaylistImportDialog._last_location) response = gtk.FileChooserDialog.run(self) self.emit('response', response) def show(self): """ Override to restore last location """ if PlaylistImportDialog._last_location is not None: self.set_current_folder_uri(PlaylistImportDialog._last_location) gtk.FileChooserDialog.show(self) def do_playlist_selected(self, uris): """ Destroys the dialog """ self.destroy() def on_response(self, dialog, response): """ Notifies about selected URIs """ self.hide() if response == gtk.RESPONSE_OK: PlaylistImportDialog._last_location = self.get_current_folder_uri() try: playlist = import_playlist(self.get_uri()) except InvalidPlaylistTypeError, e: error(None, 'Invalid playlist: %s' % e) self.destroy() else: self.emit('playlist-selected', playlist) #self.destroy() class PlaylistExportDialog(FileOperationDialog): """ A dialog specialized for playlist export """ __gsignals__ = { 'message': ( gobject.SIGNAL_RUN_LAST, gobject.TYPE_BOOLEAN, (gtk.MessageType, gobject.TYPE_STRING), gobject.signal_accumulator_true_handled ) } def __init__(self, playlist, parent=None): """ :param playlist: the playlist to export :type playlist: :class:`xl.playlist.Playlist` :param parent: a parent window for modal operation or None :type parent: :class:`gtk.Window` """ FileOperationDialog.__init__(self, title=_('Export Current Playlist'), parent=parent, action=gtk.FILE_CHOOSER_ACTION_SAVE, buttons=( gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_SAVE, gtk.RESPONSE_OK ) ) self.set_local_only(False) self.relative_checkbox = gtk.CheckButton(_('Use relative paths to tracks')) self.relative_checkbox.set_active(True) self.extras_box.pack_start(self.relative_checkbox, False, False, 3) self.relative_checkbox.show() self.playlist = playlist extensions = {} for provider in providers.get('playlist-format-converter'): extensions[provider.name] = provider.title self.add_extensions(extensions) self.set_current_name('%s.m3u' % playlist.name) self.connect('response', self.on_response) def run(self): """ Override to take care of the response """ response = FileOperationDialog.run(self) self.emit('response', response) def do_message(self, message_type, message): """ Displays simple dialogs on messages """ if message_type == gtk.MESSAGE_INFO: info(None, markup=message) elif message_type == gtk.MESSAGE_ERROR: error(None, markup=message) def on_response(self, dialog, response): """ Exports the playlist if requested """ self.hide() if response == gtk.RESPONSE_OK: path = unicode(self.get_uri(), 'utf-8') if not is_valid_playlist(path): path = '%s.m3u' % path options = PlaylistExportOptions( relative=self.relative_checkbox.get_active() ) try: export_playlist(self.playlist, path, options) except InvalidPlaylistTypeError, e: self.emit('message', gtk.MESSAGE_ERROR, str(e)) else: self.emit('message', gtk.MESSAGE_INFO, _('Playlist saved as %s.') % path) #self.destroy() class ConfirmCloseDialog(gtk.MessageDialog): """ Shows the dialog to confirm closing of the playlist """ def __init__(self, document_name): """ Initializes the dialog """ gtk.MessageDialog.__init__(self, type = gtk.MESSAGE_WARNING) self.set_title(_('Close %s' % document_name)) self.set_markup(_('Save changes to %s before closing?') % document_name) self.format_secondary_text(_('Your changes will be lost if you don\'t save them')) self.add_buttons(_('Close Without Saving'), 100, gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_SAVE, 110) def run(self): self.show_all() response = gtk.Dialog.run(self) self.hide() return response class MessageBar(gtk.InfoBar): type_map = { gtk.MESSAGE_INFO: gtk.STOCK_DIALOG_INFO, gtk.MESSAGE_QUESTION: gtk.STOCK_DIALOG_QUESTION, gtk.MESSAGE_WARNING: gtk.STOCK_DIALOG_WARNING, gtk.MESSAGE_ERROR: gtk.STOCK_DIALOG_ERROR, } buttons_map = { gtk.BUTTONS_OK: [ (gtk.STOCK_OK, gtk.RESPONSE_OK) ], gtk.BUTTONS_CLOSE: [ (gtk.STOCK_CLOSE, gtk.RESPONSE_CLOSE) ], gtk.BUTTONS_CANCEL: [ (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL) ], gtk.BUTTONS_YES_NO: [ (gtk.STOCK_NO, gtk.RESPONSE_NO), (gtk.STOCK_YES, gtk.RESPONSE_YES) ], gtk.BUTTONS_OK_CANCEL: [ (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL), (gtk.STOCK_OK, gtk.RESPONSE_OK) ] } def __init__(self, parent=None, type=gtk.MESSAGE_INFO, buttons=gtk.BUTTONS_NONE, text=None): """ Report important messages to the user :param parent: the parent container box :type parent: :class:`gtk.Box` :param type: the type of message: gtk.MESSAGE_INFO, gtk.MESSAGE_WARNING, gtk.MESSAGE_QUESTION or gtk.MESSAGE_ERROR. :param buttons: the predefined set of buttons to use: gtk.BUTTONS_NONE, gtk.BUTTONS_OK, gtk.BUTTONS_CLOSE, gtk.BUTTONS_CANCEL, gtk.BUTTONS_YES_NO, gtk.BUTTONS_OK_CANCEL :param text: a string containing the message text or None """ if parent is not None and not isinstance(parent, gtk.Box): raise TypeError('Parent needs to be of type gtk.Box') gtk.InfoBar.__init__(self) self.set_no_show_all(True) if parent is not None: parent.add(self) parent.reorder_child(self, 0) parent.child_set_property(self, 'expand', False) self.image = gtk.Image() self.image.set_property('yalign', 0) self.set_message_type(type) self.primary_text = gtk.Label(text) self.primary_text.set_property('xalign', 0) self.primary_text.set_line_wrap(True) self.secondary_text = gtk.Label() self.secondary_text.set_property('xalign', 0) self.secondary_text.set_line_wrap(True) self.secondary_text.set_no_show_all(True) self.secondary_text.set_selectable(True) self.message_area = gtk.VBox(spacing=12) self.message_area.pack_start(self.primary_text, False, False) self.message_area.pack_start(self.secondary_text, False, False) box = gtk.HBox(spacing=6) box.pack_start(self.image, False) box.pack_start(self.message_area) content_area = self.get_content_area() content_area.add(box) content_area.show_all() self.action_area = self.get_action_area() self.action_area.set_property('layout-style', gtk.BUTTONBOX_START) if buttons != gtk.BUTTONS_NONE: for text, response in self.buttons_map[buttons]: self.add_button(text, response) self.primary_text_attributes = pango.AttrList() self.primary_text_attributes.insert( pango.AttrWeight(pango.WEIGHT_NORMAL, 0, -1)) self.primary_text_attributes.insert( pango.AttrScale(pango.SCALE_MEDIUM, 0, -1)) self.primary_text_emphasized_attributes = pango.AttrList() self.primary_text_emphasized_attributes.insert( pango.AttrWeight(pango.WEIGHT_BOLD, 0, -1)) self.primary_text_emphasized_attributes.insert( pango.AttrScale(pango.SCALE_LARGE, 0, -1)) self.connect('response', self.on_response) def set_text(self, text): """ Sets the primary text of the message bar :param markup: a regular text string :type markup: string """ self.primary_text.set_text(text) def set_markup(self, markup): """ Sets the primary markup text of the message bar :param markup: a markup string :type markup: string """ self.primary_text.set_markup(markup) def set_secondary_text(self, text): """ Sets the secondary text to the text specified by message_format :param text: The text to be displayed as the secondary text or None. :type text: string """ if text is None: self.secondary_text.hide() self.primary_text.set_attributes( self.primary_text_attributes) else: self.secondary_text.set_text(text) self.secondary_text.show() self.primary_text.set_attributes( self.primary_text_emphasized_attributes) def set_secondary_markup(self, markup): """ Sets the secondary text to the markup text specified by text. :param text: A string containing the pango markup to use as secondary text. :type text: string """ if markup is None: self.secondary_text.hide() self.primary_text.set_attributes( self.primary_text_attributes) else: self.secondary_text.set_markup(markup) self.secondary_text.show() self.primary_text.set_attributes( self.primary_text_emphasized_attributes) def set_image(self, image): """ Sets the contained image to the :class:`gtk.Widget` specified by image. :param image: the image widget :type image: :class:`gtk.Widget` """ box = self.image.get_parent() box.remove(self.image) self.image = image box.pack_start(self.image, False) box.reorder_child(self.image, 0) self.image.show() def get_image(self): """ Gets the contained image """ return self.image def add_button(self, button_text, response_id): """ Overrides :class:`gtk.InfoBar` to prepend instead of append to the action area :param button_text: text of button, or stock ID :type button_text: string :param response_id: response ID for the button :type response_id: int """ button = gtk.InfoBar.add_button(self, button_text, response_id) self.action_area.reorder_child(button, 0) return button def clear_buttons(self): """ Removes all buttons currently placed in the action area """ for button in self.action_area: self.action_area.remove(button) def set_message_type(self, type): """ Sets the message type of the message area. :param type: the type of message: gtk.MESSAGE_INFO, gtk.MESSAGE_WARNING, gtk.MESSAGE_QUESTION or gtk.MESSAGE_ERROR. """ if type != gtk.MESSAGE_OTHER: self.image.set_from_stock(self.type_map[type], gtk.ICON_SIZE_DIALOG) gtk.InfoBar.set_message_type(self, type) def get_message_area(self): """ Retrieves the message area """ return self.message_area def _show_message(self, message_type, text, secondary_text, markup, secondary_markup, timeout): """ Helper for the various `show_*` methods. See `show_info` for documentation on the parameters. """ if text is markup is None: raise ValueError("text or markup must be specified") self.set_message_type(message_type) if markup is None: self.set_text(force_unicode(text)) else: self.set_markup(force_unicode(markup)) if secondary_markup is None: self.set_secondary_text(force_unicode(secondary_text)) else: self.set_secondary_markup(force_unicode(secondary_markup)) self.show() if timeout > 0: glib.timeout_add_seconds(timeout, self.hide) def show_info(self, text=None, secondary_text=None, markup=None, secondary_markup=None, timeout=5): """ Convenience method which sets all required flags for an info message :param text: the message to display :type text: string :param secondary_text: additional information :type secondary_text: string :param markup: the message to display, in Pango markup format (overrides `text`) :type markup: string :param secondary_markup: additional information, in Pango markup format (overrides `secondary_text`) :type secondary_markup: string :param timeout: after how many seconds the message should be hidden automatically, use 0 to disable this behavior :type timeout: int """ self._show_message(gtk.MESSAGE_INFO, text, secondary_text, markup, secondary_markup, timeout) def show_question(self, text=None, secondary_text=None, markup=None, secondary_markup=None): """ Convenience method which sets all required flags for a question message :param text: the message to display :param secondary_text: additional information :param markup: the message to display, in Pango markup format :param secondary_markup: additional information, in Pango markup format """ self._show_message(gtk.MESSAGE_QUESTION, text, secondary_text, markup, secondary_markup, 0) def show_warning(self, text=None, secondary_text=None, markup=None, secondary_markup=None): """ Convenience method which sets all required flags for a warning message :param text: the message to display :param secondary_text: additional information :param markup: the message to display, in Pango markup format :param secondary_markup: additional information, in Pango markup format """ self._show_message(gtk.MESSAGE_WARNING, text, secondary_text, markup, secondary_markup, 0) def show_error(self, text=None, secondary_text=None, markup=None, secondary_markup=None): """ Convenience method which sets all required flags for a warning message :param text: the message to display :param secondary_text: additional information :param markup: the message to display, in Pango markup format :param secondary_markup: additional information, in Pango markup format """ self._show_message(gtk.MESSAGE_ERROR, text, secondary_text, markup, secondary_markup, 0) def on_response(self, widget, response): """ Handles the response for closing """ if response == gtk.RESPONSE_CLOSE: self.hide() # # Message ID's used by the XMessageDialog # XRESPONSE_YES = gtk.RESPONSE_YES XRESPONSE_YES_ALL = 8000 XRESPONSE_NO = gtk.RESPONSE_NO XRESPONSE_NO_ALL = 8001 XRESPONSE_CANCEL = gtk.RESPONSE_CANCEL class XMessageDialog(gtk.Dialog): '''Used to show a custom message dialog with custom buttons''' def __init__(self, title, text, parent=None, show_yes=True, show_yes_all=True, show_no=True, show_no_all=True, show_cancel=True, ): gtk.Dialog.__init__(self, None, parent) # # TODO: Make these buttons a bit prettier # if show_yes: self.add_button( gtk.STOCK_YES, XRESPONSE_YES ) self.set_default_response( XRESPONSE_YES ) if show_yes_all: self.add_button( _('Yes to all'), XRESPONSE_YES_ALL ) self.set_default_response( XRESPONSE_YES_ALL ) if show_no: self.add_button( gtk.STOCK_NO, XRESPONSE_NO ) self.set_default_response( XRESPONSE_NO ) if show_no_all: self.add_button( _('No to all'), XRESPONSE_NO_ALL ) self.set_default_response( XRESPONSE_NO_ALL ) if show_cancel: self.add_button( gtk.STOCK_CANCEL, XRESPONSE_CANCEL ) self.set_default_response( XRESPONSE_CANCEL ) vbox = self.get_content_area() self._label = gtk.Label() self._label.set_use_markup(True) self._label.set_markup(text) vbox.pack_start(self._label) class FileCopyDialog(gtk.Dialog): ''' Used to copy a list of files to a single destination directory Usage: dialog = FileCopyDialog( [file_uri,..], destination_uri, text, parent) dialog.do_copy() Do not use run() on this dialog! ''' def __init__(self, file_uris, destination_uri, title, text=_("Saved %(count)s of %(total)s."), parent=None): self.file_uris = file_uris self.destination_uri = destination_uri self.cancel = gio.Cancellable() self.is_copying = False gtk.Dialog.__init__(self, title, parent) self.count = 0 self.total = len(file_uris) self.text = text self.overwrite_response = None #self.set_modal(True) #self.set_decorated(False) self.set_resizable(False) #self.set_focus_on_map(False) vbox = self.get_content_area() vbox.set_spacing(12) vbox.set_border_width(12) self._label = gtk.Label() self._label.set_use_markup(True) self._label.set_markup(self.text % {'count': 0, 'total': self.total}) vbox.pack_start(self._label) self._progress = gtk.ProgressBar() self._progress.set_size_request(300, -1) vbox.pack_start(self._progress) self.show_all() # TODO: Make dialog cancelable #self.cancel_button.connect('activate', lambda *e: self.cancel.cancel() ) self.set_position(gtk.WIN_POS_CENTER_ON_PARENT) def do_copy(self): logger.info( "Copy started." ) self._start_next_copy() self.show_all() self.connect('response',self._on_response) def run(self): raise NotImplementedError( "Don't use this" ) def _on_response(self, widget, response): logger.info( "Copy complete." ) self.destroy() def _step(self): '''Steps the progress bar''' self.count += 1 self._progress.set_fraction( clamp(self.count / float(self.total), 0, 1)) self._label.set_markup(self.text % { 'count': self.count, 'total': self.total }) def _start_next_copy(self, overwrite=False): if self.count == len(self.file_uris): self.response( gtk.RESPONSE_OK ) return flags = gio.FILE_COPY_NONE src_uri = self.file_uris[self.count] dst_uri = self.destination_uri + '/' + src_uri.split('/')[-1] self.source = gio.File( uri=src_uri) self.destination = gio.File( uri=dst_uri ) if not overwrite: if self.destination.query_exists(): if self.overwrite_response == XRESPONSE_YES_ALL: overwrite = True elif self.overwrite_response == XRESPONSE_NO_ALL or self.overwrite_response == XRESPONSE_NO: # only deny the overwrite once.. if self.overwrite_response == XRESPONSE_NO: self.overwrite_response = None logging.info( "NoOverwrite: %s" % self.destination.get_uri() ) self._step() glib.idle_add( self._start_next_copy ) # don't recurse return else: self._query_overwrite() return if overwrite: flags = gio.FILE_COPY_OVERWRITE try: # gio.FILE_COPY_OVERWRITE doesn't actually work logging.info( "DeleteDest : %s" % self.destination.get_uri() ) self.destination.delete() except gio.Error: pass logging.info( "CopySource : %s" % self.source.get_uri() ) logging.info( "CopyDest : %s" % self.destination.get_uri() ) self.source.copy_async( self.destination, self._finish_single_copy, flags=flags, cancellable=self.cancel ) def _finish_single_copy(self, source, async_result): try: if source.copy_finish(async_result): self._step() self._start_next_copy() except gio.Error,e: self._on_error( _("Error occurred while copying %s: %s") % ( glib.markup_escape_text( self.source.get_uri() ), glib.markup_escape_text( str(e) ) ) ) def _query_overwrite(self): self.hide_all() text = _('File exists, overwrite %s ?') % glib.markup_escape_text(self.destination.get_uri()) dialog=XMessageDialog(self.parent, text ) dialog.connect( 'response', self._on_query_overwrite_response, dialog ) dialog.show_all() dialog.grab_focus() self.query_dialog = dialog def _on_query_overwrite_response(self, widget, response, dialog): dialog.destroy() self.overwrite_response = response if response == gtk.RESPONSE_CANCEL: self.response( response ) else: if response == XRESPONSE_NO or response == XRESPONSE_NO_ALL: overwrite = False else: overwrite = True self.show_all() self._start_next_copy( overwrite ) def _on_error(self, message): self.hide() dialog = gtk.MessageDialog(self.parent, gtk.DIALOG_MODAL, gtk.MESSAGE_ERROR, gtk.BUTTONS_CLOSE) dialog.set_markup( message ) dialog.connect( 'response', self._on_error_response, dialog ) dialog.show() dialog.grab_focus() self.error_dialog = dialog def _on_error_response(self, widget, response, dialog): self.response( gtk.RESPONSE_CANCEL ) dialog.destroy() def ask_for_playlist_name(playlist_manager, name=None): """ Returns a user-selected name that is not already used in the specified playlist manager :param name: A default name to show to the user Returns None if the user hits cancel """ while True: dialog = TextEntryDialog( _('Playlist name:'), _('Add new playlist...'), name, okbutton=gtk.STOCK_ADD) result = dialog.run() if result != gtk.RESPONSE_OK: return None name = dialog.get_value() if name == '': error(None, _("You did not enter a name for your playlist")) elif playlist_manager.has_playlist_name(name): # name is already in use error(None, _("The playlist name you entered is already in use.")) else: return name dist/copy/xlgui/widgets/PaxHeaders.26361/queue.py0000644000175000017500000000012412233027260020315 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.609046948 exaile-3.3.2/xlgui/widgets/queue.py0000644000000000000000000000706712233027260017267 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import gtk from xl.nls import gettext as _ from xl import providers, event from xlgui.widgets import menu from xlgui.widgets.notebook import NotebookPage from xlgui.widgets.playlist import PlaylistView def __create_queue_tab_context_menu(): smi = menu.simple_menu_item sep = menu.simple_separator items = [] items.append(smi('clear', [], None, 'gtk-clear', lambda w, n, o, c: o.player.queue.clear())) items.append(sep('tab-close-sep', ['clear'])) items.append(smi('tab-close', ['tab-close-sep'], None, 'gtk-close', lambda w, n, o, c: o.tab.close())) for item in items: providers.register('queue-tab-context', item) __create_queue_tab_context_menu() class QueuePage(NotebookPage): menu_provider_name = 'queue-tab-context' def __init__(self, player): NotebookPage.__init__(self) self.player = player self.playlist = player.queue # a queue is a playlist object... self.swindow = gtk.ScrolledWindow() self.swindow.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) self.pack_start(self.swindow, True, True) self.view = PlaylistView(self.player.queue, self.player) self.swindow.add(self.view) event.add_callback(self.on_length_changed, 'playlist_current_position_changed', self.player.queue) event.add_callback(self.on_length_changed, "playlist_tracks_added", self.player.queue) event.add_callback(self.on_length_changed, "playlist_tracks_removed", self.player.queue) self.show_all() def on_length_changed(self, *args): self.name_changed() if len(self.player.queue) == 0: self.tab.set_closable(True) else: self.tab.notebook.show_queue(switch=False) self.tab.set_closable(False) ## NotebookPage API ## def focus(self): self.view.grab_focus() def get_name(self): qlen = self.player.queue.queue_length() if qlen == -1: return _("Queue") else: return _("Queue (%d)") % qlen def set_tab(self, tab): NotebookPage.set_tab(self, tab) tab.set_closable(not self.do_closing()) def do_closing(self): """ Allows closing only if the queue is empty """ return len(self.player.queue) != 0 ## End NotebookPage ## # vim: et sw=4 st=4 dist/copy/xlgui/widgets/PaxHeaders.26361/playback.py0000644000175000017500000000012412233027260020757 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.565046947 exaile-3.3.2/xlgui/widgets/playback.py0000644000000000000000000012767512233027260017741 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import glib import gobject import gtk import pango from xl import ( event, formatter, player, providers, settings, xdg ) from xl.common import clamp from xl.nls import gettext as _ from xlgui.widgets import menu class ProgressBarFormatter(formatter.ProgressTextFormatter): """ A formatter for progress bars """ def __init__(self, player): formatter.ProgressTextFormatter.__init__(self, '', player) event.add_callback(self.on_option_set, 'gui_option_set') self.on_option_set('gui_option_set', settings, 'gui/progress_bar_text_format') def on_option_set(self, event, settings, option): """ Updates the internal format on setting change """ if option == 'gui/progress_bar_text_format': self.props.format = settings.get_option( 'gui/progress_bar_text_format', '$current_time / $remaining_time') class PlaybackProgressBar(gtk.ProgressBar): """ Progress bar which automatically follows playback """ def __init__(self, player): gtk.ProgressBar.__init__(self) self.__player = player self.reset() self.formatter = ProgressBarFormatter(player) self.__timer_id = None self.__events = ('playback_track_start', 'playback_player_end', 'playback_toggle_pause', 'playback_error') for e in self.__events: event.add_callback(getattr(self, 'on_%s' % e), e, self.__player) def destroy(self): """ Cleanups """ for e in self.__events: event.remove_callback(getattr(self, 'on_%s' % e), e, self.__player) def reset(self): """ Resets the progress bar appearance """ glib.idle_add(self.set_fraction, 0) glib.idle_add(self.set_text, _('Not Playing')) def __enable_timer(self): """ Enables the update timer """ if self.__timer_id is not None: return interval = settings.get_option('gui/progress_update_millisecs', 1000) if interval % 1000 == 0: self.__timer_id = glib.timeout_add_seconds( interval / 1000, self.on_timer) else: self.__timer_id = glib.timeout_add( interval, self.on_timer) self.on_timer() def __disable_timer(self): """ Disables the update timer """ if self.__timer_id is not None: glib.source_remove(self.__timer_id) self.__timer_id = None def on_timer(self): """ Updates progress bar appearance """ if self.__player.current is None: self.__disable_timer() self.reset() return False glib.idle_add(self.set_fraction, self.__player.get_progress()) glib.idle_add(self.set_text, self.formatter.format()) return True def on_playback_track_start(self, event_type, player, track): """ Starts update timer """ self.reset() self.__enable_timer() def on_playback_player_end(self, event_type, player, track): """ Stops update timer """ self.__disable_timer() self.reset() def on_playback_toggle_pause(self, event_type, player, track): """ Starts or stops update timer """ if player.is_playing(): self.__enable_timer() elif player.is_paused(): self.__disable_timer() def on_playback_error(self, event_type, player, message): """ Stops update timer """ self.__disable_timer() self.reset() class Marker(gobject.GObject): """ A marker pointing to a playback position """ __gproperties__ = { 'anchor': ( gtk.AnchorType, 'anchor position', 'The position the marker will be anchored', gtk.ANCHOR_SOUTH, gobject.PARAM_READWRITE ), 'color': ( gtk.gdk.Color, 'marker color', 'Override color of the marker', gobject.PARAM_READWRITE ), 'label': ( gobject.TYPE_STRING, 'marker label', 'Textual description of the marker', None, gobject.PARAM_READWRITE ), 'position': ( gobject.TYPE_FLOAT, 'marker position', 'Relative position of the marker', 0, 1, 0, gobject.PARAM_READWRITE ), 'state': ( gtk.StateType, 'marker state', 'The state of the marker', gtk.STATE_NORMAL, gobject.PARAM_READWRITE ) } __gsignals__ = { 'reached': ( gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, () ) } def __init__(self, position=0): gobject.GObject.__init__(self) self.__values = { 'anchor': gtk.ANCHOR_SOUTH, 'color': None, 'label': None, 'position': 0, 'state': gtk.STATE_NORMAL } self.props.position = position def __str__(self): """ Informal representation """ if self.props.label is not None: text = '%s (%g)' % (self.props.label, self.props.position) else: text = '%g' % self.props.position return text def __lt__(self, other): """ Compares positions """ return self.props.position < other.props.position def __gt__(self, other): """ Compares positions """ return self.props.position > other.props.position def do_get_property(self, gproperty): """ Gets a GObject property """ try: return self.__values[gproperty.name] except KeyError: raise AttributeError('unknown property %s' % property.name) def do_set_property(self, gproperty, value): """ Sets a GObject property """ try: self.__values[gproperty.name] = value except KeyError: raise AttributeError('unknown property %s' % property.name) class MarkerManager(providers.ProviderHandler): """ Enables management of playback markers; namely simple adding, removing and finding. It also takes care of emitting signals when a marker is reached during playback. TODO: This presumes there is only one player object present in exaile, and that markers can only be associated with the single player object. This class should probably be changed to be associated with a particular player (which requires some changes to the marker class) """ def __init__(self): providers.ProviderHandler.__init__(self, 'playback-markers') self.__events = ('playback_track_start', 'playback_track_end') self.__timeout_id = None for e in self.__events: event.add_callback(getattr(self, 'on_%s' % e), e) def destroy(self): """ Cleanups """ for e in self.__events: event.remove_callback(getattr(self, 'on_%s' % e), e) def add_marker(self, position): """ Creates a new marker for a playback position :param position: the playback position [0..1] :type position: float :returns: the new marker :rtype: :class:`Marker` """ marker = Marker(position) # Provider compatibility marker.name = 'marker' providers.register('playback-markers', marker) return marker def remove_marker(self, marker): """ Removes a playback marker :param marker: the marker :type marker: :class:`Marker` """ providers.unregister('playback-markers', marker) def get_markers_at(self, position): """ Gets all markers located at a position :param position: the mark position :type position: float :returns: (m1, m2, ...) :rtype: (:class:`Marker`, ...) * *m1*: the first marker * *m2*: the second marker * ... """ # Reproduce value modifications position = Marker(position).props.position markers = () for marker in providers.get('playback-markers'): if marker.props.position == position: markers += (marker,) return markers def on_playback_track_start(self, event, player, track): """ Starts marker watching """ if self.__timeout_id is not None: glib.source_remove(self.__timeout_id) self.__timeout_id = glib.timeout_add_seconds(1, self.on_timeout, player) def on_playback_track_end(self, event, player, track): """ Stops marker watching """ if self.__timeout_id is not None: glib.source_remove(self.__timeout_id) self.__timeout_id = None def on_timeout(self, player): """ Triggers "reached" signal of markers """ track_length = player.current.get_tag_raw('__length') if track_length is None: return True playback_time = player.get_time() reached_markers = (m for m in providers.get('playback-markers') if int(m.props.position * track_length) == playback_time) for marker in reached_markers: marker.emit('reached') return True __MARKERMANAGER = MarkerManager() add_marker = __MARKERMANAGER.add_marker remove_marker = __MARKERMANAGER.remove_marker get_markers_at = __MARKERMANAGER.get_markers_at class SeekProgressBar(PlaybackProgressBar, providers.ProviderHandler): """ Playback progress bar which allows for seeking and setting positional markers """ __gproperties__ = { 'marker-scale': ( gobject.TYPE_FLOAT, 'marker scale', 'Scaling of markers', 0, 1, 0.7, gobject.PARAM_READWRITE ) } __gsignals__ = { 'button-press-event': 'override', 'button-release-event': 'override', 'expose-event': 'override', 'motion-notify-event': 'override', 'notify': 'override', 'key-press-event': 'override', 'key-release-event': 'override', 'marker-reached': ( gobject.SIGNAL_RUN_LAST, gobject.TYPE_BOOLEAN, (Marker,), gobject.signal_accumulator_true_handled ) } def __init__(self, player, use_markers=True): ''' TODO: markers aren't designed for more than one player, once they are we can get rid of the use_markers option ''' PlaybackProgressBar.__init__(self, player) self.__player = player self.__values = {'marker-scale': 0.7} self._seeking = False self._points = {} self._progressbar_menu = None if use_markers: self._progressbar_menu = ProgressBarContextMenu(self) self._marker_menu = MarkerContextMenu(self) self._marker_menu.connect('deactivate', self.on_marker_menu_deactivate) providers.ProviderHandler.__init__(self, 'playback-markers') self.add_events(gtk.gdk.BUTTON_PRESS_MASK | gtk.gdk.BUTTON_RELEASE_MASK | gtk.gdk.POINTER_MOTION_MASK | gtk.gdk.LEAVE_NOTIFY_MASK) self.set_flags(self.flags() | gtk.CAN_FOCUS) self.connect('hierarchy-changed', self.on_hierarchy_changed) def get_label(self, marker): """ Builds the most appropriate label markup to describe a marker :param marker: the marker :type marker: :class:`Marker` :returns: the label :rtype: string """ markup = None if self.__player.current: length = self.__player.current.get_tag_raw('__length') if length is not None: length = length * marker.props.position length = formatter.LengthTagFormatter.format_value(length) if marker.props.label: markup = '%s (%s)' % (marker.props.label, length) else: markup = '%s' % length else: if marker.props.label: markup = '%s (%d%%)' % ( marker.props.label, int(marker.props.position * 100) ) else: markup = '%d%%' % int(marker.props.position * 100) return markup def _is_marker_hit(self, marker, check_x, check_y): """ Checks whether a marker is hit by a point :param marker: the marker :type marker: :class:`Marker` :param check_x: the x location to check :type check_x: float :param check_y: the y location to check :type check_y: float :returns: whether the marker was hit :rtype: bool """ points = self._points[marker] x, y, width, height = self._get_bounding_box(points) if x <= check_x <= width and y <= check_y <= height: return True return False def _get_points(self, marker, width=None, height=None): """ Calculates the points necessary to represent a marker :param marker: the marker :type marker: :class:`Marker` :param width: area width override :type width: int :param height: area height override :type height: int :returns: ((x1, y1), (x2, y2), ...) :rtype: ((float, float), ...) * *x1*: the x coordinate of the first point * *y1*: the y coordinate of the first point * *x2*: the x coordinate of the second point * *y2*: the y coordinate of the second point * ... """ points = () width = width or self.allocation.width height = height or self.allocation.height position = width * marker.props.position marker_scale = int(height * self.props.marker_scale) # Adjustment by half of the line width offset = self.props.marker_scale / 0.9 / 2 if marker.props.anchor == gtk.ANCHOR_NORTH_WEST: points = ( (position - offset, offset), (position + marker_scale * 0.75 - offset, offset), (position - offset, marker_scale * 0.75 + offset) ) elif marker.props.anchor == gtk.ANCHOR_NORTH: points = ( (position - offset, marker_scale / 2 + offset), (position + marker_scale / 2 - offset, offset), (position - marker_scale / 2 - offset, offset) ) elif marker.props.anchor == gtk.ANCHOR_NORTH_EAST: points = ( (position - marker_scale * 0.75 - offset, offset), (position - offset, offset), (position - offset, marker_scale * 0.75 + offset) ) elif marker.props.anchor == gtk.ANCHOR_EAST: points = ( (position - marker_scale / 2 - offset, height / 2 + offset), (position - offset, height / 2 - marker_scale / 2 + offset), (position - offset, height / 2 + marker_scale / 2 + offset) ) elif marker.props.anchor == gtk.ANCHOR_SOUTH_EAST: points = ( (position - offset, height - offset), (position - offset, height - marker_scale * 0.75 - offset), (position - marker_scale * 0.75 - offset, height - offset) ) elif marker.props.anchor == gtk.ANCHOR_SOUTH: points = ( (position - offset, height - marker_scale / 2 - offset), (position + marker_scale / 2 - offset, height - offset), (position - marker_scale / 2 - offset, height - offset) ) elif marker.props.anchor == gtk.ANCHOR_SOUTH_WEST: points = ( (position - offset, height - offset), (position + marker_scale * 0.75 - offset, height - offset), (position - offset, height - marker_scale * 0.75 - offset) ) elif marker.props.anchor == gtk.ANCHOR_WEST: points = ( (position + marker_scale / 2 - offset, height / 2 + offset), (position - offset, height / 2 - marker_scale / 2 + offset), (position - offset, height / 2 + marker_scale / 2 + offset) ) elif marker.props.anchor == gtk.ANCHOR_CENTER: points = ( (position - offset, height / 2 - marker_scale / 2 + offset), (position + marker_scale / 2 - offset, height / 2 + offset), (position - offset, height / 2 + marker_scale / 2 + offset), (position - marker_scale / 2 - offset, height / 2 + offset) ) return points def _get_bounding_box(self, points): """ Calculates the axis aligned bounding box of a sequence of points :param points: ((x1, y1), (x2, y2), ...) :type points: ((float, float), ...) :returns: (x, y, width, height) :rtype: (float, float, float, float) * *x*: the x coordinate of the box * *y*: the y coordinate of the box * *width*: the width of the box * *height*: the height of the box """ xs, ys = zip(*points) return min(xs), min(ys), max(xs), max(ys) def seek(self, position): """ Seeks within the current track """ if self.__player.current: self.__player.set_progress(position) self.update_progress() def update_progress(self): ''' Updates the progress bar and the time with data from the player ''' if self.__player.current: length = self.__player.current.get_tag_raw('__length') if length is not None: position = float(self.__player.get_time())/length self.set_fraction(position) self.set_text(self.formatter.format( current_time=length * position)) def do_get_property(self, gproperty): """ Gets a GObject property """ try: return self.__values[gproperty.name] except KeyError: raise AttributeError('unknown property %s' % property.name) def do_set_property(self, gproperty, value): """ Sets a GObject property """ try: self.__values[gproperty.name] = value except KeyError: raise AttributeError('unknown property %s' % property.name) def do_notify(self, gproperty): """ Reacts to GObject property changes """ if gproperty.name == 'marker-scale': for marker in self._points.iterkeys(): self._points[marker] = self._get_points(marker) self.queue_draw() def do_size_allocate(self, allocation): """ Recalculates the marker points """ oldallocation = self.allocation gtk.ProgressBar.do_size_allocate(self, allocation) if allocation != oldallocation: for marker in self._points.iterkeys(): self._points[marker] = self._get_points(marker) def do_expose_event(self, event): """ Draws markers on top of the progress bar """ gtk.ProgressBar.do_expose_event(self, event) if not self._points: return context = self.props.window.cairo_create() context.set_line_width(self.props.marker_scale / 0.9) for marker, points in self._points.iteritems(): for x, y in points: context.line_to(x, y) context.close_path() if marker.props.state in (gtk.STATE_PRELIGHT, gtk.STATE_ACTIVE): context.set_source_color(self.style.fg[gtk.STATE_NORMAL]) else: if marker.props.color is not None: base = marker.props.color else: base = self.style.base[marker.props.state] context.set_source_rgba( base.red / 256.0**2, base.green / 256.0**2, base.blue / 256.0**2, 0.7 ) context.fill_preserve() if marker.props.state in (gtk.STATE_PRELIGHT, gtk.STATE_ACTIVE): context.set_source_color(self.style.fg[gtk.STATE_NORMAL]) else: foreground = self.style.fg[marker.props.state] context.set_source_rgba( foreground.red / 256.0**2, foreground.green / 256.0**2, foreground.blue / 256.0**2, 0.7 ) context.stroke() def do_button_press_event(self, event): """ Prepares seeking """ hit_markers = [] for marker in self._points.iterkeys(): if self._is_marker_hit(marker, event.x, event.y): if marker.props.state in (gtk.STATE_NORMAL, gtk.STATE_PRELIGHT): marker.props.state = gtk.STATE_ACTIVE hit_markers += [marker] hit_markers.sort() if event.button == 1: if self.__player.current is None: return True length = self.__player.current.get_tag_raw('__length') if length is None: return True if len(hit_markers) > 0: self.seek(hit_markers[0].props.position) else: fraction = event.x / self.allocation.width fraction = max(0, fraction) fraction = min(fraction, 1) self.set_fraction(fraction) self.set_text(_('Seeking: %s') % self.formatter.format( current_time=length * fraction)) self._seeking = True elif event.button == 3: if len(hit_markers) > 0: self._marker_menu.popup(event, tuple(hit_markers)) elif self._progressbar_menu is not None: self._progressbar_menu.popup(event) def do_button_release_event(self, event): """ Completes seeking """ for marker in self._points.iterkeys(): if marker.props.state == gtk.STATE_ACTIVE: marker.props.state = gtk.STATE_PRELIGHT if event.button == 1 and self._seeking: length = self.__player.current.get_tag_raw('__length') fraction = event.x / self.allocation.width fraction = max(0, fraction) fraction = min(fraction, 1) self.seek(fraction) self._seeking = False def do_motion_notify_event(self, event): """ Updates progress bar while seeking and updates marker states on hover """ self.set_tooltip_markup(None) if self._seeking: press_event = gtk.gdk.Event(gtk.gdk.BUTTON_PRESS) press_event.button = 1 press_event.x = event.x press_event.y = event.y self.emit('button-press-event', press_event) else: hit_markers = [] for marker in self._points.iterkeys(): if self._is_marker_hit(marker, event.x, event.y): if marker.props.state == gtk.STATE_NORMAL: marker.props.state = gtk.STATE_PRELIGHT hit_markers += [marker] else: if marker.props.state == gtk.STATE_PRELIGHT: marker.props.state = gtk.STATE_NORMAL if len(hit_markers) > 0: hit_markers.sort() markup = ', '.join([self.get_label(m) for m in hit_markers]) self.set_tooltip_markup(markup) self.trigger_tooltip_query() def do_leave_notify_event(self, event): """ Resets marker states """ for marker in self._points.iterkeys(): # Leave other states intact if marker.props.state == gtk.STATE_PRELIGHT: marker.props.state = gtk.STATE_NORMAL def do_key_press_event(self, event): """ Prepares seeking via keyboard interaction * Alt+Up/Right: seek 1% forward * Alt+Down/Left: seek 1% backward """ if self.get_state() & gtk.STATE_INSENSITIVE: return if not event.state & gtk.gdk.MOD1_MASK: return if event.keyval in (gtk.keysyms.Up, gtk.keysyms.Right): direction = 1 elif event.keyval in (gtk.keysyms.Down, gtk.keysyms.Left): direction = -1 else: return press_event = gtk.gdk.Event(gtk.gdk.BUTTON_PRESS) press_event.button = 1 new_fraction = self.get_fraction() + 0.01 * direction press_event.x = self.allocation.width * new_fraction press_event.y = float(self.allocation.y) self.emit('button-press-event', press_event) def do_key_release_event(self, event): """ Completes seeking via keyboard interaction """ if not event.state & gtk.gdk.MOD1_MASK: return if event.keyval in (gtk.keysyms.Up, gtk.keysyms.Right): direction = 1 elif event.keyval in (gtk.keysyms.Down, gtk.keysyms.Left): direction = -1 else: return release_event = gtk.gdk.Event(gtk.gdk.BUTTON_RELEASE) release_event.button = 1 new_fraction = self.get_fraction() + 0.01 * direction release_event.x = self.allocation.width * new_fraction release_event.y = float(self.allocation.y) self.emit('button-release-event', release_event) def on_hierarchy_changed(self, widget, old_toplevel): """ Sets up editing cancel on toplevel focus out """ self.get_toplevel().connect('focus-out-event', lambda w, e: self.emit('focus-out-event', e)) def on_marker_menu_deactivate(self, menu): """ Makes sure to reset states of previously selected markers """ for marker in self._points: marker.props.state = gtk.STATE_NORMAL self.queue_draw() def on_marker_notify(self, marker, gproperty): """ Recalculates marker points on position changes """ if gproperty.name in ('anchor', 'position'): self._points[marker] = self._get_points(marker) self.queue_draw() def on_timer(self): """ Prevents update while seeking """ if self._seeking: return True return PlaybackProgressBar.on_timer(self) def on_provider_added(self, marker): """ Calculates points after marker addition :param marker: the new marker :type marker: :class:`Marker` """ notify_id = marker.connect('notify', self.on_marker_notify) marker.set_data('%s_notify_id' % id(self), notify_id) self._points[marker] = self._get_points(marker) self.queue_draw() def on_provider_removed(self, marker): """ Removes points from internal cache :param marker: the marker :type marker: :class:`Marker` """ notify_id = marker.get_data('%s_notify_id' % id(self)) if notify_id is not None: marker.disconnect(notify_id) del self._points[marker] self.queue_draw() class ProgressBarContextMenu(menu.ProviderMenu): """ Progress bar specific context menu """ def __init__(self, progressbar): """ :param progressbar: the progress bar :type progressbar: :class:`PlaybackProgressBar` """ menu.ProviderMenu.__init__(self, 'progressbar-context-menu', progressbar) self._position = -1 def get_context(self): """ Retrieves the context """ context = {'current-position': self._position} return context def popup(self, event): """ Pops up the menu :param event: an event :type event: :class:`gtk.gdk.Event` """ self._position = event.x / self._parent.allocation.width menu.ProviderMenu.popup(self, event) class MarkerContextMenu(menu.ProviderMenu): """ Marker specific context menu """ def __init__(self, markerbar): """ :param markerbar: the marker capable progress bar :type markerbar: :class:`SeekProgressBar` """ menu.ProviderMenu.__init__(self, 'playback-marker-context-menu', markerbar) self._markers = () self._position = -1 def regenerate_menu(self): """ Builds the menu, with submenu if appropriate """ for marker in self._markers: label = self._parent.get_label(marker) if label is None: continue markup_data = pango.parse_markup(label) label_item = gtk.MenuItem(markup_data[1]) self.append(label_item) if len(self._markers) > 1: item_menu = gtk.Menu() label_item.set_submenu(item_menu) else: item_menu = self label_item.set_sensitive(False) self.append(gtk.SeparatorMenuItem()) context = { 'current-marker': marker, 'selected-markers': self._markers, 'current-position': self._position } for item in self._items: i = item.factory(self, self._parent, context) item_menu.append(i) self.show_all() def popup(self, event, markers): """ Pops up the menu :param event: an event :type event: :class:`gtk.gdk.Event` :param markers: (m1, m2, ...) :type markers: (:class:`Marker`, ...) """ self._markers = markers self._position = event.x / self._parent.allocation.width menu.ProviderMenu.popup(self, event) class MoveMarkerMenuItem(menu.MenuItem): """ Menu item allowing for movement of markers """ def __init__(self, name, after, display_name=_('Move'), icon_name=None): menu.MenuItem.__init__(self, name, None, after) self._parent = None self._display_name = display_name self._icon_name = icon_name self._marker = None self._reset_position = -1 def factory(self, menu, parent, context): """ Generates the menu item """ self._parent = parent item = gtk.ImageMenuItem(self._display_name) if self._icon_name is not None: item.set_image(gtk.image_new_from_icon_name( self._icon_name, gtk.ICON_SIZE_MENU)) item.connect('activate', self.on_activate, parent, context) parent.connect('button-press-event', self.on_parent_button_press_event) parent.connect('motion-notify-event', self.on_parent_motion_notify_event) parent.connect('focus-out-event', self.on_parent_focus_out_event) return item def move_begin(self, marker): """ Captures the current marker for movement :param marker: the marker :type marker: :class:`Marker` :returns: whether a marker could be captured :rtype: bool """ self.move_cancel() if marker is not None: self._marker = marker self._marker.props.state = gtk.STATE_ACTIVE self._reset_position = marker.props.position self._parent.props.window.set_cursor( gtk.gdk.Cursor(gtk.gdk.SB_H_DOUBLE_ARROW)) return True return False def move_update(self, position): """ Moves the marker :param position: the current marker position :type position: float :returns: whether a marker could be moved :rtype: bool """ if self._marker is not None: self._marker.props.position = position label = self._parent.get_label(self._marker) self._parent.set_tooltip_markup(label) return True return False def move_finish(self): """ Finishes movement and releases the marker :returns: whether the movement could be finished :rtype: bool """ if self._marker is not None: self._marker.props.state = gtk.STATE_NORMAL self._marker = None self._reset_position = -1 self._parent.props.window.set_cursor(None) return True return False def move_cancel(self): """ Cancels movement and releases the marker :returns: whether the movement could be cancelled :rtype: bool """ if self._marker is not None: self._marker.props.position = self._reset_position self._marker.props.state = gtk.STATE_NORMAL self._marker = None self._reset_position = -1 self._parent.props.window.set_cursor(None) return True return False def on_activate(self, widget, parent, context): """ Starts movement of markers """ self.move_begin(context.get('current-marker', None)) def on_parent_button_press_event(self, widget, event): """ Finishes or cancels movement of markers """ if event.button == 1: return self.move_finish() elif event.button == 3: return self.move_cancel() return False def on_parent_motion_notify_event(self, widget, event): """ Moves markers """ position = event.x / widget.allocation.width return self.move_update(position) def on_parent_focus_out_event(self, widget, event): """ Cancels movement of markers """ self.move_cancel() class NewMarkerMenuItem(MoveMarkerMenuItem): """ Menu item allowing for insertion and instant movement of a marker """ def __init__(self, name, after): MoveMarkerMenuItem.__init__(self, name, after, _('New Marker'), gtk.STOCK_NEW) def move_cancel(self): """ Cancels movement and insertion of the marker :param parent: the parent :type parent: :class:`SeekProgressBar` :returns: whether the movement could be cancelled :rtype: bool """ if self._marker is not None: remove_marker(self._marker) self._marker = None self._reset_position = -1 self._parent.props.window.set_cursor(None) return True return False def on_activate(self, widget, parent, context): """ Inserts a new marker and starts movement """ context['current-marker'] = add_marker(context['current-position']) MoveMarkerMenuItem.on_activate(self, widget, parent, context) # XXX: Example implementation only # Bookmarks: "Add bookmark" (1 new marker) # A-B-Repeat: "Repeat" (2 new marker, NW, NE) def __create_progressbar_context_menu(): items = [] items.append(NewMarkerMenuItem('new-marker', [])) for item in items: providers.register('progressbar-context-menu', item) __create_progressbar_context_menu() def __create_marker_context_menu(): items = [] def on_jumpto_item_activate(widget, name, parent, context): #parent.seek(context['current-marker'].props.position) position = context['current-marker'].props.position player.PLAYER.set_progress(position) def on_remove_item_activate(widget, name, parent, context): providers.unregister('playback-markers', context['current-marker']) items.append(menu.simple_menu_item('jumpto-marker', [], icon_name=gtk.STOCK_JUMP_TO, callback=on_jumpto_item_activate)) items.append(MoveMarkerMenuItem('move-marker', [items[-1].name])) items.append(menu.simple_menu_item('remove-marker', [items[-1].name], icon_name=gtk.STOCK_REMOVE, callback=on_remove_item_activate)) for item in items: providers.register('playback-marker-context-menu', item) __create_marker_context_menu() class VolumeControl(gtk.Alignment): """ Encapsulates a button and a slider to control the volume indicating the current status via icon and tooltip """ def __init__(self, player): self.__volume_setting = '%s/volume' % player._name gtk.Alignment.__init__(self, xalign=1) self.restore_volume = settings.get_option(self.__volume_setting, 1) self.icon_names = ['low', 'medium', 'high'] builder = gtk.Builder() builder.add_from_file(xdg.get_data_path('ui', 'widgets', 'volume_control.ui')) builder.connect_signals(self) box = builder.get_object('volume_control') box.reparent(self) self.button = builder.get_object('button') self.button.add_events(gtk.gdk.KEY_PRESS_MASK) self.button_image = builder.get_object('button_image') self.slider = builder.get_object('slider') self.slider_adjustment = builder.get_object('slider_adjustment') self.__update(self.restore_volume) event.add_callback(self.on_option_set, '%s_option_set' % player._name) def __update(self, volume): """ Sets the volume level indicator """ icon_name = 'audio-volume-muted' tooltip = _('Muted') if volume > 0: i = clamp(int(round(volume * 2)), 0, len(self.icon_names) - 1) icon_name = 'audio-volume-%s' % self.icon_names[i] #TRANSLATORS: Volume percentage tooltip = _('%d%%') % (volume * 100) if volume == 1.0: tooltip = _('Full Volume') if volume > 0: self.button.set_active(False) self.button_image.set_from_icon_name(icon_name, gtk.ICON_SIZE_BUTTON) self.button.set_tooltip_text(tooltip) self.slider.set_value(volume) self.slider.set_tooltip_text(tooltip) def on_scroll_event(self, widget, event): """ Changes the volume on scrolling """ page_increment = self.slider_adjustment.page_increment step_increment = self.slider_adjustment.step_increment value = self.slider.get_value() if event.direction == gtk.gdk.SCROLL_DOWN: if event.state & gtk.gdk.SHIFT_MASK: self.slider.set_value(value - page_increment) else: self.slider.set_value(value - step_increment) return True elif event.direction == gtk.gdk.SCROLL_UP: if event.state & gtk.gdk.SHIFT_MASK: self.slider.set_value(value + page_increment) else: self.slider.set_value(value + step_increment) return True return False def on_button_toggled(self, button): """ Mutes or unmutes the volume """ if button.get_active(): self.restore_volume = settings.get_option(self.__volume_setting, 1) volume = 0 else: volume = self.restore_volume if self.restore_volume > 0: settings.set_option(self.__volume_setting, volume) def on_slider_value_changed(self, slider): """ Stores the preferred volume """ settings.set_option(self.__volume_setting, slider.get_value()) def on_slider_key_press_event(self, slider, event): """ Changes the volume on key press while the slider is focussed """ page_increment = slider.get_adjustment().page_increment step_increment = slider.get_adjustment().step_increment value = slider.get_value() if event.keyval == gtk.keysyms.Down: slider.set_value(value - step_increment) return True elif event.keyval == gtk.keysyms.Page_Down: slider.set_value(value - page_increment) return True elif event.keyval == gtk.keysyms.Up: slider.set_value(value + step_increment) return True elif event.keyval == gtk.keysyms.Page_Up: slider.set_value(value + page_increment) return True return False def on_option_set(self, event, sender, option): """ Updates the volume indication """ if option == self.__volume_setting: self.__update(settings.get_option(option, 1)) def playpause(player): if player.get_state() in ('playing', 'paused'): player.toggle_pause() else: from xlgui import main page = main.get_selected_playlist() if page: pl = page.playlist if len(pl) == 0: return try: idx = page.view.get_selected_paths()[0][0] except IndexError: idx = 0 player.queue.set_current_playlist(pl) pl.current_position = idx player.queue.play(track=pl.current) def PlayPauseMenuItem(name, player, after): def factory(menu, parent, context): if player.is_playing(): stock_id = gtk.STOCK_MEDIA_PAUSE else: stock_id = gtk.STOCK_MEDIA_PLAY item = gtk.ImageMenuItem(stock_id) item.connect('activate', lambda *args: playpause( player ), name, parent, context) return item return menu.MenuItem(name, factory, after=after) def NextMenuItem(name, player, after): return menu.simple_menu_item(name, after, icon_name=gtk.STOCK_MEDIA_NEXT, callback=lambda *args: player.queue.next() ) def PrevMenuItem(name, player, after): return menu.simple_menu_item(name, after, icon_name=gtk.STOCK_MEDIA_PREVIOUS, callback=lambda *args: player.queue.prev() ) def StopMenuItem(name, player, after): return menu.simple_menu_item(name, after, icon_name=gtk.STOCK_MEDIA_STOP, callback=lambda *args: player.stop() ) dist/copy/xlgui/widgets/PaxHeaders.26361/rating.py0000644000175000017500000000012412233027260020455 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.569046947 exaile-3.3.2/xlgui/widgets/rating.py0000644000000000000000000003323712233027260017425 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import glib import gobject import gtk from xl import event, settings from xl.common import clamp from xl.nls import gettext as _ import xl.main from xlgui import icons class RatingWidget(gtk.EventBox): """ A rating widget which displays a row of images and allows for selecting the rating """ __gproperties__ = { 'rating': ( gobject.TYPE_INT, 'rating', 'The selected rating', 0, # Minimum 65535, # Maximum 0, # Default gobject.PARAM_READWRITE ) } __gsignals__ = { 'rating-changed': ( gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_INT,) ) } def __init__(self, rating=0, player=None): """ :param rating: the optional initial rating :type rating: int :param player: If not None, this rating widget will automatically update to reflect the rating of the current song :type player: xl.player.ExailePlayer """ gtk.EventBox.__init__(self) self._player = player self.set_visible_window(False) self.set_above_child(True) self.add_events(gtk.gdk.POINTER_MOTION_MASK) self.set_flags(self.flags() | gtk.CAN_FOCUS) self._image = gtk.Image() self.add(self._image) self._rating = -1 self.props.rating = rating if self._player is not None: event.add_callback( self.on_rating_update, 'playback_track_start', self._player ) event.add_callback( self.on_rating_update, 'playback_track_end', self._player ) event.add_callback( self.on_rating_update, 'rating_changed') self.on_rating_update('rating_changed', None, None) def destroy(self): """ Cleanups """ if self._player is not None: event.remove_callback( self.on_rating_update, 'playback_track_start', self._player ) event.remove_callback( self.on_rating_update, 'playback_track_end', self._player ) event.remove_callback( self.on_rating_update, 'rating_changed') def do_get_property(self, property): """ Getter for custom properties """ if property.name == 'rating': return self._rating else: raise AttributeError('unkown property %s' % property.name) def do_set_property(self, property, value): """ Setter for custom properties """ if property.name == 'rating': if value == self._rating: value = 0 else: value = clamp(value, 0, settings.get_option('rating/maximum', 5)) self._rating = value self._image.set_from_pixbuf( icons.MANAGER.pixbuf_from_rating(value)) self.emit('rating-changed', value) else: raise AttributeError('unkown property %s' % property.name) def do_expose_event(self, event): """ Takes care of painting the focus indicator """ if self.is_focus(): self.style.paint_focus( window=self.window, state_type=self.get_state(), area=event.area, widget=self, detail='button', # Borrow style from GtkButton x=event.area.x, y=event.area.y, width=event.area.width, height=event.area.height ) gtk.EventBox.do_expose_event(self, event) def do_motion_notify_event(self, event): """ Temporarily updates the displayed rating """ if self.get_state() & gtk.STATE_INSENSITIVE: return allocation = self.get_allocation() maximum = settings.get_option('rating/maximum', 5) pixbuf_width = self._image.get_pixbuf().get_width() # Activate pixbuf if half of it has been passed threshold = (pixbuf_width / maximum) / 2 position = (event.x + threshold) / allocation.width rating = int(position * maximum) self._image.set_from_pixbuf( icons.MANAGER.pixbuf_from_rating(rating)) def do_leave_notify_event(self, event): """ Restores the original rating """ if self.get_state() & gtk.STATE_INSENSITIVE: return self._image.set_from_pixbuf( icons.MANAGER.pixbuf_from_rating(self._rating)) def do_button_release_event(self, event): """ Applies the selected rating """ if self.get_state() & gtk.STATE_INSENSITIVE: return allocation = self.get_allocation() maximum = settings.get_option('rating/maximum', 5) pixbuf_width = self._image.get_pixbuf().get_width() # Activate pixbuf if half of it has been passed threshold = (pixbuf_width / maximum) / 2 position = (event.x + threshold) / allocation.width self.props.rating = int(position * maximum) def do_key_press_event(self, event): """ Changes the rating on keyboard interaction * Alt+Up/Right: increases the rating * Alt+Down/Left: decreases the rating """ if self.get_state() & gtk.STATE_INSENSITIVE: return if not event.state & gtk.gdk.MOD1_MASK: return if event.keyval in (gtk.keysyms.Up, gtk.keysyms.Right): rating = self.props.rating + 1 elif event.keyval in (gtk.keysyms.Down, gtk.keysyms.Left): rating = self.props.rating - 1 else: return rating = max(0, rating) # Prevents unsetting rating if maximum is reached if rating == self.props.rating: return self.props.rating = rating def on_rating_update(self, event_type, sender, data): """ Updates the rating from the current track """ if self._player.current is not None: self._rating = self._player.current.get_rating() glib.idle_add(self._image.set_from_pixbuf, icons.MANAGER.pixbuf_from_rating(self._rating)) glib.idle_add(self.set_sensitive, True) else: glib.idle_add(self.set_sensitive, False) class RatingMenuItem(gtk.MenuItem): """ A menuitem containing a rating widget """ __gproperties__ = { 'rating': ( gobject.TYPE_INT, 'rating', 'The selected rating', 0, # Minimum 65535, # Maximum 0, # Default gobject.PARAM_READWRITE ) } __gsignals__ = { 'rating-changed': ( gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_INT,) ) } def __init__(self, rating=0, player=None): """ :param rating: the optional initial rating :type rating: int :param player: If not None, this rating widget will automatically update to reflect the rating of the current song :type player: xl.player.ExailePlayer """ gtk.MenuItem.__init__(self) box = gtk.HBox(spacing=6) box.pack_start(gtk.Label(_('Rating:')), False, False) self.rating_widget = RatingWidget(rating, player) box.pack_start(self.rating_widget, False, False) self.add(box) self.rating_widget.connect('rating-changed', self.on_rating_changed) def do_get_property(self, property): """ Getter for custom properties """ if property.name == 'rating': return self.rating_widget.props.rating else: raise AttributeError('unkown property %s' % property.name) def do_set_property(self, property, value): """ Setter for custom properties """ if property.name == 'rating': self.rating_widget.props.rating = value else: raise AttributeError('unkown property %s' % property.name) def do_motion_notify_event(self, event): """ Forwards the event to the rating widget """ allocation = self.rating_widget.get_allocation() if allocation.x < event.x < allocation.x + allocation.width: x, y = self.translate_coordinates(self.rating_widget, int(event.x), int(event.y)) event.x, event.y = float(x), float(y) self.rating_widget.emit('motion-notify-event', event) def do_leave_notify_event(self, event): """ Forwards the event to the rating widget """ self.rating_widget.emit('leave-notify-event', event) def do_button_release_event(self, event): """ Forwards the event to the rating widget """ allocation = self.rating_widget.get_allocation() if allocation.x < event.x < allocation.x + allocation.width: x, y = self.translate_coordinates(self.rating_widget, int(event.x), int(event.y)) event.x, event.y = float(x), float(y) self.rating_widget.emit('button-release-event', event) def on_rating_changed(self, widget, rating): """ Forwards the event """ self.emit('rating-changed', rating) class RatingCellRenderer(gtk.CellRendererPixbuf): """ A cell renderer drawing rating images and allowing for selection of ratings """ __gproperties__ = { 'rating': ( gobject.TYPE_INT, 'Rating', 'The selected rating', 0, # Minimum 65535, # Maximum 0, # Default gobject.PARAM_READWRITE ) } __gsignals__ = { 'rating-changed': ( gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_PYOBJECT, gobject.TYPE_INT) ) } def __init__(self): gtk.CellRendererPixbuf.__init__(self) self.props.mode = gtk.CELL_RENDERER_MODE_ACTIVATABLE self.props.xalign = 0 self.rating = 0 self.size_ratio = 1 def do_get_property(self, property): """ Getter for GObject properties """ if property.name == 'rating': return self.rating else: raise AttributeError('unkown property %s' % property.name) def do_set_property(self, property, value): """ Setter for GObject properties """ if property.name == 'rating': self.rating = value self.props.pixbuf = icons.MANAGER.pixbuf_from_rating(self.rating, self.size_ratio) else: raise AttributeError('unkown property %s' % property.name) def do_activate(self, event, widget, path, background_area, cell_area, flags): """ Checks if a button press event did occur within the clickable rating image area """ if event is None: # Keyboard activation return # Locate click area at zero click_area = gtk.gdk.Rectangle( x=0, y=self.props.ypad, width=self.props.pixbuf.get_width(), height=self.props.pixbuf.get_height() ) # Move event location relative to zero event.x -= cell_area.x + click_area.x event.y -= cell_area.y + click_area.y if 0 <= event.x <= click_area.width and \ 0 <= event.y <= click_area.height: fraction = event.x / click_area.width maximum = settings.get_option('rating/maximum', 5) rating = fraction * maximum + 1 self.emit('rating-changed', (int(path),), rating) def do_render(self, window, widget, background_area, cell_area, expose_area, flags): """ Renders the rating images (Overriden since gtk.CellRendererPixbuf fails at vertical padding) """ cell_area.width *= self.props.xalign cell_area.height *= self.props.yalign pixbuf_width = self.props.pixbuf.get_width() * self.props.xalign pixbuf_height = self.props.pixbuf.get_height() * self.props.yalign x = cell_area.x + cell_area.width - pixbuf_width y = cell_area.y + cell_area.height - pixbuf_height context = window.cairo_create() context.set_source_pixbuf(self.props.pixbuf, x, y) context.paint() dist/copy/xlgui/widgets/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260020730 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.153046933 exaile-3.3.2/xlgui/widgets/__init__.py0000644000000000000000000000000012233027260017656 0ustar00rootroot00000000000000dist/copy/xlgui/widgets/PaxHeaders.26361/menuitems.py0000644000175000017500000000012412233027260021177 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.565046947 exaile-3.3.2/xlgui/widgets/menuitems.py0000644000000000000000000002022712233027260020142 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. """ Collection of useful stock MenuItems for use with xlgui.widgets.menu """ # TODO: how should we document standardization of context's # selected-(items|tracks) ? import gio, glib, gtk from xl import common, player, settings, trax from xl.nls import gettext as _ from xlgui.widgets import rating, menu from xlgui import properties ### TRACKS ITEMS ### # These items act on a set of Tracks, by default 'selected-tracks' from # the parent's context, but custom accessors are allowed via the # get_tracks_func kwarg def generic_get_tracks_func(parent, context): return context.get('selected-tracks', []) def generic_get_trackscount_func(parent, context): return context.get('selection-count', 0) class RatingMenuItem(menu.MenuItem): """ A menu item displaying rating images and allowing for selection of ratings """ def __init__(self, name, after, get_tracks_func=generic_get_tracks_func): menu.MenuItem.__init__(self, name, self.factory, after) self.get_tracks_func = get_tracks_func self.rating_set = False def factory(self, menu, parent, context): item = rating.RatingMenuItem() item.connect('show', self.on_show, menu, parent, context) self._rating_changed_id = item.connect('rating-changed', self.on_rating_changed, menu, parent, context) return item @common.threaded def on_show(self, widget, menu, parent, context): """ Updates the menu item on show """ tracks = self.get_tracks_func(parent, context) rating = trax.util.get_rating_from_tracks(tracks) widget.disconnect(self._rating_changed_id) widget.props.rating = rating self._rating_changed_id = widget.connect('rating-changed', self.on_rating_changed, menu, parent, context) def on_rating_changed(self, widget, rating, menu, parent, context): """ Passes the 'rating-changed' signal """ rating_set = True tracks = self.get_tracks_func(parent, context) for track in tracks: track.set_rating(rating) def _enqueue_cb(widget, name, parent, context, get_tracks_func): tracks = get_tracks_func(parent, context) player.QUEUE.extend(tracks) def EnqueueMenuItem(name, after, get_tracks_func=generic_get_tracks_func): return menu.simple_menu_item(name, after, _("Enqueue"), gtk.STOCK_ADD, _enqueue_cb, callback_args=[get_tracks_func]) # TODO: move logic into (GUI?) playlist def _append_cb(widget, name, parent, context, get_tracks_func, replace=False): from xlgui import main page = main.get_selected_playlist() if not page: return pl = page.playlist if replace: pl.clear() offset = len(pl) tracks = get_tracks_func(parent, context) sort_by, reverse = page.view.get_sort_by() tracks = trax.sort_tracks(sort_by, tracks, reverse=reverse) pl.extend(tracks) if settings.get_option( 'playlist/append_menu_starts_playback', False ): if not player.PLAYER.current: page.view.play_track_at(offset, tracks[0]) def ReplaceCurrentMenuItem(name, after, get_tracks_func=generic_get_tracks_func): return menu.simple_menu_item(name, after, _("Replace Current"), None, _append_cb, callback_args=[get_tracks_func, True]) def AppendMenuItem(name, after, get_tracks_func=generic_get_tracks_func): return menu.simple_menu_item(name, after, _("Append to Current"), 'gtk-add', _append_cb, callback_args=[get_tracks_func]) def _properties_cb(widget, name, parent, context, get_tracks_func, dialog_parent): tracks = get_tracks_func(parent, context) if tracks: dialog = properties.TrackPropertiesDialog(dialog_parent, tracks) def PropertiesMenuItem(name, after, get_tracks_func=generic_get_tracks_func, dialog_parent=None): return menu.simple_menu_item(name, after, None, 'gtk-properties', _properties_cb, callback_args=[get_tracks_func, dialog_parent]) def _open_directory_cb(widget, name, parent, context, get_tracks_func): try: track = get_tracks_func(parent, context)[0] except IndexError: return common.open_file_directory(track.get_loc_for_io()) def OpenDirectoryMenuItem(name, after, get_tracks_func=generic_get_tracks_func): return menu.simple_menu_item(name, after, _("Open Directory"), 'gtk-open', _open_directory_cb, callback_args=[get_tracks_func]) def generic_trash_tracks_func(parent, context, tracks): for track in tracks: gfile = gio.File(track.get_loc_for_io()) gfile.trash() def generic_delete_tracks_func(parent, context, tracks): for track in tracks: gfile = gio.File(track.get_loc_for_io()) gfile.delete() def _on_trash_tracks(widget, name, parent, context, get_tracks_func, trash_tracks_func, delete_tracks_func): tracks = get_tracks_func(parent, context) try: trash_tracks_func(parent, context, tracks) except glib.GError: dialog = gtk.MessageDialog(type=gtk.MESSAGE_WARNING, message_format=_('The files cannot be moved to the Trash. ' 'Delete them permanently from the disk?')) dialog.add_buttons( gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_DELETE, gtk.RESPONSE_OK) dialog.set_alternative_button_order((gtk.RESPONSE_OK, gtk.RESPONSE_CANCEL)) if dialog.run() == gtk.RESPONSE_OK: delete_tracks_func(parent, context, tracks) dialog.destroy() def TrashMenuItem(name, after, get_tracks_func=generic_get_tracks_func, trash_tracks_func=generic_trash_tracks_func, delete_tracks_func=generic_delete_tracks_func): return menu.simple_menu_item(name, after, _('Move to Trash'), 'user-trash', _on_trash_tracks, callback_args=[get_tracks_func, trash_tracks_func, delete_tracks_func]) class ShowCurrentTrackMenuItem(menu.MenuItem): """ A menu item for jumping to the currently playing track (given a callback and accelerator) """ def __init__(self, name, after, callback=None, callback_args=[], accelerator=None): def factory(container, parent, context): item = gtk.ImageMenuItem(_("_Show Playing Track")) image = gtk.image_new_from_icon_name('gtk-jump-to-ltr', size=gtk.ICON_SIZE_MENU) item.set_image(image) if accelerator is not None: key, mods = gtk.accelerator_parse(accelerator) item.add_accelerator('activate', menu.FAKEACCELGROUP, key, mods, gtk.ACCEL_VISIBLE) if callback is not None: item.connect('activate', callback, name, parent, context, *callback_args) from xl import player; item.set_sensitive(player.PLAYER.get_state()!='stopped') return item menu.MenuItem.__init__(self, name, factory, after) ### END TRACKS ITEMS ### dist/copy/xlgui/widgets/PaxHeaders.26361/menu.py0000644000175000017500000000012412233027260020135 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.565046947 exaile-3.3.2/xlgui/widgets/menu.py0000644000000000000000000002403712233027260017103 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import glib import gobject import gtk from xl import common, providers from xl.nls import gettext as _ from xlgui import icons # Fake accel group so that menuitems can trick GTK into # showing accelerators in the menus. FAKEACCELGROUP = gtk.AccelGroup() def simple_separator(name, after): def factory(menu, parent, context): item = gtk.SeparatorMenuItem() return item item = MenuItem(name, factory, after=after) item._pos = 'last' return item def simple_menu_item(name, after, display_name=None, icon_name=None, callback=None, callback_args=[], submenu=None, accelerator=None, condition_fn=None): """ Factory function that should handle most cases for menus :param name: Internal name for the item. must be unique within the menu. :param after: List of ids which come before this item, this item will be placed after the lowest of these. :param display_name: Name as is to appear in the menu. :param icon_name: Name of the icon to display, or None for no icon. :param callback: The function to call when the menu item is activated. signature: callback(widget, name, parent, context) :param submenu: The gtk.Menu that is to be the submenu of this item :param accelerator: The keyboard shortcut to display next to the item. This does NOT bind the key, that mus tbe done separately by registering an Accelerator with providers. :param condition_fn: A function to call when the menu is displayed. If the function returns False, the menu item is not shown signature: condition_fn(name, parent, context) """ def factory(menu, parent, context): item = None if condition_fn is not None and not condition_fn(name, parent, context): return None if display_name is not None: if icon_name is not None: item = gtk.ImageMenuItem(display_name) image = gtk.image_new_from_icon_name(icon_name, size=gtk.ICON_SIZE_MENU) item.set_image(image) else: item = gtk.MenuItem(display_name) else: item = gtk.ImageMenuItem(icon_name) if submenu is not None: item.set_submenu(submenu) if accelerator is not None: key, mods = gtk.accelerator_parse(accelerator) item.add_accelerator('activate', FAKEACCELGROUP, key, mods, gtk.ACCEL_VISIBLE) if callback is not None: item.connect('activate', callback, name, parent, context, *callback_args) return item return MenuItem(name, factory, after=after) def check_menu_item(name, after, display_name, checked_func, callback, accelerator=None): def factory(menu, parent, context): item = gtk.CheckMenuItem(display_name) active = checked_func(name, parent, context) item.set_active(active) if accelerator is not None: key, mods = gtk.accelerator_parse(accelerator) item.add_accelerator('activate', FAKEACCELGROUP, key, mods, gtk.ACCEL_VISIBLE) item.connect('activate', callback, name, parent, context) return item return MenuItem(name, factory, after=after) def radio_menu_item(name, after, display_name, groupname, selected_func, callback): def factory(menu, parent, context): for index, item in enumerate(menu._items): if hasattr(item, 'groupname') and item.groupname == groupname: break else: index = None if index is not None: try: group_parent = menu.get_children()[index] if not isinstance(group_parent, gtk.RadioMenuItem): group_parent = None except IndexError: group_parent = None item = gtk.RadioMenuItem(label=display_name) active = selected_func(name, parent, context) item.set_active(active) if group_parent: item.set_group(group_parent) item.connect('activate', callback, name, parent, context) return item return RadioMenuItem(name, factory, after=after, groupname=groupname) class MenuItem(object): __slots__ = ['name', 'after', '_factory', '_pos'] def __init__(self, name, factory, after): self.name = name self.after = after self._factory = factory self._pos = 'normal' # Don't change this unless you have a REALLY good # reason to. after= is the 'supported' # method of ordering, this property is not # considered public api and may change # without warning. def factory(self, menu, parent, context): """ The factory function is called when the menu is shown, and should return a menu item. If it returns None, the item is not shown. """ return self._factory(menu, parent, context) class RadioMenuItem(MenuItem): __slots__ = ['groupname'] def __init__(self, name, factory, after, groupname): MenuItem.__init__(self, name, factory, after) self.groupname = groupname class Menu(gtk.Menu): """ Generic flexible menu with reliable menu item order and context handling """ def __init__(self, parent, context_func=None): """ :param parent: the parent for this menu :param context_func: a function for context retrieval """ gtk.Menu.__init__(self) self._parent = parent self._items = [] self.context_func = context_func self.connect('show', lambda *e: self.regenerate_menu()) # GTK gets unhappy if we remove the menu items before it's done with them. self.connect('hide', lambda *e: glib.idle_add(self.clear_menu)) self.placeholder = gtk.MenuItem('') def get_context(self): """ Retrieves the menu context which can contain various data :returns: {'key1': 'value1', ...} :rtype: dictionary """ if self.context_func is None: return {} else: return self.context_func(self._parent) def add_item(self, item): """ Adds a menu item and triggers reordering :param item: the menu item :type item: :class:`MenuItem` """ self._items.append(item) self.reorder_items() def remove_item(self, item): """ Removes a menu item :param item: the menu item :type item: :class:`MenuItem` """ self._items.remove(item) def clear_menu(self): """ Removes all menu items and submenus to prevent references sticking around due to saved contexts """ self.append(self.placeholder) children = self.get_children() for c in children: if c == self.placeholder: continue c.remove_submenu() self.remove(c) def reorder_items(self): """ Reorders all menu items """ pmap = {'first': 0, 'normal': 1, 'last': 2} items = [common.PosetItem(i.name, i.after, pmap[i._pos], value=i) \ for i in self._items] items = common.order_poset(items) self._items = [i.value for i in items] def regenerate_menu(self): """ Regenerates the menu by retrieving the context and calling the factory method of all menu items """ context = self.get_context() for item in self._items: subitem = item.factory(self, self._parent, context) if subitem is not None: self.append(subitem) self.show_all() if self.placeholder in self.get_children(): self.remove(self.placeholder) def popup(self, *args): """ Pops out the menu (Only if there are items to show) """ if len(self._items) > 0: if len(args) == 1: event = args[0] gtk.Menu.popup(self, None, None, None, event.button, event.time) else: gtk.Menu.popup(self, *args) class ProviderMenu(providers.ProviderHandler, Menu): def __init__(self, name, parent): providers.ProviderHandler.__init__(self, name) Menu.__init__(self, parent) for p in self.get_providers(): self.on_provider_added(p) def on_provider_added(self, provider): self.add_item(provider) def on_provider_removed(self, provider): self.remove_item(provider) dist/copy/xlgui/widgets/PaxHeaders.26361/info.py0000644000175000017500000000012412233027260020124 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.565046947 exaile-3.3.2/xlgui/widgets/info.py0000644000000000000000000006722512233027260017100 0ustar00rootroot00000000000000# -*- coding: utf-8 -*- # Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import glib import gtk import pango from xl import ( common, covers, event, formatter, main, settings, trax, xdg ) from xl.nls import gettext as _ import xlgui from xlgui import icons, playlist, guiutil from xlgui.widgets.playback import PlaybackProgressBar class TrackInfoPane(gtk.Alignment): """ Displays cover art and track data """ def __init__(self, player): gtk.Alignment.__init__(self, xscale=1, yscale=1) self.__player = player builder = gtk.Builder() builder.add_from_file(xdg.get_data_path( 'ui', 'widgets', 'track_info.ui')) info_box = builder.get_object('info_box') info_box.reparent(self) self.__auto_update = False self.__display_progress = False self.__formatter = formatter.TrackFormatter( _('$title\n' 'by $artist\n' 'from $album') ) self.__formatter.connect('notify::format', self.on_notify_format) self.__default_text = ('%s\n\n' % _('Not Playing')) self.__cover_size = None self.__timer = None self.__track = None self.cover_image = builder.get_object('cover_image') self.info_label = builder.get_object('info_label') self.action_area = builder.get_object('action_area') self.progress_box = builder.get_object('progress_box') self.playback_image = builder.get_object('playback_image') self.progressbar = PlaybackProgressBar(player) guiutil.gtk_widget_replace(builder.get_object('progressbar'), self.progressbar) self.clear() def destroy(self): """ Cleanups """ # Make sure to disconnect callbacks self.set_auto_update(False) gtk.Alignment.destroy(self) def get_auto_update(self): """ Gets whether the info pane shall be automatically updated or not :rtype: bool """ return self.__auto_update def set_auto_update(self, auto_update): """ Sets whether the info pane shall be automatically updated or not :param auto_update: enable or disable automatic updating :type auto_update: bool """ if auto_update != self.__auto_update: self.__auto_update = auto_update p_evts = ['playback_player_end', 'playback_track_start', 'playback_toggle_pause', 'playback_error'] events = ['track_tags_changed', 'cover_set', 'cover_removed'] if auto_update: for e in p_evts: event.add_callback(getattr(self, 'on_%s' % e), e, self.__player) for e in events: event.add_callback(getattr(self, 'on_%s' % e), e) self.set_track(self.__player.current) else: for e in p_evts: event.remove_callback(getattr(self, 'on_%s' % e), e, self.__player) for e in events: event.remove_callback(getattr(self, 'on_%s' % e), e) def get_cover_size(self): """ Gets the preferred cover size :rtype: int """ return self.__cover_size or \ settings.get_option('gui/cover_width', 100) def set_cover_size(self, cover_size): """ Overrides the cover size to display, set to None to use global default :param cover_size: the preferred cover size :type cover_size: int """ self.__cover_size = cover_size def get_default_text(self): """ Gets the default text displayed when the playback is stopped :rtype: string """ return self.__default_text def set_default_text(self, default_text): """ Sets the default text displayed when the playback is stopped :param default_text: the new default text :type default_text: string """ self.__default_text = default_text def get_display_progress(self): """ Returns whether the progress indicator is currently visible or not :rtype: bool """ return self.__display_progress def set_display_progress(self, display_progress): """ Shows or hides the progress indicator. The indicator will not be displayed if the currently displayed track is not playing. :param display_progress: Whether to show or hide the progress indicator :type display_progress: bool """ self.__display_progress = display_progress def get_info_format(self): """ Gets the current format used to display the track data :rtype: string """ return self.__formatter.props.format def set_info_format(self, format): """ Sets the format used to display the track data :param format: the format, see the documentation of :class:`string.Template` for details :type format: string """ self.__formatter.props.format = format def set_track(self, track): """ Updates the data displayed in the info pane :param track: A track to take the data from, clears the info pane if track is None :type track: :class:`xl.trax.Track` """ if track is None: self.clear() return self.__track = track self._set_track_cover(track) self.info_label.set_markup(self.__formatter.format( track, markup_escape=True)) if self.__display_progress: if track == self.__player.current and \ not self.__player.is_stopped(): stock_id = gtk.STOCK_MEDIA_PLAY if self.__player.is_paused(): stock_id = gtk.STOCK_MEDIA_PAUSE self.playback_image.set_from_stock(stock_id, gtk.ICON_SIZE_SMALL_TOOLBAR) self.__show_progress() else: self.__hide_progress() @common.threaded def _set_track_cover(self, track): """ Sets the track's cover image """ if self.__track != track: return image_data = covers.MANAGER.get_cover(track, set_only=True, use_default=True) size = self.get_cover_size() pixbuf = icons.MANAGER.pixbuf_from_data(image_data, (size, size)) glib.idle_add(self.cover_image.set_from_pixbuf, pixbuf) def clear(self): """ Resets the info pane """ size = self.get_cover_size() pixbuf = icons.MANAGER.pixbuf_from_data( covers.MANAGER.get_default_cover(), (size, size)) self.cover_image.set_from_pixbuf(pixbuf) self.info_label.set_markup(self.__default_text) if self.__display_progress: self.__hide_progress() self.__track = None def get_action_area(self): """ Retrieves the action area at the end of the pane :rtype: :class:`gtk.VBox` """ return self.action_area def __show_progress(self): """ Shows the progress area and enables updates of the progress bar """ self.progress_box.set_no_show_all(False) self.progress_box.set_property('visible', True) def __hide_progress(self): """ Hides the progress area and disables updates of the progress bar """ self.progress_box.set_property('visible', False) self.progress_box.set_no_show_all(True) def on_notify_format(self, formatter, format): """ Updates the displayed data after format changes """ if self.__track is not None: self.set_track(self.__track) def on_playback_player_end(self, event, player, track): """ Clears the info pane on playback end """ glib.idle_add(self.clear) def on_playback_track_start(self, event, player, track): """ Updates the info pane on track start """ glib.idle_add(self.set_track, track) def on_playback_toggle_pause(self, event, player, track): """ Updates the info pane on playback pause/resume """ glib.idle_add(self.set_track, track) def on_playback_error(self, event, player, message): """ Clears the info pane on playback errors """ glib.idle_add(self.clear) def on_track_tags_changed(self, event, track, tag): """ Updates the info pane on tag changes """ if self.__player is not None and \ not self.__player.is_stopped() and \ track is self.__track: glib.idle_add(self.set_track, track) def on_cover_set(self, event, covers, track): """ Updates the info pane on cover set """ if track is self.__track: glib.idle_add(self.set_track, track) def on_cover_removed(self, event, covers, track): """ Updates the info pane on cover removal """ if track is self.__track: glib.idle_add(self.set_track, track) # TODO: Use single info label and formatter class TrackListInfoPane(gtk.Alignment): """ Displays cover art and data about a list of tracks """ def __init__(self, display_tracklist=False): """ :param display_tracklist: Whether to display a short list of tracks """ gtk.Alignment.__init__(self) builder = gtk.Builder() builder.add_from_file(xdg.get_data_path( 'ui', 'widgets', 'tracklist_info.ui')) info_box = builder.get_object('info_box') info_box.reparent(self) self._display_tracklist = display_tracklist self.cover_image = builder.get_object('cover_image') self.album_label = builder.get_object('album_label') self.artist_label = builder.get_object('artist_label') if self._display_tracklist: self.tracklist_table = builder.get_object('tracklist_table') self.tracklist_table.set_no_show_all(False) self.tracklist_table.set_property('visible', True) self.total_label = builder.get_object('total_label') self.total_label.set_no_show_all(False) self.total_label.set_property('visible', True) self.rownumber = 1 self.pango_attributes = pango.AttrList() self.pango_attributes.insert( pango.AttrScale(pango.SCALE_SMALL, end_index=-1)) self.pango_attributes.insert( pango.AttrStyle(pango.STYLE_ITALIC, end_index=-1)) self.ellipse_pango_attributes = pango.AttrList() self.ellipse_pango_attributes.insert( pango.AttrWeight(pango.WEIGHT_BOLD, end_index=-1)) def set_tracklist(self, tracks): """ Updates the data displayed in the info pane :param tracks: A list of tracks to take the data from """ tracks = trax.util.sort_tracks(['album', 'tracknumber'], tracks) image_data = covers.MANAGER.get_cover(tracks[0], use_default=True) width = settings.get_option('gui/cover_width', 100) pixbuf = icons.MANAGER.pixbuf_from_data(image_data, (width, width)) self.cover_image.set_from_pixbuf(pixbuf) albums = [] artists = [] total_length = 0 for track in tracks: albums += [track.get_tag_display('album')] artists += [track.get_tag_display('artist')] total_length += float(track.get_tag_raw('__length')) # Make unique albums = set(albums) artists = set(artists) if len(albums) == 1: self.album_label.set_text(albums.pop()) else: self.album_label.set_text(_('Various')) if len(artists) == 1: self.artist_label.set_text(artists.pop()) else: self.artist_label.set_text(_('Various Artists')) if self._display_tracklist: track_count = len(tracks) # Leaves us with a maximum of three tracks to display tracks = tracks[:3] + [None] for track in tracks: self.__append_row(track) self.tracklist_table.show_all() total_duration = formatter.LengthTagFormatter.format_value( total_length, 'long') text = _('%(track_count)d in total (%(total_duration)s)') % { 'track_count': track_count, 'total_duration': total_duration } self.total_label.set_text(text) def clear(self): """ Resets the info pane """ pixbuf = icons.MANAGER.pixbuf_from_data( covers.MANAGER.get_default_cover()) self.cover_image.set_from_pixbuf(pixbuf) self.album_label.set_text('') self.artist_label.set_text('') if self._display_tracklist: items = self.tracklist_table.get_children() for item in items: self.tracklist_table.remove(item) self.rownumber = 1 self.total_label.set_text('') def __append_row(self, track): """ Appends a row to the internal track list table :param track: A track to build the row from, None to insert an ellipse """ if track is None: ellipse_label = gtk.Label('⋮') ellipse_label.set_attributes(self.ellipse_pango_attributes) self.tracklist_table.attach(ellipse_label, 1, 2, self.rownumber - 1, self.rownumber) else: tracknumber = track.get_tag_display('tracknumber') tracknumber = formatter.TrackNumberTagFormatter.format_value( tracknumber) tracknumber_label = gtk.Label(tracknumber) tracknumber_label.set_attributes(self.pango_attributes) tracknumber_label.props.xalign = 0 self.tracklist_table.attach(tracknumber_label, 0, 1, self.rownumber - 1, self.rownumber) title_label = gtk.Label(track.get_tag_display('title')) title_label.set_attributes(self.pango_attributes) self.tracklist_table.attach(title_label, 1, 2, self.rownumber - 1, self.rownumber) length = float(track.get_tag_display('__length')) length = formatter.LengthTagFormatter.format_value(length, 'short') length_label = gtk.Label(length) length_label.set_attributes(self.pango_attributes) length_label.props.xalign = 0.9 self.tracklist_table.attach(length_label, 2, 3, self.rownumber - 1, self.rownumber) self.rownumber += 1 class ToolTip(object): """ Custom tooltip class to allow for extended tooltip functionality """ def __init__(self, parent, widget): """ :param parent: the parent widget the tooltip should be attached to :param widget: the tooltip widget to be used for the tooltip """ if self.__class__.__name__ == 'ToolTip': raise TypeError("cannot create instance of abstract " "(non-instantiable) type `ToolTip'") self.__widget = widget self.__widget.unparent() # Just to be sure parent.set_has_tooltip(True) parent.connect('query-tooltip', self.on_query_tooltip) def on_query_tooltip(self, widget, x, y, keyboard_mode, tooltip): """ Puts the custom widget into the tooltip """ tooltip.set_custom(self.__widget) return True class TrackToolTip(TrackInfoPane, ToolTip): """ Track specific tooltip class, displays track data and progress indicators """ def __init__(self, parent, player): """ :param parent: the parent widget the tooltip should be attached to """ TrackInfoPane.__init__(self, player) ToolTip.__init__(self, parent, self) self.set_padding(6, 6, 6, 6) self.info_label.set_ellipsize(pango.ELLIPSIZE_NONE) def destroy(self): """ Cleanups """ TrackInfoPane.destroy(self) class TrackListToolTip(ToolTip): def __init__(self, parent, display_tracklist=False): """ :param parent: the parent widget the tooltip should be attached to :param display_tracklist: Whether to display a short list of tracks """ self.info_pane = TrackListInfoPane(display_tracklist) self.info_pane.set_padding(6, 6, 6, 6) ToolTip.__init__(self, parent, self.info_pane) def set_tracklist(self, tracks): self.info_pane.set_tracklist(tracks) def clear(self): self.info_pane.clear() class StatusbarTextFormatter(formatter.Formatter): """ A text formatter for status indicators """ def __init__(self, format): """ :param format: The initial format, see the documentation of string.Template for details :type format: string """ formatter.Formatter.__init__(self, format) self._substitutions = { 'collection_count': self.get_collection_count, 'playlist_count': self.get_playlist_count, 'playlist_duration': self.get_playlist_duration } def get_collection_count(self): """ Retrieves the collection count """ return _('%d in collection') % main.exaile().collection.get_count() def get_playlist_count(self, selection='none'): """ Retrieves the count of tracks in either the full playlist or the current selection :param selection: 'none' for playlist count only, 'override' for selection count if tracks are selected, playlist count otherwise, 'only' for selection count only :type selection: string """ page = xlgui.main.get_selected_page() if not isinstance(page, playlist.PlaylistPage): return '' playlist_count = len(page.playlist) selection_count = len(page.view.get_selected_tracks()) if selection == 'none': count = playlist_count text = _('%d showing') elif selection == 'override': if selection_count > 1: count = selection_count text = _('%d selected') else: count = playlist_count text = _('%d showing') elif selection == 'only': if selection_count > 1: count = selection_count text = _('%d selected') else: count = 0 else: raise ValueError('Invalid argument "%s" passed to parameter ' '"selection" for "playlist_count", possible arguments are ' '"none", "override" and "only"' % selection) if count == 0: return '' return text % count def get_playlist_duration(self, format='short', selection='none'): """ Retrieves the duration of all tracks in the playlist or within the selection :param format: Verbosity of the output Possible values are short, long or verbose yielding "1:02:42", "1h, 2m, 42s" or "1 hour, 2 minutes, 42 seconds" :type format: string :param selection: 'none' for playlist count only, 'override' for selection count if tracks are selected, playlist count otherwise, 'only' for selection count only :type selection: string """ page = xlgui.main.get_selected_page() if not isinstance(page, playlist.PlaylistPage): return '' playlist_duration = sum([t.get_tag_raw('__length') \ for t in page.playlist \ if t.get_tag_raw('__length')]) selection_tracks = page.view.get_selected_tracks() selection_count = len(selection_tracks) selection_duration = sum([t.get_tag_raw('__length') \ for t in selection_tracks \ if t.get_tag_raw('__length')]) if selection == 'none': duration = playlist_duration elif selection == 'override': if selection_count > 1: duration = selection_duration else: duration = playlist_duration elif selection == 'only': if selection_count > 1: duration = selection_duration else: duration = 0 else: raise ValueError('Invalid argument "%s" passed to parameter ' '"selection" for "playlist_duration", possible arguments are ' '"none", "override" and "only"' % selection) if duration == 0: return '' return formatter.LengthTagFormatter.format_value(duration, format) class Statusbar(object): """ Convenient access to multiple status labels """ def __init__(self, status_bar): """ Initialises the status bar """ # The first child of the status bar is a frame containing a label. We # create an HBox, pack it inside the frame, and move the label and other # widgets of the status bar into it. self.status_bar = status_bar self.formatter = StatusbarTextFormatter( settings.get_option('gui/statusbar_info_format', '${playlist_count:selection=override, suffix= }' '${playlist_duration:selection=override, format=long, prefix=(, suffix=)\, }' '$collection_count')) self.info_label = gtk.Label() self.info_label.props.xpad = 3 frame = self.status_bar.get_children()[0] box = frame.get_children()[0] try: box.pack_start(self.info_label, False) except AttributeError: # GTK < 2.20, thus box is the original label frame.remove(frame.get_children()[0]) frame.add(self.info_label) self.context_id = self.status_bar.get_context_id('status') self.message_ids = [] self.status_bar.set_app_paintable(True) self.status_bar.connect('expose-event', self.on_expose_event) def set_status(self, status, timeout=0): """ Sets the status message """ self.message_ids += [self.status_bar.push(self.context_id, status)] if timeout > 0: glib.timeout_add_seconds(timeout, self.clear_status) def clear_status(self): """ Clears the status message """ try: for message_id in self.message_ids: self.status_bar.remove_message(self.context_id, message_id) except AttributeError: for message_id in self.message_ids: self.status_bar.remove(self.context_id, message_id) del self.message_ids[:] self.message_ids = [] def update_info(self): """ Updates the info label text """ self.info_label.set_label(self.formatter.format()) def __get_grip_edge(self, widget): """ Taken from GTK source, retrieves the preferred edge for the resize grip """ if widget.get_direction() == gtk.TEXT_DIR_LTR: edge = gtk.gdk.WINDOW_EDGE_SOUTH_EAST else: edge = gtk.gdk.WINDOW_EDGE_SOUTH_WEST return edge def __get_grip_rect(self, widget): """ Taken from GTK source, retrieves the rectangle to draw the resize grip on """ width = height = 18 allocation = widget.get_allocation() width = min(width, allocation.width) height = min(height, allocation.height - widget.style.ythickness) if widget.get_direction() == gtk.TEXT_DIR_LTR: x = allocation.x + allocation.width - width else: x = allocation.x + widget.style.xthickness y = allocation.y + allocation.height - height return gtk.gdk.Rectangle(x, y, width, height) def on_expose_event(self, widget, event): """ Override required to make alpha transparency work properly """ if widget.get_has_resize_grip(): edge = self.__get_grip_edge(widget) rect = self.__get_grip_rect(widget) widget.style.paint_resize_grip( widget.window, widget.get_state(), event.area, widget, 'statusbar', edge, rect.x, rect.y, rect.width - widget.style.xthickness, rect.height - widget.style.ythickness ) frame = widget.get_children()[0] box = frame.get_children()[0] box.send_expose(event) # Bypass frame return True # TODO: Check if we can get a progress indicator in here somehow class Splash(object): """ A splash screen suitable for indicating startup; will automatically be destroyed after GUI startup """ def __init__(self): builder = gtk.Builder() builder.add_from_file(xdg.get_data_path('ui', 'splash.ui')) image = builder.get_object('splash_image') image.set_from_file(xdg.get_data_path('images', 'splash.png')) self.window = builder.get_object('SplashScreen') def destroy(self): """ Destroys the splash screen """ self.window.destroy() def show(self): """ Shows the splash screen """ # Show the splash screen without causing startup notification. gtk.window_set_auto_startup_notification(False) self.window.show_all() gtk.window_set_auto_startup_notification(True) # Ensure the splash is completely drawn before moving on while gtk.events_pending(): gtk.main_iteration() def hide(self): """ Hides the splash screen """ self.window.hide() dist/copy/xlgui/widgets/PaxHeaders.26361/playlist.py0000644000175000017500000000012412233027260021032 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.449046943 exaile-3.3.2/xlgui/widgets/playlist.py0000644000000000000000000014432012233027260017776 0ustar00rootroot00000000000000# Copyright (C) 2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import collections import glib import gobject import gtk import logging import os import pango import random import re from xl.nls import gettext as _ from xl.playlist import ( Playlist, PlaylistManager, is_valid_playlist, import_playlist, ) from xl import ( common, event, main, player, providers, settings, trax, xdg ) import xlgui from xlgui.widgets.common import AutoScrollTreeView from xlgui.widgets.notebook import NotebookPage from xlgui.widgets import ( dialogs, menu, menuitems, playlist_columns ) from xlgui import ( guiutil, icons ) logger = logging.getLogger(__name__) def default_get_playlist_func(parent, context): return player.QUEUE.current_playlist class ModesMenuItem(menu.MenuItem): """ A menu item having a submenu containing entries for shuffle modes. Defaults to adjusting the currently-playing playlist. """ modetype = '' display_name = "" def __init__(self, name, after, get_playlist_func=default_get_playlist_func): menu.MenuItem.__init__(self, name, None, after) self.get_playlist_func = get_playlist_func def factory(self, menu, parent, context): item = gtk.ImageMenuItem(self.display_name) image = gtk.image_new_from_icon_name('media-playlist-'+self.modetype, size=gtk.ICON_SIZE_MENU) item.set_image(image) submenu = self.create_mode_submenu(item) item.set_submenu(submenu) pl = self.get_playlist_func(parent, context) item.set_sensitive(pl != None) return item def create_mode_submenu(self, parent_item): names = getattr(Playlist, "%s_modes"%self.modetype) displays = getattr(Playlist, "%s_mode_names"%self.modetype) items = [] previous = None for name, display in zip(names, displays): after = [previous] if previous else [] item = menu.radio_menu_item(name, after, display, '%s_modes'%self.modetype, self.mode_is_selected, self.on_mode_activated) items.append(item) if previous is None: items.append(menu.simple_separator("sep", [items[-1].name])) previous = items[-1].name m = menu.Menu(parent_item) for item in items: m.add_item(item) return m def mode_is_selected(self, name, parent, context): pl = self.get_playlist_func(parent, context) if pl is None: return False return getattr(pl, "%s_mode"%self.modetype) == name def on_mode_activated(self, widget, name, parent, context): pl = self.get_playlist_func(parent, context) if pl is None: return False setattr(pl, "%s_mode"%self.modetype, name) class ShuffleModesMenuItem(ModesMenuItem): modetype = 'shuffle' display_name = _("Shuffle") class RepeatModesMenuItem(ModesMenuItem): modetype = 'repeat' display_name = _("Repeat") class DynamicModesMenuItem(ModesMenuItem): modetype = 'dynamic' display_name = _("Dynamic") class RemoveCurrentMenuItem(menu.MenuItem): """ Allows for removing the currently playing track from the current playlist """ def __init__(self, after, get_playlist_func=default_get_playlist_func): menu.MenuItem.__init__(self, 'remove-current', None, after) self.get_playlist_func = get_playlist_func def factory(self, menu, parent, context): """ Sets up the menu item """ item = gtk.ImageMenuItem(_('Remove Current Track From Playlist')) item.set_image(gtk.image_new_from_stock(gtk.STOCK_REMOVE, gtk.ICON_SIZE_MENU)) item.connect('activate', self.on_activate) if player.PLAYER.is_stopped(): item.set_sensitive(False) return item def on_activate(self, menuitem, playlist): """ Removes the currently playing track from the current playlist """ playlist = self.get_playlist_func() if playlist and playlist.current == player.PLAYER.current: del playlist[playlist.current_position] class RandomizeMenuItem(menu.MenuItem): """ A menu item which randomizes the full playlist or the current selection """ def __init__(self, after): menu.MenuItem.__init__(self, 'randomize', None, after) def factory(self, menu, parent, context): """ Sets up the menu item """ label = _('Randomize Playlist') if context['selection-count'] > 1: label = _('Randomize Selection') item = gtk.MenuItem(label) item.connect('activate', self.on_activate, parent, context) return item def on_activate(self, menuitem, parent, context): """ Randomizes the playlist or the selection """ positions = [path[0] for path in context['selected-paths']] # Randomize the full playlist if only one track was selected positions = positions if len(positions) > 1 else [] context['playlist'].randomize(positions) # do this in a function to avoid polluting the global namespace def __create_playlist_tab_context_menu(): smi = menu.simple_menu_item sep = menu.simple_separator items = [] items.append(smi('new-tab', [], _("New Playlist"), 'tab-new', lambda w, n, o, c: o.tab.notebook.create_new_playlist())) items.append(sep('new-tab-sep', ['new-tab'])) # TODO: These two probably shouldn't reach back to main.. def _save_playlist_cb(widget, name, page, context): main.exaile().playlists.save_playlist(page.playlist, overwrite=True) def _saveas_playlist_cb(widget, name, page, context): playlists = main.exaile().playlists name = dialogs.ask_for_playlist_name(playlists, page.playlist.name) if name is not None: page.set_name(name) playlists.save_playlist(page.playlist) items.append(smi('save', ['new-tab-sep'], None, 'gtk-save', _save_playlist_cb, condition_fn=lambda n, p, c: main.exaile().playlists.has_playlist_name(p.playlist.name))) items.append(smi('saveas', ['save'], None, 'gtk-save-as', _saveas_playlist_cb)) items.append(smi('rename', ['saveas'], _("Rename"), 'gtk-edit', lambda w, n, o, c: o.tab.start_rename())) items.append(smi('clear', ['rename'], None, 'gtk-clear', lambda w, n, o, c: o.playlist.clear())) items.append(sep('tab-close-sep', ['clear'])) items.append(smi('tab-close', ['tab-close-sep'], None, 'gtk-close', lambda w, n, o, c: o.tab.close())) for item in items: providers.register('playlist-tab-context-menu', item) __create_playlist_tab_context_menu() class PlaylistContextMenu(menu.ProviderMenu): def __init__(self, page): """ :param page: The :class:`PlaylistPage` this menu is associated with. """ menu.ProviderMenu.__init__(self, 'playlist-context-menu', page) def get_context(self): context = common.LazyDict(self._parent) context['playlist'] = lambda name, parent: parent.playlist context['selection-count'] = lambda name, parent: parent.get_selection_count() context['selected-paths'] = lambda name, parent: parent.get_selected_paths() context['selected-items'] = lambda name, parent: parent.get_selected_items() context['selected-tracks'] = lambda name, parent: parent.get_selected_tracks() return context class SPATMenuItem(menu.MenuItem): """ Menu item allowing for toggling playback stop after the selected track (SPAT) """ def __init__(self, name, after): menu.MenuItem.__init__(self, name, None, after) def factory(self, menu, parent, context): """ Generates the menu item """ display_name = _('Stop Playback After This Track') stock_id = gtk.STOCK_STOP if context['selected-items']: selection_position = context['selected-items'][0][0] if selection_position == parent.playlist.spat_position: display_name = _('Continue Playback After This Track') stock_id = gtk.STOCK_MEDIA_PLAY menuitem = gtk.ImageMenuItem(display_name) menuitem.set_image(gtk.image_new_from_stock(stock_id, gtk.ICON_SIZE_MENU)) menuitem.connect('activate', self.on_menuitem_activate, parent, context) return menuitem def on_menuitem_activate(self, menuitem, parent, context): """ Toggles the SPAT state """ selection_position = context['selected-items'][0][0] if selection_position == parent.playlist.spat_position: parent.playlist.spat_position = -1 else: parent.playlist.spat_position = selection_position def __create_playlist_context_menu(): smi = menu.simple_menu_item sep = menu.simple_separator items = [] items.append(menuitems.EnqueueMenuItem('enqueue', [])) items.append(SPATMenuItem('toggle-spat', [items[-1].name])) def rating_get_tracks_func(menuobj, parent, context): return [row[1] for row in context['selected-items']] items.append(menuitems.RatingMenuItem('rating', [items[-1].name])) # TODO: custom playlist item here items.append(sep('sep1', [items[-1].name])) def remove_tracks_cb(widget, name, playlistpage, context): tracks = context['selected-items'] playlist = playlistpage.playlist # If it's all one block, just delete it in one chunk for # maximum speed. positions = [t[0] for t in tracks] if positions == range(positions[0], positions[0]+len(positions)): del playlist[positions[0]:positions[0]+len(positions)] else: for position, track in tracks[::-1]: del playlist[position] items.append(smi('remove', [items[-1].name], None, gtk.STOCK_REMOVE, remove_tracks_cb)) items.append(RandomizeMenuItem([items[-1].name])) def playlist_menu_condition(name, parent, context): """ Returns True if the containing notebook's tab bar is hidden """ scrolledwindow = parent.get_parent() page = scrolledwindow.get_parent() return not page.tab.notebook.get_show_tabs() items.append(smi('playlist-menu', [items[-1].name], _('Playlist'), submenu=menu.ProviderMenu('playlist-tab-context-menu', None), condition_fn=playlist_menu_condition)) items.append(sep('sep2', [items[-1].name])) items.append(smi('properties', [items[-1].name], None, gtk.STOCK_PROPERTIES, lambda w, n, o, c: o.show_properties_dialog())) for item in items: providers.register('playlist-context-menu', item) __create_playlist_context_menu() class PlaylistPage(NotebookPage): """ Displays a playlist and associated controls. """ menu_provider_name = 'playlist-tab-context-menu' def __init__(self, playlist, player): """ :param playlist: The :class:`xl.playlist.Playlist` to display in this page. :param player: The :class:`xl.player._base.ExailePlayer` that this page is associated with :param queue: """ NotebookPage.__init__(self) self.playlist = playlist self.icon = None uifile = xdg.get_data_path("ui", "playlist.ui") self.builder = gtk.Builder() self.builder.add_from_file(uifile) playlist_page = self.builder.get_object("playlist_page") for child in playlist_page.get_children(): packing = playlist_page.query_child_packing(child) child.reparent(self) self.set_child_packing(child, *packing) self.shuffle_button = self.builder.get_object("shuffle_button") self.repeat_button = self.builder.get_object("repeat_button") self.dynamic_button = self.builder.get_object("dynamic_button") self.search_entry = guiutil.SearchEntry( self.builder.get_object("search_entry")) self.builder.connect_signals(self) self.playlist_window = self.builder.get_object("playlist_window") self.playlist_utilities_bar = self.builder.get_object( 'playlist_utilities_bar') self.view = PlaylistView(playlist, player) self.playlist_window.add(self.view) event.add_callback(self.on_mode_changed, 'playlist_shuffle_mode_changed', self.playlist, self.shuffle_button) event.add_callback(self.on_mode_changed, 'playlist_repeat_mode_changed', self.playlist, self.repeat_button) event.add_callback(self.on_mode_changed, 'playlist_dynamic_mode_changed', self.playlist, self.dynamic_button) event.add_callback(self.on_dynamic_playlists_provider_changed, 'dynamic_playlists_provider_added') event.add_callback(self.on_dynamic_playlists_provider_changed, 'dynamic_playlists_provider_removed') event.add_callback(self.on_option_set, 'gui_option_set') self.on_mode_changed(None, None, self.playlist.shuffle_mode, self.shuffle_button) self.on_mode_changed(None, None, self.playlist.repeat_mode, self.repeat_button) self.on_mode_changed(None, None, self.playlist.dynamic_mode, self.dynamic_button) self.on_dynamic_playlists_provider_changed(None, None, None) self.on_option_set('gui_option_set', settings, 'gui/playlist_utilities_bar_visible') self.view.connect('button-press-event', self.on_view_button_press_event) self.view.model.connect('row-changed', self.on_row_changed) self.show_all() ## NotebookPage API ## def focus(self): self.view.grab_focus() def get_name(self): return self.playlist.name def set_name(self, name): self.playlist.name = name self.name_changed() def get_search_entry(self): return self.search_entry ## End NotebookPage ## def on_shuffle_button_press_event(self, widget, event): self.__show_toggle_menu(Playlist.shuffle_modes, Playlist.shuffle_mode_names, self.on_shuffle_mode_set, 'shuffle_mode', widget, event) def on_shuffle_button_popup_menu(self, widget): self.__show_toggle_menu(Playlist.shuffle_modes, Playlist.shuffle_mode_names, self.on_shuffle_mode_set, 'shuffle_mode', widget, None) return True def on_repeat_button_press_event(self, widget, event): self.__show_toggle_menu(Playlist.repeat_modes, Playlist.repeat_mode_names, self.on_repeat_mode_set, 'repeat_mode', widget, event) def on_repeat_button_popup_menu(self, widget): self.__show_toggle_menu(Playlist.repeat_modes, Playlist.repeat_mode_names, self.on_repeat_mode_set, 'repeat_mode', widget, None) return True def on_dynamic_button_toggled(self, widget): if widget.get_active(): self.playlist.dynamic_mode = self.playlist.dynamic_modes[1] else: self.playlist.dynamic_mode = self.playlist.dynamic_modes[0] def on_search_entry_activate(self, entry): filter_string = entry.get_text() if filter_string == "": self.view.filter_tracks(None) else: self.view.filter_tracks(filter_string) def __show_toggle_menu(self, names, display_names, callback, attr, widget, event): """ Display the menu on the shuffle/repeat toggle buttons :param names: The list of names of the menu entries :param display_names: The list of names to display on each menu entry. :param callback: The function to call when a menu item is activated. It will be passed the name of the activated item. :param attr: The attribute of self.playlist to look at to determine the currently-selected item. :param widget: The ToggleButton to display the menu on :param event: The gtk event that triggered the menu display """ widget.set_active(True) menu = gtk.Menu() menu.connect('deactivate', self._mode_menu_set_toggle, widget, attr) prev = None mode = getattr(self.playlist, attr) for name, disp in zip(names, display_names): item = gtk.RadioMenuItem(prev, disp) if name == mode: item.set_active(True) item.connect('activate', callback, name) menu.append(item) if prev is None: menu.append(gtk.SeparatorMenuItem()) prev = item menu.show_all() if event is not None: menu.popup(None, None, guiutil.position_menu, event.button, event.time, (self.window, widget)) else: menu.popup(None, None, guiutil.position_menu, 0, 0, (self.window, widget)) menu.reposition() def _mode_menu_set_toggle(self, menu, button, name): mode = getattr(self.playlist, name) self.on_mode_changed(None, None, mode, button) def on_shuffle_mode_set(self, widget, mode): """ Callback for the Shuffle mode menu """ self.playlist.shuffle_mode = mode def on_repeat_mode_set(self, widget, mode): """ Callback for the Repeat mode menu """ self.playlist.repeat_mode = mode def on_mode_changed(self, evtype, playlist, mode, button): glib.idle_add(button.set_active, mode != 'disabled') def on_dynamic_playlists_provider_changed(self, evtype, manager, provider): """ Updates the dynamic button on provider changes """ providers_available = len(providers.get('dynamic_playlists')) > 0 sensitive = False tooltip_text = _('Requires plugins providing dynamic playlists') if providers_available: sensitive = True tooltip_text = _('Dynamically add similar tracks to the playlist') glib.idle_add(self.dynamic_button.set_sensitive, sensitive) glib.idle_add(self.dynamic_button.set_tooltip_text, tooltip_text) def on_option_set(self, evtype, settings, option): """ Handles option changes """ if option == 'gui/playlist_utilities_bar_visible': visible = settings.get_option(option, True) glib.idle_add(self.playlist_utilities_bar.set_visible, visible) glib.idle_add(self.playlist_utilities_bar.set_sensitive, visible) glib.idle_add(self.playlist_utilities_bar.set_no_show_all, not visible) def on_row_changed(self, model, path, iter): """ Sets the tab icon to reflect the playback status """ if path[0] == self.playlist.current_position: pixbuf = model.get_value(iter, 1) if pixbuf == model.clear_pixbuf: pixbuf = None self.tab.set_icon(pixbuf) # there's a race condition on playback stop at the end of # a playlist (current_position gets set before this is called), # so this sets the icon correctly. elif self.playlist.current_position == -1: self.tab.set_icon(None) def on_view_button_press_event(self, view, e): """ Displays the tab context menu upon clicks in the contained view """ selection = view.get_selection() path = view.get_path_at_pos(int(e.x), int(e.y)) # We only need the tree path if present path = path[0] if path else None if not path and e.type == gtk.gdk.BUTTON_PRESS and e.button == 3: self.tab_menu.popup(None, None, None, e.button, e.time) class PlaylistView(AutoScrollTreeView, providers.ProviderHandler): __gsignals__ = {} def __init__(self, playlist, player): AutoScrollTreeView.__init__(self) providers.ProviderHandler.__init__(self, 'playlist-columns') self.playlist = playlist self.player = player self.menu = PlaylistContextMenu(self) self.tabmenu = menu.ProviderMenu('playlist-tab-context-menu', self) self.dragging = False self.button_pressed = False # used by columns to determine whether # a notify::width event was initiated # by the user. self._insert_focusing = False self.set_fixed_height_mode(True) # MASSIVE speedup - don't disable this! self.set_rules_hint(True) self.set_enable_search(True) self.selection = self.get_selection() self.selection.set_mode(gtk.SELECTION_MULTIPLE) self._filter_matcher = None self._setup_columns() self.columns_changed_id = self.connect("columns-changed", self.on_columns_changed) self.targets = [("exaile-index-list", gtk.TARGET_SAME_APP, 0), ("text/uri-list", 0, 0)] self.drag_source_set(gtk.gdk.BUTTON1_MASK, self.targets, gtk.gdk.ACTION_COPY|gtk.gdk.ACTION_MOVE) self.drag_dest_set(gtk.DEST_DEFAULT_ALL, self.targets, gtk.gdk.ACTION_COPY|gtk.gdk.ACTION_DEFAULT| gtk.gdk.ACTION_MOVE) event.add_callback(self.on_option_set, "gui_option_set") event.add_callback(self.on_playback_start, "playback_track_start", self.player) self.connect("cursor-changed", self.on_cursor_changed ) self.connect("row-activated", self.on_row_activated) self.connect("key-press-event", self.on_key_press_event) self.connect("drag-begin", self.on_drag_begin) self.connect("drag-drop", self.on_drag_drop) self.connect("drag-data-get", self.on_drag_data_get) self.connect("drag-data-received", self.on_drag_data_received) self.connect("drag-data-delete", self.on_drag_data_delete) self.connect("drag-end", self.on_drag_end) self.connect("drag-motion", self.on_drag_motion) def filter_tracks(self, filter_string): ''' Only show tracks that match the filter. If filter is None, then clear any existing filters. The filter will search any currently enabled columns AND the default columns. ''' if filter_string is None: self._filter_matcher = None self.modelfilter.refilter() else: # Merge default columns and currently enabled columns keyword_tags = set(playlist_columns.DEFAULT_COLUMNS + [c.name for c in self.get_columns()]) self._filter_matcher = trax.TracksMatcher(filter_string, case_sensitive=False, keyword_tags=keyword_tags) logger.debug("Filtering playlist '%s' by '%s'." % (self.playlist.name, filter_string)) self.modelfilter.refilter() logger.debug("Filtering playlist '%s' by '%s' completed." % (self.playlist.name, filter_string)) def get_selection_count(self): ''' Returns the number of items currently selected in the playlist. Prefer this to len(get_selected_tracks()) et al if you will discard the actual track list ''' return self.get_selection().count_selected_rows() def get_selected_tracks(self): """ Returns a list of :class:`xl.trax.Track` which are currently selected in the playlist. """ return [x[1] for x in self.get_selected_items()] def get_selected_paths(self): """ Returns a list of pairs of treepaths which are currently selected in the playlist. The treepaths are returned for the base model, so they are indices that can be used with the playlist currently associated with this view. """ selection = self.get_selection() model, paths = selection.get_selected_rows() if isinstance(model, gtk.TreeModelFilter): paths = [model.convert_path_to_child_path(path) for path in paths] return paths def get_selected_items(self): """ Returns a list of pairs of indices and :class:`xl.trax.Track` which are currently selected in the playlist. The indices can be used with the playlist currently associated with this view. """ selection = self.get_selection() model, paths = selection.get_selected_rows() try: if isinstance(model, gtk.TreeModelFilter): tracks = [(model.convert_path_to_child_path(path)[0], model.get_value(model.get_iter(path), 0)) for path in paths] else: tracks = [(path[0], model.get_value(model.get_iter(path), 0)) for path in paths] except TypeError: #one of the paths was invalid return [] return tracks def get_sort_column(self): for col in self.get_columns(): if col.get_sort_indicator(): return col return None def get_sort_by(self): sortcol = self.get_sort_column() if sortcol: reverse = sortcol.get_sort_order() == gtk.SORT_DESCENDING sort_by = [sortcol.name] + list(common.BASE_SORT_TAGS) else: reverse = False sort_by = list(common.BASE_SORT_TAGS) return (sort_by, reverse) def play_track_at(self, position, track): ''' When called, this will begin playback of a track at a given position in the internal playlist ''' self._play_track_at(position, track) def _play_track_at(self, position, track, on_activated=False): '''Internal API''' if not settings.get_option('playlist/enqueue_by_default', False) or \ (self.playlist is self.player.queue and on_activated): self.playlist.set_current_position(position) self.player.queue.set_current_playlist(self.playlist) self.player.queue.play(track=track) elif self.playlist is not self.player.queue: self.player.queue.append(track) def _setup_columns(self): columns = settings.get_option('gui/columns', playlist_columns.DEFAULT_COLUMNS) provider_names = [p.name for p in providers.get('playlist-columns')] columns = [name for name in columns if name in provider_names] if not columns: columns = playlist_columns.DEFAULT_COLUMNS # FIXME: this is kinda ick because of supporting both models #self.model.columns = columns # TODO: What is the fixme talking about? self.model = PlaylistModel(self.playlist, columns, self.player) self.model.connect('row-inserted', self.on_row_inserted) self.set_model(self.model) self._setup_filter() font = settings.get_option('gui/playlist_font', None) if font is not None: font = pango.FontDescription(font) for position, column in enumerate(columns): position += 2 # offset for pixbuf column playlist_column = providers.get_provider( 'playlist-columns', column)(self, position, self.player, font) playlist_column.connect('clicked', self.on_column_clicked) self.append_column(playlist_column) header = playlist_column.get_widget() header.show() header.get_ancestor(gtk.Button).connect('button-press-event', self.on_header_button_press) header.get_ancestor(gtk.Button).connect('key-press-event', self.on_header_key_press_event) def _setup_filter(self): '''Call this anytime after you call set_model()''' self.modelfilter = self.get_model().filter_new() self.modelfilter.set_visible_func(self.modelfilter_visible_func) self.set_model(self.modelfilter) if self._filter_matcher is not None: self.modelfilter.refilter() def _refresh_columns(self): selection = self.get_selection() info = selection.get_selected_rows() # grab the first visible raw of the treeview firstpath = self.get_path_at_pos(4,4) topindex = None if firstpath: topindex = firstpath[0][0] self.disconnect(self.columns_changed_id) columns = self.get_columns() for col in columns: self.remove_column(col) self._setup_columns() self.columns_changed_id = self.connect("columns-changed", self.on_columns_changed) self.queue_draw() if firstpath: self.scroll_to_cell(topindex) if info: for path in info[1]: selection.select_path(path) def on_header_button_press(self, widget, event): if event.button == 3: m = menu.ProviderMenu('playlist-columns-menu', self) m.popup(None, None, None, event.button, event.time) return True def on_columns_changed(self, widget): columns = [c.name for c in self.get_columns()] if columns != settings.get_option('gui/columns', []): settings.set_option('gui/columns', columns) def on_column_clicked(self, column): order = None for col in self.get_columns(): if col.name == column.name: order = column.get_sort_order() if order == gtk.SORT_ASCENDING: order = gtk.SORT_DESCENDING else: order = gtk.SORT_ASCENDING col.set_sort_indicator(True) col.set_sort_order(order) else: col.set_sort_indicator(False) col.set_sort_order(gtk.SORT_DESCENDING) reverse = order == gtk.SORT_DESCENDING self.playlist.sort([column.name] + list(common.BASE_SORT_TAGS), reverse=reverse) def on_option_set(self, typ, obj, data): if data == "gui/columns" or data == 'gui/playlist_font': glib.idle_add(self._refresh_columns, priority=glib.PRIORITY_DEFAULT) def on_playback_start(self, type, player, track): if player.queue.current_playlist == self.playlist and \ player.current == self.playlist.current and \ settings.get_option('gui/ensure_visible', True): glib.idle_add(self.scroll_to_current) def scroll_to_current(self): position = self.playlist.current_position if position >= 0: path = (position,) self.scroll_to_cell(path) self.set_cursor(path) def on_cursor_changed(self, widget): context = common.LazyDict(self) context['selection-count'] = lambda name, parent: parent.get_selection_count() context['selected-items'] = lambda name, parent: parent.get_selected_items() context['selected-tracks'] = lambda name, parent: parent.get_selected_tracks() event.log_event( 'playlist_cursor_changed', self, context) def on_row_activated(self, *args): try: position, track = self.get_selected_items()[0] except IndexError: return self._play_track_at(position, track, True) def on_row_inserted(self, model, path, iter): ''' When something is inserted into the playlist, focus on it. If there are multiple things inserted, focus only on the first. ''' def _set_cursor(): self.set_cursor(path) self._insert_focusing = False if not self._insert_focusing: self._insert_focusing = True glib.idle_add(_set_cursor) def do_button_press_event(self, e): """ Adds some custom selection work to 1) unselect all rows if clicking an empty area, 2) updating the selection upon right click and 3) popping up the context menu upon right click Also sets the internal state for button pressed Taken from the following sources: * thunar_details_view_button_press_event() of thunar-details-view.c * MultiDragTreeView.__button_press/__button.release of quodlibet/qltk/views.py """ self.button_pressed = True self.grab_focus() selection = self.get_selection() path = self.get_path_at_pos(int(e.x), int(e.y)) # We only need the tree path if present path = path[0] if path else None # We unselect all selected items if the user clicks on an empty # area of the treeview and no modifier key is active if not e.state & gtk.accelerator_get_default_mod_mask() and not path: selection.unselect_all() if path and e.type == gtk.gdk.BUTTON_PRESS: # Prevent unselection of all except the clicked item on left # clicks, required to preserve the selection for DnD if e.button == 1 and not e.state & gtk.accelerator_get_default_mod_mask() and \ selection.path_is_selected(path): selection.set_select_function(lambda *args: False) # Open the context menu on right clicks if e.button == 3: # Select the path on which the user clicked if not selected yet if not selection.path_is_selected(path): # We don't unselect all other items if Control is active if not e.state & gtk.gdk.CONTROL_MASK: selection.unselect_all() selection.select_path(path) self.menu.popup(None, None, None, e.button, e.time) return True return gtk.TreeView.do_button_press_event(self, e) def do_button_release_event(self, e): """ Unsets the internal state for button press """ self.button_pressed = False # Restore regular selection behavior in any case self.get_selection().set_select_function(lambda *args: True) return gtk.TreeView.do_button_release_event(self, e) def on_key_press_event(self, widget, event): if event.keyval == gtk.keysyms.Menu: self.menu.popup(None, None, None, 0, event.time) return True elif event.keyval == gtk.keysyms.Delete: indexes = [x[0] for x in self.get_selected_paths()] if indexes and indexes == range(indexes[0], indexes[0]+len(indexes)): del self.playlist[indexes[0]:indexes[0]+len(indexes)] else: for i in indexes[::-1]: del self.playlist[i] def on_header_key_press_event(self, widget, event): if event.keyval == gtk.keysyms.Menu: # Open context menu for selecting visible columns m = menu.ProviderMenu('playlist-columns-menu', self) m.popup(None, None, None, 0, event.time) return True ### DND handlers ### ## Source def on_drag_begin(self, widget, context): """ Activates the dragging state """ # TODO: set drag icon self.dragging = True def on_drag_data_get(self, widget, context, selection, info, etime): """ Stores indices and URIs of the selected items in the drag selection """ if selection.target == "exaile-index-list": positions = self.get_selected_paths() if positions: s = ",".join(str(i[0]) for i in positions) selection.set(selection.target, 8, s) elif selection.target == "text/uri-list": tracks = self.get_selected_tracks() uris = trax.util.get_uris_from_tracks(tracks) selection.set_uris(uris) def on_drag_data_delete(self, widget, context): """ Stops the default handler from running, all processing occurs in the drag-data-received handler """ self.stop_emission('drag-data-delete') def on_drag_end(self, widget, context): """ Deactivates the dragging state """ self.dragging = False ## Dest def on_drag_drop(self, widget, context, x, y, etime): """ Always allows processing of drop operations """ return True def on_drag_data_received(self, widget, context, x, y, selection, info, etime): """ Builds a list of tracks either from internal indices or external URIs and inserts or appends them to the playlist """ # Stop default handler from running self.stop_emission('drag-data-received') drop_info = self.get_dest_row_at_pos(x, y) if drop_info: path, position = drop_info model = self.get_model() if isinstance(model, gtk.TreeModelFilter): path = model.convert_path_to_child_path(path) insert_position = path[0] if position in (gtk.TREE_VIEW_DROP_AFTER, gtk.TREE_VIEW_DROP_INTO_OR_AFTER): insert_position += 1 else: insert_position = -1 tracks = [] if selection.target == "exaile-index-list": positions = [int(x) for x in selection.data.split(",")] tracks = common.MetadataList() source_playlist_view = context.get_source_widget() playlist = self.playlist # Get the playlist of the if source_playlist_view is not self: playlist = source_playlist_view.playlist # TODO: this can probably be made more-efficient for i in positions: tracks.extend(playlist[i:i+1]) # Insert at specific position if possible if insert_position >= 0: self.playlist[insert_position:insert_position] = tracks if source_playlist_view is self: # Update position for tracks after the insert position for i, position in enumerate(positions[:]): if position >= insert_position: position += len(tracks) positions[i] = position else: # Otherwise just append the tracks self.playlist.extend(tracks) # Remove tracks from the source playlist if moved if context.action == gtk.gdk.ACTION_MOVE: for i in positions[::-1]: del playlist[i] elif selection.target == "text/uri-list": uris = selection.get_uris() tracks = [] for uri in uris: if is_valid_playlist(uri): tracks.extend(import_playlist(uri)) else: tracks.extend(trax.get_tracks_from_uri(uri)) sort_by, reverse = self.get_sort_by() tracks = trax.sort_tracks(sort_by, tracks, reverse=reverse) if insert_position >= 0: self.playlist[insert_position:insert_position] = tracks else: self.playlist.extend(tracks) delete = context.action == gtk.gdk.ACTION_MOVE context.finish(True, delete, etime) scroll_when_appending_tracks = settings.get_option( 'gui/scroll_when_appending_tracks', False) if scroll_when_appending_tracks and tracks: self.scroll_to_cell(self.playlist.index(tracks[-1])) def on_drag_motion(self, widget, context, x, y, etime): """ Makes sure tracks can only be inserted before or after tracks and sets the drop action to move or copy depending on target and user interaction (e.g. Ctrl key) """ drop_info = self.get_dest_row_at_pos(x, y) if not drop_info: return False path, position = drop_info if position == gtk.TREE_VIEW_DROP_INTO_OR_BEFORE: position = gtk.TREE_VIEW_DROP_BEFORE elif position == gtk.TREE_VIEW_DROP_INTO_OR_AFTER: position = gtk.TREE_VIEW_DROP_AFTER self.set_drag_dest_row(path, position) action = gtk.gdk.ACTION_MOVE x, y, modifier = self.window.get_pointer() target = self.drag_dest_find_target(context, self.drag_dest_get_target_list()) if modifier & gtk.gdk.CONTROL_MASK or target == 'text/uri-list': action = gtk.gdk.ACTION_COPY context.drag_status(action, etime) return True def show_properties_dialog(self): from xlgui import properties tracks = self.get_selected_tracks() current_position = 0 # If only one track is selected, we expand `tracks` to include all # tracks in the playlist. if len(tracks) == 1: tracks = self.playlist[:] model = self.get_model() path, column = self.get_cursor() # If the model has been placed within a filter model, # convert the path to the path of the real model if isinstance(model, gtk.TreeModelFilter): path = model.convert_path_to_child_path(path) current_position = path[0] with_extras = True else: with_extras = False if tracks: dialog = properties.TrackPropertiesDialog(None, tracks, current_position, with_extras) def on_provider_removed(self, provider): """ Called when a column provider is removed """ columns = settings.get_option('gui/columns') if provider.name in columns: columns.remove(provider.name) settings.set_option('gui/columns', columns) def modelfilter_visible_func(self, model, iter): if self._filter_matcher is not None: track = model.get_value(iter, 0) return self._filter_matcher.match(trax.SearchResultTrack(track)) return True class PlaylistModel(gtk.ListStore): def __init__(self, playlist, columns, player): gtk.ListStore.__init__(self, int) # real types are set later self.playlist = playlist self.columns = columns self.player = player self.coltypes = [object, gtk.gdk.Pixbuf] + [providers.get_provider('playlist-columns', c).datatype for c in columns] self.set_column_types(*self.coltypes) self._redraw_timer = None self._redraw_queue = [] event.add_callback(self.on_tracks_added, "playlist_tracks_added", playlist) event.add_callback(self.on_tracks_removed, "playlist_tracks_removed", playlist) event.add_callback(self.on_current_position_changed, "playlist_current_position_changed", playlist) event.add_callback(self.on_spat_position_changed, "playlist_spat_position_changed", playlist) event.add_callback(self.on_playback_state_change, "playback_track_start", self.player) event.add_callback(self.on_playback_state_change, "playback_track_end", self.player) event.add_callback(self.on_playback_state_change, "playback_player_pause", self.player) event.add_callback(self.on_playback_state_change, "playback_player_resume", self.player) event.add_callback(self.on_track_tags_changed, "track_tags_changed") event.add_callback(self.on_option_set, "gui_option_set") self._setup_icons() self.on_tracks_added(None, self.playlist, enumerate(self.playlist)) # populate the list def _setup_icons(self): self.play_pixbuf = icons.ExtendedPixbuf( icons.MANAGER.pixbuf_from_stock(gtk.STOCK_MEDIA_PLAY)) self.pause_pixbuf = icons.ExtendedPixbuf( icons.MANAGER.pixbuf_from_stock(gtk.STOCK_MEDIA_PAUSE)) self.stop_pixbuf = icons.ExtendedPixbuf( icons.MANAGER.pixbuf_from_stock(gtk.STOCK_STOP)) stop_overlay_pixbuf = self.stop_pixbuf.scale_simple( dest_width=self.stop_pixbuf.get_width() / 2, dest_height=self.stop_pixbuf.get_height() / 2, interp_type=gtk.gdk.INTERP_BILINEAR) stop_overlay_pixbuf = stop_overlay_pixbuf.move( offset_x=stop_overlay_pixbuf.get_width(), offset_y=stop_overlay_pixbuf.get_height(), resize=True) self.play_stop_pixbuf = self.play_pixbuf & stop_overlay_pixbuf self.pause_stop_pixbuf = self.pause_pixbuf & stop_overlay_pixbuf self.clear_pixbuf = self.play_pixbuf.copy() self.clear_pixbuf.fill(0x00000000) font = settings.get_option('gui/playlist_font', None) if font is not None: # get default font default = float(gtk.widget_get_default_style().font_desc.get_size()) new_font = pango.FontDescription(font).get_size() # scale pixbuf accordingly t = gtk.gdk.INTERP_BILINEAR s = max(int(self.play_pixbuf.get_width() * (new_font/default)),1) self.play_pixbuf = self.play_pixbuf.scale_simple(s,s,t) self.pause_pixbuf = self.pause_pixbuf.scale_simple(s,s,t) self.stop_pixbuf = self.stop_pixbuf.scale_simple(s,s,t) self.play_stop_pixbuf = self.play_stop_pixbuf.scale_simple(s,s,t) self.pause_stop_pixbuf = self.pause_stop_pixbuf.scale_simple(s,s,t) self.clear_pixbuf = self.clear_pixbuf.scale_simple(s,s,t) def _refresh_icons(self): self._setup_icons() for i,row in enumerate(self): row[1] = self.icon_for_row(i) def on_option_set(self, typ, obj, data): if data == "gui/playlist_font": glib.idle_add(self._refresh_icons) def track_to_row_data(self, track, position): return [track, self.icon_for_row(position)] + [providers.get_provider('playlist-columns', name).formatter.format(track) for name in self.columns] def icon_for_row(self, row): # TODO: we really need some sort of global way to say "is this playlist/pos the current one? if self.playlist.current_position == row and \ self.playlist[row] == self.player.current and \ self.playlist == self.player.queue.current_playlist: state = self.player.get_state() spat = self.playlist.spat_position == row if state == 'playing': if spat: return self.play_stop_pixbuf else: return self.play_pixbuf elif state == 'paused': if spat: return self.pause_stop_pixbuf else: return self.pause_pixbuf if self.playlist.spat_position == row: return self.stop_pixbuf return self.clear_pixbuf def update_icon(self, position): iter = self.iter_nth_child(None, position) if iter is not None: self.set(iter, 1, self.icon_for_row(position)) ### Event callbacks to keep the model in sync with the playlist ### def on_tracks_added(self, event_type, playlist, tracks): for position, track in tracks: self.insert(position, self.track_to_row_data(track, position)) def on_tracks_removed(self, event_type, playlist, tracks): tracks.reverse() for position, track in tracks: self.remove(self.iter_nth_child(None, position)) def on_current_position_changed(self, event_type, playlist, positions): for position in positions: if position < 0: continue glib.idle_add(self.update_icon, position) def on_spat_position_changed(self, event_type, playlist, positions): spat_position = min(positions) for position in xrange(spat_position, len(self)): glib.idle_add(self.update_icon, position) def on_playback_state_change(self, event_type, player_obj, track): position = self.playlist.current_position if position < 0 or position >= len(self): return glib.idle_add(self.update_icon, position) def on_track_tags_changed(self, type, track, tag): if not track or not \ settings.get_option('gui/sync_on_tag_change', True) or not\ tag in self.columns: return if self._redraw_timer: glib.source_remove(self._redraw_timer) self._redraw_queue.append( track ) self._redraw_timer = glib.timeout_add(100, self._on_track_tags_changed) def _on_track_tags_changed(self): tracks = {} for track in self._redraw_queue: tracks[track.get_loc_for_io()] = track self._redraw_queue = [] for row in self: track = tracks.get( row[0].get_loc_for_io() ) if track is not None: track_data = [providers.get_provider('playlist-columns', name).formatter.format(track) for name in self.columns] for i in range(len(track_data)): row[2+i] = track_data[i] dist/copy/xlgui/widgets/PaxHeaders.26361/common.py0000644000175000017500000000012412233027260020461 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.517046945 exaile-3.3.2/xlgui/widgets/common.py0000644000000000000000000004674212233027260017436 0ustar00rootroot00000000000000# Copyright (C) 2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. """ Shared GUI widgets """ import gio import glib import gobject import gtk from urllib2 import urlparse from xl import ( common, covers, playlist, settings, trax ) from xlgui.guiutil import get_workarea_size from xlgui import icons class AttachedWindow(gtk.Window): """ A window attachable to arbitrary widgets, follows the movement of its parent """ __gsignals__ = {'show': 'override'} def __init__(self, parent): gtk.Window.__init__(self, gtk.WINDOW_TOPLEVEL) self.set_decorated(False) self.props.skip_taskbar_hint = True self.set_keep_above(True) self.realize() self.window.set_functions(gtk.gdk.FUNC_RESIZE) # Only allow resizing self.parent_widget = parent realize_id = self.parent_widget.connect('realize', self.on_parent_realize) self.parent_widget.set_data('%s_realize_id' % id(self), realize_id) def update_location(self): """ Makes sure the window is always fully visible """ workarea = gtk.gdk.Rectangle(0, 0, *get_workarea_size()) parent = self.parent_widget.allocation toplevel_position = self.parent_widget.get_toplevel().get_position() # Use absolute screen position parent.x += toplevel_position[0] parent.y += toplevel_position[1] if workarea.width - parent.x < self.allocation.width: # Parent rightmost x = parent.x + parent.width - self.allocation.width else: # Parent leftmost x = parent.x if workarea.height - parent.y < self.allocation.height: # Parent at bottom y = parent.y - self.allocation.height else: # Parent at top y = parent.y + parent.height self.move(x, y) def do_show(self): """ Updates the location upon show """ gtk.Window.do_show(self) self.update_location() def on_parent_realize(self, parent): """ Prepares the window to follow its parent window """ realize_id = parent.get_data('%s_realize_id' % id(self)) if realize_id is not None: parent.disconnect(realize_id) parent_window = parent.get_toplevel() parent_window.connect('configure-event', self.on_parent_window_configure_event) parent_window.connect('window-state-event', self.on_parent_window_state_event) def on_parent_window_configure_event(self, *e): """ Handles movement of the topmost window """ if self.props.visible: self.update_location() def on_parent_window_state_event(self, window, e): """ Handles state changes of the topmost window """ if e.changed_mask & gtk.gdk.WINDOW_STATE_ICONIFIED: self.hide() class AutoScrollTreeView(gtk.TreeView): """ A TreeView which handles autoscrolling upon DnD operations """ def __init__(self): gtk.TreeView.__init__(self) self._SCROLL_EDGE_SIZE = 15 # As in gtktreeview.c self.connect("drag-motion", self._on_drag_motion) self.connect("drag-leave", self._on_drag_leave) def _on_drag_motion(self, widget, context, x, y, timestamp): """ Initiates automatic scrolling """ if not self.get_data('autoscroll_timeout_id'): self.set_data('autoscroll_timeout_id', glib.timeout_add(50, self._on_autoscroll_timeout)) def _on_drag_leave(self, widget, context, timestamp): """ Stops automatic scrolling """ autoscroll_timeout_id = self.get_data('autoscroll_timeout_id') if autoscroll_timeout_id: glib.source_remove(autoscroll_timeout_id) self.set_data('autoscroll_timeout_id', None) def _on_autoscroll_timeout(self): """ Automatically scrolls during drag operations Adapted from gtk_tree_view_vertical_autoscroll() in gtktreeview.c """ x, y, modifier = self.props.window.get_pointer() x, y = self.widget_to_tree_coords(x, y) visible_rect = self.get_visible_rect() # Calculate offset from the top edge offset = y - (visible_rect.y + 3 * self._SCROLL_EDGE_SIZE) # 3: Scroll faster upwards # Check if we are near the bottom edge instead if offset > 0: # Calculate offset based on the bottom edge offset = y - (visible_rect.y + visible_rect.height - 2 * self._SCROLL_EDGE_SIZE) # Skip if we are not near to top or bottom edge if offset < 0: return True vadjustment = self.get_vadjustment() vadjustment.value = common.clamp( vadjustment.value + offset, 0, vadjustment.upper - vadjustment.page_size ) self.set_vadjustment(vadjustment) return True class DragTreeView(AutoScrollTreeView): """ A TextView that does easy dragging/selecting/popup menu """ targets = [("text/uri-list", 0, 0)] dragged_data = dict() def __init__(self, container, receive=True, source=True, drop_pos=None): """ Initializes the tree and sets up the various callbacks :param container: The container to place the TreeView into :param receive: True if the TreeView should receive drag events :param source: True if the TreeView should send drag events :param drop_pos: Indicates where a drop operation should occur w.r.t. existing entries: 'into', 'between', or None (both). """ AutoScrollTreeView.__init__(self) self.container = container if source: self.drag_source_set( gtk.gdk.BUTTON1_MASK, self.targets, gtk.gdk.ACTION_COPY|gtk.gdk.ACTION_MOVE) if receive: self.drop_pos = drop_pos self.drag_dest_set(gtk.DEST_DEFAULT_ALL, self.targets, gtk.gdk.ACTION_COPY|gtk.gdk.ACTION_DEFAULT| gtk.gdk.ACTION_MOVE) self.connect('drag_data_received', self.container.drag_data_received) self.connect('drag_data_delete', self.container.drag_data_delete) self.receive = receive self.dragging = False self.show_cover_drag_icon = True self.connect('drag-begin', self.on_drag_begin) self.connect('drag-end', self.on_drag_end) self.connect('drag-motion', self.on_drag_motion) self.connect('button-release-event', self.on_button_release) self.connect('button-press-event', self.on_button_press) if source: self.connect('drag-data-get', self.container.drag_get_data) self.drag_source_set_icon_stock(gtk.STOCK_DND) def get_selected_tracks(self): """ Returns the currently selected tracks (stub) """ pass def on_drag_end(self, list, context): """ Called when the dnd is ended """ self.dragging = False self.unset_rows_drag_dest() self.drag_dest_set(gtk.DEST_DEFAULT_ALL, self.targets, gtk.gdk.ACTION_COPY|gtk.gdk.ACTION_MOVE) def on_drag_begin(self, widget, context): """ Sets the cover of dragged tracks as drag icon """ self.dragging = True context.drag_abort(gtk.get_current_event_time()) if self.get_selection().count_selected_rows() > 1: self.drag_source_set_icon_stock(gtk.STOCK_DND_MULTIPLE) else: self.drag_source_set_icon_stock(gtk.STOCK_DND) if self.show_cover_drag_icon: tracks = self.get_selected_tracks() self._on_drag_begin(widget, context, tracks) @common.threaded def _on_drag_begin(self, widget, context, tracks): """ Async call counterpart to on_drag_begin, so that cover fetching doesn't block dragging. """ cover_manager = covers.MANAGER width = height = settings.get_option('gui/cover_width', 100) if tracks: tracks = trax.util.sort_tracks(['album', 'tracknumber'], tracks) pixbuf = None first_pixbuf = None albums = [] for track in tracks: album = track.get_tag_raw('album', join=True) if album not in albums: image_data = cover_manager.get_cover(track, set_only=True, use_default=True) pixbuf = icons.MANAGER.pixbuf_from_data( image_data, (width, height)) if first_pixbuf is None: first_pixbuf = pixbuf albums += [album] if len(albums) >= 2: break if pixbuf is not None: cover_pixbuf = pixbuf if len(albums) > 1: # Create stacked-cover effect cover_pixbuf = gtk.gdk.Pixbuf( gtk.gdk.COLORSPACE_RGB, True, 8, width + 10, height + 10 ) fill_pixbuf = cover_pixbuf.subpixbuf( 0, 0, width + 10, height + 10) fill_pixbuf.fill(0x00000000) # Fill with transparent background fill_pixbuf = cover_pixbuf.subpixbuf( 0, 0, width, height) fill_pixbuf.fill(0xccccccff) if first_pixbuf != pixbuf: pixbuf.copy_area( 0, 0, width, height, cover_pixbuf, 5, 5 ) else: fill_pixbuf = cover_pixbuf.subpixbuf( 5, 5, width, height) fill_pixbuf.fill(0x999999ff) first_pixbuf.copy_area( 0, 0, width, height, cover_pixbuf, 10, 10 ) glib.idle_add(self._set_drag_cover, context, cover_pixbuf) def _set_drag_cover(self, context, pixbuf): """ Completes drag icon setup """ context.set_icon_pixbuf(pixbuf, 0, 0) def on_drag_motion(self, treeview, context, x, y, timestamp): """ Called when a row is dragged over this treeview """ if not self.receive: return False self.enable_model_drag_dest(self.targets, gtk.gdk.ACTION_DEFAULT) if self.drop_pos is None: return False info = treeview.get_dest_row_at_pos(x, y) if not info: return False path, pos = info if self.drop_pos == 'into': # Only allow dropping into entries. if pos == gtk.TREE_VIEW_DROP_BEFORE: pos = gtk.TREE_VIEW_DROP_INTO_OR_BEFORE elif pos == gtk.TREE_VIEW_DROP_AFTER: pos = gtk.TREE_VIEW_DROP_INTO_OR_AFTER elif self.drop_pos == 'between': # Only allow dropping between entries. if pos == gtk.TREE_VIEW_DROP_INTO_OR_BEFORE: pos = gtk.TREE_VIEW_DROP_BEFORE elif pos == gtk.TREE_VIEW_DROP_INTO_OR_AFTER: pos = gtk.TREE_VIEW_DROP_AFTER treeview.set_drag_dest_row(path, pos) context.drag_status(context.suggested_action, timestamp) return True def on_button_press(self, button, event): """ The popup menu that is displayed when you right click in the playlist """ selection = self.get_selection() (x, y) = event.get_coords() x = int(x) y = int(y) path = self.get_path_at_pos(x, y) if path: if event.button != 3: if event.type == gtk.gdk._2BUTTON_PRESS: try: return self.container.button_press(button, event) except AttributeError: pass if selection.count_selected_rows() <= 1: return False else: if selection.path_is_selected(path[0]): if event.state & (gtk.gdk.SHIFT_MASK|gtk.gdk.CONTROL_MASK): selection.unselect_path(path[0]) return True elif not event.state & (gtk.gdk.SHIFT_MASK|gtk.gdk.CONTROL_MASK): return True return False if not selection.count_selected_rows(): selection.select_path(path[0]) try: return self.container.button_press(button, event) except AttributeError: pass def on_button_release(self, button, event): """ Called when a button is released """ if event.button != 1 or \ self.dragging or \ event.state & (gtk.gdk.SHIFT_MASK|gtk.gdk.CONTROL_MASK): self.dragging = False try: return self.container.button_release(button, event) except AttributeError: pass selection = self.get_selection() selection.unselect_all() path = self.get_path_at_pos(int(event.x), int(event.y)) if not path: return False selection.select_path(path[0]) try: return self.container.button_release(button, event) except AttributeError: pass #TODO maybe move this somewhere else? (along with _handle_unknown_drag_data) def get_drag_data(self, locs, compile_tracks = True, existing_tracks = []): """ Handles the locations from drag data @param locs: locations we are dealing with (can be anything from a file to a folder) @param compile_tracks: if true any tracks in the playlists that are not found as tracks are added to the list of tracks @param existing_tracks: a list of tracks that have already been loaded from files (used to skip loading the dragged tracks from the filesystem) @returns: a 2 tuple in which the first part is a list of tracks and the second is a list of playlist (note: any files that are in a playlist are not added to the list of tracks, but a track could be both in as a found track and part of a playlist) """ #TODO handle if they pass in existing tracks trs = [] playlists = [] for loc in locs: (found_tracks, found_playlist) = self._handle_unknown_drag_data(loc) trs.extend(found_tracks) playlists.extend(found_playlist) if compile_tracks: #Add any tracks in the playlist to the master list of tracks for playlist in playlists: for track in playlist.get_tracks(): if track not in trs: trs.append(track) return (trs, playlists) def _handle_unknown_drag_data(self, loc): """ Handles unknown drag data that has been recieved by drag_data_received. Unknown drag data is classified as any loc (location) that is not in the collection of tracks (i.e. a new song, or a new playlist) @param loc: the location of the unknown drag data @returns: a 2 tuple in which the first part is a list of tracks and the second is a list of playlist """ filetype = None info = urlparse.urlparse(loc) # don't use gio to test the filetype if it's a non-local file # (otherwise gio will try to connect to every remote url passed in and # cause the gui to hang) if info.scheme in ('file', ''): try: filetype = gio.File(loc).query_info( 'standard::type').get_file_type() except gio.Error: filetype = None if trax.is_valid_track(loc) or info.scheme not in ('file', ''): new_track = trax.Track(loc) return ([new_track],[]) elif playlist.is_valid_playlist(loc): #User is dragging a playlist into the playlist list # so we add all of the songs in the playlist # to the list new_playlist = playlist.import_playlist(loc) return ([], [new_playlist]) elif filetype == gio.FILE_TYPE_DIRECTORY: return (trax.get_tracks_from_uri(loc), []) else: #We don't know what they dropped return ([], []) class ClickableCellRendererPixbuf(gtk.CellRendererPixbuf): """ Custom :class:`gtk.CellRendererPixbuf` emitting an *clicked* signal upon activation of the pixbuf """ __gsignals__ = { 'clicked': ( gobject.SIGNAL_RUN_LAST, gobject.TYPE_BOOLEAN, (gobject.TYPE_PYOBJECT,), gobject.signal_accumulator_true_handled ) } def __init__(self): gtk.CellRendererPixbuf.__init__(self) self.props.mode = gtk.CELL_RENDERER_MODE_ACTIVATABLE def do_activate(self, event, widget, path, background_area, cell_area, flags): """ Emits the *clicked* signal """ if event is None: # Keyboard activation return pixbuf_width = self.props.pixbuf.get_width() pixbuf_height = self.props.pixbuf.get_height() click_area = gtk.gdk.Rectangle( x=int(cell_area.x \ + self.props.xpad \ + self.props.xalign * cell_area.width \ - pixbuf_width), y=int(cell_area.y \ + self.props.ypad \ + self.props.yalign * cell_area.height \ - self.props.yalign * pixbuf_height), width=pixbuf_width, height=pixbuf_height ) if click_area.x <= event.x <= click_area.x + click_area.width and \ click_area.y <= event.y <= click_area.y + click_area.height: self.emit('clicked', path) dist/copy/xlgui/widgets/PaxHeaders.26361/filter.py0000644000175000017500000000012412233027260020456 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.517046945 exaile-3.3.2/xlgui/widgets/filter.py0000644000000000000000000003722412233027260017426 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. """Generic widget and dialog for filtering items. They resemble the configuration dialogs of Evolution's mail filters and Rhythmbox's automatic playlists. """ import gobject import gtk from xl.nls import gettext as _ class FilterDialog(gtk.Dialog): """Dialog to filter a list of items. Consists of a FilterWidget and an Add button. """ def __init__(self, title, parent, criteria): """Create a filter dialog. Parameters: - title: title of the dialog window - criteria: possible criteria; see FilterWindow """ gtk.Dialog.__init__(self, title, parent, buttons=( gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT, gtk.STOCK_OK, gtk.RESPONSE_ACCEPT)) self.set_position(gtk.WIN_POS_CENTER_ON_PARENT) top = gtk.HBox() top.set_border_width(5) top.set_spacing(5) top.pack_start(gtk.Label(_("Name:")), False) self.name_entry = gtk.Entry() top.pack_start(self.name_entry) self.vbox.pack_start(top, False) top.show_all() self.filter = f = FilterWidget(criteria) f.add_row() f.set_border_width(5) self.vbox.pack_start(f) f.show_all() bottom = gtk.HBox() bottom.set_border_width(5) self.match_any = gtk.CheckButton(_('Match any of the criteria')) bottom.pack_start(self.match_any) self.random = gtk.CheckButton(_('Randomize results')) bottom.pack_start(self.random) btn = gtk.Button() btn.connect('clicked', lambda *x: self.filter.add_row()) image = gtk.Image() image.set_from_stock(gtk.STOCK_ADD, gtk.ICON_SIZE_BUTTON) btn.add(image) align = gtk.Alignment(xalign=1) align.add(btn) bottom.pack_end(align) self.vbox.pack_start(bottom, False) # add the limit checkbox, spinner limit_area = gtk.HBox() limit_area.set_border_width(5) self.lim_check = gtk.CheckButton(_("Limit to: ")) limit_area.pack_start(self.lim_check, False) self.lim_spin = gtk.SpinButton(gtk.Adjustment(1, 0, 1000000000, 1)) self.lim_spin.set_sensitive(False) self.lim_check.connect('toggled', lambda b: self.lim_spin.set_sensitive(self.lim_check.get_active())) limit_area.pack_start(self.lim_spin, False) limit_area.pack_start(gtk.Label(_(" tracks")), False) self.vbox.pack_start(limit_area, False) limit_area.show_all() bottom.show_all() align.show_all() self.show_all() def set_limit(self, limit): """ Sets the limit for the number of items that should be returned """ if limit > -1: self.lim_check.set_active(True) self.lim_spin.set_value(limit) else: self.lim_check.set_active(False) def get_limit(self): """ Get the limit value """ if self.lim_check.get_active(): return int(self.lim_spin.get_value()) else: return -1 def get_random(self): """ Returns if the playlist should be random """ return self.random.get_active() def set_random(self, random): """ Sets if this playlist should be random """ self.random.set_active(random) def get_match_any(self): """ Returns true if this dialog should match any of the criteria """ return self.match_any.get_active() def set_match_any(self, any): """ Sets whether this dialog should match any of the criteria or not """ self.match_any.set_active(any) def get_name(self): """ Returns the text in the name_entry """ return unicode(self.name_entry.get_text(), 'utf-8') def set_name(self, name): """ Sets the text in the name_entry """ self.name_entry.set_text(name) def get_result(self): """Return the user's input as a list of filter criteria. See FilterWidget.get_result. """ # TODO: display error message return self.filter.get_result() def get_state(self): """Return the filter state. See FilterWidget.get_state. """ return self.filter.get_state() def set_state(self, state): """Set the filter state. See FilterWidget.set_state. """ self.filter.set_state(state) class FilterWidget(gtk.Table): """Widget to filter a list of items. This widget only includes the criteria selector (Criterion widgets) and their Remove buttons; it does not include an Add button. Attributes: - criteria: see example - rows: list of (criterion, remove_btn, remove_btn_handler_id) - n: number of rows Example of criteria: [ # name (N_('Year'), [ # name - field class/factory (N_('is'), EntryField), (N_('is between'), lambda x: EntryLabelEntryField(x, _('and'))), (N_('is this year'), NothingField) ]), ] The field class is a class following this interface: class Field(gtk.Widget): def __init__(self, result_generator): pass def get_result(self): return object def get_state(self): return object def set_state(self, state): pass Although not required, these methods should use unicode instead of str objects when dealing with strings. """ def __init__(self, criteria): """Create a filter widget. Parameter: - criteria: see FilterWidget """ gtk.Table.__init__(self) self.set_col_spacings(10) self.set_row_spacings(2) self.criteria = criteria self.rows = [] self.n = 0 def add_row(self): """Add a new criteria row.""" criterion = Criterion(self.criteria) criterion.show() remove_btn = gtk.Button() image = gtk.Image() image.set_from_stock(gtk.STOCK_REMOVE, gtk.ICON_SIZE_BUTTON) remove_btn.add(image) remove_btn_handler_id = remove_btn.connect( 'clicked', self.__remove_clicked, self.n) remove_btn.show_all() self.attach(criterion, 0, 1, self.n, self.n + 1, gtk.EXPAND | gtk.FILL, gtk.SHRINK) self.attach(remove_btn, 1, 2, self.n, self.n + 1, gtk.FILL, gtk.SHRINK) self.rows.append((criterion, remove_btn, remove_btn_handler_id)) self.n += 1 def remove_row(self, row): """Remove a criteria row.""" rows = self.rows for iRow in xrange(row, len(rows)): crit, btn, handler = rows[iRow] self.remove(crit) self.remove(btn) btn.disconnect(handler) if iRow != row: # shift up self.attach(crit, 0, 1, iRow - 1, iRow, gtk.EXPAND | gtk.FILL, gtk.SHRINK) self.attach(btn, 1, 2, iRow - 1, iRow, gtk.FILL, gtk.SHRINK) handler = btn.connect( 'clicked', self.__remove_clicked, iRow - 1) rows[iRow - 1] = crit, btn, handler self.n -= 1 del rows[self.n] if self.n: self.resize(self.n, 2) def __remove_clicked(self, widget, data): self.remove_row(data) def get_state(self): """Return the filter state. See set_state for the state format. """ state = [] for row in self.rows: state.append(row[0].get_state()) state[-1][0].reverse() # reverse so it reads more nicely return state def set_state(self, state): """Set the filter state. Format: [ ( [criterion1_1, criterion1_2, ...], filter1 ), ( [criterion2_1, criterion2_2, ...], filter2 ), ... ] """ n_present = len(self.rows) n_required = len(state) for i in xrange(n_present, n_required): self.add_row() for i in xrange(n_present, n_required, -1): self.remove_row(i - 1) # i is one less than n for i, cstate in enumerate(state): cstate[0].reverse() # reverse so it becomes a stack self.rows[i][0].set_state(cstate) class Criterion(gtk.HBox): """Widget representing one filter criterion. It contains either: - one combo box and another criterion object, or - a field object. """ def __init__(self, subcriteria): """Create a criterion object. Parameters: - subcriteria: a list of possible subcriteria; see criteria in FilterWidget """ gtk.HBox.__init__(self, spacing=5) if isinstance(subcriteria, (gtk.Widget, gobject.GObjectMeta)): field_class = subcriteria self.child = field_class() else: self.combo = combo = gtk.combo_box_new_text() self.subcriteria = subcriteria for subc in subcriteria: combo.append_text(_(subc[0])) combo.set_active(0) combo.connect('changed', self._combo_changed) combo.show() self.pack_start(combo, False) self.child = Criterion(subcriteria[0][1]) self.child.show() self.pack_start(self.child) def _combo_changed(self, widget): """Called when the combo box changes its value.""" state = self.child.get_state() self.remove(self.child) self.child = Criterion(self.subcriteria[self.combo.get_active()][1]) if state: self.child.set_state(state) self.pack_start(self.child) self.child.show() def get_state(self): """Return the criterion state. See set_state for the state format. """ state = self.child.get_state() if isinstance(self.child, Criterion): state[0].append(self.subcriteria[self.combo.get_active()][0]) else: state = ([], state) return state def set_state(self, state): """Set the criterion state. Format: ([..., grandchild_state, child_state, self_state], filter) Note the reverse order of the list. This is to give the impression of it being a stack responding to pop(). """ if isinstance(self.child, Criterion): text = state[0].pop() for i, subc in enumerate(self.subcriteria): if subc[0] == text: self.combo.set_active(i) break self.child.set_state(state) else: if len(state) > 1: self.child.set_state(state[1]) # Sample fields class NullField(gtk.HBox): '''Used as a placeholder for __null__ values''' def get_state(self): return ['__null__'] def set_state(self, state): pass class MultiEntryField(gtk.HBox): """Helper field that can be subclassed to get fields with multiple GtkEntry widgets and multiple labels.""" def __init__(self, labels): """Create a field with the specified labels and widths. Parameter: - labels: sequence of string, integer, or None values; string represents label, integer represents Entry widget with a specific width, None represents Entry widget with default width """ gtk.HBox.__init__(self, spacing=5) self.entries = [] for label in labels: if label is None: widget = gtk.Entry() self.entries.append(widget) elif isinstance(label, (int, long, float)): widget = gtk.Entry() widget.set_size_request(label, -1) self.entries.append(widget) else: widget = gtk.Label(unicode(label)) self.pack_start(widget, False) widget.show() def get_state(self): return [unicode(e.get_text(), 'utf-8') for e in self.entries] def set_state(self, state): entries = self.entries for i in xrange(min(len(entries), len(state))): entries[i].set_text(unicode(state[i])) class EntryField(gtk.Entry): def __init__(self): gtk.Entry.__init__(self) def get_state(self): return unicode(self.get_text(), 'utf-8') def set_state(self, state): if type(state) == list or type(state) == tuple: state = state[0] self.set_text(unicode(state)) class EntryLabelEntryField(MultiEntryField): def __init__(self, label): MultiEntryField.__init__(self, (50, label, 50)) class SpinLabelField(gtk.HBox): def __init__(self, label='', top=99999, lower=-99999): gtk.HBox.__init__(self, spacing=5) self.spin = gtk.SpinButton(gtk.Adjustment(0, lower, top, 1, 0, 0)) self.pack_start(self.spin, False) self.pack_start(gtk.Label(label), False) self.show_all() def get_state(self): return self.spin.get_value() def set_state(self, state): if type(state) == list or type(state) == tuple: state = state[0] try: self.spin.set_value(int(state)) except ValueError: pass class SpinButtonAndComboField(gtk.HBox): def __init__(self, items=()): gtk.HBox.__init__(self, spacing=5) self.items = items adjustment = gtk.Adjustment(0, 0, 99999, 1, 0, 0) self.entry = gtk.SpinButton(adjustment=adjustment) self.pack_start(self.entry) self.combo = gtk.combo_box_new_text() for item in items: self.combo.append_text(_(item)) self.combo.set_active(0) self.pack_start(self.combo) self.show_all() def set_state(self, state): if not isinstance(state, (tuple, list)): return # TODO: Check length. try: self.entry.set_value(int(state[0])) except ValueError: pass combo_state = _(state[1]) try: index = self.items.index(combo_state) except ValueError: pass else: self.combo.set_active(index) def get_state(self): active_item = self.items[self.combo.get_active()] if not isinstance(active_item, unicode): active_item = unicode(active_item, 'utf-8') return [self.entry.get_value(), active_item] dist/copy/xlgui/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260017262 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.509046945 exaile-3.3.2/xlgui/__init__.py0000644000000000000000000003322112233027260016223 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. __all__ = ['main', 'panel', 'playlist'] import glib import gtk import logging import sys # This is needed for OpenBSD otherwise exaile freezes. However, some # versions of glib on Win32 freeze if this is used. Go figure. if sys.platform != 'win32': gtk.gdk.threads_init() gtk.gdk.threads_enter() from xl import ( common, player, settings, xdg ) from xl.nls import gettext as _ from xlgui import guiutil logger = logging.getLogger(__name__) def mainloop(): gtk.main() def get_controller(): return Main._main class Main(object): """ This is the main gui controller for exaile """ _main = None def __init__(self, exaile): """ Initializes the GUI @param exaile: The Exaile instance """ from xlgui import icons, main, panel, tray, progress from xlgui.panel import collection, radio, playlists, files gtk.gdk.set_program_class("Exaile") self.exaile = exaile self.first_removed = False self.tray_icon = None self.panels = {} self.builder = gtk.Builder() self.builder.add_from_file(xdg.get_data_path('ui', 'main.ui')) self.progress_box = self.builder.get_object('progress_box') self.progress_manager = progress.ProgressManager(self.progress_box) for name in ('exaile', 'exaile-pause', 'exaile-play', 'folder-music', 'audio-x-generic', 'office-calendar', 'extension', 'music-library', 'artist', 'genre'): icons.MANAGER.add_icon_name_from_directory(name, xdg.get_data_path('images')) gtk.window_set_default_icon_name('exaile') for name in ('dynamic', 'repeat', 'shuffle'): icon_name = 'media-playlist-%s' % name icons.MANAGER.add_icon_name_from_directory(icon_name, xdg.get_data_path('images')) logger.info("Using GTK+ %s" % '.'.join(map(str,gtk.gtk_version))) logger.info("Loading main window...") self.main = main.MainWindow(self, self.builder, exaile.collection) if self.exaile.options.StartMinimized: self.main.window.iconify() self.panel_notebook = self.builder.get_object('panel_notebook') self.play_toolbar = self.builder.get_object('play_toolbar') logger.info("Loading panels...") self.panels['collection'] = collection.CollectionPanel(self.main.window, exaile.collection, _show_collection_empty_message=True) self.panels['radio'] = radio.RadioPanel(self.main.window, exaile.collection, exaile.radio, exaile.stations) self.panels['playlists'] = playlists.PlaylistsPanel(self.main.window, exaile.playlists, exaile.smart_playlists, exaile.collection) self.panels['files'] = files.FilesPanel(self.main.window, exaile.collection) for panel in ('collection', 'radio', 'playlists', 'files'): self.add_panel(*self.panels[panel].get_panel()) # add the device panels for device in self.exaile.devices.list_devices(): if device.connected: self.add_device_panel(None, None, device) logger.info("Connecting panel events...") self.main._connect_panel_events() if settings.get_option('gui/use_tray', False): self.tray_icon = tray.TrayIcon(self.main) self.device_panels = {} from xl import event event.add_callback(self.add_device_panel, 'device_connected') event.add_callback(self.remove_device_panel, 'device_disconnected') event.add_callback(self.on_gui_loaded, 'gui_loaded') logger.info("Done loading main window...") Main._main = self def open_uris(self, uris, play=True): if len(uris) > 0: self.open_uri(uris[0], play=play) for uri in uris[1:]: self.open_uri(uri, play=False) def open_uri(self, uri, play=True): """ Proxy for _open_uri """ self._open_uri(uri, play) def _open_uri(self, uri, play=True): """ Determines the type of a uri, imports it into a playlist, and starts playing it """ from xl import playlist, trax if playlist.is_valid_playlist(uri): try: playlist = playlist.import_playlist(uri) except playlist.InvalidPlaylistTypeError: pass else: self.main.playlist_notebook.create_tab_from_playlist(playlist) if play: player.QUEUE.current_playlist = playlist player.QUEUE.current_playlist.current_position = 0 player.QUEUE.play(playlist[0]) else: page = self.main.get_selected_page() column = page.view.get_sort_column() reverse = False sort_by = common.BASE_SORT_TAGS if column: reverse = column.get_sort_order() == gtk.SORT_DESCENDING sort_by = [column.name] + sort_by tracks = trax.get_tracks_from_uri(uri) tracks = trax.sort_tracks(sort_by, tracks, reverse=reverse) try: page.playlist.extend(tracks) page.playlist.current_position = len(page.playlist) - len(tracks) if play: player.QUEUE.current_playlist = page.playlist player.QUEUE.play(tracks[0]) # Catch empty directories except IndexError: pass def show_cover_manager(self, *e): """ Shows the cover manager """ from xlgui.cover import CoverManager window = CoverManager(self.main.window, self.exaile.collection) def show_preferences(self): """ Shows the preferences dialog """ from xlgui.preferences import PreferencesDialog dialog = PreferencesDialog(self.main.window, self) dialog.run() def show_devices(self): from xlgui.devices import ManagerDialog dialog = ManagerDialog(self.main.window, self) dialog.run() def queue_manager(self, *e): self.main.playlist_notebook.show_queue() def collection_manager(self, *e): """ Invokes the collection manager dialog """ from xl.collection import Library from xlgui.collection import CollectionManagerDialog dialog = CollectionManagerDialog(self.main.window, self.exaile.collection) result = dialog.run() dialog.hide() if result == gtk.RESPONSE_APPLY: collection = self.exaile.collection collection.freeze_libraries() collection_libraries = [(l.location, l.monitored) \ for l in collection.libraries.itervalues()] collection_libraries.sort() new_libraries = dialog.get_items() new_libraries.sort() if collection_libraries != new_libraries: collection_locations = [location \ for location, monitored in collection_libraries] new_locations = [location \ for location, monitored in new_libraries] if collection_locations != new_locations: for location in new_locations: if location not in collection_locations: collection.add_library(Library(location)) removals = [] for location, library in collection.libraries.iteritems(): if location not in new_locations: removals += [library] map(collection.remove_library, removals) self.on_rescan_collection() for location, monitored in new_libraries: collection.libraries[location].monitored = monitored collection.thaw_libraries() dialog.destroy() def on_gui_loaded(self, event, object, nothing): """ Allows plugins to be the last selected panel """ try: last_selected_panel = settings.get_option( 'gui/last_selected_panel', 'collection') panel = self.panels[last_selected_panel]._child panel_num = self.panel_notebook.page_num(panel) glib.idle_add(self.panel_notebook.set_current_page, panel_num) # Fix track info not displaying properly when resuming after a restart. self.main._update_track_information() except KeyError: pass def on_rescan_collection(self, *e): """ Called when the user wishes to rescan the collection """ libraries = self.exaile.collection.get_libraries() if not self.exaile.collection._scanning and len(libraries) > 0: from xl.collection import CollectionScanThread thread = CollectionScanThread(self.exaile.collection) thread.connect('done', self.on_rescan_done) self.progress_manager.add_monitor(thread, _("Scanning collection..."), gtk.STOCK_REFRESH) def on_rescan_done(self, thread): """ Called when the rescan has finished """ glib.idle_add(self.panels['collection'].load_tree) def on_track_properties(self, *e): pl = self.main.get_selected_page() pl.view.show_properties_dialog() def add_panel(self, child, name): """ Adds a panel to the panel notebook """ label = gtk.Label(name) label.set_angle(90) self.panel_notebook.append_page(child, label) def focus_panel(self, tab_name): panel = self.panels[tab_name] panel_nr = self.panel_notebook.page_num(panel._child) self.panel_notebook.set_current_page(panel_nr) panel.focus() def remove_panel(self, child): for n in range(self.panel_notebook.get_n_pages()): if child == self.panel_notebook.get_nth_page(n): self.panel_notebook.remove_page(n) return raise ValueError("No such panel") def on_panel_switch(self, notebook, page, pagenum): """ Saves the currently selected panel """ if self.exaile.loading: return page = notebook.get_nth_page(pagenum) for i, panel in self.panels.items(): if panel._child == page: settings.set_option('gui/last_selected_panel', i) return def quit(self): """ Quits the gui, saving anything that needs to be saved """ # save open tabs self.main.playlist_notebook.save_current_tabs() gtk.gdk.threads_leave() @guiutil.idle_add() def add_device_panel(self, type, obj, device): from xl.collection import CollectionScanThread from xlgui.panel.device import DevicePanel, FlatPlaylistDevicePanel import xlgui.panel paneltype = DevicePanel if hasattr(device, 'panel_type'): if device.panel_type == 'flatplaylist': paneltype = FlatPlaylistDevicePanel elif issubclass(device.panel_type, xlgui.panel.Panel): paneltype = device.panel_type panel = paneltype(self.main.window, self.main, device, device.get_name()) sort = True panel.connect('append-items', lambda panel, items, play, sort=sort: self.main.on_append_items(items, play, sort=sort)) panel.connect('queue-items', lambda panel, items, sort=sort: self.main.on_append_items(items, queue=True, sort=sort)) panel.connect('replace-items', lambda panel, items, sort=sort: self.main.on_append_items(items, replace=True, sort=sort)) self.device_panels[device.get_name()] = panel glib.idle_add(self.add_panel, *panel.get_panel()) thread = CollectionScanThread(device.get_collection()) thread.connect('done', panel.load_tree) self.progress_manager.add_monitor(thread, _("Scanning %s..." % device.name), gtk.STOCK_REFRESH) @guiutil.idle_add() def remove_device_panel(self, type, obj, device): try: self.remove_panel( self.device_panels[device.get_name()].get_panel()[0]) except ValueError: logger.debug("Couldn't remove panel for %s"%device.get_name()) del self.device_panels[device.get_name()] dist/copy/xlgui/PaxHeaders.26361/accelerators.py0000644000175000017500000000012412233027260020172 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.513046945 exaile-3.3.2/xlgui/accelerators.py0000644000000000000000000000413212233027260017132 0ustar00rootroot00000000000000# Copyright (C) 2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import gtk from xl import providers class Accelerator(object): __slots__ = ['name', 'keys', 'callback'] def __init__(self, keys, callback): self.name = keys # only here because providers needs it self.keys = keys self.callback = callback class AcceleratorManager(providers.ProviderHandler): def __init__(self, providername, accelgroup): providers.ProviderHandler.__init__(self, providername) self.accelgroup = accelgroup for provider in self.get_providers(): self.on_provider_added(provider) def on_provider_added(self, provider): key, mod = gtk.accelerator_parse(provider.keys) self.accelgroup.connect_group(key, mod, gtk.ACCEL_VISIBLE, provider.callback) def on_provider_removed(self, provider): key, mod = gtk.accelerator_parse(provider.keys) self.accelgroup.disconnect_key(key, mod) dist/copy/xlgui/PaxHeaders.26361/collection.py0000644000175000017500000000012412233027260017656 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.445046943 exaile-3.3.2/xlgui/collection.py0000644000000000000000000001260512233027260016622 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import gio import gobject import gtk import logging import os from xl.nls import gettext as _ from xl import ( collection, xdg ) from xlgui.widgets import dialogs logger = logging.getLogger(__name__) class CollectionManagerDialog(object): """ Allows you to choose which directories are in your library """ def __init__(self, parent, collection): """ Initializes the dialog """ self.parent = parent self.collection = collection builder = gtk.Builder() builder.add_from_file(xdg.get_data_path( 'ui', 'collection_manager.ui')) self.dialog = builder.get_object('CollectionManager') self.dialog.set_transient_for(self.parent) self.view = builder.get_object('view') self.model = builder.get_object('model') self.remove_button = builder.get_object('remove_button') self.message = dialogs.MessageBar( parent=builder.get_object('content_area'), buttons=gtk.BUTTONS_CLOSE ) builder.connect_signals(self) selection = self.view.get_selection() selection.connect('changed', self.on_selection_changed) for location, library in collection.libraries.iteritems(): self.model.append([location, library.monitored]) def run(self): """ Runs the dialog, waiting for a response before any other gui events occur """ return self.dialog.run() def hide(self): """ Hides the dialog """ self.dialog.hide() def destroy(self): """ Destroys the dialog """ self.dialog.destroy() def get_items(self): """ Returns the items in the dialog """ items = [] for row in self.model: items += [(row[0], row[1])] return items def on_monitored_cellrenderer_toggled(self, cell, path): """ Enables or disables monitoring """ monitored = not cell.get_active() cell.set_active(monitored) self.model[path][1] = monitored def on_add_button_clicked(self, widget): """ Adds a path to the list """ dialog = gtk.FileChooserDialog(_("Add a Directory"), self.parent, gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER, (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_ADD, gtk.RESPONSE_OK)) dialog.set_current_folder(xdg.get_last_dir()) dialog.set_local_only(False) # enable gio response = dialog.run() # XXX: For some reason, on Ubuntu 12.10 (GTK 2.24.13), hiding the # dialog before retrieving the results causes an incorrect URI # to be retrieved. uri = dialog.get_uri() dialog.hide() if response == gtk.RESPONSE_OK: location = gio.File(uri) removals = [] for row in self.model: library_location = gio.File(row[0]) monitored = row[1] if location.has_prefix(library_location): self.message.show_warning( _('Directory not added.'), _('The directory is already in your collection ' 'or is a subdirectory of another directory in ' 'your collection.') ) break elif library_location.has_prefix(location): removals += [row.iter] else: self.model.append([location.get_uri(), False]) for iter in removals: self.model.remove(iter) dialog.destroy() def on_remove_button_clicked(self, widget): """ removes a path from the list """ selection = self.view.get_selection() model, iter = selection.get_selected() model.remove(iter) def on_selection_changed(self, selection): """ Enables or disables the "Remove" button """ rows_selected = selection.count_selected_rows() > 0 self.remove_button.set_sensitive(rows_selected) dist/copy/xlgui/PaxHeaders.26361/menu.py0000644000175000017500000000012412233027260016467 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.565046947 exaile-3.3.2/xlgui/menu.py0000644000000000000000000002300312233027260015425 0ustar00rootroot00000000000000# Copyright (C) 2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import gtk from xl.nls import gettext as _ from xl import settings, providers from xlgui.accelerators import Accelerator from xlgui.widgets import menu, menuitems, dialogs def get_main(): from xlgui import main return main.mainwindow() def get_selected_playlist(): from xlgui import main return main.get_selected_playlist() _smi = menu.simple_menu_item _sep = menu.simple_separator def __create_file_menu(): items = [] accelerators = [] def new_playlist_cb(*args): get_main().playlist_notebook.create_new_playlist() items.append(_smi('new-playlist', [], _("_New Playlist"), 'tab-new', new_playlist_cb, accelerator='t')) accelerators.append(Accelerator('t', new_playlist_cb)) items.append(_sep('new-sep', [items[-1].name])) def open_cb(*args): dialog = dialogs.MediaOpenDialog(get_main().window) dialog.connect('uris-selected', lambda d, uris: get_main().controller.open_uris(uris)) dialog.show() items.append(_smi('open', [items[-1].name], icon_name=gtk.STOCK_OPEN, callback=open_cb, accelerator='o')) accelerators.append(Accelerator('o', open_cb)) def open_uri_cb(*args): dialog = dialogs.URIOpenDialog(get_main().window) dialog.connect('uri-selected', lambda d, uri: get_main().controller.open_uri(uri)) dialog.show() items.append(_smi('open-uri', [items[-1].name], _("Open _URL"), 'applications-internet', open_uri_cb, accelerator='o')) accelerators.append(Accelerator('o', open_uri_cb)) def open_dirs_cb(*args): dialog = dialogs.DirectoryOpenDialog(get_main().window) dialog.props.create_folders = False dialog.connect('uris-selected', lambda d, uris: get_main().controller.open_uris(uris)) dialog.show() items.append(_smi('open-dirs', [items[-1].name], _("Open Directories"), None, open_dirs_cb)) items.append(_sep('open-sep', [items[-1].name])) items.append(_smi('import-playlist', [items[-1].name], _("Import Playlist"), gtk.STOCK_OPEN, lambda *e: get_main().controller.panels['playlists'].import_playlist() )) def export_playlist_cb(*args): main = get_main() page = get_selected_playlist() if not page: return def on_message(dialog, message_type, message): """ Show messages in the main window message area """ if message_type == gtk.MESSAGE_INFO: main.message.show_info(markup=message) elif message_type == gtk.MESSAGE_ERROR: main.message.show_error(_('Playlist export failed!'), message) return True dialog = dialogs.PlaylistExportDialog(page.playlist, main.window) dialog.connect('message', on_message) dialog.show() items.append(_smi('export-playlist', [items[-1].name], _("_Export Current Playlist"), gtk.STOCK_SAVE_AS, export_playlist_cb)) items.append(_sep('export-sep', [items[-1].name])) def close_tab_cb(*args): get_main().get_selected_page().tab.close() items.append(_smi('close-tab', [items[-1].name], _("Close Tab"), gtk.STOCK_CLOSE, callback=close_tab_cb, accelerator='w')) accelerators.append(Accelerator('w', close_tab_cb)) if get_main().controller.exaile.options.Debug: def restart_cb(*args): from xl import main main.exaile().quit(True) items.append(_smi('restart-application', [items[-1].name], _("Restart"), callback=restart_cb, accelerator='r')) accelerators.append(Accelerator('r', restart_cb)) def quit_cb(*args): from xl import main main.exaile().quit() items.append(_smi('quit-application', [items[-1].name], icon_name=gtk.STOCK_QUIT, callback=quit_cb, accelerator='q')) accelerators.append(Accelerator('q', quit_cb)) for item in items: providers.register('menubar-file-menu', item) for accelerator in accelerators: providers.register('mainwindow-accelerators', accelerator) def __create_edit_menu(): items = [] accelerators = [] def collection_manager_cb(*args): from xlgui import get_controller get_controller().collection_manager() items.append(_smi('collection-manager', [], _("_Collection"), None, collection_manager_cb)) def queue_cb(*args): get_main().playlist_notebook.show_queue() items.append(_smi('queue', [items[-1].name], _("_Queue"), callback=queue_cb, accelerator='m')) accelerators.append(Accelerator('m', queue_cb)) def cover_manager_cb(*args): from xlgui.cover import CoverManager dialog = CoverManager(get_main().window, get_main().collection) items.append(_smi('cover-manager', [items[-1].name], _("C_overs"), None, cover_manager_cb)) def preferences_cb(*args): from xlgui.preferences import PreferencesDialog dialog = PreferencesDialog(get_main().window, get_main().controller) dialog.run() items.append(_smi('preferences', [items[-1].name], icon_name=gtk.STOCK_PREFERENCES, callback=preferences_cb)) for item in items: providers.register('menubar-edit-menu', item) for accelerator in accelerators: providers.register('mainwindow-accelerators', accelerator) def __create_view_menu(): items = [] accelerators = [] def show_playing_track_cb(*args): get_main().playlist_notebook.show_current_track() items.append(menuitems.ShowCurrentTrackMenuItem('show-playing-track', [], show_playing_track_cb, accelerator='j')) accelerators.append(Accelerator('j', show_playing_track_cb)) items.append(_sep('show-playing-track-sep', [items[-1].name])) def playlist_utilities_cb(widget, name, parent, context): settings.set_option('gui/playlist_utilities_bar_visible', widget.get_active()) def playlist_utilities_is_checked(name, parent, context): return settings.get_option('gui/playlist_utilities_bar_visible', True) items.append(menu.check_menu_item('playlist-utilities', [items[-1].name], _("_Playlist Utilities Bar"), playlist_utilities_is_checked, playlist_utilities_cb)) items.append(_smi('columns', [items[-1].name], _('_Columns'), submenu=menu.ProviderMenu('playlist-columns-menu', get_main()))) def clear_playlist_cb(*args): page = get_main().get_selected_page() if page: page.playlist.clear() items.append(_smi('clear-playlist', [items[-1].name], _('C_lear playlist'), gtk.STOCK_CLEAR, clear_playlist_cb, accelerator='l')) accelerators.append(Accelerator('l', clear_playlist_cb)) for item in items: providers.register('menubar-view-menu', item) for accelerator in accelerators: providers.register('mainwindow-accelerators', accelerator) def __create_playlist_menu(): items = [] for item in items: providers.register('menubar-playlist-menu', item) def __create_tools_menu(): items = [] items.append(_smi('device-manager', [], _('_Device Manager'), gtk.STOCK_HARDDISK, lambda *x: get_main().controller.show_devices())) items.append(_smi('scan-collection', [items[-1].name], _('Re_scan Collection'), gtk.STOCK_REFRESH, get_main().controller.on_rescan_collection)) items.append(_smi('track-properties', [items[-1].name], _('Track _Properties'), gtk.STOCK_PROPERTIES, get_main().controller.on_track_properties)) for item in items: providers.register('menubar-tools-menu', item) def __create_help_menu(): items = [] accelerators = [] def show_about_dialog(widget, name, parent, context): dialog = dialogs.AboutDialog(parent.window) dialog.show() items.append(_smi('about', [], icon_name=gtk.STOCK_ABOUT, callback=show_about_dialog)) for item in items: providers.register('menubar-help-menu', item) for accelerator in accelerators: providers.register('mainwindow-accelerators', accelerator) def _create_menus(): __create_file_menu() __create_edit_menu() __create_view_menu() __create_playlist_menu() __create_tools_menu() __create_help_menu() dist/copy/xlgui/PaxHeaders.26361/tray.py0000644000175000017500000000012412233027260016502 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.605046948 exaile-3.3.2/xlgui/tray.py0000644000000000000000000002035712233027260015451 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import glib import gobject import gtk from xl import ( event, player, providers, settings, xdg ) from xl.nls import gettext as _ from xlgui import guiutil from xlgui.widgets.info import TrackToolTip from xlgui.widgets import rating, menu, menuitems, playlist, playback def __create_tray_context_menu(): sep = menu.simple_separator items = [] # Play/Pause items.append(playback.PlayPauseMenuItem('playback-playpause', player.PLAYER, after=[])) # Next items.append(playback.NextMenuItem('playback-next', player.PLAYER, after=[items[-1].name])) # Prev items.append(playback.PrevMenuItem('playback-prev', player.PLAYER, after=[items[-1].name])) # Stop items.append(playback.StopMenuItem('playback-stop', player.PLAYER, after=[items[-1].name])) # ---- items.append(sep('playback-sep', [items[-1].name])) # Shuffle items.append(playlist.ShuffleModesMenuItem('playlist-mode-shuffle', after=[items[-1].name])) # Repeat items.append(playlist.RepeatModesMenuItem('playlist-mode-repeat', after=[items[-1].name])) # Dynamic items.append(playlist.DynamicModesMenuItem('playlist-mode-dynamic', after=[items[-1].name])) # ---- items.append(sep('playlist-mode-sep', [items[-1].name])) # Rating def rating_get_tracks_func(parent, context): current = player.PLAYER.current if current: return [current] else: return [] items.append(menuitems.RatingMenuItem('rating', [items[-1].name], rating_get_tracks_func)) # Remove items.append(playlist.RemoveCurrentMenuItem([items[-1].name])) # ---- items.append(sep('misc-actions-sep', [items[-1].name])) # Quit def quit_cb(*args): from xl import main main.exaile().quit() items.append(menu.simple_menu_item('quit-application', [items[-1].name], icon_name=gtk.STOCK_QUIT, callback=quit_cb)) for item in items: providers.register('tray-icon-context', item) __create_tray_context_menu() class BaseTrayIcon(object): """ Trayicon base, needs to be derived from """ def __init__(self, main): self.main = main self.VOLUME_STEP = 0.05 self.tooltip = TrackToolTip(self, player.PLAYER) self.tooltip.set_auto_update(True) self.tooltip.set_display_progress(True) self.menu = menu.ProviderMenu('tray-icon-context', self) self.update_icon() self.connect_events() event.log_event('tray_icon_toggled', self, True) def destroy(self): """ Unhides the window and removes the tray icon """ # FIXME: Allow other windows too if not self.main.window.get_property('visible'): self.main.window.deiconify() self.main.window.present() self.disconnect_events() self.set_visible(False) self.tooltip.destroy() event.log_event('tray_icon_toggled', self, False) def connect_events(self): """ Connects various callbacks with events """ self.connect('button-press-event', self.on_button_press_event) self.connect('scroll-event', self.on_scroll_event) event.add_callback(self.on_playback_change_state, 'playback_player_end', player.PLAYER) event.add_callback(self.on_playback_change_state, 'playback_track_start', player.PLAYER) event.add_callback(self.on_playback_change_state, 'playback_toggle_pause', player.PLAYER) event.add_callback(self.on_playback_change_state, 'playback_error', player.PLAYER) def disconnect_events(self): """ Disconnects various callbacks from events """ event.remove_callback(self.on_playback_change_state, 'playback_player_end', player.PLAYER) event.remove_callback(self.on_playback_change_state, 'playback_track_start', player.PLAYER) event.remove_callback(self.on_playback_change_state, 'playback_toggle_pause', player.PLAYER) event.remove_callback(self.on_playback_change_state, 'playback_error', player.PLAYER) def update_icon(self): """ Updates icon appearance based on current playback state """ if player.PLAYER.current is None: self.set_from_icon_name('exaile') self.set_tooltip(_('Exaile Music Player')) elif player.PLAYER.is_paused(): self.set_from_icon_name('exaile-pause') else: self.set_from_icon_name('exaile-play') def set_from_icon_name(self, icon_name): """ Updates the tray icon """ pass def set_tooltip(self, tooltip_text): """ Updates the tray icon tooltip """ pass def set_visible(self, visible): """ Shows or hides the tray icon """ pass def get_menu_position(self, menu, icon): """ Returns coordinates for the best menu position """ return (0, 0, False) def on_button_press_event(self, widget, event): """ Toggles main window visibility and pause as well as opens the context menu """ if event.button == 1: self.main.toggle_visible(bringtofront=True) if event.button == 2: playback.playpause( player.PLAYER ) if event.button == 3: self.menu.popup(None, None, self.get_menu_position, event.button, event.time, self) def on_scroll_event(self, widget, event): """ Changes volume and skips tracks on scroll """ if event.state & gtk.gdk.SHIFT_MASK: if event.direction == gtk.gdk.SCROLL_UP: player.QUEUE.prev() elif event.direction == gtk.gdk.SCROLL_DOWN: player.QUEUE.next() else: if event.direction == gtk.gdk.SCROLL_UP: volume = settings.get_option('player/volume', 1) settings.set_option('player/volume', min(volume + self.VOLUME_STEP, 1)) return True elif event.direction == gtk.gdk.SCROLL_DOWN: volume = settings.get_option('player/volume', 1) settings.set_option('player/volume', max(0, volume - self.VOLUME_STEP)) return True elif event.direction == gtk.gdk.SCROLL_LEFT: player.QUEUE.prev() elif event.direction == gtk.gdk.SCROLL_RIGHT: player.QUEUE.next() def on_playback_change_state(self, event, player, current): """ Updates tray icon appearance on playback state change """ glib.idle_add(self.update_icon) class TrayIcon(gtk.StatusIcon, BaseTrayIcon): """ Wrapper around GtkStatusIcon """ def __init__(self, main): gtk.StatusIcon.__init__(self) BaseTrayIcon.__init__(self, main) def get_menu_position(self, menu, icon): """ Returns coordinates for the best menu position """ return gtk.status_icon_position_menu(menu, icon) dist/copy/xlgui/PaxHeaders.26361/guiutil.py0000644000175000017500000000012412233027260017205 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.449046943 exaile-3.3.2/xlgui/guiutil.py0000644000000000000000000003321612233027260016152 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. from collections import namedtuple import gio import glib import gtk import threading from xl import event from xlgui import icons # moved idle_add to common, useful for more than just GUI stuff :) from xl.common import idle_add def gtkrun(f): """ A decorator that will make any function run in gtk threadsafe mode ALL CODE MODIFYING THE UI SHOULD BE WRAPPED IN THIS """ raise DeprecationWarning('We no longer need to use this ' 'function for xl/event.') def wrapper(*args, **kwargs): # if we're already in the main thread and you try to run # threads_enter, stuff will break horribly, so test for the main # thread and if we're currently in it we simply run the function if threading.currentThread().getName() == 'MainThread': return f(*args, **kwargs) else: gtk.gdk.threads_enter() try: return f(*args, **kwargs) finally: gtk.gdk.threads_leave() wrapper.__name__ = f.__name__ wrapper.__dict__ = f.__dict__ wrapper.__doc__ = f.__doc__ return wrapper def get_workarea_size(): """ Returns the width and height of the work area """ return get_workarea_dimensions()[2:4] def get_workarea_dimensions(): """ Returns the x-offset, y-offset, width and height of the work area, falls back to the screen dimensions if not available :returns: Dimensions(offset_x, offset_y, width, height) """ Dimensions = namedtuple('Dimensions', 'offset_x offset_y width height') rootwindow = gtk.gdk.get_default_root_window() workarea = rootwindow.property_get(gtk.gdk.atom_intern('_NET_WORKAREA')) try: return Dimensions(*workarea[2]) except TypeError: # gtk.gdk.Window.property_get on Win32 # Chopping off bit depth return Dimensions(*rootwindow.get_geometry()[:-1]) def gtk_widget_replace(widget, replacement): """ Replaces one widget with another and places it exactly at the original position :param widget: The original widget :type widget: :class:`gtk.Widget` :param replacement: The new widget :type widget: :class:`gtk.Widget` """ parent = widget.get_parent() try: position = parent.get_children().index(widget) except AttributeError: # None, not gtk.Container return else: try: packing = parent.query_child_packing(widget) except AttributeError: # Not gtk.Box pass try: tab_label = parent.get_tab_label(widget) tab_label_packing = parent.query_tab_label_packing(widget) except AttributeError: # Not gtk.Notebook pass parent.remove(widget) replacement.unparent() parent.add(replacement) try: parent.set_child_packing(replacement, *packing) except AttributeError: # Not gtk.Box pass try: parent.reorder_child(replacement, position) except AttributeError: pass try: parent.set_tab_label(replacement, tab_label) parent.set_tab_label_packing(replacement, *tab_label_packing) except AttributeError: pass replacement.show_all() class ScalableImageWidget(gtk.Image): """ Custom resizeable image widget """ def __init__(self): """ Initializes the image """ gtk.Image.__init__(self) def set_image_size(self, width, height): """ Scales the size of the image """ self.size = (width, height) self.set_size_request(width, height) def set_image(self, location, fill=False): """ Sets the image from a location :param location: the location to load the image from :type location: string :param fill: True to expand the image, False to keep its ratio :type fill: boolean """ pixbuf = gtk.gdk.pixbuf_new_from_file(gio.File(location).get_path()) self.set_image_pixbuf(pixbuf, fill) def set_image_data(self, data, fill=False): """ Sets the image from binary data :param data: the binary data :type data: string :param fill: True to expand the image, False to keep its ratio :type fill: boolean """ if not data: return pixbuf = icons.MANAGER.pixbuf_from_data(data) self.set_image_pixbuf(pixbuf, fill) def set_image_pixbuf(self, pixbuf, fill=False): """ Sets the image from a pixbuf :param data: the pixbuf :type data: :class:`gtk.gdk.Pixbuf` :param fill: True to expand the image, False to keep its ratio :type fill: boolean """ width, height = self.size if not fill: origw = float(pixbuf.get_width()) origh = float(pixbuf.get_height()) scale = min(width / origw, height / origh) width = int(origw * scale) height = int(origh * scale) self.width = width self.height = height scaled = pixbuf.scale_simple(width, height, gtk.gdk.INTERP_BILINEAR) self.set_from_pixbuf(scaled) scaled = pixbuf = None class SearchEntry(object): """ A gtk.Entry that emits the "activated" signal when something has changed after the specified timeout """ def __init__(self, entry=None, timeout=500): """ Initializes the entry """ self.entry = entry self.timeout = timeout self.change_id = None if entry is None: self.entry = entry = gtk.Entry() self._last_text = entry.get_text() entry.connect('changed', self.on_entry_changed) entry.connect('icon-press', self.on_entry_icon_press) entry.connect('activate', self.on_entry_activated) def on_entry_changed(self, entry): """ Called when the entry changes """ empty_search = (entry.get_text() == '') entry.props.secondary_icon_sensitive = not empty_search if self.change_id: glib.source_remove(self.change_id) self.change_id = glib.timeout_add(self.timeout, self.entry_activate) def on_entry_icon_press(self, entry, icon_pos, event): """ Clears the entry """ self.entry.set_text('') self.entry_activate() def on_entry_activated(self, entry): self._last_text = entry.get_text() def entry_activate(self, *e): """ Emit the activate signal """ if self.entry.get_text() != self._last_text: self.entry.activate() def __getattr__(self, attr): """ Tries to pass attribute requests to the internal entry item """ return getattr(self.entry, attr) class Menu(gtk.Menu): """ A proxy for making it easier to add icons to menu items """ def __init__(self): """ Initializes the menu """ gtk.Menu.__init__(self) self._dynamic_builders = [] # list of (callback, args, kwargs) self._destroy_dynamic = [] # list of children added by dynamic # builders. Will be destroyed and # recreated at each map() self.connect('map', self._check_dynamic) self.show() def append_image(self, pixbuf, callback, data=None): """ Appends a graphic as a menu item """ item = gtk.MenuItem() image = gtk.Image() image.set_from_pixbuf(pixbuf) item.add(image) if callback: item.connect('activate', callback, data) gtk.Menu.append(self, item) item.show_all() return item def _insert(self, label=None, callback=None, stock_id=None, data=None, prepend=False): """ Inserts a menu item (append by default) """ if stock_id: if label: item = gtk.ImageMenuItem(label) image = gtk.image_new_from_stock(stock_id, gtk.ICON_SIZE_MENU) item.set_image(image) else: item = gtk.ImageMenuItem(stock_id=stock_id) else: item = gtk.MenuItem(label) if callback: item.connect('activate', callback, data) if prepend: gtk.Menu.prepend(self, item) else: gtk.Menu.append(self, item) item.show_all() return item def append(self, label=None, callback=None, stock_id=None, data=None): """ Appends a menu item """ return self._insert(label, callback, stock_id, data) def prepend(self, label=None, callback=None, stock_id=None, data=None): """ Prepends a menu item """ return self._insert(label, callback, stock_id, data, prepend=True) def append_item(self, item): """ Appends a menu item """ gtk.Menu.append(self, item) item.show_all() def append_menu(self, label, menu, stock_id=None): """ Appends a submenu """ if stock_id: item = self.append(label, None, stock_id) item.set_submenu(menu) return item item = gtk.MenuItem(label) item.set_submenu(menu) item.show() gtk.Menu.append(self, item) return item def insert_menu(self, index, label, menu): """ Inserts a menu at the specified index """ item = gtk.MenuItem(label) item.set_submenu(menu) item.show() gtk.Menu.insert(self, item, index) return item def append_separator(self): """ Adds a separator """ item = gtk.SeparatorMenuItem() item.show() gtk.Menu.append(self, item) def add_dynamic_builder(self, callback, *args, **kwargs): """ Adds a callback that will be run every time the menu is mapped, to add any items that change frequently. The items they add are destroyed and re-created with each map event. """ self._dynamic_builders.append((callback, args, kwargs)) def remove_dynamic_builder(self, callback): """ Removes the given dynamic builder callback. """ self._dynamic_builders = [ tuple for tuple in self._dynamic_builders if tuple[0] != callback ] def _check_dynamic(self, *args): """ Deletes and builds again items added by the last batch of dynamic builder callbacks. """ if self._destroy_dynamic: for child in self._destroy_dynamic: self.remove(child) self._destroy_dynamic = [] if self._dynamic_builders: children_before = set(self.get_children()) for callback, args, kwargs in self._dynamic_builders: callback(*args, **kwargs) self._destroy_dynamic = [ child for child in self.get_children() if child not in children_before ] def popup(self, *e): """ Shows the menu """ if len(e) == 1: event = e[0] gtk.Menu.popup(self, None, None, None, event.button, event.time) else: gtk.Menu.popup(self, *e) def position_menu(menu, data): ''' A function that will position a menu near a particular widget. This should be specified as the third argument to menu.popup(), with the user data being a tuple of (window, widget) menu.popup_menu(None, None, guiutil.position_menu, 0, 0, (self.window, widget)) ''' window, widget = data window_x, window_y = window.get_position() widget_allocation = widget.get_allocation() menu_allocation = menu.get_allocation() position = ( window_x + widget_allocation.x + 1, window_y + widget_allocation.y - menu_allocation.height - 1 ) return (position[0], position[1], True) def finish(repeat=True): """ Waits for current pending gtk events to finish """ while gtk.events_pending(): gtk.main_iteration() if not repeat: break # vim: et sts=4 sw=4 dist/copy/xlgui/PaxHeaders.26361/playlist.py0000644000175000017500000000012412233027260017364 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.565046947 exaile-3.3.2/xlgui/playlist.py0000644000000000000000000004536712233027260016343 0ustar00rootroot00000000000000# Copyright (C) 2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import glib import re import gtk from datetime import datetime from xl.nls import gettext as _ from xl import ( common, event, providers, settings, xdg ) from xl.playlist import Playlist, PlaylistManager from xlgui.widgets import menu from xlgui.accelerators import Accelerator from xlgui.widgets.common import AttachedWindow from xlgui.widgets.notebook import SmartNotebook, NotebookTab from xlgui.widgets.playlist import PlaylistPage from xlgui.widgets.queue import QueuePage import logging logger = logging.getLogger(__name__) class PlaylistNotebookAction(object): """ A custom action to be placed to the left or right of playlist tabs """ name = None position = gtk.PACK_END def __init__(self, notebook): self.notebook = notebook class NewPlaylistNotebookAction(PlaylistNotebookAction, gtk.Button): """ Playlist notebook action which allows for creating new playlists regularly as well as by dropping tracks, files and directories on it """ __gsignals__ = {'clicked': 'override'} name = 'new-playlist' def __init__(self, notebook): PlaylistNotebookAction.__init__(self, notebook) gtk.Button.__init__(self) self.set_image(gtk.image_new_from_icon_name('tab-new', gtk.ICON_SIZE_BUTTON)) self.set_relief(gtk.RELIEF_NONE) self.__default_tooltip_text = _('New Playlist') self.__drag_tooltip_text = _('Drop here to create a new playlist') self.set_tooltip_text(self.__default_tooltip_text) self.drag_dest_set(gtk.DEST_DEFAULT_ALL, [], gtk.gdk.ACTION_COPY) self.drag_dest_add_uri_targets() self.connect('drag-motion', self.on_drag_motion) self.connect('drag-leave', self.on_drag_leave) self.connect('drag-data-received', self.on_drag_data_received) def do_clicked(self): """ Triggers creation of a new playlist """ self.notebook.create_new_playlist() def on_drag_motion(self, widget, context, x, y, time): """ Updates the tooltip during drag operations """ self.set_tooltip_text(self.__drag_tooltip_text) def on_drag_leave(self, widget, context, time): """ Restores the original tooltip """ self.set_tooltip_text(self.__default_tooltip_text) def on_drag_data_received(self, widget, context, x, y, selection, info, time): """ Handles dropped data """ tab = self.notebook.create_new_playlist() # Forward signal to the PlaylistView in the newly added tab tab.page.view.emit('drag-data-received', context, x, y, selection, info, time) providers.register('playlist-notebook-actions', NewPlaylistNotebookAction) class PlaylistNotebook(SmartNotebook, providers.ProviderHandler): def __init__(self, manager_name, player): SmartNotebook.__init__(self) providers.ProviderHandler.__init__(self, 'playlist-notebook-actions') self.tab_manager = PlaylistManager(manager_name) self.player = player # For saving closed tab history self.tab_history = [] self.history_counter = 90000 # to get unique (reverse-ordered) item names # Build static menu entries item = menu.simple_separator('clear-sep',[]) providers.register('playlist-closed-tab-menu', item) item = menu.simple_menu_item('clear-history', ['clear-sep'], None, 'gtk-clear', self.clear_closed_tabs) providers.register('playlist-closed-tab-menu', item) # Simple factory for 'Recently Closed Tabs' MenuItem submenu = menu.ProviderMenu('playlist-closed-tab-menu',self) def factory(menu_, parent, context): item = gtk.MenuItem(_("Recently Closed Tabs")) if len(self.tab_history) > 0: item.set_submenu(submenu) else: item.set_sensitive(False) return item # Add menu to tab context menu item = menu.MenuItem('tab-history', factory, ['tab-close']) providers.register('playlist-tab-context-menu', item) # Add menu to View menu item = menu.MenuItem('tab-history', factory, ['clear-playlist']) providers.register('menubar-view-menu', item) # Add hotkey self.accelerator = Accelerator('t', lambda *x: self.restore_closed_tab(0)) providers.register('mainwindow-accelerators',self.accelerator) # Load saved tabs and add queue tab self.load_saved_tabs() self.queuepage = QueuePage(self.player) self.queuetab = NotebookTab(self, self.queuepage) if len(self.player.queue) > 0: self.show_queue() # Try to set up action widgets try: self.set_action_widget(gtk.HBox(spacing=3), gtk.PACK_START) self.set_action_widget(gtk.HBox(spacing=3), gtk.PACK_END) except AttributeError: # Older than GTK 2.20 and PyGTK 2.22 pass else: self.__actions = {} for provider in self.get_providers(): self.on_provider_added(provider) self.tab_placement_map = { 'left': gtk.POS_LEFT, 'right': gtk.POS_RIGHT, 'top': gtk.POS_TOP, 'bottom': gtk.POS_BOTTOM } self.connect('page-added', self.on_page_added) self.connect('page-removed', self.on_page_removed) self.connect('page-reordered', self.on_page_reordered) self.on_option_set('gui_option_set', settings, 'gui/show_tabbar') self.on_option_set('gui_option_set', settings, 'gui/tab_placement') event.add_callback(self.on_option_set, 'gui_option_set') def show_queue(self, switch=True): if self.queuepage not in self.get_children(): self.add_tab(self.queuetab, self.queuepage, position=0) if switch: # should always be 0, but doesn't hurt to be safe... self.set_current_page(self.page_num(self.queuepage)) def create_tab_from_playlist(self, playlist): """ Create a tab that will contain the passed-in playlist :param playlist: The playlist to create tab from :type playlist: :class:`xl.playlist.Playlist` """ page = PlaylistPage(playlist, self.player) tab = NotebookTab(self, page) self.add_tab(tab, page) return tab def create_new_playlist(self): """ Create a new tab containing a blank playlist. The tab will be automatically given a unique name. """ seen = [] default_playlist_name = _('Playlist %d') # Split into 'Playlist ' and '' default_name_parts = default_playlist_name.split('%d') for n in range(self.get_n_pages()): page = self.get_nth_page(n) name = page.get_name() name_parts = [ # 'Playlist 99' => 'Playlist ' name[0:len(default_name_parts[0])], # 'Playlist 99' => '' name[len(name) - len(default_name_parts[1]):] ] # Playlist name matches our format if name_parts == default_name_parts: # Extract possible number between name parts number = name[len(name_parts[0]):len(name) - len(name_parts[1])] try: number = int(number) except ValueError: pass else: seen += [number] seen.sort() n = 1 while True: if n not in seen: break n += 1 playlist = Playlist(default_playlist_name % n) return self.create_tab_from_playlist(playlist) def add_default_tab(self): return self.create_new_playlist() def load_saved_tabs(self): names = self.tab_manager.list_playlists() if not names: self.add_default_tab() return count = -1 count2 = 0 names.sort() # holds the order#'s of the already added tabs added_tabs = {} name_re = re.compile( r'^order(?P\d+)\.(?P[^.]*)\.(?P.*)$') for i, name in enumerate(names): match = name_re.match(name) if not match or not match.group('tab') or not match.group('name'): logger.error("%s did not match valid playlist file" % repr(name)) continue logger.debug("Adding playlist %d: %s" % (i, name)) logger.debug("Tab:%s; Tag:%s; Name:%s" % (match.group('tab'), match.group('tag'), match.group('name'), )) pl = self.tab_manager.get_playlist(name) pl.name = match.group('name') if match.group('tab') not in added_tabs: self.create_tab_from_playlist(pl) added_tabs[match.group('tab')] = pl pl = added_tabs[match.group('tab')] if match.group('tag') == 'current': count = i if self.player.queue.current_playlist is None: self.player.queue.set_current_playlist(pl) elif match.group('tag') == 'playing': count2 = i self.player.queue.set_current_playlist(pl) # If there's no selected playlist saved, use the currently # playing if count == -1: count = count2 self.set_current_page(count) def save_current_tabs(self): """ Saves the open tabs """ # first, delete the current tabs names = self.tab_manager.list_playlists() for name in names: logger.debug("Removing tab %s" % name) self.tab_manager.remove_playlist(name) # TODO: make this generic enough to save other kinds of tabs for n, page in enumerate(self): if not isinstance(page, PlaylistPage): continue tag = '' if page.playlist is self.player.queue.current_playlist: tag = 'playing' elif n == self.get_current_page(): tag = 'current' page.playlist.name = 'order%d.%s.%s' % (n, tag, page.playlist.name) logger.debug('Saving tab %r', page.playlist.name) try: self.tab_manager.save_playlist(page.playlist, True) except Exception: # an exception here could cause exaile to be unable to quit. # Catch all exceptions. logger.exception("Error saving tab %r", page.playlist.name) def show_current_track(self): """ Tries to find the currently playing track and selects it and its containing tab page """ for n, page in enumerate(self): if not isinstance(page, PlaylistPage): continue if page.playlist is not self.player.queue.current_playlist: continue self.set_current_page(n) page.view.scroll_to_cell(page.playlist.current_position) page.view.set_cursor(page.playlist.current_position) def on_page_added(self, notebook, child, page_number): """ Updates appearance on page add """ if self.get_n_pages() > 1: # Enforce tabbar visibility self.set_show_tabs(True) def on_page_removed(self, notebook, child, page_number): """ Updates appearance on page removal """ if self.get_n_pages() == 1: self.set_show_tabs(settings.get_option('gui/show_tabbar', True)) # closed tab history if settings.get_option('gui/save_closed_tabs', True) and \ isinstance(child, PlaylistPage): self.save_closed_tab(child.playlist) def on_page_reordered(self, notebook, child, page_number): if self.page_num(self.queuepage) != 0: self.reorder_child(self.queuepage, 0) def restore_closed_tab(self, pos=None, playlist=None, item_name=None): ret = self.remove_closed_tab(pos, playlist, item_name) if ret is not None: self.create_tab_from_playlist(ret[0]) def save_closed_tab(self, playlist): # don't let the list grow indefinitely items = providers.get('playlist-closed-tab-menu') if len(self.tab_history) > settings.get_option('gui/max_closed_tabs', 10): self.remove_closed_tab(-1) # remove last item item_name = 'playlist%05d'%self.history_counter close_time = datetime.now() # define a MenuItem factory that supports dynamic labels def factory(menu_, parent, context): item = None dt = (datetime.now() - close_time) if dt.seconds > 60: display_name = _('{playlist_name} ({track_count} tracks, closed {minutes} min ago)').format( playlist_name=playlist.name, track_count=len(playlist), minutes=dt.seconds // 60 ) else: display_name = _('{playlist_name} ({track_count} tracks, closed {seconds} sec ago)').format( playlist_name=playlist.name, track_count=len(playlist), seconds=dt.seconds ) item = gtk.ImageMenuItem(display_name) item.set_image(gtk.image_new_from_icon_name('music-library', gtk.ICON_SIZE_MENU)) # Add accelerator to top item if self.tab_history[0][1].name == item_name: key, mods = gtk.accelerator_parse(self.accelerator.keys) item.add_accelerator('activate', menu.FAKEACCELGROUP, key, mods, gtk.ACCEL_VISIBLE) item.connect('activate', lambda w: self.restore_closed_tab(item_name=item_name)) return item # create menuitem item = menu.MenuItem(item_name, factory, []) providers.register('playlist-closed-tab-menu', item) self.history_counter -= 1 # add self.tab_history.insert(0, (playlist,item)) def get_closed_tab(self, pos=None, playlist=None, item_name=None): if pos is not None: try: return self.tab_history[pos] except IndexError: return None elif playlist is not None: for (pl, item) in self.tab_history: if pl == playlist: return (pl, item) elif item_name is not None: for (pl, item) in self.tab_history: if item.name == item_name: return (pl, item) return None # remove from menus def remove_closed_tab(self, pos=None, playlist=None, item_name=None): ret = self.get_closed_tab(pos, playlist, item_name) if ret is not None: self.tab_history.remove(ret) providers.unregister('playlist-closed-tab-menu', ret[1]) return ret def clear_closed_tabs(self, widget, name, parent, context): for i in xrange(len(self.tab_history)): self.remove_closed_tab(0) def focus(self): self.get_current_tab().focus() def focus_tab(self, tab_nr): """ Selects the playlist notebook tab tab_nr, and gives it the keyboard focus. """ self.set_current_page(tab_nr) self.get_current_tab().focus() def select_next_tab(self): """ Selects the previous playlist notebook tab, warping around if the first page is currently displayed. """ tab_nr = self.get_current_page() tab_nr += 1 tab_nr %= self.get_n_pages() self.set_current_page(tab_nr) def select_prev_tab(self): """ Selects the next playlist notebook tab, warping around if the last page is currently displayed. """ tab_nr = self.get_current_page() tab_nr -= 1 tab_nr %= self.get_n_pages() self.set_current_page(tab_nr) def on_option_set(self, event, settings, option): """ Updates appearance on setting change """ if option == 'gui/show_tabbar': show_tabbar = settings.get_option(option, True) if not show_tabbar and self.get_n_pages() > 1: show_tabbar = True glib.idle_add(self.set_show_tabs, show_tabbar) if option == 'gui/tab_placement': tab_placement = settings.get_option(option, 'top') glib.idle_add(self.set_tab_pos, self.tab_placement_map[tab_placement]) def on_provider_added(self, provider): """ Adds actions on provider addition """ try: actions_box = self.get_action_widget(provider.position) except AttributeError: pass else: self.__actions[provider.name] = provider(self) actions_box.pack_start(self.__actions[provider.name], False, False) actions_box.show_all() def on_provider_removed(self, provider): """ Removes actions on provider removal """ try: actions_box = self.get_action_widget(provider.position) except AttributeError: pass else: actions_box.remove(self.__actions[provider.name]) del self.__actions[provider_name] dist/copy/xlgui/PaxHeaders.26361/preferences0000644000175000017500000000013212233027261017375 xustar000000000000000030 mtime=1382821553.605046948 30 atime=1382821552.793046922 30 ctime=1382821553.605046948 exaile-3.3.2/xlgui/preferences/0000755000000000000000000000000012233027261016413 5ustar00rootroot00000000000000dist/copy/xlgui/preferences/PaxHeaders.26361/widgets.py0000644000175000017500000000012412233027260021472 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.609046948 exaile-3.3.2/xlgui/preferences/widgets.py0000644000000000000000000007674512233027260020455 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import hashlib import logging import os import glib import gtk import pango from xl.nls import gettext as _ from xl import event, main, settings, xdg from xlgui import guiutil from xlgui.widgets import dialogs logger = logging.getLogger(__name__) class Preference(object): """ Representing a gtk.Entry preferences item """ default = '' restart_required = False def __init__(self, preferences, widget): """ Initializes the preferences item expects the name of the widget in the designer file, the default for this setting, an optional function to be called when the value is changed, and an optional function to be called when this setting is applied """ self.widget = widget self.preferences = preferences if self.restart_required: self.message = dialogs.MessageBar( parent=preferences.builder.get_object('preferences_box'), type=gtk.MESSAGE_QUESTION, buttons=gtk.BUTTONS_CLOSE, text=_('Restart Exaile?')) self.message.set_secondary_text( _('A restart is required for this change to take effect.')) button = self.message.add_button(_('Restart'), gtk.RESPONSE_ACCEPT) button.set_image(gtk.image_new_from_stock( gtk.STOCK_REFRESH, gtk.ICON_SIZE_BUTTON)) self.message.connect('response', self.on_message_response) self._set_value() self._setup_change() def change(self, *args): self.apply() def _setup_change(self): """ Sets up the function to be called when this preference is changed """ self.widget.connect('focus-out-event', self.change, self.name, self._get_value()) try: self.widget.connect('activate', lambda *e: self.change(self.widget, None, self.name, self._get_value())) except TypeError: pass def _get_value(self): """ Value to be stored into the settings file """ return unicode(self.widget.get_text(), 'utf-8') def _set_value(self): """ Sets the GUI widget up for this preference """ if not self.widget: logger.error("Widget not found: %s" % (self.name)) return self.widget.set_text(str(self.preferences.settings.get_option( self.name, self.default))) def apply(self, value=None): """ Applies this setting """ if hasattr(self, 'done') and not self.done(): return False oldvalue = self.preferences.settings.get_option(self.name, self.default) if value is None: value = self._get_value() if value != oldvalue: self.preferences.settings.set_option(self.name, value) if self.restart_required: self.message.show() return True def on_message_response(self, widget, response): """ Restarts Exaile if requested """ widget.hide() if response == gtk.RESPONSE_ACCEPT: glib.idle_add(main.exaile().quit, True) class Conditional(object): """ Allows for reactions on changes of other preference items """ condition_preference_name = '' condition_widget = None def __init__(self): event.add_callback(self.on_option_set, 'option_set') glib.idle_add(self.on_option_set, 'option_set', settings, self.condition_preference_name) def on_check_condition(self): """ Specifies the condition to meet :returns: Whether the condition is met or not :rtype: bool """ pass def on_condition_met(self): """ Called as soon as the specified condition is met """ self.widget.set_sensitive(True) def on_condition_failed(self): """ Called as soon as the specified condition is not met anymore """ self.widget.set_sensitive(False) def on_option_set(self, event, settings, option): """ Called as soon as options change """ if option == self.condition_preference_name: if self.on_check_condition(): self.on_condition_met() else: self.on_condition_failed() class CheckConditional(Conditional): """ True if the conditional widget is active """ def on_check_condition(self): """ Specifies the condition to meet :returns: Whether the condition is met or not :rtype: bool """ return self.condition_widget.get_active() class Button(Preference): """ Represents a button for custom usage """ def __init__(self, preferences, widget): Preference.__init__(self, preferences, widget) widget.connect('clicked', self.on_clicked) def _setup_change(*e): pass def _get_value(self): return None def _set_value(self): pass def apply(*e): return False def on_clicked(self, button): """ Override """ pass class HashedPreference(Preference): """ Represents a text entry with automated hashing Options: * type (Which hashfunction to use, default: md5) """ type = 'md5' def __init__(self, preferences, widget): Preference.__init__(self, preferences, widget) self.widget.set_visibility(True) self._delete_text_id = self.widget.connect('delete-text', self.on_delete_text) self._insert_text_id = self.widget.connect('insert-text', self.on_insert_text) def _setup_change(self): """ Sets up the function to be called when this preference is changed """ self.widget.connect('focus-out-event', lambda *e: self.apply()) def done(self): """ Determines if changes are to be expected """ if self._delete_text_id is None and \ self._insert_text_id is None: return True return False def apply(self, value=None): """ Applies this setting """ if not self.done(): return False if value is None: value = self._get_value() if value is None: return True if value != '': hashfunc = hashlib.new(self.type) hashfunc.update(value) value = hashfunc.hexdigest() oldvalue = self.preferences.settings.get_option(self.name, self.default) if value != oldvalue: self.preferences.settings.set_option(self.name, value) self.widget.set_text(value) self.widget.set_visibility(True) self._delete_text_id = self.widget.connect('delete-text', self.on_delete_text) self._insert_text_id = self.widget.connect('insert-text', self.on_insert_text) return True def on_delete_text(self, widget, start, end): """ Clears the text entry and makes following input invisible """ self.widget.disconnect(self._delete_text_id) self.widget.disconnect(self._insert_text_id) self._delete_text_id = self._insert_text_id = None self.widget.set_visibility(False) self.widget.set_text('') def on_insert_text(self, widget, text, length, position): """ Clears the text entry and makes following input invisible """ self.widget.disconnect(self._delete_text_id) self.widget.disconnect(self._insert_text_id) self._delete_text_id = self._insert_text_id = None self.widget.set_visibility(False) # Defer to after returning from this method glib.idle_add(self.widget.set_text, text) glib.idle_add(self.widget.set_position, length) class CheckPreference(Preference): """ A class to represent check boxes in the preferences window """ def __init__(self, preferences, widget): Preference.__init__(self, preferences, widget) def _setup_change(self): self.widget.connect('toggled', self.change) def _set_value(self): self.widget.set_active( self.preferences.settings.get_option(self.name, self.default)) def _get_value(self): return self.widget.get_active() class DirPreference(Preference): """ Directory chooser button """ def __init__(self, preferences, widget): Preference.__init__(self, preferences, widget) def _setup_change(self): self.widget.connect('current-folder-changed', self.change) def _set_value(self): """ Sets the current directory """ directory = os.path.expanduser( self.preferences.settings.get_option(self.name, self.default)) if not os.path.exists(directory): os.makedirs(directory) self.widget.set_current_folder(directory) def _get_value(self): return self.widget.get_filename() class OrderListPreference(Preference): """ A list box with reorderable items """ def __init__(self, preferences, widget): self.model = gtk.ListStore(str) Preference.__init__(self, preferences, widget) widget.set_headers_visible(False) widget.set_reorderable(True) text = gtk.CellRendererText() col = gtk.TreeViewColumn("Item", text, text=0) self.widget.append_column(col) self.widget.set_model(self.model) def _setup_change(self): self.widget.connect('drag-end', self.change) def _set_value(self): """ Sets the preferences for this widget """ items = self.preferences.settings.get_option(self.name, self.default) self.model.clear() for item in items: self.model.append([item]) def _get_value(self): """ Value to be stored into the settings file """ items = [] for row in self.model: items += [row[0]] return items class SelectionListPreference(Preference): """ A list allowing for enabling/disabling as well as reordering of items Options: * items: list of :class:`SelectionListPreference.Item` objects * default: list of item ids """ class Item(object): """ Convenience class for preference item description """ def __init__(self, id, title, description=None, fixed=False): """ :param id: the unique identifier :type id: string :param title: the readable title :type title: string :param description: optional description of the item :type description: string :param fixed: whether the item should be removable :type fixed: bool """ self.__id = id self.__title = title self.__description = description self.__fixed = fixed id = property(lambda self: self.__id) title = property(lambda self: self.__title) description = property(lambda self: self.__description) fixed = property(lambda self: self.__fixed) def __init__(self, preferences, widget): self.model = gtk.ListStore( str, # 0: item str, # 1: title str, # 2: description bool, # 3: enabled bool # 4: fixed ) for item in self.items: self.model.append([item.id, item.title, item.description, True, item.fixed]) tree = gtk.TreeView(self.model) tree.set_headers_visible(False) tree.set_rules_hint(True) tree.enable_model_drag_source( gtk.gdk.BUTTON1_MASK, [('GTK_TREE_MODEL_ROW', gtk.TARGET_SAME_WIDGET, 0)], gtk.gdk.ACTION_MOVE ) tree.enable_model_drag_dest( [('GTK_TREE_MODEL_ROW', gtk.TARGET_SAME_WIDGET, 0)], gtk.gdk.ACTION_MOVE ) tree.connect('row-activated', self.on_row_activated) tree.connect('key-press-event', self.on_key_press_event) tree.connect('drag-end', self.change) toggle_renderer = gtk.CellRendererToggle() toggle_renderer.connect('toggled', self.on_toggled) enabled_column = gtk.TreeViewColumn('Enabled', toggle_renderer, active=3) enabled_column.set_cell_data_func(toggle_renderer, self.enabled_data_function) tree.append_column(enabled_column) text_renderer = gtk.CellRendererText() text_renderer.props.ypad = 6 title_column = gtk.TreeViewColumn('Title', text_renderer, text=1) title_column.set_cell_data_func(text_renderer, self.title_data_function) tree.append_column(title_column) scroll = gtk.ScrolledWindow() scroll.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) scroll.set_shadow_type(gtk.SHADOW_IN) scroll.add(tree) guiutil.gtk_widget_replace(widget, scroll) Preference.__init__(self, preferences, scroll) def _get_value(self): """ Value to be stored in the settings """ return [row[0] for row in self.model if row[3]] def _set_value(self): """ Updates the internal representation """ selected_items = settings.get_option(self.name, self.default) # Get list of available items available_items = [row[0] for row in self.model] if not available_items: return # Filter out invalid items selected_items = [item for item in selected_items \ if item in available_items] # Cut out unselected items unselected_items = [item for item in available_items \ if item not in selected_items] # Move unselected items to the end items = selected_items + unselected_items new_order = [available_items.index(item) for item in items] self.model.reorder(new_order) # Disable unselected items for row in self.model: if row[0] in unselected_items and not row[4]: row[3] = False else: row[3] = True def enabled_data_function(self, column, cell, model, iter): """ Prepares sensitivity of the enabled column """ path = model.get_path(iter) fixed = model[path][4] cell.props.sensitive = not fixed def title_data_function(self, column, cell, model, iter): """ Prepares the markup to be used for the title column """ path = model.get_path(iter) title, description = model[path][1], model[path][2] markup = '%s' % title if description is not None: markup += '\n%s' % description cell.props.markup = markup def iter_prev(self, iter, model): """ Returns the previous iter Taken from PyGtk FAQ 13.51 """ path = model.get_path(iter) position = path[-1] if position == 0: return None prev_path = list(path)[:-1] prev_path.append(position - 1) prev = model.get_iter(tuple(prev_path)) return prev def on_row_activated(self, tree, path, column): """ Updates the enabled column """ model = tree.get_model() if model[path][4]: return enabled = not model[path][3] model[path][3] = enabled def on_key_press_event(self, tree, event): """ Allows for reordering via keyboard (Alt+) """ if not event.state & gtk.gdk.MOD1_MASK: return if event.keyval not in (gtk.keysyms.Up, gtk.keysyms.Down): return model, selected_iter = tree.get_selection().get_selected() if event.keyval == gtk.keysyms.Up: previous_iter = self.iter_prev(selected_iter, model) model.move_before(selected_iter, previous_iter) elif event.keyval == gtk.keysyms.Down: next_iter = model.iter_next(selected_iter) model.move_after(selected_iter, next_iter) tree.scroll_to_cell(model.get_path(selected_iter)) self.apply() def on_toggled(self, cell, path): """ Updates the enabled column """ if self.model[path][4]: return active = not cell.get_active() cell.set_active(active) self.model[path][3] = active self.apply() class ShortcutListPreference(Preference): """ A list showing available items and allowing to assign/edit/remove key accelerators """ def __init__(self, preferences, widget): self.list = gtk.ListStore(str, str) Preference.__init__(self, preferences, widget) self.widget.set_model(self.list) title_renderer = gtk.CellRendererText() title_column = gtk.TreeViewColumn(_('Action'), title_renderer, text=0) title_column.set_expand(True) title_column.set_cell_data_func(title_renderer, self.title_data_func) accel_renderer = gtk.CellRendererAccel() accel_renderer.set_property('editable', True) accel_renderer.set_property('style', pango.STYLE_OBLIQUE) accel_renderer.connect('accel-cleared', self.on_accel_cleared) accel_renderer.connect('accel-edited', self.on_accel_edited) accel_column = gtk.TreeViewColumn(_('Shortcut'), accel_renderer, text=1) accel_column.set_expand(True) self.widget.append_column(title_column) self.widget.append_column(accel_column) def title_data_func(self, celllayout, cell, model, iter): """ Renders human readable titles instead of the actual keys """ key = model.get_value(iter, 0) try: cell.set_property('text', self.available_items[key]) except KeyError: pass def on_accel_cleared(self, cellrenderer, path): """ Clears accelerators in the list """ iter = self.list.get_iter(path) self.list.set_value(iter, 1, '') def on_accel_edited(self, cellrenderer, path, accel_key, accel_mods, keycode): """ Updates accelerators display in the list """ accel = gtk.accelerator_name(accel_key, accel_mods) iter = self.list.get_iter(path) self.list.set_value(iter, 1, accel) def _set_value(self): """ Sets the preferences for this widget """ items = self.preferences.settings.get_option(self.name, self.default) self.update_list(items) def _get_value(self): """ Value to be stored into the settings file """ option = {} iter = self.list.get_iter_first() while iter: action = self.list.get_value(iter, 0) accel = self.list.get_value(iter, 1) if accel: option[action] = accel iter = self.list.iter_next(iter) return option def update_list(self, items): """ Updates the displayed items """ self.list.clear() for action in self.available_items.iterkeys(): try: accel = items[action] except KeyError: accel = '' self.list.append([action, accel]) class TextViewPreference(Preference): """ Represents a gtk.TextView """ def __init__(self, preferences, widget): """ Initializes the object """ Preference.__init__(self, preferences, widget) def _setup_change(self): self.widget.connect('focus-out-event', self.change) def get_all_text(self): """ Returns the value of the text buffer """ buf = self.widget.get_buffer() start = buf.get_start_iter() end = buf.get_end_iter() return unicode(buf.get_text(start, end), 'utf-8') def _set_value(self): """ Sets the value of this widget """ self.widget.get_buffer().set_text(str( self.preferences.settings.get_option(self.name, default=self.default))) def _get_value(self): """ Applies the setting """ return self.get_all_text() class ListPreference(Preference): """ A class to represent a space separated list in the preferences window """ def __init__(self, preferences, widget): Preference.__init__(self, preferences, widget) def _set_value(self): items = self.preferences.settings.get_option(self.name, default=self.default) try: items = u" ".join(items) except TypeError: items = u"" self.widget.set_text(items) def _get_value(self): # shlex is broken with unicode, so we feed it UTF-8 and decode # afterwards. import shlex values = shlex.split(self.widget.get_text()) values = [unicode(value, 'utf-8') for value in values] return values class SpinPreference(Preference): """ A class to represent a numeric entry box with stepping buttons """ def __init__(self, preferences, widget): Preference.__init__(self, preferences, widget) def _set_value(self): value = self.preferences.settings.get_option(self.name, default=self.default) self.widget.set_value(value) def _setup_change(self): self.widget.connect('value-changed', self.change) def _get_value(self): return self.widget.get_value() class ScalePreference(SpinPreference): """ Representation of gtk.Scale widgets """ def __init__(self, preferences, widget): SpinPreference.__init__(self, preferences, widget) class FloatPreference(Preference): """ A class to represent a floating point number in the preferences window """ def __init__(self, preferences, widget): Preference.__init__(self, preferences, widget) def _set_value(self): self.widget.set_text(str( self.preferences.settings.get_option(self.name, default=self.default))) def _get_value(self): return float(self.widget.get_text()) class IntPreference(FloatPreference): def _get_value(self): return int(self.widget.get_text()) class ColorButtonPreference(Preference): """ A class to represent the color button """ def __init__(self, preferences, widget): Preference.__init__(self, preferences, widget) def _setup_change(self): self.widget.connect('color-set', self.change) def _set_value(self): value = self.preferences.settings.get_option( self.name, self.default) # Extract alpha value in any case if len(value) == 9: alpha = int(value[-2:], 16) * 256 value = value[:-2] if self.widget.get_use_alpha(): self.widget.set_alpha(alpha) self.widget.set_color(gtk.gdk.color_parse(value)) def _get_value(self): color = self.widget.get_color() value = '#%.2x%.2x%.2x' % ( color.red / 256, color.green / 256, color.blue / 256 ) if self.widget.get_use_alpha(): alpha = self.widget.get_alpha() value += '%.2x' % (alpha / 256) return value class FontButtonPreference(ColorButtonPreference): """ Font button """ def __init__(self, preferences, widget): ColorButtonPreference.__init__(self, preferences, widget) def _setup_change(self): self.widget.connect('font-set', self.change) def _set_value(self): font = self.preferences.settings.get_option(self.name, self.default) self.widget.set_font_name(font) def _get_value(self): font = self.widget.get_font_name() return font class FontResetButtonPreference(Button, Conditional): ''' A button to reset a font button to a default font ''' def __init__(self, preferences, widget): Button.__init__(self, preferences, widget) Conditional.__init__(self) def on_check_condition(self): if self.condition_widget.get_font_name() == self.default: return False return True def on_clicked(self, button): self.condition_widget.set_font_name(self.default) self.condition_widget.emit('font-set') class ComboPreference(Preference): """ A combo box """ def __init__(self, preferences, widget): Preference.__init__(self, preferences, widget) def _setup_change(self): self.widget.connect('changed', self.change) def _set_value(self): """ Sets the preferences for this widget """ item = self.preferences.settings.get_option(self.name, self.default) model = self.widget.get_model() for row in model: if item == row[0]: self.widget.set_active_iter(row.iter) def _get_value(self): """ Value to be stored into the settings file """ model = self.widget.get_model() iter = self.widget.get_active_iter() return model.get_value(iter, 0) class ComboEntryPreference(Preference): """ A combo box allowing for user defined values, presets and auto completion Options: * completion_items (List of completion items or dictionary of items and their titles) * preset_items (List of preset items or dictionary of items and their titles) """ def __init__(self, preferences, widget): Preference.__init__(self, preferences, widget) self.list = gtk.ListStore(str) try: try: preset_items = self.preset_items.items() self.list = gtk.ListStore(str, str) text_renderer = self.widget.get_cells()[0] text_renderer.set_property('weight', pango.WEIGHT_BOLD) title_renderer = gtk.CellRendererText() self.widget.pack_start(title_renderer, expand=False) self.widget.add_attribute(title_renderer, 'text', 1) except AttributeError: preset_items = [[item] for item in self.preset_items] for preset in preset_items: self.list.append(preset) except AttributeError: pass self.widget.set_model(self.list) self.widget.set_text_column(0) try: completion = gtk.EntryCompletion() try: completion_items = self.completion_items.items() self.completion_list = gtk.ListStore(str, str) title_renderer = gtk.CellRendererText() completion.pack_end(title_renderer) completion.add_attribute(title_renderer, 'text', 1) except AttributeError: completion_items = [[item] for item in self.completion_items] self.completion_list = gtk.ListStore(str) keyword_renderer = gtk.CellRendererText() keyword_renderer.set_property('weight', pango.WEIGHT_BOLD) completion.pack_end(keyword_renderer) completion.add_attribute(keyword_renderer, 'text', 0) completion.set_match_func(self.on_matching) completion.connect('match-selected', self.on_match_selected) completion.set_popup_single_match(True) completion.set_model(self.completion_list) self.widget.get_child().set_completion(completion) for item in completion_items: self.completion_list.append(item) except AttributeError: pass def _setup_change(self): """ Sets up the function to be called when this preference is changed """ self.widget.connect('changed', self.change, self.name, self._get_value()) def _set_value(self): """ Sets the preferences for this widget """ value = self.preferences.settings.get_option(self.name, self.default) self.widget.get_child().set_text(str(value)) def _get_value(self): """ Value to be stored into the settings file """ return self.widget.get_child().get_text() def on_matching(self, completion, text, iter): """ Matches the content of this box to the list of available completions """ cursor_pos = self.widget.get_child().get_position() # Ignore the rest, allows for completions in the middle text = text[:cursor_pos] match = self.completion_list.get_value(iter, 0) # Try to find match, from largest to smallest for i in range(len(match), -1, -1): # Find from the rear match_pos = text.rfind(match[:i]) # Matched if the match is not empty # and equal to the text from the matched position to the end # and not equal to the match itself # (the latter hides the match if it was already fully typed) if match[:i] and match[:i] == text[match_pos:] and match[:i] != match: return True return False def on_match_selected(self, completion, list, iter): """ Inserts the selected completion """ cursor_pos = self.widget.get_child().get_position() text = self.widget.get_child().get_text()[:cursor_pos] match = list.get_value(iter, 0) for i in range(len(match), -1, -1): match_pos = text.rfind(match[:i]) if match[:i] and match[:i] == text[match_pos:]: # Delete halfway typed text self.widget.get_child().delete_text( match_pos, match_pos + len(match[:i])) # Insert match at matched position self.widget.get_child().insert_text( match, match_pos) # Update cursor position self.widget.get_child().set_position(match_pos + len(match)) return True # vim: et sts=4 sw=4 dist/copy/xlgui/preferences/PaxHeaders.26361/playlists.py0000644000175000017500000000012412233027260022050 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.569046947 exaile-3.3.2/xlgui/preferences/playlists.py0000644000000000000000000000443412233027260021015 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import gtk from xl import xdg from xl.nls import gettext as _ from xlgui import icons from xlgui.preferences import widgets name = _('Playlists') icon = 'music-library' ui = xdg.get_data_path('ui', 'preferences', 'playlists.ui') class OpenLastPreference(widgets.CheckPreference): default = True name = 'playlist/open_last' class AskSaveCustomPlaylistPreference(widgets.CheckPreference): default = True name = 'playlist/ask_save' class ReplaceContentPreference(widgets.CheckPreference): default = False name = 'playlist/replace_content' class AppendStartsPlaybackPreference(widgets.CheckPreference): default = False name = 'playlist/append_menu_starts_playback' class EnqueueTrackByDefaultPreference(widgets.CheckPreference): default = False name = 'playlist/enqueue_by_default' # FIXME: Is this still relevant? #class QueueSavePreferences(widgets.CheckPreference): # default = True # name = 'playlist/save_queue' # def change(self, *e): # dialogs.error(self.preferences.window, "Doesn't work yet") # vim: et sts=4 sw=4 dist/copy/xlgui/preferences/PaxHeaders.26361/cover.py0000644000175000017500000000012412233027260021142 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.517046945 exaile-3.3.2/xlgui/preferences/cover.py0000644000000000000000000000633412233027260020110 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import gtk from xl import ( covers, settings, xdg ) from xl.nls import gettext as _ from xlgui import icons from xlgui.preferences import widgets name = _('Covers') icon = 'image-x-generic' ui = xdg.get_data_path('ui', 'preferences', 'cover.ui') class TagCoverFetching(widgets.CheckPreference): default = True name = 'covers/use_tags' class LocalCoverFetching(widgets.CheckPreference): default = True name = 'covers/use_localfile' class LocalFilePreferredNamesPreference(widgets.Preference, widgets.CheckConditional): default = ['album', 'cover'] name = 'covers/localfile/preferred_names' condition_preference_name = 'covers/use_localfile' def __init__(self, preferences, widget): widgets.Preference.__init__(self, preferences, widget) widgets.CheckConditional.__init__(self) def _get_value(self): """ Converts the string value to a list """ return [v.strip() for v in widgets.Preference._get_value(self).split(',')] def _set_value(self): """ Converts the list to a string value """ self.widget.set_text(', '.join(settings.get_option( self.name, self.default))) class CoverOrderPreference(widgets.OrderListPreference): """ This little preference item shows kind of a complicated preference widget in action. The defaults are dynamic. """ name = 'covers/preferred_order' def __init__(self, preferences, widget): self.default = covers.MANAGER._get_methods() widgets.OrderListPreference.__init__(self, preferences, widget) def _set_value(self): self.model.clear() for item in self.default: self.model.append([item.name]) def apply(self): if widgets.OrderListPreference.apply(self): covers.MANAGER.set_preferred_order( self._get_value()) return True class AutomaticCoverFetching(widgets.CheckPreference): default = True name = 'covers/automatic_fetching' dist/copy/xlgui/preferences/PaxHeaders.26361/playback.py0000644000175000017500000000012412233027260021612 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.565046947 exaile-3.3.2/xlgui/preferences/playback.py0000644000000000000000000001575612233027260020570 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import gobject import gtk from xlgui.preferences import widgets from xl import main, xdg from xl.player import pipe from xl.nls import gettext as _ name = _('Playback') icon = gtk.STOCK_MEDIA_PLAY ui = xdg.get_data_path('ui', 'preferences', 'playback.ui') class EnginePreference(widgets.ComboPreference): default = "normal" name = 'player/engine' restart_required = True class AudioSinkPreference(widgets.ComboPreference): default = "auto" name = 'player/audiosink' restart_required = True def __init__(self, preferences, widget): widgets.ComboPreference.__init__(self, preferences, widget) model = self.widget.get_model() # always list auto first, custom last def _sink_cmp(x,y): xy = (x[0],y[0]) if x[0] == y[0] or ('auto' not in xy and 'custom' not in xy): return cmp(x[0],y[0]) if x[0] == 'auto': return -1 if y[0] == 'custom': return -1 return 1 for name, preset in sorted(pipe.SINK_PRESETS.iteritems(), _sink_cmp): model.append((name, preset['name'])) self._set_value() class CustomAudioSinkPreference(widgets.Preference, widgets.Conditional): default = "" name = "player/custom_sink_pipe" condition_preference_name = 'player/audiosink' def __init__(self, preferences, widget): widgets.Preference.__init__(self, preferences, widget) widgets.Conditional.__init__(self) def on_check_condition(self): """ Specifies a condition to meet :returns: Whether the condition is met or not :rtype: bool """ iter = self.condition_widget.get_active_iter() value = self.condition_widget.get_model().get_value(iter, 0) if value == 'custom': return True return False class SelectDeviceForSinkPreference(widgets.ComboPreference, widgets.Conditional): default = '' name = "player/audiosink_device" condition_preference_name = 'player/audiosink' restart_required = True def __init__(self, preferences, widget): widgets.ComboPreference.__init__(self, preferences, widget) widgets.Conditional.__init__(self) def on_check_condition(self): iter = self.condition_widget.get_active_iter() value = self.condition_widget.get_model().get_value(iter, 0) devices = pipe.sink_enumerate_devices(value) if devices: # disable because the clear() causes a settings write self.is_enabled = False model = self.widget.get_model() model.clear() for device in devices: model.append(device) self.is_enabled = True self._set_value() return True self.is_enabled = False return False def on_condition_met(self): self.widget.get_parent().show() def on_condition_failed(self): self.widget.get_parent().hide() self.widget.get_model().clear() def _setup_changed(self): self.widget.connect('changed', self._change) def _change(self, *args): if self.is_enabled: self.change(args) def _get_value(self): if self.is_enabled: return widgets.ComboPreference._get_value(self) return '' class ResumePreference(widgets.CheckPreference): default = True name = 'player/resume_playback' class PausedPreference(widgets.CheckPreference): default = False name = 'player/resume_paused' class EnqueueBeginsPlayback(widgets.CheckPreference): default = True name = 'queue/enqueue_begins_playback' class RemoveQueuedItemWhenPlayed(widgets.CheckPreference): default = True name = 'queue/remove_item_when_played' class AutoAdvancePlayer(widgets.CheckPreference): default = True name = 'player/auto_advance' class UnifiedConditional(widgets.Conditional): """ True if the unified engine is selected """ condition_preference_name = 'player/engine' def on_check_condition(self): """ Specifies the condition to meet :returns: Whether the condition is met or not :rtype: bool """ iter = self.condition_widget.get_active_iter() value = self.condition_widget.get_model().get_value(iter, 0) if value == 'unified': return True return False class UserFadeTogglePreference(widgets.CheckPreference, UnifiedConditional): default = False name = 'player/user_fade_enabled' condition_preference_name = 'player/engine' def __init__(self, preferences, widget): widgets.CheckPreference.__init__(self, preferences, widget) UnifiedConditional.__init__(self) class UserFadeDurationPreference(widgets.SpinPreference, UnifiedConditional): default = 1000 name = 'player/user_fade' condition_preference_name = 'player/engine' def __init__(self, preferences, widget): widgets.SpinPreference.__init__(self, preferences, widget) UnifiedConditional.__init__(self) class CrossfadingPreference(widgets.CheckPreference, UnifiedConditional): default = False name = 'player/crossfading' condition_preference_name = 'player/engine' def __init__(self, preferences, widget): widgets.CheckPreference.__init__(self, preferences, widget) UnifiedConditional.__init__(self) class CrossfadeDurationPreference(widgets.SpinPreference, UnifiedConditional): default = 1000 name = 'player/crossfade_duration' condition_preference_name = 'player/engine' def __init__(self, preferences, widget): widgets.SpinPreference.__init__(self, preferences, widget) UnifiedConditional.__init__(self) # vim: et sts=4 sw=4 dist/copy/xlgui/preferences/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260021563 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.513046945 exaile-3.3.2/xlgui/preferences/__init__.py0000644000000000000000000002276412233027260020536 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import glib import gtk import inspect import logging import os import pygtk pygtk.require('2.0') import shlex import string import thread import traceback import urllib2 from xl import xdg from xl.nls import gettext as _ from xl.settings import MANAGER from xlgui import icons from xlgui.preferences.widgets import * from xlgui.preferences import ( appearance, collection, cover, playback, playlists, plugin ) logger = logging.getLogger(__name__) class PreferencesDialog(object): """ Preferences Dialog """ PAGES = (playlists, appearance, playback, collection, cover) PREFERENCES_DIALOG = None def __init__(self, parent, main): """ Initializes the preferences dialog """ self.main = main self.last_child = None self.last_page = None self.parent = parent self.settings = MANAGER self.fields = {} self.panes = {} self.builders = {} self.popup = None self.builder = gtk.Builder() self.builder.set_translation_domain('exaile') self.builder.add_from_file( xdg.get_data_path('ui', 'preferences', 'preferences_dialog.ui')) self.builder.connect_signals(self) self.window = self.builder.get_object('PreferencesDialog') self.window.set_transient_for(parent) self.window.set_position(gtk.WIN_POS_CENTER_ON_PARENT) self.window.connect('delete-event', lambda *e: self.close()) self.box = self.builder.get_object('preferences_box') self.tree = self.builder.get_object('preferences_tree') self.model = self.builder.get_object('model') title_cellrenderer = self.builder.get_object('title_cellrenderer') title_cellrenderer.props.ypad = 3 self.default_icon = icons.MANAGER.pixbuf_from_stock( gtk.STOCK_PROPERTIES, gtk.ICON_SIZE_MENU) # sets up the default panes for page in self.PAGES: icon = self.default_icon if hasattr(page, 'icon'): if isinstance(page.icon, gtk.gdk.Pixbuf): icon = page.icon else: stock_id = gtk.stock_lookup(page.icon) if stock_id is not None: icon = icons.MANAGER.pixbuf_from_stock( stock_id[0], gtk.ICON_SIZE_MENU) else: icon = icons.MANAGER.pixbuf_from_icon_name( page.icon, gtk.ICON_SIZE_MENU) self.model.append(None, [page, page.name, icon]) # Use icon name to allow overrides plugin_icon = icons.MANAGER.pixbuf_from_icon_name( 'extension', gtk.ICON_SIZE_MENU) self.plug_root = self.model.append(None, [plugin, _('Plugins'), plugin_icon]) self._load_plugin_pages() selection = self.tree.get_selection() selection.connect('changed', self.switch_pane) # Disallow selection on rows with no widget to show selection.set_select_function(lambda path: self.model[path][0] is not None) glib.idle_add(selection.select_path, (0,)) def _load_plugin_pages(self): self._clear_children(self.plug_root) plugin_pages = [] plugin_manager = self.main.exaile.plugins for name in plugin_manager.enabled_plugins: plugin = plugin_manager.enabled_plugins[name] if hasattr(plugin, 'get_preferences_pane'): try: plugin_pages.append(plugin.get_preferences_pane()) except Exception: logger.warning('Error loading preferences pane') traceback.print_exc() import locale plugin_pages.sort(key=lambda x: locale.strxfrm(x.name)) for page in plugin_pages: icon = self.default_icon if hasattr(page, 'icon'): if isinstance(page.icon, gtk.gdk.Pixbuf): icon = page.icon else: stock_id = gtk.stock_lookup(page.icon) if stock_id is not None: icon = icons.MANAGER.pixbuf_from_stock( stock_id[0], gtk.ICON_SIZE_MENU) else: icon = icons.MANAGER.pixbuf_from_icon_name( page.icon, gtk.ICON_SIZE_MENU) self.model.append(self.plug_root, [page, page.name, icon]) glib.idle_add(self.tree.expand_row, self.model.get_path(self.plug_root), False) def _clear_children(self, node): remove = [] iter = self.model.iter_children(node) while iter: remove.append(iter) iter = self.model.iter_next(iter) for iter in remove: self.model.remove(iter) def on_close_button_clicked(self, widget): """ Called when the user clicks 'ok' """ self.settings.copy_settings(MANAGER) self.close() def close(self): """ Closes the preferences dialog """ if hasattr(self.last_page, 'page_leave'): self.last_page.page_leave(self) self.window.hide() self.window.destroy() PreferencesDialog.PREFERENCES_DIALOG = None def switch_pane(self, selection): """ Switches a pane """ (model, iter) = selection.get_selected() if not iter: return page = self.model.get_value(iter, 0) if not page: return if self.last_child: self.box.remove(self.last_child) if self.last_page: if hasattr(self.last_page, 'page_leave'): self.last_page.page_leave(self) self.last_page = page child = self.panes.get(page) if not child: if hasattr(page, 'ui'): import gtk builder = gtk.Builder() builder.add_from_file(page.ui) else: try: logger.warning('Please switch to gtk.Builder for preferences panes') import gtk.glade builder = gtk.glade.XML(page.glade, 'preferences_pane') builder.get_object = builder.get_widget builder.connect_signals = builder.signal_autoconnect except ImportError: logger.error('Importing Glade as fallback failed') return child = builder.get_object('preferences_pane') init = getattr(page, 'init', None) if init: init(self, builder) self.panes[page] = child self.builders[page] = builder if not page in self.fields: self._populate_fields(page, self.builders[page]) if hasattr(page, 'page_enter'): page.page_enter(self) child.unparent() self.box.pack_start(child, True, True) self.last_child = child self.box.show_all() def _populate_fields(self, page, builder): """ Populates field pages """ self.fields[page] = [] attributes = dir(page) for attr in attributes: try: klass = getattr(page, attr) if inspect.isclass(klass) and \ issubclass(klass, widgets.Preference): widget = builder.get_object(klass.name) if not widget: logger.warning('Invalid preferences widget: %s' % klass.name) continue if issubclass(klass, widgets.Conditional): klass.condition_widget = builder.get_object( klass.condition_preference_name) field = klass(self, widget) self.fields[page].append(field) except Exception: logger.warning('Broken preferences class: %s' % attr) traceback.print_exc() def run(self): """ Runs the dialog """ if PreferencesDialog.PREFERENCES_DIALOG: self = PreferencesDialog.PREFERENCES_DIALOG self.window.present() else: PreferencesDialog.PREFERENCES_DIALOG = self self.window.show_all() # vim: et sts=4 sw=4 dist/copy/xlgui/preferences/PaxHeaders.26361/plugin.py0000644000175000017500000000012412233027260021322 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.449046943 exaile-3.3.2/xlgui/preferences/plugin.py0000644000000000000000000002223712233027260020270 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import glib import gobject import gtk import locale import logging from xlgui.preferences import widgets from xl import main, plugins, xdg from xlgui.widgets import common, dialogs from xl.nls import gettext as _, ngettext logger = logging.getLogger(__name__) name = _('Plugins') ui = xdg.get_data_path('ui', 'preferences', 'plugin.ui') class PluginManager(object): """ Gui to manage plugins """ def __init__(self, preferences, builder): """ Initializes the manager """ self.preferences = preferences builder.connect_signals(self) self.plugins = main.exaile().plugins self.message = dialogs.MessageBar( parent=builder.get_object('preferences_pane'), buttons=gtk.BUTTONS_CLOSE ) self.message.connect('response', self.on_messagebar_response) self.list = builder.get_object('plugin_tree') self.enabled_cellrenderer = builder.get_object('enabled_cellrenderer') if main.exaile().options.Debug: reload_cellrenderer = common.ClickableCellRendererPixbuf() reload_cellrenderer.props.stock_id = gtk.STOCK_REFRESH reload_cellrenderer.props.xalign = 1 reload_cellrenderer.connect('clicked', self.on_reload_cellrenderer_clicked) name_column = builder.get_object('name_column') name_column.pack_start(reload_cellrenderer) name_column.add_attribute(reload_cellrenderer, 'visible', 3) self.version_label = builder.get_object('version_label') self.author_label = builder.get_object('author_label') self.name_label = builder.get_object('name_label') self.description = builder.get_object('description_view') self.model = builder.get_object('model') selection = self.list.get_selection() selection.connect('changed', self.on_selection_changed) self._load_plugin_list() glib.idle_add(selection.select_path, (0,)) glib.idle_add(self.list.grab_focus) def _load_plugin_list(self): """ Loads the plugin list """ plugins = self.plugins.list_installed_plugins() uncategorized = _('Uncategorized') plugins_dict = { uncategorized: [] } failed_list = [] for plugin in plugins: try: info = self.plugins.get_plugin_info(plugin) except Exception, e: failed_list += [plugin] continue enabled = plugin in self.plugins.enabled_plugins plugin_data = (plugin, info['Name'], info['Version'], enabled, True) if 'Category' in info: if info['Category'] in plugins_dict: plugins_dict[info['Category']].append(plugin_data) else: plugins_dict[info['Category']] = [plugin_data] else: plugins_dict[uncategorized].append(plugin_data) self.list.set_model(None) self.model.clear() plugins_dict = sorted(plugins_dict.iteritems(), key=lambda x: 'zzzz' if x[0] == uncategorized else locale.strxfrm(x[0])) for category, plugins_list in plugins_dict: plugins_list.sort(key=lambda x: locale.strxfrm(x[1])) it = self.model.append(None, (None, category, '', False, False)) for plugin in plugins_list: self.model.append(it, plugin) self.list.set_model(self.model) # TODO: Keep track of which categories are already expanded, and only expand those self.list.expand_all() if failed_list: self.message.show_error(_('Could not load plugin info!'), ngettext( 'Failed plugin: %s', 'Failed plugins: %s', len(failed_list) ) % ', '.join(failed_list) ) def on_messagebar_response(self, widget, response): """ Hides the messagebar if requested """ if response == gtk.RESPONSE_CLOSE: widget.hide() def on_plugin_tree_row_activated(self, tree, path, column): """ Enables or disables the selected plugin """ self.enabled_cellrenderer.emit('toggled', path[0]) def on_reload_cellrenderer_clicked(self, cellrenderer, path): """ Reloads a plugin from scratch """ plugin = self.model[path][0] enabled = self.model[path][3] if enabled: try: self.plugins.disable_plugin(plugin) except Exception, e: self.message.show_error(_('Could not disable plugin!'), str(e)) return logger.info('Reloading plugin %s...' % plugin) self.plugins.load_plugin(plugin, reload=True) if enabled: try: self.plugins.enable_plugin(plugin) except Exception, e: self.message.show_error(_('Could not enable plugin!'), str(e)) return def on_install_plugin_button_clicked(self, button): """ Shows a dialog allowing the user to choose a plugin to install from the filesystem """ dialog = gtk.FileChooserDialog(_('Choose a Plugin'), self.preferences.parent, buttons=( gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_ADD, gtk.RESPONSE_OK ) ) filter = gtk.FileFilter() filter.set_name(_('Plugin Archives')) filter.add_pattern("*.exz") filter.add_pattern("*.tar.gz") filter.add_pattern("*.tar.bz2") dialog.add_filter(filter) filter = gtk.FileFilter() filter.set_name(_('All Files')) filter.add_pattern('*') dialog.add_filter(filter) result = dialog.run() dialog.hide() if result == gtk.RESPONSE_OK: try: self.plugins.install_plugin(dialog.get_filename()) except plugins.InvalidPluginError, e: self.message.show_error( _('Plugin file installation failed!'), str(e)) return self._load_plugin_list() def on_selection_changed(self, selection, user_data=None): """ Called when a row is selected """ model, paths = selection.get_selected_rows() if not paths: return row = model[paths[0]] if not row[4]: self.author_label.set_label('') self.description.get_buffer().set_text('') self.name_label.set_label('') return info = self.plugins.get_plugin_info(row[0]) self.author_label.set_label(",\n".join(info['Authors'])) self.description.get_buffer().set_text( info['Description'].replace(r'\n', "\n")) self.name_label.set_markup("%s" % info['Name']) def on_enabled_cellrenderer_toggled(self, cellrenderer, path): """ Called when the checkbox is toggled """ plugin = self.model[path][0] if plugin is None: return enable = not self.model[path][3] if enable: try: self.plugins.enable_plugin(plugin) except Exception, e: self.message.show_error(_('Could not enable plugin!'), str(e)) return else: try: self.plugins.disable_plugin(plugin) except Exception, e: self.message.show_error(_('Could not disable plugin!'), str(e)) return if hasattr(self.plugins.loaded_plugins[plugin], 'get_preferences_pane'): self.preferences._load_plugin_pages() self.model[path][3] = enable self.on_selection_changed(self.list.get_selection()) def init(preferences, xml): manager = PluginManager(preferences, xml) dist/copy/xlgui/preferences/PaxHeaders.26361/collection.py0000644000175000017500000000012412233027260022157 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.513046945 exaile-3.3.2/xlgui/preferences/collection.py0000644000000000000000000000527512233027260021130 0ustar00rootroot00000000000000# Copyright (C) 2010 Adam Olsen # # 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, 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 gtk from xl import xdg from xl.nls import gettext as _ from xlgui.preferences import widgets name = _('Collection') icon = 'folder-music' ui = xdg.get_data_path('ui', 'preferences', 'collection.ui') def _get_default_strip_list(): return [] # currently, this is broken by the backend not also having access to the default set here, so we will just NOT set one. FIXME #TRANSLATORS: Grammatical articles that are ignored while sorting the #collection panel. For example, in French locales this could be #the space-separated list "l' la le les". #If this practice is not common in your locale, simply #translate this to an empty string. default_strip_list = _("the") return [v.lower() for v in default_strip_list.split(' ') if v is not ''] class CollectionStripArtistPreference(widgets.ListPreference): default = _get_default_strip_list() name = 'collection/strip_list' def __init__(self, preferences, widget): widgets.ListPreference.__init__(self, preferences, widget) self.widget.connect('populate-popup', self._populate_popup_cb) def _get_value(self): """ Get the value, overrides the base class function because we don't need shlex parsing. We actually want values like "l'" here. """ values = [v.lower() for v in self.widget.get_text().split(' ') if v is not ''] return values def _populate_popup_cb(self, entry, menu): import gtk entry = gtk.MenuItem(_('Reset to Defaults')) entry.connect('activate', self._reset_to_defaults_cb) entry.show() sep = gtk.SeparatorMenuItem() sep.show() menu.attach(entry, 0, 1, 0, 1) menu.attach(sep, 0, 1, 1, 2) def _reset_to_defaults_cb(self, item): self.widget.set_text(' '.join(_get_default_strip_list())) class FileBasedCompilationsPreference(widgets.CheckPreference): default = True name = 'collection/file_based_compilations' # vim:ts=4 et sw=4 dist/copy/xlgui/preferences/PaxHeaders.26361/appearance.py0000644000175000017500000000012412233027260022123 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.513046945 exaile-3.3.2/xlgui/preferences/appearance.py0000644000000000000000000001162412233027260021067 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import glib import gtk from xl import common, xdg from xl.nls import gettext as _ from xlgui.preferences import widgets name = _('Appearance') icon = 'preferences-desktop-theme' ui = xdg.get_data_path('ui', 'preferences', 'appearance.ui') class ShowInfoAreaPreference(widgets.CheckPreference): default = True name = 'gui/show_info_area' class ShowInfoAreaCoversPreference(widgets.CheckPreference): default = True name = 'gui/show_info_area_covers' class SplashPreference(widgets.CheckPreference): default = True name = 'gui/use_splash' class ShowTabBarPreference(widgets.CheckPreference): default = True name = 'gui/show_tabbar' def _get_system_default_font(): return gtk.widget_get_default_style().font_desc.to_string() class PlaylistFontPreference(widgets.FontButtonPreference): default = _get_system_default_font() name = 'gui/playlist_font' class PlaylistFontResetButtonPreference(widgets.FontResetButtonPreference): default = _get_system_default_font() name = 'gui/playlist_font_reset_button' condition_preference_name = 'gui/playlist_font' class UseAlphaTransparencyPreference(widgets.CheckPreference): default = False name = 'gui/use_alpha' restart_required = True class TransparencyPreferfence(widgets.ScalePreference, widgets.CheckConditional): default = 0.3 name = 'gui/transparency' condition_preference_name = 'gui/use_alpha' def __init__(self, preferences, widget): widgets.ScalePreference.__init__(self, preferences, widget) widgets.CheckConditional.__init__(self) def apply(self, value=None): return_value = widgets.ScalePreference.apply(self, value) glib.idle_add(self.preferences.parent.queue_draw) return return_value class TrackCountsPreference(widgets.CheckPreference): default = True name = 'gui/display_track_counts' def apply(self, value=None): return_value = widgets.CheckPreference.apply(self, value) self._reload_tree() return return_value @common.threaded def _reload_tree(self): self.preferences.parent.panels['collection'].load_tree() class UseTrayPreference(widgets.CheckPreference): default = False name = 'gui/use_tray' class MinimizeToTrayPreference(widgets.CheckPreference, widgets.CheckConditional): default = False name = 'gui/minimize_to_tray' condition_preference_name = 'gui/use_tray' def __init__(self, preferences, widget): widgets.CheckPreference.__init__(self, preferences, widget) widgets.CheckConditional.__init__(self) class CloseToTrayPreference(widgets.CheckPreference, widgets.CheckConditional): default = False name = 'gui/close_to_tray' condition_preference_name = 'gui/use_tray' def __init__(self, preferences, widget): widgets.CheckPreference.__init__(self, preferences, widget) widgets.CheckConditional.__init__(self) class EnsureVisiblePreference(widgets.CheckPreference): default = True name = 'gui/ensure_visible' class TabPlacementPreference(widgets.ComboPreference): default = 'top' name = 'gui/tab_placement' def __init__(self, preferences, widget): widgets.ComboPreference.__init__(self, preferences, widget) """ class ProgressBarTextFormatPreference(widgets.ComboEntryPreference): name = 'gui/progress_bar_text_format' completion_items = { '$current_time': _('Current playback position'), '$remaining_time': _('Remaining playback time'), '$total_time': _('Length of a track') } preset_items = [ '$current_time / $remaining_time', '$current_time / $total_time' ] default = '$current_time / $remaining_time' """ # vim: et sts=4 sw=4 dist/copy/xlgui/PaxHeaders.26361/devices.py0000644000175000017500000000012412233027260017145 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.517046945 exaile-3.3.2/xlgui/devices.py0000644000000000000000000001117412233027260016111 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import logging import threading import gtk from xl.nls import gettext as _ from xl import xdg, settings, event, devices from xlgui import collection logger = logging.getLogger(__name__) class ManagerDialog(object): """ the device manager dialog """ def __init__(self, parent, main): self.main = main self.parent = parent self.device_manager = self.main.exaile.devices self.builder = gtk.Builder() self.builder.add_from_file(xdg.get_data_path('ui/device_manager.ui')) self.window = self.builder.get_object('device_manager') self.window.set_transient_for(self.parent) self.window.set_position(gtk.WIN_POS_CENTER_ON_PARENT) self.window.connect('delete-event', self.on_close) self.builder.connect_signals({ 'on_btn_connect_clicked': self.on_connect, 'on_btn_disconnect_clicked': self.on_disconnect, 'on_btn_edit_clicked': self.on_edit, 'on_btn_add_clicked': self.on_add, 'on_btn_remove_clicked': self.on_remove, 'on_btn_close_clicked': self.on_close, }) # TODO: make these actually work. For now, they are hidden for item in ('add', 'edit', 'remove'): self.builder.get_object('btn_%s' % item).destroy() # object should really be devices.Device, but it doesnt work :/ self.model = gtk.ListStore(object, gtk.gdk.Pixbuf, str, str) self.tree = self.builder.get_object('tree_devices') self.tree.set_model(self.model) render = gtk.CellRendererPixbuf() col = gtk.TreeViewColumn(_("Icon"), render) col.add_attribute(render, "pixbuf", 1) self.tree.append_column(col) render = gtk.CellRendererText() col = gtk.TreeViewColumn(_("Device"), render) col.set_expand(True) col.set_sizing(gtk.TREE_VIEW_COLUMN_AUTOSIZE) col.add_attribute(render, "text", 2) self.tree.append_column(col) render = gtk.CellRendererText() col = gtk.TreeViewColumn(_("Driver"), render) col.add_attribute(render, "text", 3) self.tree.append_column(col) self.populate_tree() event.add_callback(self.populate_tree, 'device_added') event.add_callback(self.populate_tree, 'device_removed') def populate_tree(self, *args): self.model.clear() for d in self.device_manager.list_devices(): self.model.append([d, None, d.get_name(), d.__class__.__name__]) def _get_selected_devices(self): sel = self.tree.get_selection() (model, paths) = sel.get_selected_rows() devices = [] for path in paths: iter = self.model.get_iter(path) device = self.model.get_value(iter, 0) devices.append(device) return devices def on_connect(self, *args): devices = self._get_selected_devices() for d in devices: d.connect() def on_disconnect(self, *args): devices = self._get_selected_devices() for d in devices: d.disconnect() def on_edit(self, *args): logger.warning("NOT IMPLEMENTED") def on_add(self, *args): logger.warning("NOT IMPLEMENTED") def on_remove(self, *args): logger.warning("NOT IMPLEMENTED") def on_close(self, *args): self.window.hide() self.window.destroy() def run(self): self.window.show_all() dist/copy/xlgui/PaxHeaders.26361/properties.py0000644000175000017500000000012412233027260017717 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821552.965046927 exaile-3.3.2/xlgui/properties.py0000644000000000000000000013165412233027260016671 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import copy import datetime import gio import glib import gobject import gtk import io import os import pango import string from xl.nls import gettext as _ from xl.metadata._base import CoverImage from xl import ( common, metadata, trax, xdg ) from xlgui.widgets import dialogs IGNORE = (None, None) dialog_tags = { 'originalalbum': (_('Original album'), 'text'), 'lyricist': (_('Lyricist'), 'text'), 'part': IGNORE, # 'website': (_('Website'), 'text'), 'cover': (_('Cover'), 'image'), 'originalartist': (_('Original artist'), 'text'), 'author': (_('Author'), 'text'), 'originaldate': (_('Original date'), 'text'), 'date': (_('Date'), 'text'), 'arranger': (_('Arranger'), 'text'), 'conductor': (_('Conductor'), 'text'), 'performer': (_('Performer'), 'text'), 'artist': (_('Artist'), 'text'), 'album': (_('Album'), 'text'), 'copyright': (_('Copyright'), 'text'), 'lyrics': (_('Lyrics'), 'text'), 'tracknumber': (_('Track'), 'int', 0, 500), 'version': (_('Version'), 'text'), 'title': (_('Title'), 'text'), 'isrc': (_('ISRC'), 'text'), 'genre': (_('Genre'), 'text'), 'composer': (_('Composer'), 'text'), 'encodedby': (_('Encoded by'), 'text'), 'organization': (_('Organization'), 'text'), 'discnumber': (_('Disc'), 'int', 0, 50), 'bpm': (_('BPM'), 'int', 0, 300), 'comment': (_('Comment'), 'text'), '__bitrate': (_('Bitrate'), 'prop:bitrate'), '__date_added': (_('Date added'), 'prop:datetime'), '__length': (_('Length'), 'prop:time'), '__loc': (_('Location'), 'prop:location'), '__basedir': IGNORE, '__modified': (_('Modified'), 'prop:datetime'), '__playtime': IGNORE, '__playcount': (_('Times played'), 'text'), '__last_played': (_('Last played'), 'prop:datetime'), } class TrackPropertiesDialog(gobject.GObject): def __init__(self, parent, tracks, current_position=0, with_extras=False): """ :param parent: the parent window for modal operation :type parent: :class:`gtk.Window` :param tracks: the tracks to process :type tracks: list of :class:`xl.trax.Track` objects :param current_position: the position of the currently selected track in the list :type current_position: int :param with_extras: whether there are extra, non-selected tracks in `tracks` (currently happens when only 1 track is selected) :type with_extras: bool """ gobject.GObject.__init__(self) self.builder = gtk.Builder() self.builder.add_from_file(xdg.get_data_path('ui', 'trackproperties_dialog.ui')) self.builder.connect_signals(self) self.dialog = self.builder.get_object('TrackPropertiesDialog') self.dialog.set_transient_for(parent) self.__default_attributes = pango.AttrList() self.__changed_attributes = pango.AttrList() self.__changed_attributes.insert(pango.AttrStyle(pango.STYLE_ITALIC, 0, -1)) self.message = dialogs.MessageBar( parent=self.builder.get_object('main_container'), buttons=gtk.BUTTONS_CLOSE ) self.remove_tag_button = self.builder.get_object('remove_tag_button') self.cur_track_label = self.builder.get_object('current_track_label') self.apply_button = self.builder.get_object('apply_button') self.prev_button = self.builder.get_object('prev_track_button') self.next_button = self.builder.get_object('next_track_button') self.tags_table = self.builder.get_object('tags_table') self.properties_table = self.builder.get_object('properties_table') self.rows = [] self.new_tag_combo = self.builder.get_object('new_tag_combo') self.new_tag_combo_list = gtk.ListStore(str, str) for tag in dialog_tags: if not tag.startswith('__'): self.new_tag_combo_list.append((tag, dialog_tags[tag][0])) self.new_tag_combo_list.set_sort_column_id(1, gtk.SORT_ASCENDING) self.new_tag_combo.set_model(self.new_tag_combo_list) self.new_tag_combo.set_text_column(1) self.add_tag_button = self.builder.get_object('add_tag_button') self.add_tag_button.set_sensitive(False) self.def_tags = [ 'tracknumber', 'title', 'artist', 'album', 'discnumber', 'date', 'genre', 'cover', 'comment', ] # Store the tracks and a working copy self.tracks = tracks self.trackdata = self._tags_copy(tracks) self.trackdata_original = self._tags_copy(tracks) self.current_position = current_position self._build_from_track(self.current_position) self.dialog.resize(600, 350) self.dialog.show() self.rows[0].field.grab_focus() def _tags_copy(self, tracks): l = [] for track in tracks: t = {} for tag in self.def_tags: if tag in ('cover', 'comment'): tagval = track.get_tag_disk(tag) else: tagval = track.get_tag_raw(tag) if tagval: if isinstance(tagval, list): t[tag] = tagval[:] else: t[tag] = [ tagval ] else: t[tag] = [''] if tag == "tracknumber" or tag == "discnumber": for i, entry in enumerate(t[tag]): if len(entry.split('/')) < 2: t[tag][i] += '/0' for tag in track.list_tags(): if tag not in self.def_tags: tagval = track.get_tag_raw(tag) if isinstance(tagval, list): t[tag] = tagval[:] else: t[tag] = [ tagval ] l.append(t) return l def _tags_write(self, data): errors = [] dialog = SavingProgressWindow(self.dialog, len(data)) for n, trackdata in data: track = self.tracks[n] poplist = [] for tag in trackdata: if not tag.startswith("__"): if tag in ("tracknumber", "discnumber") \ and trackdata[tag] == ["0/0"]: poplist.append(tag) continue track.set_tag_raw(tag, trackdata[tag]) # In case a tag has been removed.. for tag in track.list_tags(): if tag in dialog_tags: if dialog_tags[tag] is not IGNORE: try: trackdata[tag] except KeyError: poplist.append(tag) else: try: trackdata[tag] except KeyError: poplist.append(tag) for tag in poplist: track.set_tag_raw(tag, None) if not track.write_tags(): errors.append(track.get_loc_for_io()); trax.track._CACHER.remove(track) dialog.step() dialog.destroy() if len(errors) > 0: self.message.clear_buttons() self.message.add_button(gtk.STOCK_CLOSE, gtk.RESPONSE_CLOSE) self.message.show_error( _('Writing of tags failed'), _('Tags could not be written to the following files:\n' '{files}').format(files='\n'.join(errors)) ) def _build_from_track(self, position): for table in [self.tags_table, self.properties_table]: for child in table.get_children(): table.remove(child) table.resize(1,4) self.rows = [] # Previous, next and current track label self.prev_button.set_sensitive(True) self.next_button.set_sensitive(True) if position == 0: self.prev_button.set_sensitive(False) if position == (len(self.trackdata) - 1): self.next_button.set_sensitive(False) self.cur_track_label.set_text( _("Editing track %(current)d of %(total)d") % { 'current': self.current_position + 1, 'total': len(self.tracks) } ) trackdata = self.trackdata[position] for tag in self.def_tags: for i, entry in enumerate(trackdata[tag]): if len(self.trackdata) == 1: ab = False ab_dbl = 0 else: ab = True ab_dbl = 2 field = None if dialog_tags[tag][1] == 'int': if tag == 'tracknumber': field = TagDblNumField( dialog_tags[tag][2], dialog_tags[tag][3], all_button=ab_dbl ) elif tag == 'discnumber': field = TagDblNumField( dialog_tags[tag][2], dialog_tags[tag][3], all_button=ab_dbl ) else: field = TagNumField( dialog_tags[tag][2], dialog_tags[tag][3], all_button=ab ) elif dialog_tags[tag][1] == 'image': field = TagImageField() else: if tag in ('comment', 'lyrics'): field = TagTextField(all_button=ab) else: field = TagField(all_button=ab) row = TagRow(self, self.tags_table, field, tag, entry, i) self.rows.append(row) try: if self.trackdata[self.current_position][tag] != \ self.trackdata_original[self.current_position][tag]: row.label.set_attributes(self.__changed_attributes) except KeyError: row.label.set_attributes(self.__changed_attributes) for tag in trackdata: if tag not in self.def_tags: try: fieldtype = dialog_tags[tag][1] except KeyError: fieldtype = 'text' if fieldtype is not None: for i, entry in enumerate(trackdata[tag]): field = None if not tag.startswith('__'): if fieldtype == 'int': field = TagNumField( dialog_tags[tag][2], dialog_tags[tag][3], all_button=ab ) elif fieldtype == 'image': field = TagImageField() else: if tag in ('comment', 'lyrics'): field = TagTextField(all_button=ab) else: field = TagField(all_button=ab) self.rows.append( TagRow(self, self.tags_table, field, tag, entry, i)) else: field = PropertyField(fieldtype) self.rows.append( TagRow(self, self.properties_table, field, tag, entry, i)) self._check_for_changes() self._build_tables_from_rows() def _build_tables_from_rows(self): tables = [self.tags_table, self.properties_table] #clear the tables to start with for table in tables: for child in table.get_children(): table.remove(child) table.resize(1,4) cur_row = {tables[0]:0, tables[1]:0} paddings = [0, gtk.FILL, gtk.FILL|gtk.EXPAND, 0] for row in self.rows: columns = [ gtk.Label(), row.label, row.field, gtk.Label()] for col, content in enumerate(columns): row.table.attach(content, col, col + 1, cur_row[row.table], cur_row[row.table] + 1, xoptions=paddings[col], yoptions=0) cur_row[row.table] += 1 row.table.resize(cur_row[row.table] + 1, 4) for table in tables: table.show_all() self.remove_tag_button.toggled() def on_apply_button_clicked(self, w): modified = [] for n, trackdata in enumerate(self.trackdata): if trackdata != self.trackdata_original[n]: modified.append((n, trackdata)) if modified: if len(modified) != 1: dialog = gtk.MessageDialog(None, gtk.DIALOG_MODAL, gtk.MESSAGE_QUESTION, gtk.BUTTONS_YES_NO, _("Are you sure you want to apply changes to %d tracks?") % len(modified)) response = dialog.run() dialog.destroy() if response != gtk.RESPONSE_YES: return self._tags_write(modified) del self.trackdata del self.trackdata_original self.trackdata = self._tags_copy(self.tracks) self.trackdata_original = self._tags_copy(self.tracks) self.apply_button.set_sensitive(False) for row in self.rows: if row.multi_id == 0: row.label.set_attributes(self.__default_attributes) # Hide close confirmation if necessary if self.message.get_message_type() == gtk.MESSAGE_QUESTION: self.message.hide() def on_close_button_clicked(self, w): if self.trackdata != self.trackdata_original: def on_response(message, response): """ Applies changes before closing if requested """ if response == gtk.RESPONSE_APPLY: self.apply_button.clicked() self.dialog.destroy() self.message.connect('response', on_response) self.message.clear_buttons() self.message.add_button(gtk.STOCK_CLOSE, gtk.RESPONSE_CLOSE) self.message.add_button(gtk.STOCK_APPLY, gtk.RESPONSE_APPLY) self.message.show_question( _('Apply changes before closing?'), _('Your changes will be lost if you do not apply them now.') ) else: self.dialog.destroy() def on_prev_track_button_clicked(self, widget): self.current_position -= 1 self._build_from_track(self.current_position) def on_next_track_button_clicked(self, widget): self.current_position += 1 self._build_from_track(self.current_position) def on_title_case_button_clicked(self, w): for row in self.rows: if isinstance(row.field, TagField) \ or isinstance(row.field, TagTextField): val = row.field.get_value() val = string.capwords(val, ' ') row.field.set_value(val) self._check_for_changes() def on_new_tag_entry_changed(self, entry): """ Enables or disables the button for adding tags, effectively preventing empty tag names """ self.add_tag_button.set_sensitive(len(entry.get_text()) > 0) def on_add_tag_button_clicked(self, w): tag = None index = self.new_tag_combo.get_active() if index != -1: tag = self.new_tag_combo_list[index][0] else: tag = self.new_tag_combo.get_child().get_text() if not tag: return trackdata = self.trackdata[self.current_position] try: trackdata[tag].append('') except KeyError: trackdata[tag] = [''] self._build_from_track(self.current_position) def on_remove_tag_button_toggled(self, widget): for row in self.rows: row.set_remove_mode(widget.get_active()) def _check_for_changes(self): apply_flag = False for i, trackdata in enumerate(self.trackdata): for tag in trackdata: try: if trackdata[tag] != self.trackdata_original[i][tag]: apply_flag = True except KeyError: apply_flag = True if len(trackdata) != len(self.trackdata_original[i]): apply_flag = True if apply_flag: if not self.apply_button.get_property("sensitive"): self.apply_button.set_sensitive(True) else: self.apply_button.set_sensitive(False) def update_tag(self, widget, tag, multi_id, val): trackdata = self.trackdata[self.current_position] original_trackdata = self.trackdata_original[self.current_position] trackdata[tag][multi_id] = val() for row in self.rows: if row.tag == tag and row.multi_id == 0: try: if trackdata[tag] != original_trackdata[tag]: row.label.set_attributes(self.__changed_attributes) else: row.label.set_attributes(self.__default_attributes) except KeyError: row.label.set_attributes(self.__changed_attributes) if row.tag == tag and row.multi_id == multi_id: all_vals = [] for trackdata in self.trackdata: try: all_vals.append(trackdata[tag][multi_id]) except (KeyError, IndexError): all_vals.append('') row.field.set_value(val(), all_vals, doupdate=False) self._check_for_changes() def apply_all(self, field, multi_id, val, split_num=0): special_cases = ["discnumber", "tracknumber"] apply_flag = False value = val() if field in special_cases: original_values = value.split("/") for i, trackdata in enumerate(self.trackdata): values = trackdata[field][multi_id].split("/") values[split_num] = original_values[split_num] try: trackdata[field][multi_id] = values[0] + "/" + values[1] except KeyError: trackdata[field] = [values[0] + "/" + values[1]] except IndexError: trackdata[field].append(values[0] + "/" + values[1]) else: for i, trackdata in enumerate(self.trackdata): try: trackdata[field][multi_id] = value except KeyError: trackdata[field] = [value] except IndexError: trackdata[field].append(value) self._check_for_changes() def remove_row(self, w, tag, multi_id): for row in self.rows: if row.tag == tag and row.multi_id == multi_id: self.trackdata[self.current_position][tag].pop(multi_id) if len(self.trackdata[self.current_position][tag]) == 0: self.trackdata[self.current_position].pop(tag) self._build_from_track(self.current_position) def run(self): return self.dialog.run() def hide(self): self.dialog.hide() class TagRow(object): def __init__(self, parent, parent_table, field, tag_name, value, multi_id): self.parent = parent self.table = parent_table self.tag = tag_name self.field = field self.field.register_parent_row(self) self.multi_id = multi_id all_vals = [] for track in parent.trackdata: try: all_vals.append(track[tag_name][multi_id]) except (KeyError, IndexError): all_vals.append(None) self.field.set_value(value, all_vals) try: name = dialog_tags[self.tag][0] except KeyError: if self.tag.startswith('__'): name = self.tag[2:] else: name = self.tag self.name = name self.label = gtk.Label() if multi_id == 0: self.label.set_text(_('%s:') % name.capitalize()) self.label.create_pango_context() self.label.set_alignment(0.0, .50) self.clear_button = gtk.Button() self.clear_button.set_image(gtk.image_new_from_stock( gtk.STOCK_CLEAR, gtk.ICON_SIZE_BUTTON)) self.clear_button.set_relief(gtk.RELIEF_NONE) self.clear_button.connect("clicked", self.clear) if not isinstance(field, PropertyField): self.field.pack_start(self.clear_button, expand=False, fill=False) self.field.show_all() # Remove mode settings self.remove_mode = False self.remove_button = gtk.Button() self.remove_button.set_image(gtk.image_new_from_stock( gtk.STOCK_REMOVE, gtk.ICON_SIZE_BUTTON)) self.remove_button.connect("clicked", parent.remove_row, self.tag, self.multi_id) self.field.register_update_func(parent.update_tag) self.field.register_all_func(parent.apply_all) def set_remove_mode(self, val): if not self.tag.startswith('__') or self.multi_id != 0: if val and not self.remove_mode: self.field.remove(self.clear_button) self.field.pack_start(self.remove_button, expand=False, fill=False) self.field.show_all() self.remove_mode = True if not val and self.remove_mode: self.field.remove(self.remove_button) self.remove_mode = False self.field.pack_start(self.clear_button, expand=False, fill=False) self.field.show_all() def clear(self, w): self.field.set_value('') class TagField(gtk.HBox): def __init__(self, all_button=True): gtk.HBox.__init__(self, homogeneous=False, spacing=5) # Create the widgets self.field = gtk.Entry() self.all_func = None self.parent_row = None self.pack_start(self.field) self.all_button = None if all_button: self.all_button = AllButton(self) self.pack_start(self.all_button, expand=False, fill=False) def grab_focus(self): """ Gives focus to the internal widget """ self.field.grab_focus() def register_parent_row(self, parent_row): self.parent_row = parent_row def set_value(self, val, all_vals=None, doupdate=True): if doupdate: self.field.set_text(val) if all_vals != None and self.all_button != None: # Set the value of the all button self.all_button.set_active(all(val == v for v in all_vals)) def get_value(self): return unicode(self.field.get_text(), 'utf-8') def register_update_func(self, f): tag = self.parent_row.tag multi_id = self.parent_row.multi_id self.field.connect("changed", f, tag, multi_id, self.get_value) def register_all_func(self, f): self.all_func = f class TagTextField(gtk.HBox): def __init__(self, all_button=True): gtk.HBox.__init__(self, homogeneous=False, spacing=5) self.buffer = gtk.TextBuffer() self.field = gtk.TextView(self.buffer) self.field.set_size_request(200, 150) # XXX scrollwindow = gtk.ScrolledWindow() scrollwindow.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC) scrollwindow.set_shadow_type(gtk.SHADOW_IN) scrollwindow.add(self.field) self.all_func = None self.parent_row = None self.pack_start(scrollwindow) self.all_button = None if all_button: self.all_button = AllButton(self) self.pack_start(self.all_button, expand=False, fill=False) def register_parent_row(self, parent_row): self.parent_row = parent_row def set_value(self, val, all_vals=None, doupdate=True): if doupdate: self.buffer.set_text(val) if all_vals != None and self.all_button != None: # Set the value of the all button flag = True for v in all_vals: if val != v: flag = False if flag: self.all_button.set_active(True) else: self.all_button.set_active(False) def get_value(self): return unicode(self.buffer.get_text( self.buffer.get_start_iter(), self.buffer.get_end_iter(), True ), 'utf-8') def register_update_func(self, f): tag = self.parent_row.tag multi_id = self.parent_row.multi_id self.buffer.connect("changed", f, tag, multi_id, self.get_value) def register_all_func(self, f): self.all_func = f class TagNumField(gtk.HBox): def __init__(self, min=0, max=10000, step=1, page=10, all_button=True): gtk.HBox.__init__(self, homogeneous=False, spacing=5) # Create the widgets self.field = gtk.SpinButton() self.field.set_range(min, max) self.field.set_increments(step, page) self.all_func = None self.parent_row = None self.pack_start(self.field) self.all_button = None if all_button: self.all_button = AllButton(self) self.pack_start(self.all_button, expand=False, fill=False) def register_parent_row(self, parent_row): self.parent_row = parent_row def set_value(self, val, all_vals=None, doupdate=True): if doupdate: if val != '': self.field.set_value(float(val)) else: self.field.set_value(0) if all_vals != None and self.all_button != None: # Set the value of the all button flag = True for v in all_vals: if val != v: flag = False if flag: self.all_button.set_active(True) else: self.all_button.set_active(False) def get_value(self): return unicode(int(self.field.get_value())) def register_update_func(self, f): tag = self.parent_row.tag multi_id = self.parent_row.multi_id self.field.connect("value-changed", f, tag, multi_id, self.get_value) def register_all_func(self, f): self.all_func = f class TagDblNumField(gtk.HBox): def __init__(self, min=0, max=10000, step=1, page=10, all_button=1): gtk.HBox.__init__(self, homogeneous=False, spacing=5) self.field = [gtk.SpinButton(), gtk.SpinButton()] self.all_func = None self.parent_row = None for f in self.field: f.set_range(min, max) f.set_increments(step, page) # TRANSLATORS: This is the 'of' between numbers in fields like # tracknumber, discnumber, etc. in the tagger. lbl = gtk.Label(_('of:')) self.all_button = [None, None] if all_button: if all_button == 1: self.all_button = [None, AllButton(self, 1)] if all_button == 2: self.all_button = [AllButton(self), AllButton(self, 1)] self.pack_start(self.field[0]) if all_button and self.all_button[0] != None: self.pack_start(self.all_button[0], expand=False, fill=False) self.pack_start(lbl) self.pack_start(self.field[1]) if all_button: self.pack_start(self.all_button[1], expand=False, fill=False) def grab_focus(self): """ Gives focus to the internal widget """ self.field[0].grab_focus() def register_parent_row(self, parent_row): self.parent_row = parent_row def register_all_func(self, f): self.all_func = f def set_value(self, val, all_val=None, doupdate=True): if len(val.split('/')) < 2: val += '/' vals = val.split('/') if doupdate: for x in range(2): if vals[x] != '': self.field[x].set_value(float(vals[x])) else: self.field[x].set_value(0) if all_val != None: all_vals = [] for v in all_val: if v is not None: if len(v.split('/')) < 2: v += '/' all_vals.append(v.split('/')) else: all_vals.append(None) # Set the value of the all button flags = [True, True] for i in range(2): for v in all_vals: if v is None or vals[i] != v[i]: flags[i] = False if self.all_button[i] != None: if flags[i]: self.all_button[i].set_active(True) else: self.all_button[i].set_active(False) def get_value(self): f0 = unicode(int(self.field[0].get_value())) f1 = unicode(int(self.field[1].get_value())) return f0 + '/' + f1 def register_update_func(self, f): tag = self.parent_row.tag multi_id = self.parent_row.multi_id val = unicode(self.field[0].get_value()) + '/' \ + unicode(self.field[1].get_value()) self.field[0].connect("value-changed", f, tag, multi_id, self.get_value) self.field[1].connect("value-changed", f, tag, multi_id, self.get_value) class TagImageField(gtk.HBox): def __init__(self, all_button=True): gtk.HBox.__init__(self, homogeneous=False, spacing=5) self.parent_row = None self.all_func = None self.update_func = None # Prevents the update function from being called, make # sure you do that manually after the batch update self.batch_update = False self.pixbuf = None self.info = CoverImage(None, None, None, None) self.default_type = 3 self.mime_info = { 'image/jpeg': { # Title for display 'title': _('JPEG image'), # Type and options for GDK Pixbuf saving 'type': 'jpeg', 'options': {'quality': '90'} }, 'image/png': { 'title': _('PNG image'), 'type': 'png', 'options': {} }, 'image/': { 'title': _('Image'), # Store unknown images as JPEG 'type': 'jpeg', 'options': {'quality': '90'} }, # TODO: Handle linked images '-->': { 'title': _('Linked image') } } builder = gtk.Builder() builder.add_from_file(xdg.get_data_path('ui', 'trackproperties_dialog_cover_row.ui')) builder.connect_signals(self) cover_row = builder.get_object('cover_row') cover_row.reparent(self) button = builder.get_object('button') button.drag_dest_set(gtk.DEST_DEFAULT_ALL, [], gtk.gdk.ACTION_COPY) button.drag_dest_add_uri_targets() self.image = builder.get_object('image') self.info_label = builder.get_object('info_label') self.type_model = builder.get_object('type_model') self.type_selection = builder.get_object('type_selection') self.type_selection.set_sensitive(False) self.description_entry = builder.get_object('description_entry') self.description_entry.set_sensitive(False) self.all_button = None if all_button: self.all_button = AllButton(self) self.pack_start(self.all_button, expand=False, fill=False) def grab_focus(self): """ Gives focus to the internal widget """ self.image.grab_focus() def register_parent_row(self, parent_row): self.parent_row = parent_row def register_update_func(self, func): self.update_func = func def register_all_func(self, function): self.all_func = function def set_value(self, val, all_vals=None, doupdate=True): if doupdate: if val: loader = gtk.gdk.PixbufLoader() try: loader.write(val.data) loader.close() except glib.GError: pass else: self.batch_update = True self.set_pixbuf(loader.get_pixbuf(), val.mime) # some file types do not support multiple cover types if val.type is not None: self.type_selection.set_active(val.type) self.type_selection.set_sensitive(True) else: self.type_selection.set_active(-1) self.type_selection.set_sensitive(False) if val.desc is not None: self.description_entry.set_text(val.desc) self.description_entry.set_sensitive(True) else: self.description_entry.set_text('') self.description_entry.set_sensitive(False) self.batch_update = False else: self.batch_update = True self.set_pixbuf(None) self.type_selection.set_active(-1) self.type_selection.set_sensitive(False) self.description_entry.set_text('') self.description_entry.set_sensitive(False) self.batch_update = False self.call_update_func() if not None in (all_vals, self.all_button): self.all_button.set_active(all(val == v for v in all_vals)) def get_value(self): if not self.pixbuf: return None mime = self.mime_info[self.info.mime] # Retrieve proper image data writer = io.BytesIO() self.pixbuf.save_to_callback(writer.write, mime['type'], mime['options']) # Move to the beginning of the buffer to allow read operations writer.seek(0) return self.info._replace(data=writer.read()) def call_update_func(self): """ Wrapper around the update function """ if not self.update_func or self.batch_update: return self.update_func(self, self.parent_row.tag, self.parent_row.multi_id, self.get_value) def set_pixbuf(self, pixbuf, mime=None): """ Updates the displayed cover image and info values """ self.pixbuf = pixbuf if pixbuf is None: self.image.set_from_stock(gtk.STOCK_ADD, gtk.ICON_SIZE_DIALOG) self.info_label.set_markup('') else: self.image.set_from_pixbuf(pixbuf.scale_simple( 100, 100, gtk.gdk.INTERP_BILINEAR)) width, height = pixbuf.get_width(), pixbuf.get_height() if mime is None: markup = _('{width}x{height} pixels').format(width=width, height=height) else: markup = _('{format} ({width}x{height} pixels)').format( format=self.mime_info.get(mime, self.mime_info['image/'])['title'], width=width, height=height ) self.info_label.set_markup(markup) self.info = self.info._replace(mime=mime) def on_button_clicked(self, button): """ Allows setting the cover image using a file selection dialog """ dialog = dialogs.FileOperationDialog( title=_('Select image to set as cover'), parent=self.get_toplevel(), buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OK, gtk.RESPONSE_OK) ) dialog.set_select_multiple(False) filefilter = gtk.FileFilter() # Not using gtk.FileFilter.add_pixbuf_formats since # not all image formats are supported in tags filefilter.set_name(_('Supported image formats')) filefilter.add_pattern('*.[jJ][pP][gG]') filefilter.add_pattern('*.[jJ][pP][eE][gG]') filefilter.add_pattern('*.[pP][nN][gG]') dialog.add_filter(filefilter) if dialog.run() == gtk.RESPONSE_OK: filename = dialog.get_filename() try: pixbuf = gtk.gdk.pixbuf_new_from_file(filename) info = gtk.gdk.pixbuf_get_file_info(filename)[0] except TypeError: pass else: self.batch_update = True self.set_pixbuf(pixbuf, info['mime_types'][0]) self.type_selection.set_active(self.default_type) self.type_selection.set_sensitive(True) self.description_entry.set_text(os.path.basename(filename).rsplit('.', 1)[0]) self.description_entry.set_sensitive(True) self.batch_update = False self.call_update_func() dialog.destroy() def on_button_drag_data_received(self, widget, context, x, y, selection, info, time): """ Allows setting the cover image via drag and drop """ if selection.target == 'text/uri-list': filename = gio.File(selection.get_uris()[0]).get_path() try: pixbuf = gtk.gdk.pixbuf_new_from_file(filename) info = gtk.gdk.pixbuf_get_file_info(filename)[0] except TypeError: pass else: self.batch_update = True self.set_pixbuf(pixbuf, info['mime_types'][0]) self.type_selection.set_active(self.default_type) self.description_entry.set_sensitive(True) self.description_entry.set_text(os.path.basename(filename).rsplit('.', 1)[0]) self.description_entry.set_sensitive(True) self.batch_update = False self.call_update_func() def on_type_selection_changed(self, combobox): """ Notifies about changes in the cover type """ self.info = self.info._replace(type=self.type_model[combobox.get_active()][0]) self.call_update_func() def on_description_entry_changed(self, entry): """ Notifies about changes in the cover description """ self.info = self.info._replace(desc=entry.get_text()) self.call_update_func() class PropertyField(gtk.HBox): def __init__(self, property_type='text'): gtk.HBox.__init__(self, homogeneous=False, spacing=5) # Informs of special formatting required self.property_type = property_type self.field = gtk.Entry() self.field.set_editable(False) self.pack_start(self.field) self.parent_row = None if self.property_type == 'prop:location': self.folder_button = gtk.Button() self.folder_button.set_tooltip_text(_('Open Directory')) self.folder_button.set_image(gtk.image_new_from_stock( gtk.STOCK_OPEN, gtk.ICON_SIZE_BUTTON)) self.pack_start(self.folder_button, expand=False, fill=False) self.folder_button.connect("clicked", self.folder_button_clicked) def register_parent_row(self, parent_row): self.parent_row = parent_row def set_value(self, val, all_vals=None, doupdate=True): if self.property_type == 'prop:bitrate': try: val = str(float(val) / 1000.0) + ' Kbps' except (TypeError, ValueError): pass elif self.property_type == 'prop:datetime': d = datetime.datetime.fromtimestamp(val) val = d.strftime("%x %X") elif self.property_type == 'prop:time': val = "%(m)d:%(s)02d" % {'m': val // 60, 's': val % 60} elif self.property_type == 'prop:location': f = gio.File(val) val = f.get_parse_name() if not f.get_path(): # Sanitize URLs of remote locations val = common.sanitize_url(val) # Disable folder button for non-browsable locations self.folder_button.set_sensitive(False) else: val = str(val) if doupdate: self.field.set_text(val) self.field.set_tooltip_text(val) def folder_button_clicked(self, w): common.open_file_directory(self.field.get_text()) def register_update_func(self, f): pass def register_all_func(self, f): pass class AllButton(gtk.ToggleButton): def __init__(self, parent_field, id_num=0): gtk.ToggleButton.__init__(self) self.set_tooltip_text(_("Apply current value to all tracks")) self.set_relief(gtk.RELIEF_NONE) self.connect("toggled", self.set_all_mode) self.field = parent_field self.id_num = id_num self.set_active(True) self.set_active(False) def set_all_mode(self, w=None, do_apply=True): if self.get_active(): if do_apply and self.field.parent_row: tag = self.field.parent_row.tag multi_id = self.field.parent_row.multi_id if self.field.all_func != None: self.field.all_func(tag, multi_id, self.field.get_value, self.id_num) im = gtk.Image() im.set_from_stock(gtk.STOCK_DND_MULTIPLE, gtk.ICON_SIZE_BUTTON) self.set_image(im) else: im = gtk.Image() im.set_from_stock(gtk.STOCK_DND, gtk.ICON_SIZE_BUTTON) self.set_image(im) class SavingProgressWindow(gtk.Window): def __init__(self, parent, total, text=_("Saved %(count)s of %(total)s.")): gtk.Window.__init__(self) self.count = 0 self.total = total self.text = text if parent: self.set_transient_for(parent) self.set_modal(True) self.set_decorated(False) self.set_resizable(False) self.set_focus_on_map(False) self.add(gtk.Frame()) self.get_child().set_shadow_type(gtk.SHADOW_OUT) vbox = gtk.VBox(spacing=12) vbox.set_border_width(12) self._label = gtk.Label() self._label.set_use_markup(True) self._label.set_markup(self.text % {'count': 0, 'total': self.total}) vbox.pack_start(self._label) self._progress = gtk.ProgressBar() self._progress.set_size_request(300, -1) vbox.pack_start(self._progress) self.get_child().add(vbox) self.set_position(gtk.WIN_POS_CENTER_ON_PARENT) self.show_all() while gtk.events_pending(): gtk.main_iteration() def step(self): self.count += 1 self._progress.set_fraction( common.clamp(self.count / float(self.total), 0, 1)) self._label.set_markup(self.text % { 'count': self.count, 'total': self.total }) while gtk.events_pending(): gtk.main_iteration() # vim: et sts=4 sw=4 dist/copy/xlgui/PaxHeaders.26361/panel0000644000175000017500000000013212233027261016173 xustar000000000000000030 mtime=1382821553.569046947 30 atime=1382821552.793046922 30 ctime=1382821553.569046947 exaile-3.3.2/xlgui/panel/0000755000000000000000000000000012233027261015211 5ustar00rootroot00000000000000dist/copy/xlgui/panel/PaxHeaders.26361/device.py0000644000175000017500000000012412233027260020061 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.517046945 exaile-3.3.2/xlgui/panel/device.py0000644000000000000000000001450012233027260017021 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import threading import glib import gobject import gtk from xl import common, event from xl.nls import gettext as _ from xlgui import panel from xlgui.panel.collection import CollectionPanel from xlgui.panel.flatplaylist import FlatPlaylistPanel class DeviceTransferThread(common.ProgressThread): """ Transfers tracks from devices """ def __init__(self, device): common.ProgressThread.__init__(self) self.device = device def stop(self): """ Stops the thread """ self.device.transfer.cancel() common.ProgressThread.stop(self) def on_track_transfer_progress(self, type, transfer, progress): """ Notifies about progress changes """ if progress < 100: self.emit('progress-update', progress) else: self.emit('done') def run(self): """ Runs the thread """ event.add_callback(self.on_track_transfer_progress, 'track_transfer_progress', self.device.transfer) try: self.device.start_transfer() finally: event.remove_callback(self.on_track_transfer_progress, 'track_transfer_progress', self.device.transfer) class ReceptiveCollectionPanel(CollectionPanel): def drag_data_received(self, widget, context, x, y, data, info, stamp): uris = data.get_uris() tracks, playlists = self.tree.get_drag_data(uris) tracks = [ t for t in tracks if not \ self.collection.loc_is_member(t.get_loc_for_io()) ] self.add_tracks_func(tracks) def add_tracks_func(self, tracks): locs = [ t['__loc'] for t in tracks ] # FIXME: lib = self.collection.get_libraries()[0] # TODO: there should be a queue for ipod and such devices, # otherwise you'll have to write the database on every track add and # that won't be good # this _needs_ to be asynchronous for l in locs: lib.add(l) class DevicePanel(panel.Panel): """ generic panel for devices """ __gsignals__ = { 'append-items': (gobject.SIGNAL_RUN_LAST, None, (object, bool)), 'replace-items': (gobject.SIGNAL_RUN_LAST, None, (object,)), 'queue-items': (gobject.SIGNAL_RUN_LAST, None, (object,)), 'collection-tree-loaded': (gobject.SIGNAL_RUN_LAST, None, ()), } ui_info = ('device.ui', 'DevicePanelWindow') def __init__(self, parent, main, device, name=None): panel.Panel.__init__(self, name) self.device = device self.main = main self.notebook = self.builder.get_object("device_notebook") self.collectionpanel = ReceptiveCollectionPanel(parent, collection=device.collection, name=name) self.collectionpanel.add_tracks_func = self.add_tracks_func self.collectionpanel.connect('append-items', lambda *e: self.emit('append-items', *e[1:])) self.collectionpanel.connect('replace-items', lambda *e: self.emit('replace-items', *e[1:])) self.collectionpanel.connect('queue-items', lambda *e: self.emit('queue-items', *e[1:])) self.collectionpanel.connect('collection-tree-loaded', lambda *e: self.emit('collection-tree-loaded')) def add_tracks_func(self, tracks): self.device.add_tracks(tracks) thread = DeviceTransferThread(self.device) thread.connect('done', lambda *e: self.load_tree()) self.main.controller.progress_manager.add_monitor(thread, _("Transferring to %s...") % self.name, gtk.STOCK_GO_UP) def get_panel(self): return self.collectionpanel.get_panel() def add_panel(self, child, name): label = gtk.Label(name) self.notebook.append_page(child, label) def load_tree(self, *args): self.collectionpanel.load_tree(*args) class FlatPlaylistDevicePanel(panel.Panel): __gsignals__ = { 'append-items': (gobject.SIGNAL_RUN_LAST, None, (object,bool)), 'replace-items': (gobject.SIGNAL_RUN_LAST, None, (object,)), 'queue-items': (gobject.SIGNAL_RUN_LAST, None, (object,)), } ui_info = ('device.ui', 'DevicePanelWindow') def __init__(self, parent, main, device, name=None): panel.Panel.__init__(self, name) self.device = device self.main = main self.notebook = self.builder.get_object("device_notebook") self.fppanel = FlatPlaylistPanel(self, name) self.fppanel.connect('append-items', lambda *e: self.emit('append-items', *e[1:])) self.fppanel.connect('replace-items', lambda *e: self.emit('replace-items', *e[1:])) self.fppanel.connect('queue-items', lambda *e: self.emit('queue-items', *e[1:])) def get_panel(self): return self.fppanel.get_panel() def add_panel(self, child, name): label = gtk.Label(name) self.notebook.append_page(child, label) def load_tree(self, *e): # TODO: handle *all* the playlists self.fppanel.set_playlist( self.device.get_playlists()[0]) dist/copy/xlgui/panel/PaxHeaders.26361/playlists.py0000644000175000017500000000012412233027260020646 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.569046947 exaile-3.3.2/xlgui/panel/playlists.py0000644000000000000000000013675512233027260017627 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import os.path import time import urllib import glib import gobject import gtk from xl import ( event, playlist, radio, settings, trax ) from xl.nls import gettext as _ from xlgui import ( guiutil, icons, oldmenu as menu, panel, playlist as guiplaylist, xdg ) from xlgui.widgets.common import DragTreeView from xlgui.widgets import dialogs from xlgui.widgets.filter import * def N_(x): return x class EntrySecondsField(MultiEntryField): def __init__(self): MultiEntryField.__init__(self, (50, _('seconds'))) class EntryAndEntryField(MultiEntryField): def __init__(self): # TRANSLATORS: Logical AND used for smart playlists MultiEntryField.__init__(self, (50, _('and'), 50)) class EntryDaysField(MultiEntryField): def __init__(self): MultiEntryField.__init__(self, (50, _('days'))) DATE_FIELDS = [ N_('seconds'), N_('minutes'), N_('hours'), N_('days'), N_('weeks')] class SpinDateField(SpinButtonAndComboField): def __init__(self): SpinButtonAndComboField.__init__(self, DATE_FIELDS) class SpinSecondsField(SpinLabelField): def __init__(self): SpinLabelField.__init__(self, _('seconds')) class SpinRating(SpinLabelField): def __init__(self): SpinLabelField.__init__(self, '', settings.get_option("rating/maximum", 5), 0) class SpinNothing(SpinLabelField): def __init__(self): SpinLabelField.__init__(self, '') # NOTE: The following strings are already marked for translation in _TRANS and # _NMAP, and will be really translated by filtergui; no need to clutter the # code here. CRITERIA = [ ('Artist', [ ('is', EntryField), ('is not', EntryField), ('contains', EntryField), ('does not contain', EntryField), ('regex', EntryField), ('not regex', EntryField), ('is set', NullField), ('is not set', NullField), ]), ('Album', [ ('is', EntryField), ('is not', EntryField), ('contains', EntryField), ('does not contain', EntryField), ('regex', EntryField), ('not regex', EntryField), ('is set', NullField), ('is not set', NullField), ]), ('Title', [ ('is', EntryField), ('is not', EntryField), ('contains', EntryField), ('does not contain', EntryField), ('regex', EntryField), ('not regex', EntryField), ('is set', NullField), ('is not set', NullField), ]), ('Genre', [ ('is', EntryField), ('is not', EntryField), ('contains', EntryField), ('does not contain', EntryField), ('is set', NullField), ('is not set', NullField), ]), ('Rating', [ ('greater than', SpinRating), ('less than', SpinRating), ('at least', SpinRating), ('at most', SpinRating), ]), ('Plays', [ ('at least', SpinNothing), ('at most', SpinNothing), ]), ('Year', [ ('before', EntryField), ('after', EntryField), ('between', EntryAndEntryField), ('is set', NullField), ('is not set', NullField), ]), ('Length', [ ('at least', SpinSecondsField), ('at most', SpinSecondsField), ('is', SpinSecondsField), ]), ('Date added', [ ('in the last', SpinDateField), ('not in the last', SpinDateField), ]), ('Last played', [ ('in the last', SpinDateField), ('not in the last', SpinDateField), ]), ('Location', [ ('is', EntryField), ('is not', EntryField), ('contains', EntryField), ('does not contain', EntryField), ('regex', EntryField), ('not regex', EntryField), ]), (_('BPM'), [ ('is', EntryField), ('less than', SpinNothing), ('greater than', SpinNothing), ('between', EntryAndEntryField), ('is set', NullField), ('is not set', NullField), ]), (_('Grouping'),[ ('is', EntryField), ('is not', EntryField), ('contains', EntryField), ('does not contain', EntryField), ('regex', EntryField), ('not regex', EntryField), ('is set', NullField), ('is not set', NullField), ]), ] # NOTE: We use N_ (fake gettext) because these strings are translated later by # the filter GUI. If we use _ (real gettext) here, filtergui will try to # translate already-translated strings, which makes no sense. This is partly due # to the old design of storing untranslated strings (instead of operators) in # the dynamic playlist database. _TRANS = { # TRANSLATORS: True if haystack is equal to needle N_('is'): '==', # TRANSLATORS: True if haystack is not equal to needle N_('is not'): '!==', # TRANSLATORS: True if the specified tag is present (uses the NullField # to compare to __null__) N_('is set'): '', # TRANSLATORS: True if the specified tag is not present (uses the NullField # to compare to __null__) N_('is not set'): '<==>', # TRANSLATORS: True if haystack contains needle N_('contains'): '=', # TRANSLATORS: True if haystack does not contain needle N_('does not contain'): '!=', # TRANSLATORS: True if haystack matches regular expression N_('regex'): '~', # TRANSLATORS: True if haystack does not match regular expression N_('not regex'): '!~', # TRANSLATORS: Example: rating >= 5 N_('at least'): '>=', # TRANSLATORS: Example: rating <= 3 N_('at most'): '<=', # TRANSLATORS: Example: year < 1999 N_('before'): '<', # TRANSLATORS: Example: year > 2002 N_('after'): '>', # TRANSLATORS: Example: 1980 <= year <= 1987 N_('between'): '><', N_('greater than'): '>', N_('less than'): '<', # TRANSLATORS: Example: track has been added in the last 2 days N_('in the last'): '>=', # TRANSLATORS: Example: track has not been added in the last 5 hours N_('not in the last'): '<', } _NMAP = { N_('Artist'): 'artist', N_('Title'): 'title', N_('Album'): 'album', N_('Length'): '__length', N_('Rating'): '__rating', N_('Plays'): '__playcount', N_('Year'): 'date', N_('Genre'): 'genre', N_('Date added'): '__date_added', N_('Last played'): '__last_played', N_('Location'): '__loc', N_('BPM'): 'bpm', N_('Grouping'): 'grouping', } class TrackWrapper(object): def __init__(self, track, playlist): self.track = track self.playlist = playlist def __str__(self): text = self.track.get_tag_raw('title') if text: text = ' / '.join(text) if text and self.track.get_tag_raw('artist'): text += " - " + ' / '.join(self.track.get_tag_raw('artist')) if not text: return self.track.get_loc_for_io() return text class BasePlaylistPanelMixin(gobject.GObject): """ Base playlist tree object. Used by the radio and playlists panels to display playlists """ # HACK: Notice that this is not __gsignals__; descendants need to manually # merge this in. This is because new PyGObject doesn't like __gsignals__ # coming from mixin. See: # * https://bugs.launchpad.net/bugs/714484 # * http://www.daa.com.au/pipermail/pygtk/2011-February/019394.html _gsignals_ = { 'playlist-selected': (gobject.SIGNAL_RUN_LAST, None, (object,)), 'tracks-selected': (gobject.SIGNAL_RUN_LAST, None, (object,)), 'append-items': (gobject.SIGNAL_RUN_LAST, None, (object, bool)), 'replace-items': (gobject.SIGNAL_RUN_LAST, None, (object,)), 'queue-items': (gobject.SIGNAL_RUN_LAST, None, (object,)), } def __init__(self): """ Initializes the mixin """ gobject.GObject.__init__(self) self.playlist_nodes = {} # {playlist: iter} cache for custom playlists self.track_image = icons.MANAGER.pixbuf_from_icon_name( 'audio-x-generic', gtk.ICON_SIZE_SMALL_TOOLBAR) def remove_selected_playlist(self): """ Removes the selected playlist from the UI and from the underlying manager """ selected_playlist = self.tree.get_selected_page(raw=True) if selected_playlist is not None: if isinstance(selected_playlist, playlist.SmartPlaylist): self.smart_manager.remove_playlist( selected_playlist.name) else: self.playlist_manager.remove_playlist( selected_playlist.name) # Remove from {playlist: iter} cache. del self.playlist_nodes[selected_playlist] # Remove from UI. selection = self.tree.get_selection() (model, iter) = selection.get_selected() self.model.remove(iter) def rename_selected_playlist(self, name): """ Renames the selected playlist @param name: the new name """ if name in self.playlist_manager.playlists: # name is already in use dialogs.error(self.parent, _("The " "playlist name you entered is already in use.")) return playlist = self.tree.get_selected_page() if playlist is not None: old_name = playlist.name selection = self.tree.get_selection() (model, iter) = selection.get_selected() model.set_value(iter, 1, name) #Update the manager aswell self.playlist_manager.rename_playlist(playlist, name) def open_selected_playlist(self): selection = self.tree.get_selection() (model, iter) = selection.get_selected() self.open_item(self.tree, model.get_path(iter), None) def on_rating_changed(self, widget, rating): """ Updates the rating of the selected tracks """ tracks = self.get_selected_tracks() for track in tracks: track.set_rating(rating) maximum = settings.get_option('rating/maximum', 5) event.log_event('rating_changed', self, rating / maximum * 100) def open_item(self, tree, path, col): """ Called when the user double clicks on a playlist, also called when the user double clicks on a track beneath a playlist. When they active a track it opens the playlist and starts playing that track """ iter = self.model.get_iter(path) item = self.model.get_value(iter, 2) if item is not None: if isinstance(item, (playlist.Playlist, playlist.SmartPlaylist)): # for smart playlists if hasattr(item, 'get_playlist'): item = item.get_playlist(self.collection) else: #Get an up to date copy item = self.playlist_manager.get_playlist(item.name) #item.set_is_custom(True) # self.controller.main.add_playlist(item) self.emit('playlist-selected', item) else: self.emit('append-items', [item.track], True) def add_new_playlist(self, tracks=[], name = None): """ Adds a new playlist to the list of playlists. If name is None or the name conflicts with an existing playlist, the user will be queried for a new name. Returns the name of the new playlist, or None if it was not added. """ do_add_playlist = False if name: if name in self.playlist_manager.playlists: name = dialogs.ask_for_playlist_name( self.playlist_manager, name ) else: if tracks: artists = [] composers = [] albums = [] for track in tracks: artist = track.get_tag_display('artist', artist_compilations=False) if artist is not None: artists += [artist] composer = track.get_tag_display('composer', artist_compilations=False) if composer is not None: composers += composer album = track.get_tag_display('album') if album is not None: albums += album artists = list(set(artists))[:3] composers = list(set(composers))[:3] albums = list(set(albums))[:3] if len(artists) > 0: name = artists[0] if len(artists) > 2: # TRANSLATORS: Playlist title suggestion with more # than two values name = _('%(first)s, %(second)s and others') % { 'first': artists[0], 'second': artists[1] } elif len(artists) > 1: # TRANSLATORS: Playlist title suggestion with two values name = _('%(first)s and %(second)s') % { 'first': artists[0], 'second': artists[1] } elif len(composers) > 0: name = composers[0] if len(composers) > 2: # TRANSLATORS: Playlist title suggestion with more # than two values name = _('%(first)s, %(second)s and others') % { 'first': composers[0], 'second': composers[1] } elif len(composers) > 1: # TRANSLATORS: Playlist title suggestion with two values name = _('%(first)s and %(second)s') % { 'first': composers[0], 'second': composers[1] } elif len(albums) > 0: name = albums[0] if len(albums) > 2: # TRANSLATORS: Playlist title suggestion with more # than two values name = _('%(first)s, %(second)s and others') % { 'first': albums[0], 'second': albums[1] } elif len(albums) > 1: # TRANSLATORS: Playlist title suggestion with two values name = _('%(first)s and %(second)s') % { 'first': albums[0], 'second': albums[1] } else: name = '' name = dialogs.ask_for_playlist_name( self.playlist_manager, name ) if name is not None: #Create the playlist from all of the tracks new_playlist = playlist.Playlist(name) new_playlist.extend(tracks) # We are adding a completely new playlist with tracks so we save it self.playlist_manager.save_playlist(new_playlist) return name def _load_playlist_nodes(self, playlist): """ Loads the playlist tracks into the node for the specified playlist """ if not playlist in self.playlist_nodes: return expanded = self.tree.row_expanded( self.model.get_path(self.playlist_nodes[playlist])) self._clear_node(self.playlist_nodes[playlist]) parent = self.playlist_nodes[playlist] for track in playlist: if not track: continue wrapper = TrackWrapper(track, playlist) ar = [self.track_image, str(wrapper), wrapper] self.model.append(parent, ar) if expanded: self.tree.expand_row( self.model.get_path(self.playlist_nodes[playlist]), False) def remove_selected_track(self): """ Removes the selected track from its playlist and saves the playlist """ selection = self.tree.get_selection() (model, iter) = selection.get_selected() track = model.get_value(iter, 2) if isinstance(track, TrackWrapper): del track.playlist[track.playlist.index(track.track)] #Update the list self.model.remove(iter) #TODO do we save the playlist after this?? self.playlist_manager.save_playlist(track.playlist, overwrite=True) class PlaylistsPanel(panel.Panel, BasePlaylistPanelMixin): """ The playlists panel """ __gsignals__ = BasePlaylistPanelMixin._gsignals_ ui_info = ('playlists.ui', 'PlaylistsPanelWindow') def __init__(self, parent, playlist_manager, smart_manager, collection): """ Intializes the playlists panel @param playlist_manager: The playlist manager """ panel.Panel.__init__(self, parent) BasePlaylistPanelMixin.__init__(self) self.playlist_manager = playlist_manager self.smart_manager = smart_manager self.collection = collection self.box = self.builder.get_object('playlists_box') self._refresh_id = 0 self.playlist_name_info = 500 self.track_target = ("text/uri-list", 0, 0) self.playlist_target = ("playlist_name", gtk.TARGET_SAME_WIDGET, self.playlist_name_info) self.deny_targets = [('',0,0)] self.tree = PlaylistDragTreeView(self) self.tree.connect('row-activated', self.open_item) self.tree.set_headers_visible(False) self.tree.connect('drag-motion', self.drag_motion) self.tree.drag_source_set( gtk.gdk.BUTTON1_MASK, [self.track_target, self.playlist_target], gtk.gdk.ACTION_COPY|gtk.gdk.ACTION_MOVE) self.scroll = gtk.ScrolledWindow() self.scroll.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) self.scroll.add(self.tree) self.scroll.set_shadow_type(gtk.SHADOW_IN) self.box.pack_start(self.scroll, True, True) self.box.show_all() pb = gtk.CellRendererPixbuf() cell = gtk.CellRendererText() if settings.get_option('gui/ellipsize_text_in_panels', False): import pango cell.set_property( 'ellipsize-set', True) cell.set_property( 'ellipsize', pango.ELLIPSIZE_END) col = gtk.TreeViewColumn('Text') col.pack_start(pb, False) col.pack_start(cell, True) col.set_attributes(pb, pixbuf=0) col.set_attributes(cell, text=1) self.tree.append_column(col) self.model = gtk.TreeStore(gtk.gdk.Pixbuf, str, object) self.tree.set_model(self.model) # icons self.folder = self.tree.render_icon( gtk.STOCK_DIRECTORY, gtk.ICON_SIZE_SMALL_TOOLBAR) self.playlist_image = icons.MANAGER.pixbuf_from_icon_name( 'music-library', gtk.ICON_SIZE_SMALL_TOOLBAR) # menus self.playlist_menu = menu.PlaylistsPanelPlaylistMenu() self.smart_menu = menu.PlaylistsPanelPlaylistMenu(smart=True) self.default_menu = menu.PlaylistsPanelMenu() self.track_menu = menu.PlaylistsPanelTrackMenu() self._connect_events() self._load_playlists() def _connect_events(self): event.add_callback(self.refresh_playlists, 'track_tags_changed') event.add_callback(self._on_playlist_added, 'playlist_added', self.playlist_manager) self.tree.connect('key-release-event', self.on_key_released) self.track_menu.connect('remove-track', lambda *e: self.remove_selected_track()) self.smart_menu.connect('properties', lambda *e: self._playlist_properties()) for item in ('playlist', 'smart', 'default'): menu = getattr(self, '%s_menu' % item) menu.connect('add-playlist', lambda *e: self.add_new_playlist()) menu.connect('add-smart-playlist', lambda *e: self.add_smart_playlist()) menu.connect('import-playlist', lambda *e: self.import_playlist()) if item != 'default': menu.connect('append-items', lambda *e: self.emit('append-items', self.tree.get_selected_tracks(), False)) menu.connect('replace-items', lambda *e: self.emit('replace-items', self.tree.get_selected_tracks())) menu.connect('queue-items', lambda *e: self.emit('queue-items', self.tree.get_selected_tracks())) menu.connect('rating-changed', self.on_rating_changed) menu.connect('open-playlist', lambda *e: self.open_selected_playlist()) menu.connect('export-playlist', lambda widget: self.export_selected_playlist()) menu.connect('export-playlist-files', lambda widget, path: self.export_selected_playlist_files(path)) menu.connect('rename-playlist', lambda widget, name: self.rename_selected_playlist(name)) menu.connect('remove-playlist', lambda *e: self.remove_selected_playlist()) if item == 'smart': menu.connect('edit-playlist', lambda *e: self.edit_selected_smart_playlist()) def _playlist_properties(self): pl = self.tree.get_selected_page(raw=True) if isinstance(pl, playlist.SmartPlaylist): self.edit_selected_smart_playlist() def refresh_playlists(self, type, track, tag): """ wrapper so that multiple events dont cause multiple reloads in quick succession """ if settings.get_option('gui/sync_on_tag_change', True) and \ tag in ['title', 'artist']: if self._refresh_id != 0: glib.source_remove(self._refresh_id) self._refresh_id = glib.timeout_add(500, self._refresh_playlists) def _refresh_playlists(self): """ Callback for when tags have changed and the playlists need refreshing. """ if settings.get_option('gui/sync_on_tag_change', True): for playlist in self.playlist_nodes: self.update_playlist_node(playlist) def _on_playlist_added(self, type, object, playlist_name): new_playlist = self.playlist_manager.get_playlist(playlist_name) for plx in self.playlist_nodes: if plx.name == playlist_name: self.update_playlist_node(new_playlist) return self.playlist_nodes[new_playlist] = \ self.model.append(self.custom, [self.playlist_image, playlist_name, new_playlist]) self.tree.expand_row(self.model.get_path(self.custom), False) self._load_playlist_nodes(new_playlist) def _load_playlists(self): """ Loads the currently saved playlists """ self.smart = self.model.append(None, [self.folder, _("Smart Playlists"), None]) self.custom = self.model.append(None, [self.folder, _("Custom Playlists"), None]) names = self.smart_manager.playlists[:] names.sort() for name in names: self.model.append(self.smart, [self.playlist_image, name, self.smart_manager.get_playlist(name)]) names = self.playlist_manager.playlists[:] names.sort() for name in names: playlist = self.playlist_manager.get_playlist(name) self.playlist_nodes[playlist] = self.model.append( self.custom, [self.playlist_image, name, playlist]) self._load_playlist_nodes(playlist) self.tree.expand_row(self.model.get_path(self.smart), False) self.tree.expand_row(self.model.get_path(self.custom), False) def update_playlist_node(self, pl): """ Updates the playlist node of the playlist to reflect any changes in it (i.e. tracks being added to the playlist) @param pl: the playlist to be updated """ playlists = self.playlist_nodes.keys() for playlist in playlists: if playlist.name == pl.name: node = self.playlist_nodes[playlist] # Replace the playlist object in {playlist: iter} cache. del self.playlist_nodes[playlist] self.playlist_nodes[pl] = node # Replace the playlist object in tree model. self.model[node][2] = pl # Refresh the playlist subnodes. self._load_playlist_nodes(pl) def import_playlist(self): """ Shows a dialog to ask the user to import a new playlist """ def _on_playlist_selected(dialog, playlist): self.add_new_playlist( playlist, playlist.name ) dialog = dialogs.PlaylistImportDialog() dialog.connect('playlist-selected', _on_playlist_selected) dialog.show() def add_smart_playlist(self): """ Adds a new smart playlist """ dialog = FilterDialog(_('Add Smart Playlist'), self.parent, CRITERIA) dialog.set_transient_for(self.parent) # run the dialog until there is no error while self._run_add_smart_playlist(dialog) == False: pass def _run_add_smart_playlist(self, dialog): '''internal helper function''' result = dialog.run() dialog.hide() if result == gtk.RESPONSE_ACCEPT: name = dialog.get_name() matchany = dialog.get_match_any() limit = dialog.get_limit() state = dialog.get_state() random = dialog.get_random() if not name: dialogs.error(self.parent, _("You did " "not enter a name for your playlist")) return False try: pl = self.smart_manager.get_playlist(name) dialogs.error(self.parent, _("The " "playlist name you entered is already in use.")) return False except ValueError: pass # playlist didn't exist pl = playlist.SmartPlaylist(name, self.collection) pl.set_or_match(matchany) pl.set_return_limit(limit) pl.set_random_sort(random) for item in state: (field, op) = item[0] value = item[1] pl.add_param(_NMAP[field], _TRANS[op], value) self.smart_manager.save_playlist(pl) self.model.append(self.smart, [self.playlist_image, name, pl]) return True def edit_selected_smart_playlist(self): """ Shows a dialog for editing the currently selected smart playlist """ _REV = {} for k, v in _TRANS.iteritems(): _REV[v] = k _REV_NMAP = {} for k, v in _NMAP.iteritems(): _REV_NMAP[v] = k pl = self.tree.get_selected_page(raw=True) if not isinstance(pl, playlist.SmartPlaylist): return params = pl.search_params state = [] for param in params: (field, op, value) = param field = _REV_NMAP[field] state.append(([field, _REV[op]], value)) state.reverse() dialog = FilterDialog(_('Edit Smart Playlist'), self.parent, CRITERIA) dialog.set_transient_for(self.parent) dialog.set_name(pl.name) dialog.set_match_any(pl.get_or_match()) dialog.set_limit(pl.get_return_limit()) dialog.set_random(pl.get_random_sort()) dialog.set_state(state) # run the dialog until there is no error while self._run_edit_selected_smart_playlist(dialog) == False: pass def _run_edit_selected_smart_playlist(self, dialog): '''internal helper function''' result = dialog.run() dialog.hide() pl = self.tree.get_selected_page(raw=True) if result == gtk.RESPONSE_ACCEPT: name = dialog.get_name() matchany = dialog.get_match_any() limit = dialog.get_limit() state = dialog.get_state() random = dialog.get_random() if not name: dialogs.error(self.parent, _("You did " "not enter a name for your playlist")) return False if not name == pl.name: try: pl = self.smart_manager.get_playlist(name) dialogs.error(self.parent, _("The " "playlist name you entered is already in use.")) return False except ValueError: pass # playlist didn't exist self.smart_manager.remove_playlist(pl.name) pl = playlist.SmartPlaylist(name, self.collection) pl.set_or_match(matchany) pl.set_return_limit(limit) pl.set_random_sort(random) for item in state: (field, op) = item[0] value = item[1] pl.add_param(_NMAP[field], _TRANS[op], value) self.smart_manager.save_playlist(pl) selection = self.tree.get_selection() (model, iter) = selection.get_selected() model.set_value(iter, 1, name) model.set_value(iter, 2, pl) return True def drag_data_received(self, tv, context, x, y, selection, info, etime): """ Called when someone drags some thing onto the playlist panel """ if info == self.playlist_name_info: # We are being dragged a playlist so # we have to reorder them playlist_name = selection.get_text() drag_source = self.tree.get_selected_page() # verify names if drag_source is not None: if drag_source.name == playlist_name: drop_info = tv.get_dest_row_at_pos(x, y) drag_source_iter = self.playlist_nodes[drag_source] if drop_info: path, position = drop_info drop_target_iter = self.model.get_iter(path) drop_target = self.model.get_value(drop_target_iter, 2) if position == gtk.TREE_VIEW_DROP_BEFORE: # Put the playlist before drop_target self.model.move_before(drag_source_iter, drop_target_iter) self.playlist_manager.move(playlist_name, drop_target.name, after = False) else: # put the playlist after drop_target self.model.move_after(drag_source_iter, drop_target_iter) self.playlist_manager.move(playlist_name, drop_target.name, after = True) # Even though we are doing a move we still don't # call the delete method because we take care # of it above by moving instead of inserting/deleting context.finish(True, False, etime) else: self._drag_data_received_uris(tv, context, x, y, selection, info, etime) def _drag_data_received_uris(self, tv, context, x, y, selection, info, etime): """ Called by drag_data_received when the user drags URIs onto us """ locs = list(selection.get_uris()) drop_info = tv.get_dest_row_at_pos(x, y) if drop_info: path, position = drop_info iter = self.model.get_iter(path) drop_target = self.model.get_value(iter, 2) # if the current item is a track, use the parent playlist insert_index = None if isinstance(drop_target, TrackWrapper): current_playlist = drop_target.playlist drop_target_index = current_playlist.index(drop_target.track) # Adjust insert position based on drop position if (position == gtk.TREE_VIEW_DROP_BEFORE or position == gtk.TREE_VIEW_DROP_INTO_OR_BEFORE): # By default adding tracks inserts it before so we do not # have to modify the insert index insert_index =drop_target_index else: # If we want to go after we have to append 1 insert_index = drop_target_index + 1 else: current_playlist = drop_target; # Since the playlist do not have very good support for # duplicate tracks we have to perform some trickery # to make this work properly in all cases try: remove_track_index = current_playlist.index( self.tree.get_selected_track()) except ValueError: remove_track_index = None if insert_index is not None and remove_track_index is not None: # Since remove_track_index will be removed before # the new track is inserted we have to offset the # insert index if insert_index > remove_track_index: insert_index = insert_index - 1 # Delete the track before adding the other one # so we do not get duplicates # right now the playlist does not support # duplicate tracks very well if context.action == gtk.gdk.ACTION_MOVE: #On a move action the second True makes the # drag_data_delete function called context.finish(True, True, etime) else: context.finish(True, False, etime) # Add the tracks we found to the internal playlist # TODO: have it pass in existing tracks? (tracks, playlists) = self.tree.get_drag_data(locs) if insert_index is not None: current_playlist[insert_index:insert_index] = tracks else: current_playlist.extend( tracks ) self._load_playlist_nodes(current_playlist) # Do we save in the case when a user drags a file onto a playlist # in the playlist panel? note that the playlist does not have to # be open for this to happen self.playlist_manager.save_playlist(current_playlist, overwrite=True) else: # If the user dragged files prompt for a new playlist name # else if they dragged a playlist add the playlist # We don't want the tracks in the playlists to be added to the # master tracks list so we pass in False (tracks, playlists) = self.tree.get_drag_data(locs, False) # First see if they dragged any playlist files for new_playlist in playlists: self.playlist_nodes[new_playlist] = self.model.append( self.custom, [self.playlist_image, new_playlist.name, new_playlist]) self._load_playlist_nodes(new_playlist) # We are adding a completely new playlist with tracks so # we save it self.playlist_manager.save_playlist(new_playlist, overwrite=True) # After processing playlist proceed to ask the user for the # name of the new playlist to add and add the tracks to it if len(tracks) > 0: self.add_new_playlist(tracks) def drag_data_delete(self, tv, context): """ Called after a drag data operation is complete and we want to delete the source data """ if context.drag_drop_succeeded(): self.remove_selected_track() def drag_get_data(self, tv, context, selection_data, info, time): """ Called when someone drags something from the playlist """ #TODO based on info determine what we set in selection_data if info == self.playlist_name_info: pl = self.tree.get_selected_page() if pl is not None: selection_data.set(gtk.gdk.SELECTION_TYPE_STRING, 8, pl.name) else: pl = self.tree.get_selected_page() if pl is not None: tracks = pl[:] else: tracks = self.tree.get_selected_tracks() if not tracks: return for track in tracks: DragTreeView.dragged_data[track.get_loc_for_io()] = \ track uris = trax.util.get_uris_from_tracks(tracks) selection_data.set_uris(uris) def drag_motion(self, tv, context, x, y, time): """ Sets the appropriate drag action based on what we are hovering over hovering over playlists causes the copy action to occur hovering over tracks within the same playlist causes the move action to occur hovering over tracks within different playlist causes the move action to occur Called on the destination widget """ # Reset any target to be default to moving tracks self.tree.enable_model_drag_dest([self.track_target], gtk.gdk.ACTION_DEFAULT) # Determine where the drag is coming from dragging_playlist = False if tv == self.tree: selected_playlist = self.tree.get_selected_page() if selected_playlist is not None: dragging_playlist = True # Find out where they are dropping onto drop_info = tv.get_dest_row_at_pos(x, y) if drop_info: path, position = drop_info iter = self.model.get_iter(path) drop_target = self.model.get_value(iter, 2) if isinstance(drop_target, playlist.Playlist): if dragging_playlist: # If we drag onto we copy, if we drag between we move if position == gtk.TREE_VIEW_DROP_INTO_OR_BEFORE or \ position == gtk.TREE_VIEW_DROP_INTO_OR_AFTER: context.drag_status(gtk.gdk.ACTION_COPY, time) else: context.drag_status(gtk.gdk.ACTION_MOVE, time) # Change target as well self.tree.enable_model_drag_dest([self.playlist_target], gtk.gdk.ACTION_DEFAULT) else: context.drag_status(gtk.gdk.ACTION_COPY, time) elif isinstance(drop_target, TrackWrapper): # We are dragging onto another track # make it a move operation if we are only dragging # tracks within our widget # We do a copy if we are draggin from another playlist if context.get_source_widget() == tv and \ dragging_playlist == False: context.drag_status(gtk.gdk.ACTION_MOVE, time) else: context.drag_status(gtk.gdk.ACTION_COPY, time) else: # Prevent drop operation by changing the targets self.tree.enable_model_drag_dest(self.deny_targets, gtk.gdk.ACTION_DEFAULT) return False return True else: # No drop info if dragging_playlist: context.drag_status(gtk.gdk.ACTION_MOVE, time) # Change target as well self.tree.enable_model_drag_dest([self.playlist_target], gtk.gdk.ACTION_DEFAULT) def export_selected_playlist(self): """ Exports the selected playlist to path @path where we we want it to be saved, with a valid extension we support """ playlist = self.tree.get_selected_page() if playlist is not None: dialog = dialogs.PlaylistExportDialog(playlist) dialog.show() def export_selected_playlist_files(self, uri): ''' Exports the selected playlist files to URI @uri where we want it to be saved ''' pl = self.tree.get_selected_page() if pl is not None: pl_files = [track.get_loc_for_io() for track in pl] dialog = dialogs.FileCopyDialog( pl_files, uri, _('Exporting %s') % pl.name ) dialog.do_copy() def on_key_released(self, widget, event): """ Called when a key is released in the tree """ if event.keyval == gtk.keysyms.Menu: (mods,paths) = self.tree.get_selection().get_selected_rows() if paths and paths[0]: iter = self.model.get_iter(paths[0]) pl = self.model.get_value(iter, 2) #Based on what is selected determines what #menu we will show if isinstance(pl, playlist.Playlist): gtk.Menu.popup(self.playlist_menu, None, None, None, 0, event.time) elif isinstance(pl, playlist.SmartPlaylist): gtk.Menu.popup(self.smart_menu, None, None, None, 0, event.time) elif isinstance(pl, TrackWrapper): gtk.Menu.popup(self.track_menu, None, None, None, 0, event.time) else: gtk.Menu.popup(self.default_menu, None, None, None, 0, event.time) return True if event.keyval == gtk.keysyms.Left: (mods,paths) = self.tree.get_selection().get_selected_rows() if paths and paths[0]: self.tree.collapse_row(paths[0]) return True if event.keyval == gtk.keysyms.Right: (mods,paths) = self.tree.get_selection().get_selected_rows() if paths and paths[0]: self.tree.expand_row(paths[0], False) return True if event.keyval == gtk.keysyms.Delete: (mods,paths) = self.tree.get_selection().get_selected_rows() if paths and paths[0]: iter = self.model.get_iter(paths[0]) pl = self.model.get_value(iter, 2) #Based on what is selected determines what #menu we will show if isinstance(pl, playlist.Playlist) or \ isinstance(pl, playlist.SmartPlaylist): dialog = gtk.MessageDialog(None, gtk.DIALOG_MODAL, gtk.MESSAGE_QUESTION, gtk.BUTTONS_YES_NO, _("Are you sure you want to permanently delete " "the selected playlist?")) if dialog.run() == gtk.RESPONSE_YES: self.remove_selected_playlist() dialog.destroy() elif isinstance(pl, TrackWrapper): self.remove_selected_track() return True return False def button_release(self, button, event): """ Called when a button is pressed, is responsible for showing the context menu """ if event.button == 3: button_info = self.tree.get_dest_row_at_pos( int(event.x), int(event.y)) if not button_info: return iter = self.model.get_iter(button_info[0]) pl = self.model.get_value(iter, 2) #Based on what is selected determines what #menu we will show if isinstance(pl, playlist.Playlist): self.playlist_menu.popup(event) elif isinstance(pl, playlist.SmartPlaylist): self.smart_menu.popup(event) elif isinstance(pl, TrackWrapper): self.track_menu.popup(event) else: self.default_menu.popup(event) def _clear_node(self, node): """ Clears a node of all children """ iter = self.model.iter_children(node) while True: if not iter: break self.model.remove(iter) iter = self.model.iter_children(node) class PlaylistDragTreeView(DragTreeView): """ Custom DragTreeView to retrieve data from playlists """ def __init__(self, container, receive=True, source=True): DragTreeView.__init__(self, container, receive, source) self.show_cover_drag_icon = False def get_selected_tracks(self): """ Used by the menu, just basically gets the selected playlist and returns the tracks in it """ playlist = self.get_selected_page() if playlist is not None: return [track for track in playlist] else: return [self.get_selected_track()] return None def get_selected_page(self, raw=False): """ Retrieves the currently selected playlist in the playlists panel. If a non-playlist is selected it returns None @return: the playlist """ item = self.get_selected_item(raw=raw) if isinstance(item, (playlist.Playlist, playlist.SmartPlaylist)): return item else: return None def get_selected_track(self): item = self.get_selected_item() if not item: return None if isinstance(item, TrackWrapper): return item.track else: return None def get_selected_item(self, raw=False): (model, iter) = self.get_selection().get_selected() if not iter: return None item = model.get_value(iter, 2) # for smart playlists if isinstance(item, playlist.SmartPlaylist): if raw: return item return item.get_playlist(self.container.collection) if isinstance(item, radio.RadioItem): if raw: return item return item.get_playlist() elif isinstance(item, playlist.Playlist): return item elif isinstance(item, TrackWrapper): return item else: return None dist/copy/xlgui/panel/PaxHeaders.26361/flatplaylist.py0000644000175000017500000000012412233027260021332 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.517046945 exaile-3.3.2/xlgui/panel/flatplaylist.py0000644000000000000000000001533112233027260020275 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import gobject import gtk from xl import metadata, trax from xl.nls import gettext as _ from xlgui import ( guiutil, oldmenu as menu, panel ) from xlgui.widgets.common import DragTreeView class FlatPlaylistPanel(panel.Panel): """ Flat playlist panel; represents a single playlist """ __gsignals__ = { 'append-items': (gobject.SIGNAL_RUN_LAST, None, (object, bool)), 'replace-items': (gobject.SIGNAL_RUN_LAST, None, (object,)), 'queue-items': (gobject.SIGNAL_RUN_LAST, None, (object,)), } ui_info = ('flatplaylist.ui', 'FlatPlaylistPanelWindow') def __init__(self, parent, name=None): panel.Panel.__init__(self, parent, name) self.box = self.builder.get_object('FlatPlaylistPanel') self.model = gtk.ListStore(int, str, object) self.tracks = [] self._setup_tree() if not hasattr(self.parent, 'do_import'): self.builder.get_object("import_button").hide() self.menu = menu.TrackSelectMenu() self._connect_events() def _connect_events(self): self.builder.connect_signals({ 'on_add_button_clicked': self._on_add_button_clicked, 'on_import_button_clicked': self._on_import_button_clicked, }) self.menu.connect('append-items', lambda *e: self.emit('append-items', self.tree.get_selected_tracks(), False)) self.menu.connect('replace-items', lambda *e: self.emit('replace-items', self.tree.get_selected_tracks())) self.menu.connect('queue-items', lambda *e: self.emit('queue-items', self.tree.get_selected_tracks())) self.tree.connect('row-activated', lambda *e: self.emit('append-items', self.tree.get_selected_tracks(), True)) def _on_add_button_clicked(self, *e): self.emit('append-items', self.tracks, False) def _on_import_button_clicked(self, *e): tracks = self.tree.get_selected_tracks() if len(tracks) == 0: # nothing selected, do everything tracks = self.tracks self.parent.do_import(tracks) def _setup_tree(self): self.tree = FlatPlaylistDragTreeView(self, False, True) selection = self.tree.get_selection() selection.set_mode(gtk.SELECTION_MULTIPLE) self.tree.set_headers_visible(True) self.tree.set_model(self.model) self.scroll = gtk.ScrolledWindow() self.scroll.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) self.scroll.add(self.tree) self.scroll.set_shadow_type(gtk.SHADOW_IN) self.box.pack_start(self.scroll, True, True) text = gtk.CellRendererText() col = gtk.TreeViewColumn(_('#')) col.pack_start(text, False) col.set_attributes(text, text=0) col.set_fixed_width(50) col.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED) self.tree.append_column(col) text = gtk.CellRendererText() col = gtk.TreeViewColumn(_('Title')) col.pack_start(text, True) col.set_attributes(text, text=1) col.set_sizing(gtk.TREE_VIEW_COLUMN_AUTOSIZE) col.set_cell_data_func(text, self._title_data_func) self.tree.append_column(col) self.box.show_all() def _title_data_func(self, col, cell, model, iter): if not model.iter_is_valid(iter): return item = model.get_value(iter, 2) cell.set_property('text', item.get_tag_display("title")) def set_playlist(self, playlist): self.model.clear() tracks = [track for track in playlist] self.tracks = tracks for i, track in enumerate(tracks): self.model.append([i + 1, track.get_tag_display("title"), track]) def button_release(self, button, event): """ Called when the user clicks on the playlist """ if event.button == 3: selection = self.tree.get_selection() (x, y) = map(int, event.get_coords()) path = self.tree.get_path_at_pos(x, y) self.menu.popup(event) if not path: return False if len(self.tree.get_selected_tracks()) >= 2: (mods,paths) = selection.get_selected_rows() if (path[0] in paths): if event.state & (gtk.gdk.SHIFT_MASK|gtk.gdk.CONTROL_MASK): return False return True else: return False return False def drag_data_received(self, *e): """ stub """ pass def drag_data_delete(self, *e): """ stub """ pass def drag_get_data(self, treeview, context, selection, target_id, etime): """ Called when a drag source wants data for this drag operation """ tracks = self.tree.get_selected_tracks() if not tracks: return for track in tracks: DragTreeView.dragged_data[track.get_loc_for_io()] = track uris = trax.util.get_uris_from_tracks(tracks) selection.set_uris(uris) class FlatPlaylistDragTreeView(DragTreeView): """ Custom DragTreeView to retrieve data from playlists """ def get_selected_tracks(self): """ Returns the currently selected tracks """ (model, paths) = self.get_selection().get_selected_rows() tracks = [] for path in paths: iter = model.get_iter(path) track = model.get_value(iter, 2) tracks.append(track) return tracks dist/copy/xlgui/panel/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260020361 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.565046947 exaile-3.3.2/xlgui/panel/__init__.py0000644000000000000000000000560512233027260017327 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import os import gtk import gobject from xl import xdg class Panel(gobject.GObject): """ The base panel class. This class is abstract and should be subclassed. All subclasses should define a 'ui_info' and 'name' variables. """ ui_info = ('panel.ui', 'PanelWindow') def __init__(self, parent, name=None): """ Intializes the panel @param controller: the main gui controller """ gobject.GObject.__init__(self) self.name = name self.parent = parent # if the UI designer file starts with file:// use the full path minus # file://, otherwise check in the data directories ui_file = self.ui_info[0] if not os.path.isabs(ui_file): ui_file = xdg.get_data_path('ui', 'panel', ui_file) self.builder = gtk.Builder() self.builder.add_from_file(ui_file) self._child = None def focus(self): """ Makes this panel grab the keyboard focus Subclasses can override this to give focus to a particular widget or perform another action. """ self._child.grab_focus() def get_panel(self): if not self._child: window = self.builder.get_object(self.ui_info[1]) self._child = window.get_child() window.remove(self._child) if not self.name: self.name = window.get_title() window.destroy() return (self._child, self.name) def __del__(self): import xlgui try: xlgui.get_controller().remove_panel(self._child) except ValueError: pass dist/copy/xlgui/panel/PaxHeaders.26361/files.py0000644000175000017500000000012412233027260017724 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.517046945 exaile-3.3.2/xlgui/panel/files.py0000644000000000000000000004431412233027260016672 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import gio import glib import gobject import gtk import locale import logging import os import pango import re import urllib from xl import ( common, event, metadata, providers, settings, trax ) from xl.nls import gettext as _ from xlgui import ( guiutil, icons, panel, playlist, xdg ) from xlgui.widgets.common import DragTreeView from xlgui.widgets import ( menu, menuitems ) logger = logging.getLogger(__name__) def __create_files_panel_context_menu(): items = [] items.append(menuitems.AppendMenuItem('append', after=[])) items.append(menuitems.ReplaceCurrentMenuItem('replace', after=[items[-1].name])) items.append(menuitems.EnqueueMenuItem('enqueue', after=[items[-1].name])) items.append(menu.simple_separator('sep1', after=[items[-1].name])) items.append(menuitems.OpenDirectoryMenuItem('open-drectory', after=[items[-1].name])) def trash_tracks_func(parent, context, tracks): menuitems.generic_trash_tracks_func(parent, context, tracks) parent.refresh(None) items.append(menuitems.TrashMenuItem('trash-tracks', after=[items[-1].name], trash_tracks_func=trash_tracks_func)) items.append(menu.simple_separator('sep2', after=[items[-1].name])) items.append(menuitems.PropertiesMenuItem('properties', after=[items[-1].name])) for item in items: providers.register('files-panel-context-menu', item) __create_files_panel_context_menu() class FilesContextMenu(menu.ProviderMenu): def __init__(self, panel): menu.ProviderMenu.__init__(self, 'files-panel-context-menu', panel) def get_context(self): context = common.LazyDict(self._parent) def get_selected_tracks(name, parent): return parent.tree.get_selected_tracks() or [] context['selected-tracks'] = get_selected_tracks context['selection-count'] = lambda name, parent: \ parent.tree.get_selection_count() return context class FilesPanel(panel.Panel): """ The Files panel """ __gsignals__ = { 'append-items': (gobject.SIGNAL_RUN_LAST, None, (object, bool)), 'replace-items': (gobject.SIGNAL_RUN_LAST, None, (object,)), 'queue-items': (gobject.SIGNAL_RUN_LAST, None, (object,)), } ui_info = ('files.ui', 'FilesPanelWindow') def __init__(self, parent, collection): """ Initializes the files panel """ panel.Panel.__init__(self, parent) self.collection = collection self.box = self.builder.get_object('files_box') self.targets = [('text/uri-list', 0, 0)] self._setup_tree() self._setup_widgets() self.menu = FilesContextMenu(self) self.key_id = None self.i = 0 first_dir = gio.File(settings.get_option('gui/files_panel_dir', xdg.homedir)) self.history = [first_dir] self.load_directory(first_dir, False) def _setup_tree(self): """ Sets up tree widget for the files panel """ self.model = gtk.ListStore(gio.File, gtk.gdk.Pixbuf, str, str) self.tree = tree = FilesDragTreeView(self, True, True) tree.set_model(self.model) tree.connect('row-activated', self.row_activated) tree.connect('key-release-event', self.on_key_released) selection = tree.get_selection() selection.set_mode(gtk.SELECTION_MULTIPLE) self.scroll = scroll = gtk.ScrolledWindow() scroll.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) scroll.add(tree) scroll.set_shadow_type(gtk.SHADOW_IN) self.box.pack_start(scroll, True, True) pb = gtk.CellRendererPixbuf() text = gtk.CellRendererText() self.colname = colname = gtk.TreeViewColumn(_('Filename')) colname.pack_start(pb, False) colname.pack_start(text, True) if settings.get_option('gui/ellipsize_text_in_panels', False): text.set_property('ellipsize-set', True) text.set_property('ellipsize', pango.ELLIPSIZE_END) else: colname.connect('notify::width', self.set_column_width) width = settings.get_option('gui/files_filename_col_width', 130) colname.set_fixed_width(width) colname.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED) colname.set_resizable(True) colname.set_attributes(pb, pixbuf=1) colname.set_attributes(text, text=2) colname.set_expand(True) tree.append_column(self.colname) text = gtk.CellRendererText() text.set_property('xalign', 1.0) # TRANSLATORS: File size column in the file browser self.colsize = colsize = gtk.TreeViewColumn(_('Size')) colsize.set_resizable(True) colsize.pack_start(text, False) colsize.set_attributes(text, text=3) colsize.set_expand(False) tree.append_column(colsize) def _setup_widgets(self): """ Sets up the widgets for the files panel """ self.directory = self.tree.render_icon( gtk.STOCK_DIRECTORY, gtk.ICON_SIZE_SMALL_TOOLBAR) self.track = icons.MANAGER.pixbuf_from_icon_name( 'audio-x-generic', gtk.ICON_SIZE_SMALL_TOOLBAR) self.back = self.builder.get_object('files_back_button') self.back.connect('clicked', self.go_back) self.forward = self.builder.get_object('files_forward_button') self.forward.connect('clicked', self.go_forward) self.up = self.builder.get_object('files_up_button') self.up.connect('clicked', self.go_up) self.builder.get_object('files_refresh_button').connect('clicked', self.refresh) self.builder.get_object('files_home_button').connect('clicked', self.go_home) # Set up the location bar self.location_bar = self.builder.get_object('files_entry') self.location_bar.connect('changed', self.on_location_bar_changed) event.add_callback(self.fill_libraries_location, 'libraries_modified', self.collection) self.fill_libraries_location() self.entry = self.location_bar.child self.entry.connect('activate', self.entry_activate) # Set up the search entry self.filter = guiutil.SearchEntry(self.builder.get_object('files_search_entry')) self.filter.connect('activate', lambda *e: self.load_directory(self.current, history=False, keyword=unicode(self.filter.get_text(), 'utf-8'))) def fill_libraries_location(self, *e): model = self.location_bar.get_model() model.clear() libraries = self.collection._serial_libraries if len(libraries) > 0: for library in libraries: model.append([gio.File(library['location']).get_parse_name()]) self.location_bar.set_model(model) def on_location_bar_changed(self, widget, *args): # Find out which one is selected, if any. iter = self.location_bar.get_active_iter() if not iter: return model = self.location_bar.get_model() location = model.get_value(iter, 0) if location != '': self.load_directory(gio.File(location)) def on_key_released(self, widget, event): """ Called when a key is released in the tree """ if event.keyval == gtk.keysyms.Menu: gtk.Menu.popup(self.menu, None, None, None, 0, event.time) return True if event.keyval == gtk.keysyms.Left and gtk.gdk.MOD1_MASK & event.state: self.go_back(self.tree) return True if event.keyval == gtk.keysyms.Right and gtk.gdk.MOD1_MASK & event.state: self.go_forward(self.tree) return True if event.keyval == gtk.keysyms.Up and gtk.gdk.MOD1_MASK & event.state: self.go_up(self.tree) return True if event.keyval == gtk.keysyms.BackSpace: self.go_up(self.tree) return True if event.keyval == gtk.keysyms.F5: self.refresh(self.tree) return True return False def button_release(self, button, event): """ Called when the user clicks on the playlist """ if event.button == 3: selection = self.tree.get_selection() (x, y) = map(int, event.get_coords()) path = self.tree.get_path_at_pos(x, y) self.menu.popup(event) if not path: return False model, paths = selection.get_selected_rows() if path[0] in paths: if event.state & (gtk.gdk.SHIFT_MASK|gtk.gdk.CONTROL_MASK): return False return True else: return False return False def row_activated(self, *i): """ Called when someone double clicks a row """ selection = self.tree.get_selection() model, paths = selection.get_selected_rows() for path in paths: f = model[path][0] ftype = f.query_info('standard::type').get_file_type() if ftype == gio.FILE_TYPE_DIRECTORY: self.load_directory(f) else: self.emit('append-items', self.tree.get_selected_tracks(), True) def refresh(self, widget): """ Refreshes the current view """ cursor = self.tree.get_cursor() self.load_directory(self.current, False, cursor=cursor) def entry_activate(self, widget, event=None): """ Called when the user presses enter in the entry box """ path = self.entry.get_text() if path.startswith('~'): path = os.path.expanduser(path) f = gio.file_parse_name(path) try: ftype = f.query_info('standard::type').get_file_type() except glib.GError, e: logger.error(e) self.entry.set_text(self.current.get_parse_name()) return if ftype != gio.FILE_TYPE_DIRECTORY: f = f.get_parent() self.load_directory(f) def focus(self): self.tree.grab_focus() def go_forward(self, widget): """ Goes to the next entry in history """ if self.i < len(self.history) - 1: self.i += 1 self.load_directory(self.history[self.i], False) if self.i >= len(self.history) - 1: self.forward.set_sensitive(False) if len(self.history): self.back.set_sensitive(True) def go_back(self, widget): """ Goes to the previous entry in history """ if self.i > 0: self.i -= 1 self.load_directory(self.history[self.i], False) if self.i == 0: self.back.set_sensitive(False) if len(self.history): self.forward.set_sensitive(True) def go_up(self, widget): """ Moves up one directory """ parent = self.current.get_parent() if parent: self.load_directory(parent) def go_home(self, widget): """ Goes to the user's home directory """ self.load_directory(gio.File(xdg.homedir)) def set_column_width(self, col, stuff=None): """ Called when the user resizes a column """ name = {self.colname: 'filename', self.colsize: 'size'}[col] name = "gui/files_%s_col_width" % name settings.set_option(name, col.get_width()) @common.threaded def load_directory(self, directory, history=True, keyword=None, cursor=None): """ Load a directory into the files view. :param history: whether to record in history :param keyword: filter string :param cursor: path or (path, column) to select after loading. Useful while refreshing a directory. """ self.current = directory try: infos = directory.enumerate_children('standard::is-hidden,' 'standard::name,standard::display-name,standard::type') except gio.Error, e: logger.error(e) if directory.get_path() != xdg.homedir: # Avoid infinite recursion. return self.load_directory( gio.File(xdg.homedir), history, keyword, cursor) if self.current != directory: # Modified from another thread. return settings.set_option('gui/files_panel_dir', directory.get_uri()) subdirs = [] subfiles = [] for info in infos: if info.get_is_hidden(): # Ignore hidden files. They can still be accessed manually from # the location bar. continue f = directory.get_child(info.get_name()) basename = f.get_basename() low_basename = basename.lower() if keyword and keyword.lower() not in low_basename: continue def sortkey(): name = info.get_display_name() sortname = locale.strxfrm(name) return sortname, name, f ftype = info.get_file_type() if ftype == gio.FILE_TYPE_DIRECTORY: subdirs.append(sortkey()) elif any(low_basename.endswith('.' + ext) for ext in metadata.formats): subfiles.append(sortkey()) subdirs.sort() subfiles.sort() def idle(): if self.current != directory: # Modified from another thread. return model = self.model view = self.tree model.clear() for sortname, name, f in subdirs: model.append((f, self.directory, name, '')) for sortname, name, f in subfiles: size = f.query_info('standard::size').get_size() // 1024 # locale.format_string does not support unicode objects # correctly, so we call it with an str and convert the # locale-dependent output to unicode. size = locale.format_string('%d', size, True) size = _('%s KB') % unicode(size, locale.getpreferredencoding()) model.append((f, self.track, name, size)) if cursor: view.set_cursor(cursor) else: view.set_cursor(0) if view.flags() & gtk.REALIZED: view.scroll_to_point(0, 0) self.entry.set_text(directory.get_parse_name()) if history: self.back.set_sensitive(True) self.history = self.history[:self.i + 1] self.history.append(self.current) self.i = len(self.history) - 1 self.forward.set_sensitive(False) self.up.set_sensitive(bool(directory.get_parent())) glib.idle_add(idle) def drag_data_received(self, *e): """ stub """ pass def drag_data_delete(self, *e): """ stub """ pass def drag_get_data(self, treeview, context, selection, target_id, etime): """ Called when a drag source wants data for this drag operation """ tracks = self.tree.get_selected_tracks() if not tracks: return for track in tracks: DragTreeView.dragged_data[track.get_loc_for_io()] = track uris = trax.util.get_uris_from_tracks(tracks) selection.set_uris(uris) class FilesDragTreeView(DragTreeView): """ Custom DragTreeView to retrieve data from files """ def get_selection_count(self): ''' Returns the number of items currently selected in the playlist. Prefer this to len(get_selected_tracks()) et al if you will discard the actual track list ''' return self.get_selection().count_selected_rows() def get_selected_tracks(self): """ Returns the currently selected tracks """ selection = self.get_selection() model, paths = selection.get_selected_rows() tracks = [] for path in paths: f = model[path][0] self.append_recursive(tracks, f) return tracks or None def append_recursive(self, songs, f): """ Appends recursively """ ftype = f.query_info('standard::type').get_file_type() if ftype == gio.FILE_TYPE_DIRECTORY: file_infos = f.enumerate_children('standard::name') files = (f.get_child(fi.get_name()) for fi in file_infos) for subf in files: self.append_recursive(songs, subf) else: tr = self.get_track(f) if tr: songs.append(tr) def get_track(self, f): """ Returns a single track from a gio.File """ uri = f.get_uri() if not trax.is_valid_track(uri): return None tr = trax.Track(uri) return tr dist/copy/xlgui/panel/PaxHeaders.26361/collection.py0000644000175000017500000000012412233027260020755 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.513046945 exaile-3.3.2/xlgui/panel/collection.py0000644000000000000000000007350512233027260017727 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import glib import gobject import gtk import itertools import logging from xl.nls import gettext as _ from xl import ( common, event, formatter, settings, trax, xdg, providers ) import xlgui from xlgui import ( guiutil, icons, panel ) from xlgui.widgets.common import DragTreeView from xlgui.widgets import ( info, menu, menuitems ) logger = logging.getLogger(__name__) # TODO: come up with a more customizable way to handle this SEARCH_TAGS = ("artist", "albumartist", "album", "title") def __create_collection_panel_context_menu(): items = [] def sorted_get_tracks_func(panel, context): tracks = context['selected-tracks'] # TODO: base sort order on panel sort order tracks = trax.sort_tracks(common.BASE_SORT_TAGS, tracks) return tracks items.append(menuitems.AppendMenuItem('append', after=[])) items.append(menuitems.ReplaceCurrentMenuItem('replace', after=[items[-1].name])) items.append(menuitems.EnqueueMenuItem('enqueue', after=[items[-1].name], get_tracks_func=sorted_get_tracks_func)) items.append(menuitems.RatingMenuItem('rating', after=[items[-1].name])) items.append(menu.simple_separator('sep1', after=[items[-1].name])) items.append(menuitems.OpenDirectoryMenuItem('open-drectory', after=[items[-1].name])) def collection_delete_tracks_func(panel, context, tracks): panel.collection.delete_tracks(tracks) items.append(menuitems.TrashMenuItem('trash-tracks', after=[items[-1].name], delete_tracks_func=collection_delete_tracks_func)) items.append(menu.simple_separator('sep2', after=[items[-1].name])) items.append(menuitems.PropertiesMenuItem('properties', after=[items[-1].name], get_tracks_func=sorted_get_tracks_func)) for item in items: providers.register('collection-panel-context-menu', item) __create_collection_panel_context_menu() class CollectionContextMenu(menu.ProviderMenu): def __init__(self, panel): menu.ProviderMenu.__init__(self, 'collection-panel-context-menu', panel) def get_context(self): context = common.LazyDict(self._parent) context['selection-count'] = lambda name, parent: \ parent.tree.get_selection_count() context['selected-tracks'] = lambda name, parent: \ parent.tree.get_selected_tracks() return context def first_meaningful_char(s): for c in unicode(s): if c.isdigit(): return '0' elif c.isalpha(): return c else: return '_' class Order(object): """ An Order represents a structure for arranging Tracks into the Collection tree. It is based on a list of levels, which each take the form (("sort1", "sort2"), "$displaytag - $displaytag", ("search1", "search2")) wherin the first entry is a tuple of tags to use for sorting, the second a format string for xl.formatter, and the third a tuple of tags to use for searching. When passed in the paramters, a level can also be a single string instead of a tuple, and it will be treated equivalently to (("foo",), "$foo", ("foo",)) for some string "foo". """ def __init__(self, name, levels, use_compilations=True): self.__name = name self.__levels = map(self.__parse_level, levels) self.__formatters = [formatter.TrackFormatter(l[1]) for l in self.__levels] self.__use_compilations = use_compilations @staticmethod def __parse_level(val): if type(val) in (str, unicode): val = ((val,), "$%s"%val, (val,)) return tuple(val) @property def name(self): return self.__name @property def use_compilations(self): return self.__use_compilations def get_levels(self): return self.__levels[:] def __len__(self): return len(self.__levels) def __eq__(self, other): self.__levels == other.get_levels() def all_sort_tags(self): return list(itertools.chain(*[l[0] for l in self.__levels])) def get_sort_tags(self, level): return list(self.__levels[level][0]) def all_search_tags(self): return list(itertools.chain(*[l[2] for l in self.__levels])) def get_search_tags(self, level): return list(set(self.__levels[level][2])) def format_track(self, level, track): return self.__formatters[level].format(track) DEFAULT_ORDERS = [ (_("Artist"), ("artist", "album", (("discnumber", "tracknumber", "title"), "$title", ("title",)))), (_("Album"), ("album", (("discnumber", "tracknumber", "title"), "$title", ("title",)))), (_("Genre - Artist"), ('genre', 'artist', 'album', (("discnumber", "tracknumber", "title"), "$title", ("title",)))), (_("Genre - Album"), ('genre', 'album', 'artist', (("discnumber", "tracknumber", "title"), "$title", ("title",)))), (_("Date - Artist"), ('date', 'artist', 'album', (("discnumber", "tracknumber", "title"), "$title", ("title",)))), (_("Date - Album"), ('date', 'album', 'artist', (("discnumber", "tracknumber", "title"), "$title", ("title",)))), (_("Artist - (Date - Album)"), ('artist', (('date', 'album'), "$date - $album", ('date', 'album')), (("discnumber", "tracknumber", "title"), "$title", ("title",)))), ] class CollectionPanel(panel.Panel): """ The collection panel """ __gsignals__ = { 'append-items': (gobject.SIGNAL_RUN_LAST, None, (object, bool)), 'replace-items': (gobject.SIGNAL_RUN_LAST, None, (object,)), 'queue-items': (gobject.SIGNAL_RUN_LAST, None, (object,)), 'collection-tree-loaded': (gobject.SIGNAL_RUN_LAST, None, ()), } ui_info = ('collection.ui', 'CollectionPanelWindow') def __init__(self, parent, collection, name=None, _show_collection_empty_message=False): """ Initializes the collection panel @param parent: the parent dialog @param collection: the xl.collection.Collection instance @param name: an optional name for this panel """ panel.Panel.__init__(self, parent, name) self._show_collection_empty_message = _show_collection_empty_message self.collection = collection self.use_alphabet = settings.get_option('gui/use_alphabet', True) self.vbox = self.builder.get_object('CollectionPanel') self.message = self.builder.get_object('EmptyCollectionPanel') self.choice = self.builder.get_object('collection_combo_box') self.collection_empty_message = False self._search_num = 0 self._refresh_id = 0 self.start_count = 0 self.keyword = '' self.orders = map(lambda x: Order(x[0], x[1]), DEFAULT_ORDERS) self._setup_tree() self._setup_widgets() self._check_collection_empty() self._setup_images() self._connect_events() self.order = None self.tracks = [] self.sorted_tracks = [] event.add_callback(self._check_collection_empty, 'libraries_modified', collection) self.menu = CollectionContextMenu(self) self.load_tree() def _setup_widgets(self): """ Sets up the various widgets to be used in this panel """ self.choice = self.builder.get_object('collection_combo_box') self.choicemodel = self.builder.get_object('collection_combo_model') self.repopulate_choices() self.filter = guiutil.SearchEntry( self.builder.get_object('collection_search_entry')) def repopulate_choices(self): self.choice.set_model(None) self.choicemodel.clear() for order in self.orders: self.choicemodel.append([order.name]) self.choice.set_model(self.choicemodel) # FIXME: use something other than index here, since index # doesn't deal well with dynamic lists... active = settings.get_option('gui/collection_active_view', 0) self.choice.set_active(active) def _check_collection_empty(self, *e): if not self._show_collection_empty_message or \ (self.collection.libraries and self.collection_empty_message): self.collection_empty_message = False glib.idle_add(self.vbox.set_child_visible, True) glib.idle_add(self.message.set_child_visible, False) glib.idle_add(self.vbox.show_all) glib.idle_add(self.message.hide_all) elif not self.collection.libraries and not \ self.collection_empty_message: self.collection_empty_message = True glib.idle_add(self.vbox.set_child_visible, False) glib.idle_add(self.message.set_no_show_all, False) glib.idle_add(self.message.set_child_visible, True) glib.idle_add(self.vbox.hide_all) glib.idle_add(self.message.show_all) def _connect_events(self): """ Uses signal_autoconnect to connect the various events """ self.builder.connect_signals({ 'on_collection_combo_box_changed': lambda *e: self.load_tree(), 'on_refresh_button_press_event': self.on_refresh_button_press_event, 'on_refresh_button_key_press_event': self.on_refresh_button_key_press_event, 'on_collection_search_entry_activate': self.on_collection_search_entry_activate, 'on_add_music_button_clicked': self.on_add_music_button_clicked }) self.tree.connect('key-release-event', self.on_key_released) event.add_callback(self.refresh_tags_in_tree, 'track_tags_changed') event.add_callback(self.refresh_tracks_in_tree, 'tracks_added', self.collection) event.add_callback(self.refresh_tracks_in_tree, 'tracks_removed', self.collection) def on_refresh_button_press_event(self, button, event): """ Called on mouse activation of the refresh button """ if event.button == 3: menu = guiutil.Menu() menu.append(_('Rescan Collection'), xlgui.get_controller().on_rescan_collection, gtk.STOCK_REFRESH) menu.popup(None, None, None, event.button, event.time) return if event.state & gtk.gdk.SHIFT_MASK: xlgui.get_controller().on_rescan_collection(None) else: self.load_tree() def on_refresh_button_key_press_event(self, widget, event): """ Called on key presses on the refresh button """ if event.keyval != gtk.keysyms.Return: return False if event.state & gtk.gdk.SHIFT_MASK: xlgui.get_controller().on_rescan_collection(None) else: self.load_tree() def on_key_released(self, widget, event): """ Called when a key is released in the tree """ if event.keyval == gtk.keysyms.Menu: gtk.Menu.popup(self.menu, None, None, None, 0, event.time) return True if event.keyval == gtk.keysyms.Left: (mods,paths) = self.tree.get_selection().get_selected_rows() for path in paths: self.tree.collapse_row(path) return True if event.keyval == gtk.keysyms.Right: (mods,paths) = self.tree.get_selection().get_selected_rows() for path in paths: self.tree.expand_row(path, False) return True if event.keyval == gtk.keysyms.Return: self.append_to_playlist() return True return False def on_collection_search_entry_activate(self, entry): """ Searches tracks and reloads the tree """ self.keyword = unicode(entry.get_text(), 'utf-8') self.start_count += 1 self.load_tree() def on_add_music_button_clicked(self, button): xlgui.get_controller().collection_manager() def _setup_images(self): """ Sets up the various images that will be used in the tree """ self.artist_image = icons.MANAGER.pixbuf_from_icon_name( 'artist', gtk.ICON_SIZE_SMALL_TOOLBAR) self.date_image = icons.MANAGER.pixbuf_from_icon_name( 'office-calendar', gtk.ICON_SIZE_SMALL_TOOLBAR) self.album_image = icons.MANAGER.pixbuf_from_stock( gtk.STOCK_CDROM, gtk.ICON_SIZE_SMALL_TOOLBAR) self.title_image = icons.MANAGER.pixbuf_from_icon_name( 'audio-x-generic', gtk.ICON_SIZE_SMALL_TOOLBAR) self.genre_image = icons.MANAGER.pixbuf_from_icon_name( 'genre', gtk.ICON_SIZE_SMALL_TOOLBAR) def drag_data_received(self, *e): """ stub """ pass def drag_data_delete(self, *e): """ stub """ pass def drag_get_data(self, treeview, context, selection, target_id, etime): """ Called when a drag source wants data for this drag operation """ tracks = treeview.get_selected_tracks() for track in tracks: DragTreeView.dragged_data[track.get_loc_for_io()] = track uris = trax.util.get_uris_from_tracks(tracks) selection.set_uris(uris) def _setup_tree(self): """ Sets up the tree widget """ self.tree = CollectionDragTreeView(self) self.tree.set_headers_visible(False) container = self.builder.get_object('CollectionPanel') scroll = gtk.ScrolledWindow() scroll.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) scroll.add(self.tree) scroll.set_shadow_type(gtk.SHADOW_IN) container.pack_start(scroll, True, True) container.show_all() selection = self.tree.get_selection() selection.set_mode(gtk.SELECTION_MULTIPLE) pb = gtk.CellRendererPixbuf() cell = gtk.CellRendererText() col = gtk.TreeViewColumn('Text') col.pack_start(pb, False) col.pack_start(cell, True) col.set_attributes(pb, pixbuf=0) col.set_attributes(cell, text=1) self.tree.append_column(col) if settings.get_option('gui/ellipsize_text_in_panels', False): import pango cell.set_property('ellipsize-set', True) cell.set_property('ellipsize', pango.ELLIPSIZE_END) self.tree.set_row_separator_func( lambda m, i: m.get_value(i, 1) is None) self.model = gtk.TreeStore(gtk.gdk.Pixbuf, str, object) self.tree.connect("row-expanded", self.on_expanded) def _find_tracks(self, iter): """ finds tracks matching a given iter. """ self.load_subtree(iter) search = self.get_node_search_terms(iter) matcher = trax.TracksMatcher(search) srtrs = trax.search_tracks(self.tracks, [matcher]) return [ x.track for x in srtrs ] def append_to_playlist(self, item=None, event=None, replace=False): """ Adds items to the current playlist """ if replace: self.emit('replace-items', self.tree.get_selected_tracks()) else: self.emit('append-items', self.tree.get_selected_tracks(), True) def button_press(self, widget, event): """ Called when the user clicks on the tree """ selection = self.tree.get_selection() (x, y) = map(int, event.get_coords()) path = self.tree.get_path_at_pos(x, y) if event.type == gtk.gdk._2BUTTON_PRESS: replace = settings.get_option('playlist/replace_content', False) self.append_to_playlist(replace=replace) return False elif event.button == 2: self.append_to_playlist(replace=True) return False def button_release(self, widget, event): """ Called when the user releases the mouse button on the tree """ selection = self.tree.get_selection() (x, y) = map(int, event.get_coords()) path = self.tree.get_path_at_pos(x, y) if event.button == 3: self.menu.popup(event) if not path: return False (mods,paths) = selection.get_selected_rows() if (path[0] in paths): if event.state & (gtk.gdk.SHIFT_MASK|gtk.gdk.CONTROL_MASK): return False return True else: return False def on_expanded(self, tree, iter, path): """ Called when a user expands a tree item. Loads the various nodes that belong under this node. """ self.load_subtree(iter) def get_node_search_terms(self, node): """ Finds all the related search terms for a particular node @param node: the node you wish to create search terms """ if not node: return "" queries = [] while node: queries.append(self.model.get_value(node, 2)) node = self.model.iter_parent(node) return " ".join(queries) def refresh_tags_in_tree(self, type, track, tag): if settings.get_option('gui/sync_on_tag_change', True) and \ tag in self.order.all_sort_tags() and \ self.collection.loc_is_member(track.get_loc_for_io()): self._refresh_tags_in_tree() def refresh_tracks_in_tree(self, type, obj, loc): glib.idle_add(self._refresh_tags_in_tree) @common.glib_wait(500) def _refresh_tags_in_tree(self): """ Callback for when tags have changed and the tree needs reloading. """ # Trying to reload while we're rescanning is really inefficient, # so we delay it until we're done scanning. if self.collection._scanning: return True self.resort_tracks() self.load_tree() return False def resort_tracks(self): # import time # print "sorting...", time.clock() self.sorted_tracks = trax.sort_tracks(self.order.get_sort_tags(0), self.collection.get_tracks()) # print "sorted.", time.clock() def load_tree(self): """ Loads the gtk.TreeView for this collection panel. Loads tracks based on the current keyword, or all the tracks in the collection associated with this panel """ logger.debug("Reloading collection tree") self.current_start_count = self.start_count self.tree.set_model(None) self.model.clear() self.root = None oldorder = self.order self.order = self.orders[self.choice.get_active()] if not oldorder or oldorder != self.order: self.resort_tracks() # save the active view setting settings.set_option( 'gui/collection_active_view', self.choice.get_active()) keyword = self.keyword.strip() tags = list(SEARCH_TAGS) tags += self.order.all_search_tags() tags = list(set(tags)) # uniquify list to speed up search self.tracks = list( trax.search_tracks_from_string(self.sorted_tracks, keyword, case_sensitive=False, keyword_tags=tags) ) self.load_subtree(None) self.tree.set_model(self.model) self.emit('collection-tree-loaded') def _expand_node_by_name(self, search_num, parent, name, rest=None): """ Recursive function to expand all nodes in a hierarchical list of names. @param search_num: the current search number @param parent: the parent node @param name: the name of the node to expand @param rest: the list of the nodes to expand after this one """ iter = self.model.iter_children(parent) while iter: if search_num != self._search_num: return value = self.model.get_value(iter, 1) if not value: value = self.model.get_value(iter, 2) if value: value = unicode(value, 'utf-8') if value == name: self.tree.expand_row(self.model.get_path(iter), False) parent = iter break iter = self.model.iter_next(iter) if rest: item = rest.pop(0) glib.idle_add(self._expand_node_by_name, search_num, parent, item, rest) def load_subtree(self, parent): """ Loads all the sub nodes for a specified node @param node: the node """ previously_loaded = False # was the subtree already loaded iter_sep = None if parent == None: depth = 0 else: if self.model.iter_n_children(parent) != 1 or \ self.model.get_value( self.model.iter_children(parent), 1) != None: previously_loaded = True iter_sep = self.model.iter_children(parent) depth = self.model.iter_depth(parent) + 1 if previously_loaded: return search = self.get_node_search_terms(parent) try: tags = self.order.get_sort_tags(depth) matchers = [trax.TracksMatcher(search)] srtrs = trax.search_tracks(self.tracks, matchers) # sort only if we are not on top level, because tracks are # already sorted by fist order if depth > 0: srtrs = trax.sort_result_tracks(tags, srtrs) except IndexError: return # at the bottom of the tree try: image = getattr(self, "%s_image"%tags[-1]) except: image = None bottom = False if depth == len(self.order)-1: bottom = True display_counts = settings.get_option('gui/display_track_counts', True) draw_seps = settings.get_option('gui/draw_separators', True) last_char = '' last_val = '' last_dval = '' last_matchq = '' count = 0 first = True path = None expanded = False to_expand = [] for srtr in srtrs: stagvals = [unicode(srtr.track.get_tag_sort(x)) for x in tags] stagval = " ".join(stagvals) if (last_val != stagval or bottom): tagval = self.order.format_track(depth, srtr.track) match_query = " ".join([ srtr.track.get_tag_search(t, format=True) for t in tags]) if bottom: match_query += " " + \ srtr.track.get_tag_search("__loc", format=True) # Different *sort tags can cause stagval to not match # but the below code will produce identical entries in # the displayed tree. This condition checks to ensure # that new entries are added if and only if they will # display different results, avoiding that problem. if match_query != last_matchq or tagval != last_dval or bottom: if display_counts and path and not bottom: iter = self.model.get_iter(path) val = self.model.get_value(iter, 1) val = "%s (%s)"%(val, count) self.model.set_value(iter, 1, val) count = 0 last_val = stagval last_dval = tagval if depth == 0 and draw_seps: val = srtr.track.get_tag_sort(tags[0]) char = first_meaningful_char(val) if first: last_char = char else: if char != last_char and last_char != '': self.model.append(parent, [None, None, None]) last_char = char first = False last_matchq = match_query iter = self.model.append(parent, [image, tagval, match_query]) path = self.model.get_path(iter) expanded = False if not bottom: self.model.append(iter, [None, None, None]) count += 1 if not expanded: alltags = [] for i in range(depth+1, len(self.order)): alltags.extend(self.order.get_sort_tags(i)) for t in alltags: if t in srtr.on_tags: # keep original path intact for following block newpath = path if depth > 0: # for some reason, nested iters are always # off by one in the terminal entry. newpath = newpath[:-1] + (newpath[-1]-1,) to_expand.append(newpath) expanded = True if display_counts and path and not bottom: iter = self.model.get_iter(path) val = self.model.get_value(iter, 1) val = "%s (%s)"%(val, count) self.model.set_value(iter, 1, val) count = 0 if settings.get_option("gui/expand_enabled", True) and \ len(to_expand) < \ settings.get_option("gui/expand_maximum_results", 100) and \ len(self.keyword.strip()) >= \ settings.get_option("gui/expand_minimum_term_length", 2): for row in to_expand: glib.idle_add(self.tree.expand_row, row, False) if iter_sep is not None: self.model.remove(iter_sep) class CollectionDragTreeView(DragTreeView): """ Custom DragTreeView to retrieve data from collection tracks """ def __init__(self, container, receive=False, source=True): """ :param container: The container to place the TreeView into :param receive: True if the TreeView should receive drag events :param source: True if the TreeView should send drag events """ DragTreeView.__init__(self, container, receive, source) self.set_has_tooltip(True) self.connect('query-tooltip', self.on_query_tooltip) # TODO: Make faster #self.tooltip = CollectionToolTip(self) def get_selection_count(self): ''' Returns the number of items currently selected in the playlist. Prefer this to len(get_selected_tracks()) et al if you will discard the actual track list ''' return self.get_selection().count_selected_rows() def get_selected_tracks(self): """ Returns the currently selected tracks """ model, paths = self.get_selection().get_selected_rows() tracks = [] for path in paths: iter = model.get_iter(path) newset = self.container._find_tracks(iter) tracks.append(newset) if not tracks: return None tracks = list(set(reduce(lambda x, y: list(x) + list(y), tracks))) return tracks def on_query_tooltip(self, widget, x, y, keyboard_mode, tooltip): """ Sets up a basic tooltip Required to have "&" in tooltips working """ if not widget.get_tooltip_context(x, y, keyboard_mode): return False path = widget.get_path_at_pos(x, y)[0] model = widget.get_model() tooltip.set_text(model[path][1]) # 1: title widget.set_tooltip_row(tooltip, path) return True class CollectionToolTip(info.TrackListToolTip): """ Custom collection specific tooltip """ def __init__(self, parent): """ :param parent: the parent widget the tooltip should be attached to """ info.TrackListToolTip.__init__(self, parent, display_tracklist=True) def on_query_tooltip(self, tree, x, y, keyboard_mode, tooltip): """ Determines if the tooltip should be shown and feeds the required data to it """ path = tree.get_path_at_pos(x, y) if path is None: return False path = path[0] model = tree.get_model() iter = model.get_iter(path) tracks = tree.container._find_tracks(iter) self.clear() self.set_tracklist(tracks) info.TrackListToolTip.on_query_tooltip( self, tree, x, y, keyboard_mode, tooltip) #tree.set_tooltip_row(tooltip, path) return True # vim: et sts=4 sw=4 dist/copy/xlgui/panel/PaxHeaders.26361/radio.py0000644000175000017500000000012412233027260017720 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.569046947 exaile-3.3.2/xlgui/panel/radio.py0000644000000000000000000005235012233027260016665 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import gio import glib import gobject import gtk import threading import xl.radio, xl.playlist from xl import ( event, common, settings, trax, xdg ) from xl.nls import gettext as _ import xlgui.panel.playlists as playlistpanel from xlgui import ( guiutil, icons, oldmenu as menu, panel, playlist as guiplaylist ) from xlgui.widgets.common import DragTreeView from xlgui.widgets import dialogs class RadioException(Exception): pass class ConnectionException(RadioException): pass class RadioPanel(panel.Panel, playlistpanel.BasePlaylistPanelMixin): """ The Radio Panel """ __gsignals__ = { 'playlist-selected': (gobject.SIGNAL_RUN_LAST, None, (object,)), 'append-items': (gobject.SIGNAL_RUN_LAST, None, (object, bool)), 'replace-items': (gobject.SIGNAL_RUN_LAST, None, (object,)), 'queue-items': (gobject.SIGNAL_RUN_LAST, None, (object,)), } __gsignals__.update(playlistpanel.BasePlaylistPanelMixin._gsignals_) ui_info = ('radio.ui', 'RadioPanelWindow') _radiopanel = None def __init__(self, parent, collection, radio_manager, station_manager): """ Initializes the radio panel """ panel.Panel.__init__(self, parent) playlistpanel.BasePlaylistPanelMixin.__init__(self) self.collection = collection self.manager = radio_manager self.playlist_manager = station_manager self.nodes = {} self.load_nodes = {} self.complete_reload = {} self.loaded_nodes = [] self._setup_tree() self._setup_widgets() self.playlist_image = icons.MANAGER.pixbuf_from_icon_name( 'music-library', gtk.ICON_SIZE_SMALL_TOOLBAR) # menus self.playlist_menu = menu.RadioPanelPlaylistMenu() self.track_menu = menu.PlaylistsPanelTrackMenu() self._connect_events() self.load_streams() RadioPanel._radiopanel = self def load_streams(self): """ Loads radio streams from plugins """ for name in self.playlist_manager.playlists: pl = self.playlist_manager.get_playlist(name) if pl is not None: self.playlist_nodes[pl] = self.model.append(self.custom, [self.playlist_image, pl.name, pl]) self._load_playlist_nodes(pl) self.tree.expand_row(self.model.get_path(self.custom), False) for name, value in self.manager.stations.iteritems(): self.add_driver(value) def _add_driver_cb(self, type, object, driver): glib.idle_add(self.add_driver, driver) def add_driver(self, driver): """ Adds a driver to the radio panel """ node = self.model.append(self.radio_root, [self.folder, str(driver), driver]) self.nodes[driver] = node self.load_nodes[driver] = self.model.append(node, [self.refresh_image, _('Loading streams...'), None]) self.tree.expand_row(self.model.get_path(self.radio_root), False) if settings.get_option('gui/radio/%s_station_expanded' % driver.name, False): self.tree.expand_row(self.model.get_path(node), False) def _remove_driver_cb(self, type, object, driver): glib.idle_add(self.remove_driver, driver) def remove_driver(self, driver): """ Removes a driver from the radio panel """ if driver in self.nodes: self.model.remove(self.nodes[driver]) del self.nodes[driver] def _setup_widgets(self): """ Sets up the various widgets required for this panel """ self.status = self.builder.get_object('status_label') @guiutil.idle_add() def _set_status(self, message, timeout=0): self.status.set_text(message) if timeout: glib.timeout_add_seconds(timeout, self._set_status, '', 0) def _connect_events(self): """ Connects events used in this panel """ self.track_menu.connect('remove-track', lambda *e: self.remove_selected_track()) menu = self.playlist_menu menu.connect('add-playlist', self._on_add_button_clicked) menu.connect('append-items', lambda *e: self.emit('append-items', self.tree.get_selected_tracks(), False)) menu.connect('replace-items', lambda *e: self.emit('replace-items', self.tree.get_selected_tracks())) menu.connect('queue-items', lambda *e: self.emit('queue-items', self.tree.get_selected_tracks())) menu.connect('open-playlist', lambda *e: self.open_selected_playlist()) menu.connect('export-playlist', lambda widget: self.export_selected_playlist()) menu.connect('rename-playlist', lambda widget, name: self.rename_selected_playlist(name)) menu.connect('remove-playlist', lambda *e: self.remove_selected_playlist()) self.builder.connect_signals({ 'on_add_button_clicked': self._on_add_button_clicked, }) self.tree.connect('row-expanded', self.on_row_expand) self.tree.connect('row-collapsed', self.on_collapsed) self.tree.connect('row-activated', self.on_row_activated) self.tree.connect('key-release-event', self.on_key_released) event.add_callback(self._add_driver_cb, 'station_added', self.manager) event.add_callback(self._remove_driver_cb, 'station_removed', self.manager) def _on_add_button_clicked(self, *e): dialog = dialogs.MultiTextEntryDialog(self.parent, _("Add Radio Station")) dialog.add_field(_("Name:")) url_field = dialog.add_field(_("URL:")) clipboard = gtk.clipboard_get() text = clipboard.wait_for_text() if text is not None: location = gio.File(uri=text) if location.get_uri_scheme() is not None: url_field.set_text(text) result = dialog.run() dialog.hide() if result == gtk.RESPONSE_OK: (name, uri) = dialog.get_values() self._do_add_playlist(name, uri) @common.threaded def _do_add_playlist(self, name, uri): from xl import playlist, trax if playlist.is_valid_playlist(uri): pl = playlist.import_playlist(uri) pl.name = name else: pl = playlist.Playlist(name) tracks = trax.get_tracks_from_uri(uri) pl.extend(tracks) self.playlist_manager.save_playlist(pl) self._add_to_tree(pl) @guiutil.idle_add() def _add_to_tree(self, pl): self.playlist_nodes[pl] = self.model.append(self.custom, [self.playlist_image, pl.name, pl]) self._load_playlist_nodes(pl) def _setup_tree(self): """ Sets up the tree that displays the radio panel """ box = self.builder.get_object('RadioPanel') self.tree = playlistpanel.PlaylistDragTreeView(self, True, True) self.tree.set_headers_visible(False) self.targets = [('text/uri-list', 0, 0)] # columns text = gtk.CellRendererText() if settings.get_option('gui/ellipsize_text_in_panels', False): import pango text.set_property( 'ellipsize-set', True) text.set_property( 'ellipsize', pango.ELLIPSIZE_END) icon = gtk.CellRendererPixbuf() col = gtk.TreeViewColumn('radio') col.pack_start(icon, False) col.pack_start(text, True) col.set_attributes(icon, pixbuf=0) col.set_cell_data_func(text, self.cell_data_func) self.tree.append_column(col) self.model = gtk.TreeStore(gtk.gdk.Pixbuf, str, object) self.tree.set_model(self.model) self.track = icons.MANAGER.pixbuf_from_icon_name( 'audio-x-generic', gtk.ICON_SIZE_SMALL_TOOLBAR) self.folder = self.tree.render_icon( gtk.STOCK_DIRECTORY, gtk.ICON_SIZE_SMALL_TOOLBAR) self.refresh_image = icons.MANAGER.pixbuf_from_stock( gtk.STOCK_REFRESH) self.custom = self.model.append(None, [self.folder, _("Saved Stations"), None]) self.radio_root = self.model.append(None, [self.folder, _("Radio " "Streams"), None]) scroll = gtk.ScrolledWindow() scroll.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) scroll.add(self.tree) scroll.set_shadow_type(gtk.SHADOW_IN) box.pack_start(scroll, True, True) def on_row_activated(self, tree, path, column): item = self.model[path][2] if isinstance(item, xl.radio.RadioItem): self.emit('playlist-selected', item.get_playlist()) elif isinstance(item, playlistpanel.TrackWrapper): self.emit('playlist-selected', item.playlist) elif isinstance(item, xl.playlist.Playlist): self.open_station(item) def open_station(self, playlist): """ Opens a saved station """ self.emit('playlist-selected', playlist) def get_menu(self): """ Returns the menu that all radio stations use """ menu = guiutil.Menu() menu.append(_("Refresh"), self.on_reload, gtk.STOCK_REFRESH) return menu def on_key_released(self, widget, event): """ Called when a key is released in the tree """ if event.keyval == gtk.keysyms.Menu: (mods,paths) = self.tree.get_selection().get_selected_rows() if paths and paths[0]: iter = self.model.get_iter(paths[0]) item = self.model.get_value(iter, 2) if isinstance(item, (xl.radio.RadioStation, xl.radio.RadioList, xl.radio.RadioItem)): if isinstance(item, xl.radio.RadioStation): station = item else: station = item.station if station and hasattr(station, 'get_menu'): menu = station.get_menu(self) gtk.Menu.popup(menu, None, None, None, 0, event.time) elif isinstance(item, xl.playlist.Playlist): gtk.Menu.popup(self.playlist_menu, None, None, None, 0, event.time) elif isinstance(item, playlistpanel.TrackWrapper): gtk.Menu.popup(self.track_menu, None, None, None, 0, event.time) return True if event.keyval == gtk.keysyms.Left: (mods,paths) = self.tree.get_selection().get_selected_rows() if paths and paths[0]: self.tree.collapse_row(paths[0]) return True if event.keyval == gtk.keysyms.Right: (mods,paths) = self.tree.get_selection().get_selected_rows() if paths and paths[0]: self.tree.expand_row(paths[0], False) return True return False def button_release(self, widget, event): """ Called when someone clicks on the tree """ if event.button == 3: (x, y) = map(int, event.get_coords()) path = self.tree.get_path_at_pos(x, y) if path: iter = self.model.get_iter(path[0]) item = self.model.get_value(iter, 2) if isinstance(item, (xl.radio.RadioStation, xl.radio.RadioList, xl.radio.RadioItem)): if isinstance(item, xl.radio.RadioStation): station = item else: station = item.station if station and hasattr(station, 'get_menu'): menu = station.get_menu(self) menu.popup(None, None, None, event.button, event.time) elif isinstance(item, xl.playlist.Playlist): self.playlist_menu.popup(event) elif isinstance(item, playlistpanel.TrackWrapper): self.track_menu.popup(event) def cell_data_func(self, column, cell, model, iter): """ Called when the tree needs a value for column 1 """ object = model.get_value(iter, 1) cell.set_property('text', str(object)) def drag_data_received(self, tv, context, x, y, selection, info, etime): """ Called when someone drags some thing onto the playlist panel """ #if the drag originated from radio view deny it #TODO this might change if we are allowed to change the order of radio if tv == context.get_source_widget(): context.drop_finish(False, etime) return locs = list(selection.get_uris()) path = self.tree.get_path_at_pos(x, y) if path: # Add whatever we received to the playlist at path iter = self.model.get_iter(path[0]) current_playlist = self.model.get_value(iter, 2) # if it's a track that we've dragged to, get the parent if isinstance(current_playlist, playlistpanel.TrackWrapper): current_playlist = current_playlist.playlist elif not isinstance(current_playlist, xl.playlist.Playlist): self._add_new_station(locs) return (tracks, playlists) = self.tree.get_drag_data(locs) current_playlist.extend(tracks) # Do we save in the case when a user drags a file onto a playlist in the playlist panel? # note that the playlist does not have to be open for this to happen self.playlist_manager.save_playlist(current_playlist, overwrite=True) self._load_playlist_nodes(current_playlist) else: self._add_new_station(locs) def _add_new_station(self, locs): """ Add a new station """ # If the user dragged files prompt for a new playlist name # else if they dragged a playlist add the playlist #We don't want the tracks in the playlists to be added to the # master tracks list so we pass in False (tracks, playlists) = self.tree.get_drag_data(locs, False) #First see if they dragged any playlist files for new_playlist in playlists: self.model.append(self.custom, [self.playlist_image, new_playlist.name, new_playlist]) # We are adding a completely new playlist with tracks so we save it self.playlist_manager.save_playlist(new_playlist, overwrite=True) #After processing playlist proceed to ask the user for the #name of the new playlist to add and add the tracks to it if len(tracks) > 0: dialog = dialogs.TextEntryDialog( _("Enter the name you want for your new playlist"), _("New Playlist")) result = dialog.run() if result == gtk.RESPONSE_OK: name = dialog.get_value() if not name == "": #Create the playlist from all of the tracks new_playlist = xl.playlist.Playlist(name) new_playlist.extend(tracks) self.playlist_nodes[new_playlist] = self.model.append(self.custom, [self.playlist_image, new_playlist.name, new_playlist]) self.tree.expand_row(self.model.get_path(self.custom), False) # We are adding a completely new playlist with tracks so we save it self.playlist_manager.save_playlist(new_playlist) self._load_playlist_nodes(new_playlist) def drag_get_data(self, tv, context, selection_data, info, time): """ Called when the user drags a playlist from the radio panel """ tracks = self.tree.get_selected_tracks() if not tracks: return for track in tracks: DragTreeView.dragged_data[track.get_loc_for_io()] = track uris = trax.util.get_uris_from_tracks(tracks) selection_data.set_uris(uris) def drag_data_delete(self, *e): """ stub """ pass def on_reload(self, *e): """ Called when the refresh button is clicked """ selection = self.tree.get_selection() info = selection.get_selected_rows() if not info: return (model, paths) = info iter = self.model.get_iter(paths[0]) object = self.model.get_value(iter, 2) try: self.loaded_nodes.remove(self.nodes[object]) except ValueError: pass if isinstance(object, (xl.radio.RadioList, xl.radio.RadioStation)): self._clear_node(iter) self.load_nodes[object] = self.model.append(iter, [self.refresh_image, _("Loading streams..."), None]) self.complete_reload[object] = True self.tree.expand_row(self.model.get_path(iter), False) @staticmethod def set_station_expanded_value(station, value): settings.set_option( 'gui/radio/%s_station_expanded' % station, True, ) def on_row_expand(self, tree, iter, path): """ Called when a user expands a row in the tree """ driver = self.model.get_value(iter, 2) if not isinstance(driver, xl.playlist.Playlist): self.model.set_value(iter, 0, self.folder) if isinstance(driver, xl.radio.RadioStation) or \ isinstance(driver, xl.radio.RadioList): if not self.nodes[driver] in self.loaded_nodes: self._load_station(iter, driver) if isinstance(driver, xl.radio.RadioStation): self.set_station_expanded_value(driver.name, True) def on_collapsed(self, tree, iter, path): """ Called when someone collapses a tree item """ driver = self.model.get_value(iter, 2) if not isinstance(driver, xl.playlist.Playlist): self.model.set_value(iter, 0, self.folder) if isinstance(driver, xl.radio.RadioStation): self.set_station_expanded_value(driver.name, False) @common.threaded def _load_station(self, iter, driver): """ Loads a radio station """ lists = None no_cache = False if driver in self.complete_reload: no_cache = True del self.complete_reload[driver] if isinstance(driver, xl.radio.RadioStation): try: lists = driver.get_lists(no_cache=no_cache) except RadioException, e: self._set_status(str(e), 2) else: try: lists = driver.get_items(no_cache=no_cache) except RadioException, e: self._set_status(str(e), 2) if not lists: return glib.idle_add(self._done_loading, iter, driver, lists) def _done_loading(self, iter, object, items): """ Called when an item is done loading. Adds items to the tree """ self.loaded_nodes.append(self.nodes[object]) for item in items: if isinstance(item, xl.radio.RadioList): node = self.model.append(self.nodes[object], [self.folder, item.name, item]) self.nodes[item] = node self.load_nodes[item] = self.model.append(node, [self.refresh_image, _("Loading streams..."), None]) else: self.model.append(self.nodes[object], [self.track, item.name, item]) try: self.model.remove(self.load_nodes[object]) del self.load_nodes[object] except KeyError: pass def _clear_node(self, node): """ Clears a node of all children """ remove = [] iter = self.model.iter_children(node) while iter: remove.append(iter) iter = self.model.iter_next(iter) for row in remove: self.model.remove(row) def set_status(message, timeout=0): RadioPanel._radiopanel._set_status(message, timeout) dist/copy/PaxHeaders.26361/data0000644000175000017500000000013212233027261014655 xustar000000000000000030 mtime=1382821553.289046938 30 atime=1382821552.785046922 30 ctime=1382821553.289046938 exaile-3.3.2/data/0000755000000000000000000000000012233027261013673 5ustar00rootroot00000000000000dist/copy/data/PaxHeaders.26361/exaile.desktop0000644000175000017500000000012412233027260017574 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.189046935 exaile-3.3.2/data/exaile.desktop0000644000000000000000000000375312233027260016544 0ustar00rootroot00000000000000[Desktop Entry] Version=1.0 Type=Application Name=Exaile GenericName=Music Player GenericName[de]=Musik-Wiedergabe GenericName[fi]=Musiikkisoitin GenericName[en_GB]=Music Player GenericName[fr]=Lecteur de musique GenericName[hu]=Zene lejátszó GenericName[it_IT]=Riproduttore Audio GenericName[nn]=Musikkavspelar GenericName[pl]=Odtwarzacz muzyki GenericName[pt_BR]=Reprodutor de Música GenericName[ro]=Program de ascultat muzică GenericName[sv]=Musikspelare X-GNOME-FullName=Exaile Music Player X-GNOME-FullName[de]=Exaile Musik-Wiedergabe X-GNOME-FullName[fi]=Musiikkisoitin Exaile X-GNOME-FullName[fr]=Lecteur de musique Exaile X-GNOME-FullName[nn]=Exaile musikkavspelar X-GNOME-FullName[pl]=Odtwarzacz muzyki Exaile X-GNOME-FullName[pt_BR]=Reprodutor de Música Exaile X-GNOME-FullName[sv]=Musikspelaren Exaile Comment=Listen to, explore, or manage your audio collection Comment[de]=Audiodateien und -streams wiedergeben, verwalten und Tags bearbeiten Comment[fi]=Kuuntele, selaa, tai hallitse musiikkikokoelmaasi Comment[fr]=Écouter, parcourir et gérer votre musique Comment[hu]=Zene-, és stream lejátszás, és tag módosítás Comment[it_IT]=Ascolta, sfoglia o modifica la tua raccolta musicale Comment[nn]=Høyr på, utforsk og handsam musikksamlinga di Comment[pl]=Słuchanie, przeglądanie i modyfikowanie twojej kolekcji muzyczynej Comment[sv]=Spela, utforska och hantera din musiksamling Comment[pt_BR]=Escute, gerencie ou edite sua coleção de músicas Comment[ro]=Ascultați, răsfoiți sau editați-vă colecția de muzică Icon=exaile Exec=exaile %F Terminal=false MimeType=audio/musepack;application/musepack;application/x-ape;audio/ape;audio/x-ape;audio/x-musepack;application/x-musepack;audio/x-mp3;application/x-id3;audio/mpeg;audio/x-mpeg;audio/x-mpeg-3;audio/mpeg3;audio/mp3;audio/x-m4a;audio/mpc;audio/x-mpc;audio/mp;audio/x-mp;application/ogg;application/x-ogg;audio/vorbis;audio/x-vorbis;audio/ogg;audio/x-ogg;audio/x-flac;application/x-flac;audio/flac; Categories=AudioVideo;Audio;Player;GTK; dist/copy/data/PaxHeaders.26361/images0000644000175000017500000000013212233027261016122 xustar000000000000000030 mtime=1382821553.621046948 30 atime=1382821552.785046922 30 ctime=1382821553.621046948 exaile-3.3.2/data/images/0000755000000000000000000000000012233027261015140 5ustar00rootroot00000000000000dist/copy/data/images/PaxHeaders.26361/emptystar.png0000644000175000017500000000012412233027260020735 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.189046935 exaile-3.3.2/data/images/emptystar.png0000644000000000000000000000064212233027260017677 0ustar00rootroot00000000000000PNG  IHDRasRGBbKGD pHYs  tIME R"IDAT8ˍO+Q띡%)@oARv>򑘯`C'e1 RbDŒ3z{wfNݺ>TX4ERr KHpf7PC`A,hcH" V}FQ%Y|GW <<.?8[Z!Ҋ27O`)1u"_3k^ AS%kb/M:\8V"b8sg Z9gb;J;s`(嚪Og.^lQ(c=xX>Cߊ IENDB`dist/copy/data/images/PaxHeaders.26361/48x480000644000175000017500000000013212233027261016721 xustar000000000000000030 mtime=1382821553.421046942 30 atime=1382821552.785046922 30 ctime=1382821553.421046942 exaile-3.3.2/data/images/48x48/0000755000000000000000000000000012233027261015737 5ustar00rootroot00000000000000dist/copy/data/images/48x48/PaxHeaders.26361/extension.png0000644000175000017500000000012412233027260021520 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.417046942 exaile-3.3.2/data/images/48x48/extension.png0000644000000000000000000000310412233027260020456 0ustar00rootroot00000000000000PNG  IHDR00WsBIT|d pHYsu85tEXtSoftwarewww.inkscape.org<IDAThݚ]lTEsۯmڴՕSS4ECE}D>(&⋉1&Z!I(4PXCBY~{pwowmowid{ggs朹Y!Q2EJ= @Fz2@vڂ%%%\.{6XАi۶mRJ?RV~akk555[ `ņEQhkkCRI|s<])//,lɟ-SEc>&g+@rN~809[,A:U+^]A""d~ZνK[%= }CF훎']WJ\TxV(9;ÿ́dY9$%k0>]InHK`>Hi6- SW, N >C36)\( >=ğq+EKHIwۉQr3Xz'+=#"Lq0T@Aq'q13=㎹7z[d.i?RD M_ {YGjK!H:Czd4?77 cj?{vqTО@h磨NFӟ?uj:=m޻MShu0[#u+ &Jp;ϕ *6pH#`k-; $lL "B*[ȜXb":"lTku*A8Āxr Zɩq~uw!b-XUZVzmãwW=~-SSu8gv2~PZM> !`h4Z 1ZAj-"T7uױ5CX3wZŁ2!Ua|| hbI))b|4;\|ueEypH] uιx`\.ӓ}Tӑ]^e{"&Jw;Tqjwa'e` ˫c=p(\0 9[[&+kc8q|v~E usle8q򶓜yuJ bo+>{ ?rVBNYμwB}ɩ @ xAe%NJT:::!o=96 4MrGNQ(vd499 M'MP,i{ ԹTesscǦ:J'yAJeO^=7|c)ޝg;io};Jtr|l'yU}oayUU_aJW_WV,Ea2ztݧo~n^;ѝs-k,=6767R"S=7t*}Рpv_/C.@OzF՗_=!-)ge>"3tz$t (*Ј9N) ͇W6,!|"}~WW݈H%z=ՂpIENDB`dist/copy/data/images/48x48/PaxHeaders.26361/genre.png0000644000175000017500000000012412233027260020604 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.417046942 exaile-3.3.2/data/images/48x48/genre.png0000644000000000000000000001022212233027260017541 0ustar00rootroot00000000000000PNG  IHDR00WsBIT|d pHYs & &b tEXtSoftwarewww.inkscape.org<IDAThZ{pTUGۯt:P8!0&&NB`P PbfvgA'HS@=fa,fp2$>{O&<|̩:u{{KQ'e_5t߹՟ |[ ׻GGG"Xv2 " -L7m`>vXU&.4M(j8MӗO<ı/d$u0_ @ 4Mf80 L<Bel6++rػ"qI1f">OfyjMЅ(PT l===f^_@ @AGG-O=ԯL&Sf˲9)_IL&!_>c%4m;WZUws:fM EQ IRo#AQX=}|6E<}Ͽ` FXy kkkqtt-//3LS^R(BE8᪪+-- a'|D"?J$~t鉢X,&x<pِpv=4޻&ta d,w~[0 Dʺo~0i:YǑ>_@;WkXxy8}|θyYNQYYƍ.++{Wx _0KܹsO>伏>(<Fs="5ĵxW~r9(I٬vڗ֮]>hv_q ;wE̙384Pٹsl6ocmmm->9DF]zn*|b̔i(-A RMMM>' Trqq0qhD 0===~b9p8k-No*9r,끠9rEuOʵ;\G!LTE &CBp8|_uuu 8w|Іp8|>b-BoWJHN3c6 b1n44/ٿP(oo0l6Oua`6 o ߿6&>6tLQf@O3YboE0LH$\W_}u}^z>BƦ8!1ndXT*}:eK,%\"|t*,eԀ @y9 wA :::6~g5Htzlxt:=4 ;N~_GG& wRQ< $m@-++(S8b6o|nbޚKX `0sv,2n?s`0@X,$̶n޼v0QQVVh L1Z| UU%YfC$.--N!2$IB"dlƍ{۷Ϛ5X,&MX,&͚57nk2>K$$C:FiiE}O|$=FUUi'ѭf钒l& 6>jnn>ڵkXEQxΖ\jGZReee zU.ں9#E ݽСCIS,#LbxxXRU{-[>dMɫ# u'NPY6%$7ŋ?$K]HyC/py$IFHR,~p8λ\EEEC088)H*IRj烄#Ʀ#هzŋ7.S/8O>rϞ=)^IHRHEɲ,*dnZ0Yeʺu랯~A.]z`-s[\}+&EQfH$PTTt& U/]=obbn犸ߤII011iss۵K>c3^E7hxˇgsZ,)!6/# }& S]]]… ߤi*׬f(uԩّHd2/ O 8lQEUUՅ;O.op=eIdvgYvBB .\ c Ͽ6Kl@OUIENDB`dist/copy/data/images/48x48/PaxHeaders.26361/office-calendar.png0000644000175000017500000000012412233027260022506 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.421046942 exaile-3.3.2/data/images/48x48/office-calendar.png0000644000000000000000000000526012233027260021451 0ustar00rootroot00000000000000PNG  IHDR00WsBIT|d pHYsu85tEXtSoftwarewww.inkscape.org< -IDATh՚]UVUWwOwӓ(,'&;2c!J II`Y0KA6> Y5 J'Y,"8f2`f1|tOOOWW}5UՓ]enU:?53| j+s[UDhN0@])!}w^X۷B25zԩ? !R̀@+=yD…WFn 0;6VW/HZd7wRTs\ʲa6챾ԘREjr<πRJ+E% [jlqCB8RT7XwnVuG)EHx! hPJ룣isj >3KF)nL3 \ 04!)QLBJ׹ ^[s~fAK> HO%ZP-2Zmqe:WG]:PBd@F}`+)ںSa;t؁2 6}!]4yu?DH,i", %%FOڵ%G'T(}JJ*Q{av2;w1M{"1 wdQ( mݍ~=ӈliۈl62`׎Px]]o>4VOM0֯G)~~dW͹9D> LQ 4ո⋸Z魷nkdz{8rkǏSR*9=G_9"\VXN#l;2ދPJ!X<ݞ=wnGvuec"9?0jR~xJig_Rj:\BB/bZk4u})d`y2]& (1C'Dx hG"\۫-L+J"="3 ޏK8i8;q(yja&-aIxm6k5ʕ+d2* ׮]P(PuBR}wA@od!lsD-Em:$qFC@":{1E+ 5Q:bQ ; $)ᡇb߾}l߾#7np&&&ؿ?N"yRJ4$ OHJ%J8p ŋy7m Fl= g> Rp <#/+S<338{`R 2V_fT S{…`0?8?66R!^{5֬Y#<.NDW ãLRȔe àX,,LZF\&<^6o P¥;??HK^H%X,bqq J) BD')O||m exzORb\~z\.SPJvD *|RKh-[KRshզ\^A_am%dƝt( qI*###u|(Hܹ3Z?Ҿ2W\AƍaTyK|Ke ^+ /ORᣏ> H)+m?{,_5ǎ#E[E&T*a /zbӧ@)ņ ػw/m~:i}oLIJ,,bjj0H8'.<ZQ絏'xm۶5NͲ,Rm377G*"Ʉ@ ,ROjuy,A4I] &L$ɐh6\tc6tZWb yׯ__2 uM1!0 #hRJ㌏h4H r\9oƞ& %`:<<` 8 =*GFFn=zT*cǎ|Jo . txl٤l8㰴DqzRzww7===ԾmۘiիW{ゥcǎ&[$Xle>pVJ@yZ$  ߎ;os}K~l0 R-mR~iZ 14T=xN.IENDB`dist/copy/data/images/48x48/PaxHeaders.26361/exaile-pause.png0000644000175000017500000000012412233027260022066 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.233046936 exaile-3.3.2/data/images/48x48/exaile-pause.png0000644000000000000000000000631712233027260021035 0ustar00rootroot00000000000000PNG  IHDR00WsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org< LIDAThZkluI!")Y%ۑF"ۡ#W]HjSA*HB@` ԐB GII8exIޝ9?/*`s{|y.ID9K~33^!+B9b>a*\P|߱G3Guݯf2|t7882 X, @a )XXYY-_+155(ǏW0>~fttTPQ:T)H4K4"""p'grg/:th٣z#޵n0Dr| p8%" 4^̞c8zg9ȾłRo >%뾉=A7~Pկ7 0}?qjEkK(aߎ?EOSx7gkn:'1<4?V`08ʃeR1F<`!"mpT&%n|cxCBڛUf799ykە;  'e2"(x`qta./7E>>9:jKȔ ز.gj0#q}e-/X<ߗ=s<،%~={d C+u8*2AZ[Dpqr1n8,l(g"TE lAw?~nH͸w{\uB\D sURQxU@)XG< aGMrǤ#9$scc v."ɓ'uG333[4C;1۶UJM.@ (R"~4ZHаX6شi6 w$ "펭 E Em&+Z\JAC 4$wmݮ<Ց8_ˊ+]iJD0$w6 R\vqrM<:==k!0==>h慉-Xb7Bta9hؕD, Q.ˁV\q2chG=== R"k->D*EQWœ"HJ (ԝHj~5228΁$j3pHpT6Q"_DmXZ< ceF>#"n!ޕϻ^BK sRg^?)/L`Nr,;)dxu="k!z.  Fhi"qd0 Q!|@vPH1X:7Y@W7Ā"YFgf+ޢV^YZrnrr-֦ڼchxHU.{:?N GiR]2z9~qW5fjuWx[pߖa|~ܴR `?MK?x󇕠 ɧf‚ӧΖKjo584H5ngsJ O*}广>/gV"3|VD}Ӄ#LZCKWs>M|"hKdCQ@ݻ'r@s.wtlTY6&RAas?Z,W^: ֦WEa,9p6ox`w8C*φSc_Ӗ8JZPX{͜8qh5Miy'xbۣ֭=C&q]A`>|j"r6;;ڋ/47 !@>E"fMLL|'FFFvͮ: jeuʥ3g̾g z,"-p*D]] /5v.¢_)u FD=H]M}pt#hw':>^g|L$iכChC"1|3`i/=N=ȧQIENDB`dist/copy/data/images/48x48/PaxHeaders.26361/artist.png0000644000175000017500000000012412233027260021012 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.417046942 exaile-3.3.2/data/images/48x48/artist.png0000644000000000000000000000340112233027260017750 0ustar00rootroot00000000000000PNG  IHDR00WbKGD pHYsONtIME 8sIDAThYOlU7ofm;nJB6*bBH9(!jH!^0& `LI,{0A @Ѓ4Xڲe?yy,&,`|~~}"]T~@pWa>ڢҞ"Z}-\~g0T0(.];w^Yfʹ<|@@ @\K!< 6|twm^$)BsBi6dɒ Ν;%ALH`O@+N>W !dN@1tضm= XҲgll4MMӴC?LmT^hŋ@K\P xeYaPG(0 eiII`h4$ R)Fctxxh4q*M! +WPJu]/+eY{ڵkn-%3QGFF,y돥TupΛFFF,zgM+cɚQ2@,{]4(K 4 Xu?T&K;ċJ q@)1OX@ Bo!u.ܽ{xIu}t˖-',B3 ֭[}$&yx=D`,c,YLas]aLvuuԱΕZvaQ{\N)Yyڑ- /C` M @&K/8^iD8 @o !jyСU[9Om"o<f``3g|*XUWWG (P*ݻw9c짞ׯ%z A,AL[nƲo#<88Cn/LG möm^S.D0 Qxx%|Z-yf|SIENDB`dist/copy/data/images/48x48/PaxHeaders.26361/exaile.png0000644000175000017500000000012412233027260020753 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.233046936 exaile-3.3.2/data/images/48x48/exaile.png0000644000000000000000000000726212233027260017722 0ustar00rootroot00000000000000PNG  IHDR00WsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org</IDAThZ{]}f^{mvk/1!F% $Hq mA~EIݦiJQZ5(r r-QMҀ@!66{w>=_8sV~|3njQ?cV}p 1)"haceHzqz};}uGk0Thv9ݥ$:zpX@΢`#g ;&?>$lmv1.NwmP_ټט-R<7)@88S2uR04}8:uvjvU3x[?lmȇPAL@R%$$$$QЗLM.❾){4_ YK\Xg9AўĢt8Sy.lF>?dVel#cxQSBYh>ňkMQZTN<ҾѸ,2ڵpB@-a-\A&$Vى,+B`z MЌC`Ql6I3N[0!zxyӭf| D^Ptѐn^4I$Q(1>ŒMaOp*AtwFєjK")`h\X!(2QBH RD&r訿{ºśq-OGcZJB%@@]rL"(w\ r&Pɞۿ/ At%<GDR"_tbqA(N#zE) Jr$Ch̴g"@K. hr FUD$tq$#4%x8 غ囟 G!Ve(RF-nRffR%^Z@RBU H*)]D.e5{_ǍM)LrQg~"x҂ pNIcH _I4pu~KD((-yW}ÿcl dG!D~uEbI46!Q|Lx‚_rE>z=arz-HuT Pb~4QOv + GY>0||s1*~ѷ G{R$Q՘$!D< Ͽ^νk-ά!ɍ|@[:p0T*sCOjuoC%sSL1A'5 W@oIWE@eS=PShLvŷ!8A``g73n"IeX(>>Hz82b.HU?F=> XI PTl<8`3BIrm=%qnۥO,}J6R {a2I 4[} y`:ɿ%? [tY21y/wu':!7gW]^pz쒋D@"i3Od5 tAZYS~YrX6Gs7bƷνPN(!X>CׂD"*$ &E }CNJg݃ҳf%gx7E>\8MkㄨJ33IBJkFJmA;ż5y}B? ES]67yeoa:%T܌kTFD`hVdo"lZU 0tƝ7ذrzh4׹xq5t.# MCC@P SARkdaO[ż57_gETf^1@"&sgȿVSԲUjsm7 IxT^:8נp Ӡ2Z@nzt~rM#!m}-Ef|Mz~w24REmJMQ4fBS Wa;E؎)Pv|):l 8!xKyA Dՙj&HHs x춚fBKFMZ!@Pϻ%,Lʑ'_.DPl%E581H` z5=ly qH/7 ;hpw^|1 D DLXHWА]wf:G&0!gݏk! P vvml{IENDB`dist/copy/data/images/48x48/PaxHeaders.26361/exaile-play.png0000644000175000017500000000012412233027260021716 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.233046936 exaile-3.3.2/data/images/48x48/exaile-play.png0000644000000000000000000000666212233027260020670 0ustar00rootroot00000000000000PNG  IHDR00WsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org< /IDAThZyl\y}3=x"hɊڒev:4:mlkEQ]0nRm⺵ WӺLI%޻t/?[;BNyx0l½[ WT\lKaCC%!߂sOt10ig`_%!fs@Y/\fɷ@$O497N ZW^b^~}PioNl4D-x|sQ XÞ32y\PWWKp$`k]ֶl BIC̘t!F]j\=U Kvb46?ÏC2ӄ0=_WZaݭ%D#G9 tuu-$6nvfHBT$Ɔ0z&ʹo{5x^?Hwښs̹(&K˖/  7ˌ, AzcҘ`**w{ "5 ۱Rf۱| oUt``0L"ȹ'x?Ρa 4oƿyo]'hCPeCk][@V+`}I{1X_#5'Q!> @JȴEdH^ 7GN! c}v)^;9c@ȑ# 9w.c1hcI*hA$\2i0(hNC Lie}%D#FD 2:~+rASZ ?E'"xI'- JW,2 Ff7־k 4V%N7 ֫о5ll2\ xtBлK%@Do  3`-`KFa v%NQ.>o*eYw#yPO3ttt i߿ۛYC2mA.N-Votc.Eu}, 8bS3~sWzɊ+˲7 " ZHQQVz(µPb otV2/]13{왑] ^~(pd(_ ̩2q\ M0JLF&-p[@ #ãJ&.9BլdVh}?[n tRxӔ1[Ϝj6ܿ@07,3;#Ga4o\tFY!D7xKeY?`[PHMD )$NONLloo97PGG[i~|pޗ_H)qęxl*V_>plܼRnJ۲Hpęd,;ҷ^W<?gyVT^ҁTRBహttoo߼ Q @Q"Zre˖%Oώoq@&yDs " @-;vX{gkj7Xܪp̑:280@S ѱLEщw~g* B dvڵmҥKYVQ&A m.\7d"7o $y_Pk=g1f/Bp@zּm۶p8\cveYaRk<> 2ӳ !D>,,DϷB%|~._Pze~IENDB`dist/copy/data/images/PaxHeaders.26361/scalable0000644000175000017500000000013212233027261017670 xustar000000000000000030 mtime=1382821553.421046942 30 atime=1382821552.785046922 30 ctime=1382821553.421046942 exaile-3.3.2/data/images/scalable/0000755000000000000000000000000012233027261016706 5ustar00rootroot00000000000000dist/copy/data/images/scalable/PaxHeaders.26361/exaile-play.svg0000644000175000017500000000012412233027260022700 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.237046936 exaile-3.3.2/data/images/scalable/exaile-play.svg0000644000000000000000000006450712233027260021654 0ustar00rootroot00000000000000 image/svg+xml Help Browser 2005-11-06 Tuomas Kuosmanen help browser documentation docs man info Jakub Steiner, Andreas Nilsson http://tigert.com dist/copy/data/images/scalable/PaxHeaders.26361/extension.svg0000644000175000017500000000012412233027260022502 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.417046942 exaile-3.3.2/data/images/scalable/extension.svg0000644000000000000000000007074312233027260021455 0ustar00rootroot00000000000000 image/svg+xml Width: 2pxBlur: 12Opacity: 60 dist/copy/data/images/scalable/PaxHeaders.26361/office-calendar.svg0000644000175000017500000000012412233027260023470 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.421046942 exaile-3.3.2/data/images/scalable/office-calendar.svg0000644000000000000000000023215112233027260022434 0ustar00rootroot00000000000000 image/svg+xml dist/copy/data/images/scalable/PaxHeaders.26361/artist.svg0000644000175000017500000000012412233027260021774 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.417046942 exaile-3.3.2/data/images/scalable/artist.svg0000644000000000000000000004216212233027260020741 0ustar00rootroot00000000000000 image/svg+xml dist/copy/data/images/scalable/PaxHeaders.26361/exaile-pause.svg0000644000175000017500000000012412233027260023050 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.233046936 exaile-3.3.2/data/images/scalable/exaile-pause.svg0000644000000000000000000007476712233027260022035 0ustar00rootroot00000000000000 image/svg+xml Help Browser 2005-11-06 Tuomas Kuosmanen help browser documentation docs man info Jakub Steiner, Andreas Nilsson http://tigert.com dist/copy/data/images/scalable/PaxHeaders.26361/exaile.svg0000644000175000017500000000012412233027260021735 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.233046936 exaile-3.3.2/data/images/scalable/exaile.svg0000644000000000000000000006415012233027260020703 0ustar00rootroot00000000000000 image/svg+xml Help Browser 2005-11-06 Tuomas Kuosmanen help browser documentation docs man info Jakub Steiner, Andreas Nilsson http://tigert.com dist/copy/data/images/scalable/PaxHeaders.26361/genre.svg0000644000175000017500000000012412233027260021566 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.417046942 exaile-3.3.2/data/images/scalable/genre.svg0000644000000000000000000004530312233027260020533 0ustar00rootroot00000000000000 image/svg+xml dist/copy/data/images/PaxHeaders.26361/nocover.png0000644000175000017500000000012412233027260020360 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.289046938 exaile-3.3.2/data/images/nocover.png0000644000000000000000000001534012233027260017323 0ustar00rootroot00000000000000PNG  IHDRddpTsRGBbKGD pHYsL"'tIME s`IDATx]y}x͵3{pձ,ŖCVȖ9VdV,= @[MҤ@hmEhE?()Mk6-9%[޵%%9s; 3Һ5brH}=ree,{MpFƬl+ٗUmU]N7׻{w|_Qq@pa D"B3##@h`mmn$|WQY1!)zcT*t:T*p8 rNfY8p|Z2,ժ/^m2[\GBEi #LB it]0 i0 y" N|EQs: ~ػw/"mFZM`&6S{Bn p8h4 033ZFv#t#,MDU8 $I۷DB@Y#<08ݟfqUೊ] <$ }, 4M@j']LC4(DUՇ+(0::J/my1^by$ B!X0p5,,,ßEQ @TU @áCVjT?mdch$IH$J[YYKȽO(omY@TU5t:; hX,:N?b/B!555M E-Cpvڅ{j岣 Ƿѯrcʆ9>==MKE-#88pb֋1aXXXYX㶟8 @EX+W`eeEQ>}QU5 #${N M$T'+|JQ={#<СCiXZZ!v q\` Xp{q;y˲P*P.###رc9TU=~QU> ~;a6POcۏ ڐyvj42<is~h^UUp!ȲF\.n=4MeAcZ85~>"EN]exȠU'_L&Yaf <aE?0b* fgg;RR@$IR)5s5uCri(J(< ø6%KiC<G>-Zfffbcccx[0 ,,,… X\\QXggJďgng9in=ݻw4Mcjj +++3z/&J" aɻN$810d: j,B<Ǒ#GpICuazz|q?}A !>Nu)(uON!?XvM^فߏ'x۷oioB 8O۱:)&] t: ˲h=l"9?w][[CX?00|?8h40;;K.c#1vu~Ib ?MV"@AeN G'L&Q133ׯS+{'ʝ !բhKQ uNXeReYƣ>#G@$J%[T"됎Bt]sOULGR)XZLCAܶ @VCXD󘘘ɓ'o>XE\rihBgqelQUua!bS\R\.CuB!| `uusss-US$mm!cиӅfس{~B7 Vϱ5g۷o# 5v+kawCׇzt {卛!b. #i&#Fzm%0J4Z pw|Er(X}g=KҋGr!pGgk8ng  K&]Xiu~#4 $Q@Fm44 a@ug'uO!2߹ً$IT7 \pb:^cra ٭vj/EDܯjxi)񚋅,dlP G, rNd-pڿY!(8s Q,2b؆H[ρ!DAN&L`_L7 b. $:Ο?OwaZUrj7~oF=p8Lp6ūJt`[2` 2R7 lL."k+0D*.^Y*4^ 5L:#Ȣ:LK  BB43:33)zoH$-dAA 0 ylH$ҳ2 &'f0I1hǀ!),$ b7^#Zoq$I `YJP(L&C|Ht 0Ꜣ(>eYHR = w #b5-,&''K/T*Ad2LLLuZtN(,$z|\|}~~%%Ivj@zÞ$ $󖗗1==MMuA r8N3NvcbH%9+ Ӗe6;; $ɖ!$-J2~D>4u\ CCCr^JAC$eEZ%EQ<Զâ -ȨN-6G'%I8 ={ft={ LL2ӭ~bX$2FW4A.gӖD:vr4a46Ԙw*8w^x,..yȲ]vQ?3eD"N>y;"!XxQg݂At  W\'`tH q,jtejW/5ګKAS~_Dg2xRQN۴oGp˗/ӌ`Kd]wJQY`81A,%oX~YQ ]9=zKp X[07TuD;6KSyΚcqq0 EQu^<,;~8pccc4IFKU~t)Lj}IՏ,}rrҼ=zTl4> @D"+/~@A`;~_Eqx###4IVûU<;=i4G[V_p7_y啋mvÒH ǎt:WE^G,'8I"ok)fV$IL3LȢzʕ+ ||ߠ\d1:KRdض佱Xlv)sAP%.iBuZR'/X-Jϟ}_V5IsOemYߥŏo{3x<~ڂ $JLuJ􌚦׮];k]hWW . oxkS,w]x<=oEqySEnFh,rW\r_l,i]12g6lҦm?ok:HRH$2Dp8<|TӴB^/jZR|.Z3"k24 c{8Oz\ (NlWvVetG 8VO6Q'`L0$ˆd0 Np6v8ـpb l@8c80 W 0@ڈ6+DvP,$Lgx$x0+73ėٍ% l`C[. 7, ce4T[IENDB`dist/copy/data/images/PaxHeaders.26361/exaile.ico0000644000175000017500000000012412233027260020142 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.621046948 exaile-3.3.2/data/images/exaile.ico0000644000000000000000000015757312233027260017124 0ustar00rootroot00000000000000(v hF  00 %ä  k h( 3wx{{0x;z{3{{w08::px:3ss ;{x708:{{0sps3p( @` cfceghhj"kijlmkmnnoopppqqtvxxz||!r%t(s+u!u&u(w(x.z+{,z/}0{1|1|6'z!{"|&}(}!~$~3EsN}6;-"%+-(+-36268=91595:>9>x@EJEAFOLFIMRQW[Zr``fi&(†./*Ĉ,Ɗ-ȋ.ɍ4Š>Ž0ʎ2̐AAFBőGœI“I”MIƕMŖQ–TWÙRƘUę\Xƛ^ÝYǝ]ŜQșVțXȝ]ȞbaƞdƠj liĠ`ɠeȢhȢiɤmɥuŦpɦyƨrʨu˩yȩ˭~̭èʭɭ̮ΰϲγεζͷгҵѶҸиӻֿ/Pp!&,>X1qQq: 9TF^}Y* e$a{rD?BlryQ # Ex7>?jjkkkBBs5 bA >?jknnonnkBm~P knopqppokj?wN .I )ptuttpokj?|5/!=cf uuutpnk?C}!ah 6uutnkB>SQ!&i?tonj>6[WBkB> S/0Kص/?>AX;1פ76@a_P=@Aض23Ґ'44Ý1AAM!0+<%OOAQd0,gRvROLVJ՘8O~zwSRM"HG|xSP!-ܬ\ H|]Y_!.ԝUN}^ZV.FH}_!խݺ`.-ݽñ&.JĹ0!00??( `b d dce6p9tjlmmomqqtx q$s%t&v(w-z/{3~#9?')72:>=>AEGHFDLFNT_^pwb(Æ.Ċ/ʍ0ŋ1Ɏ<Ɛ2ː<ɒBđM”LƕJ̙QWVƚXÚ\ǝX˟bŞbǠiàm¡aɠeˣgʤcΤhɣmͨtäqĤvƧpȦu̪z̬|̬ϰ˲аҶѹк־ֿq/&PAp[tϩ1Qq/P"p0>M[iy1Qqұ/Pp  >1\Qzq/Pp!+6@IZ1pQq/ P6pLbx1Qq,/KPip1Qq/-P?pRcv1Qqϑܱ/Pp!&,>X1qQq32&.HPE+ ,T%:8<@N" )/U ;;9F#)\ba 76K1JD nktc5=*1\" uhhkqQ GmA%xiiijx0XcVK yhiru4-W1]^O wtze!?MI1pVld>CC_(Ym DLKH_R( Yo\[UZ\fS ('`mqg]'(11PNG  IHDR\rfIDATx}ő69]$@D&8>g8$ۀI $*9'V}if{z{za&hNY LMб :i&hNa S&$~1~/眠 8A1z;dY~ Gz;o}t~U zuLP491F/e%7"gi`}Aab7A*MqFR~e9Un\\2KrV 3RpBą͗mh]ChAkw-j}I,olmϲ܄AbLϧHϙHbr& S!291%C-OE@}  =u̿9+Uf&ȡ gbLa1M2r>)o*"LNFPG{e# PȹM ,uPۺ7 hO9r{G[4DKx'ƇQ}:&.b _O 0 ~#uQHeB6C[p phل-Q-~#8s6fo2|Ql'pEO$y5*C, {BmVl݂kis. tDsn@ksp0uxWvW ~~b@7d !1?q/.{۬K0j6/p뾈]F6 DM&7ސ}/Uln#4wP;4$d#9!Zwm0ڇ=nj[d/Àk swܯuy+:~xoD{AsT7=.x n. Pn!m ']}ͨB~`_3 hS&`b~ igX$eb3ƿ_l-2ыRAT z-pE" #D&%&!3M֩3T#Oo؃_F%@~?b@ M.e Q?-9Lgq,&7Flbo/ŏutHP`0 M팀/ J |)DIm %"9.)K8${C6mOaJc d,O% 1熽_py3#8wGpz-X,}C]zswi=Q5$0GF}!1}z)$%WT9C2ː246@$+qR d{ĒT d[}1M!_Ptݕhe}ǭc~%#2DFRBܫQO _ D .H| Ʌ4`;Љ-ڗc= ~?p3GN%O}.\psa=0Z:*F>Lkv><@StQϿ.CIǤL355- ucW`~a l'3zv&KMs>9EA3G1Mc^vɸ%0ą{p҂vz/*_m T&D '<ɷi {L"x1cEue<;ƽwcP>s֤ᢙj~&j_۾駍x'Mۡ:(ӹz[iEQ/~aHhS7!ly)S$@pu!>[% dS__iPҬjWP>CQףwŗ M ߁<;$4uRWGFg?Ѓ*P *HN@^tZ«O= Wy4o)~opb:.uiٗ}|l_(lK= !NDfӍ%_,ӻF Q#(DCTh4!eBDd1 O8H<ɺ}ĎC[D\\t-;:\:$e@@)(sΨto &0DHBjԩ:]Kݘ/M>}  % +\Y‚*+w?Κπ; ?$S+D_)/DEoձGnоʈ{Z^_ r5:ڏ"+dLH"Sr|@8>#]}xm̰fJ'!?_y_29=i]gHmFi&p!/qhyr]cxs=\2fZAyhs z5'%֑Tʀ`>sW550݊?@dtRc~KEMMg~Qi~CBՊ5GԨbݓ>fd+DƦ@W6ّr}5MkVՃZ5}dBtcysz5rΗh~~cw5wnA|eXG}(!_3-Ooᎍu̯Wb)׿.5$/iпj/L=Haxwu*hE>vT vxֆ 5WN/}/ppwkD4m&!1SN{'0q%}u>Aȥs}4DfשUyOA 08ԏ5E7@/ :qI?K[73ئoQH,3Hݚ̌XKug,Yh}zO˓TӍZׂd0R01<$"l7Nj*ۻ6j@#N`:)1 ]?-\}O?ؾ }5ߺ&[? {jQZBq*:CT`Br* sK3  E{NFY"$fIl9~ߠBi*p bo]_zuQ]OBDzU:35+ӹdf@tNZ=+X̯M3=A^iq!P+e\*lƲE{O=|) ' տc,\6sxKh7O\"~kh.zyyMTCVi`V~RfRṝKQytCE!bLUs|$@߈=z&10k 3@qH*J7n@;Ki~d,[ᵒ[f_ $υ vZ|(EvTc-?PNx/q w_!DWj\A(Vi^]/#jE?Ĵ/{ZBe^/[1S~tuJ+&p zDIiQ2Д0t6Dt&} dgnhI ^)kkCU9 C:1?W^gl KP{;YZv# IT␀i[[ 5b}o 8':Sw}Ѥec?cy):}_G\"i18T(#=)#ȭi}"^{?QDDo@\Ek<2tmz|㈎Ws}FwmN%xߑRlZĴd4E3D #`~sEf(E6VϧϮ(9^qͯa$:+PP$q@lfL;Cy6[@ģ,f  wZEOM8?؅/׉SǶg" bD~U i!C|wĔkkI5o!OW,ѶM>"Kf4( 3Z  Q_JB.&g+վv}=_Axq/2SV$') b׶g@A`UQz8ǝQ?d4eS*H-iUd$zƦ\Ճ@GQ(ФTC./@ML/)le](ˈ mA[.##eg؅6wmMv?8>ܿr|[^?z}L">-uO#>>\ f`XE~;G "*u  я_+.TTyBf9qo>An~3 < 7JBJ{uA"SQ6WsUJl4|6cLv/ጲ _z""EM3A#uжyDsҤBTav<;T<_ksF5+JBO*>X(dP>9Z{{Cm qn\x${ާt9]xoA8 T6-Ǡ˟uu ]W^{w}&ZPB ן`?M+%O#[ҳr;E V?PJ0eއ \$amI * qc 7 ">t1?߭grJss~;FҹF*+wҴ Gґ^(̘m խy\{{2 A!jf)| ܖ 7 YNJ1!I6ҁ;Q4~C.AQa M><UK]]ZUBĥ²4DP ^'QU6>A1c {8XP^uKӌI kw?Qfi'hbiEirmQG] :pEmO*Oh阞MʞQ BiAQ:Ih,}!ҹ=@x(t߮ `Qe:7INL)mKBpv4TzK3eBt[GlrݜX;흾c&^/OcAkC ߨt"\I05YWCTQR\ 9sZdp#Q*Us@B %!:@ PGu>ܺ5ߤI2UQ$9sP7 Iއ<$a0-$_B88EkEn󯡯7* ( g B򾂢F;C)( aPT ջTi F:0MNVr9 9m>Yd~uQ /byem#Jo]}wm=bYT0QkэiFگ#CI>b#LapAr (BAQaI(NK^u|uۯc@Hߔӓ$k60Dq=O$d=@w߻v t+ͪCeES>kHKM,Xq~uR3PϥHJHˇ x  dC_Sh9Qª4AXR[^6ZfPc!1$ s@F@qk a p c tT1?]6,jދC;2,S6}kycρm\Ly[ät\7'.4t`gr8"1s0tK8>f]1" {OD@Gk!kHu9:U ~C~.naȐ7Qp1L{@/}?>1_#gLA`rcH).њd-bЈ^.%d_¡Jĸ0X &Dj$Gڞd^kDbþg(,o&HR??ь~%l3 ,&n6ѡW62a$'`k ۉQI1H>3\,8C,vW|HG sV_< ٞUjҽ{zfߏR8|C$R)%AIa?d,@ 2r|e :zfxshԎݍJZ0Ar:iN聴D4d=_S󯠛%G XȒ568w'V wMepQ Ԝ  @am; k |T@`` tT6=*ksKu󾮌F|?M/}$T|wsVArVW6܇i>?ahI.qqqZWǖ̏mȌ0 ,{l?oi rbjH gjGd-jEp3U(Z+oh˓xyu|e1`-m>u.Q=ػ_皤JSLL>\-IC_g}A:ZYvO^R𽵎*{IG3u y _YGy\ka#b L b(ڏX>&!oI%œɘ€ -+< #֋vx&xFca=*mb.9) I}dzzOо58tSmۊ{нJ>T@`1{n+]>XP齜lmGnP +2@ϖ锭?< =3]fG[cBbb& $r>R{3Њ{[`OÚa??I tz7Ie~SQHB]ZuSu11:#NQ֨͡P(3s/ 1F þQO}rzNZ9n;OOu4# N7N/(ޓ hhԵTcnuwnF 3?\R'10H"9)쯩F;؁}tE&>e.f@V@Z)I#sRD~ =rU'-ӓ` % 23Ñ쫒$ F$h51L.GI<:{l۽:g JG~e7z^zvmFܠ0>#S[$k*EC>WW=jVSWgI6 M#[*0g#m2Apm;m>h[yFJ.#?\]g, 3(旮IipMĦ#.ȯ@DIBTx AJPg S^g!-@R+7kӮ*WaH6(-OqavT6lO9z#@@jF=/姌{[V\>p˹־ZZ/Ú æ,acp 8ܾ0 <2Rs1l!S *-;VW(۱kW,j.% ~?cSc3k$M &3>dt[̉ỳ`nt$v8KNx8BƥDz2?u8h_Z p^4e~K5pJ[\ p\O;XnM#p {5VMÔyfLF S 3БXi.ǩz!+3J˾;1t!S' Pp@}i]a73{WA[z+$SǹSAK22%"lEMjw+ 8ёU9)E R n~}CR{a~E'̏iAN >5p_ZF$iF{GP -MkOLHHTP0GZencY\ f 8I V|i&&'I T4yӓz$.$USNiDCba1#r.B8>MxNnycGqEqZ+0__V&T˜ߏH5'owVĦdkҵ@ )Mӯ2]om6onVݝRݹ3>ȍZP4Eg#4oWT]BIEq7rk@?'[ҽ~C@~G0rDޮ O lUn? Z@}}l|O04.vxEN/˙,NmYh$̶:KF4U!tӉB~*ʺHR/Xi4w7J|83?3ޔj!}>k[ omGuN.FRWepЉ5>D Î'mH$IZ$m"e8\QR s9LKtgma0@ aW/+V|? gcbYWGgUo6(61tt7 Y/|8iͭ ˺&ӄx2 S4D[!& djպ)emh7[50Ȉ^)ns{<[AWy# D`O"۝kk=_ 8ccqf4/x ^2ZoYydO+yv_07]\}L \o.V[%ϣs$OjIC$A }+v -]jgvF!>Pu'&@|wʓXI:eL.{uT&lHTA^xjA0+ RUv}nyJ?gLw$4avx@NU|{ٮW1eh*kF_S8[$~]>>,~k!4<H]ː2&6h`eՃkA0`Ji$Ab/!{IEmpIR%doE:@ QeZr9(h<[06{gs ;)<IvI&/;Nqǒz'pǟ+|Ss@xGM?=҈2Yf~}ʒƏ WAv.>=.G,iT1/1! Su;zNcN7~IqTL.c) ނ sއ?S BO꾀AHRϿ{M<(QQFr1J3^RkT`t-1`_wQXI^};@K2s;bۭp *{eݟ}W1l$<~IJJFzjOGf(vԶnk;ϙ6?&F)(M[!JEuiGFzy^]#@ԫߒd ^Sn6@jlV)yCXY;ab 4^EvP63X8=xGm /0'}=@cnM' !0{`_8޵,ۨh;u+>E@w규hف/%NӇTƻ 5u;:0lr28z7_)>34@02ғdtA;J=u>*= aiNYJ@fTJ /J -39X\]W]'1ΠexeO)%T6pǻ O[nefg`jC%BdGp ӖghGe)Z)H]X%X&rẄ;S'Az$^#PGg 81Q>Lj̓/fRȏ}x&\UuHOtq8k~N[DuK3D^d:<վUG@@FI\~y_k)QOd4/-;IVjmi_6t5*Upk݊#~W]Rel_5y|c~Jԡ `j۶/L(%fNfeІ@ݢ%uAJt ӂ\z|] B{@QEP LV^>;65"owJT׭u<[1 /pm:pg4:W|TCت*ykJ_sc | @WwDe~1󩽴t;f{[QY:^+Ǯ ,=;#9<@E@Im<-HDp/ 1̈/慧K"`s^:} h伅W /0 ռF۫ iPfy+#d~J8Xs>Pnl9Dz(P^"e܀!c˷ݫ$1 +̸ gUrMu% Geo1*Ț}AlЕEDai<9>U( 흭lo%XCQ!M>}k]!܀-\~ zԆ}r]RK{3Ųṣ?8O/bXBZ*+-~-k3= T@`Rzc 隆a )7"#/@]2,s.Fb`G ^I]}{[2+H@S ƻ}9/mD]{UOTtx9P7Jb X sl^{N/}7Uhk"H/ G1?Ĥ$fi-h9U{;lnG]1x3eV{j r 6%b!;KnNQ.G=5C.L= )]ֶp˷Q#EWƔ> 1~-_4XPv_e~SXxoHB_ D2tѫH$B*_Bc!mԏJƩC ,ɗib<AƑȹ'؁;~{R\Yӆ5Y(Fm}T?=(F#rSmA*4K݄%H*DYBK<c * wh,;,$>tϑ6y-pkX>/vtv9`TJϨGw|OõhgY/Y{%/@!0ND)i.G ?؅Uxy/PUv`[31t lF#J8&Lg@UrO?ZQ16%cmC`o:TZ뒋>ܛ4TJɩySbiOJF[ȨP CA 1CP?B)c~/:x2ʭOG\o3hpAܧ`~M3`)S MMJ;9gh>ߥEPW*#wz>JU=U. N )e߫CzIGs6X{nmd )+&- % c /| <7i{i-N>H堣+6- WŅj=T]zRr)CQ4v;~XI&JbFxU7z0E؅Ep.evEi!'2HQMm7 c7Hi3+Co~S?= q ~\5 3>@ja=7ܛ4Z;|SNi](:S[{PfM)DaR׭׵I5ϛ15Y %;'j3EChn|Хg8xD"|c!lߊg6};|Y(g@`W4.R~e@(Mq /`TMB h- ۠+3GGF | KEz';؂6GwxM.bu쑟BPxF@1{_Y{B8}0t#74B[/$|8Iټ2Ms~#psJOPRl]s n 3O)D ޠ"J; 6tbtz+{  s >^Gg;_ez>ezAmŪcVЮ3 y4KYB^Yn KœIf@ b~8e~m3?$G ܅C|s~N * 098 b+PA\#L!Rc`QK`%OjhnִM3E=ָPϿY*@f7"b<ǜn̜ iJ|7v݋ Tʊ 3-GC\UwYtX:5o%!,Hcuo+ѿ1PhRvP^<XiVf.UbX_O@:(xdcNgYHY"RuaMt6281h;9y_ ݎw`oJRթ&Nq?EG^"au5F.9n^~7/R(V}^7v gG_|;X[h'▟.02 K6 -$j*ie6p)@S-w\-#3i }ӜF?eaO2T, ҧoT{k\SBu~ؑ uQ2m5:E_M+6!x+^tkYUʇ:~yR8Ć*<.sw> y%6S NcvE?>gʻL{camri`@8ψ$dLM[GfQ_kvN5D S0pХ 淮-_qf~W68-%Ê4C|e!GoRSQ^2 o0njAmG xJT* x8- ; F]{%Юy `f_aE@C-z- #=u cTfoH'M+U+0t@6`~ #d~N!~nh܇GUo>(CXV4iVBO= =2>ѩOzgV65|$g`ÏM]{eRc\@$ h%vBO_7iy}vD]^7EӅ {qX~=R]o{2KTMA7P?_(sI-S)6;L0.zYz*[V`ŭ?b~9Yy(,(3oè=5A4KЉvZ3 ;~֞Zl1o:VsiZ$)r_D]QUr /똘HzG hP 2l#$(8m[_-s_@z/fK'/(3?MSA;AK~INxigSN`j  j$>b?g.DuS7n~V3bvK2S ſJci)Caja$O][gBziڪv׭BI, }hooV`3`2LDFZPsv O҂M|[Q~ F|GuU8TNF~ro@ /I?v jnN6>03b^vip˂u9v6ݚ<34C+ BV3C x6H.֍X,.߸pmk_@y:_L8Z)HIG89LZ[1WQzZ& AJ=HXOw:(m޽g+57 nΦi%Yq:6h|Q4q @{HNm>5AW&ڻף0kߋ6,+;y|*qщ~):;EmߎK*L# I?:TG \ 8B^TOR io~vRvJnkxVp,‹mzkDنGX:$M\ P hcfJK (Ȝ,o nqE-W wx4 IbW,)0]e/AKu#}݈iQHEd2LgN}A 4"`e9}z\1 > 븭kхT#ӆ@nv'겞`HG(([;v1߽ yBD @lxz26Mx-BV`  }1@ם$]}ݐ qA!~dس ㋜ NJQu[{+>տЖU7B\2)Iw=k-$ d4-+X3Y[-jYn̲hbs1!3}ѭ#(#-fu_uY?~= &$3BՂ8Ӷv4bY/r K *{/{"'mbs5`) 0X[Y37~ aE4-5,-o0 yLf`f׈N82ӫi -LuJ|ڵIvKgRNбw=!o܆'~u;|)((<- MꂅzNBu3\T_5-AFmK֕@. s$fĘ =EOC7+0Q_&I} jY ~pܐ (5 /.yiܯ~Uxiڣ-r.BjZ{ɸSA zNhFT*#51t606,5= OF<λi /uL<1:l8;Toň3* %J}}8XEV"?s46}K(AtXz;Ưa|AQ-_#t лor$d UmAA/e<~ mqni>r*4:s>16mX_? S_?jr(ʚN>.}}hlcIsOJJ5-xdg[[j-fӅ>OZk)@=7;5$ťeY ر;kWz651H;r'r֏KNm{id]Kȩ*˗${?Џ&U]CBE8GU˻~_/PXTls3*K ?{s@`V?UuO]N>`&Xh47~_Dy時GGa<.<%H `w!TC #^2yg{O?o9GvV0lk` qe{:|H`Z΅D:ԯfeq./<@_,4x;(ϝ~+_-ģU3F#cA*&~Ht{OWG;O$ѵydžD`oY|pqqؼOZ2fT-AF %!Y!kVS͘Z5J/ySomn&:~]xL4*008{]>{ɳPHK"}$< [U,+33ECw7'. {Msk 3Eicݞ%=Xl4JRJrfڹ_Q*^;:rßǨc W=ݗƉo>G }B_[`G<]3%3]a˾1.;k, R +\& ߥJm83b'aMK gCgJi`DZq@ عG  Xn& Ì%9'h/gHezN=X7XJJ\z())v"i:akpNpkfm0.eC0=e7V{O3'>M3N4{ݺn$'/  @PGh=C QY%*N%pd(11 T;謞9mzm  }~Ѩ.x.[1_KX`jօLI&jAxE8|ySɋ0PYת&̥`ß?ch :EcyQgF =񁆻Z{X]P7Za9x9sQa;01bevmĨ`0#RLOm6ߪ{b1띣A3.󯘚{փ틞) VseW fOxƧ0??[<ö/-FGoBT[{5k-Y]&ץ4HNHäsz;BhhU6Y#\N_0z,(-Y/38p|{vUc܇˯'`|;p#֣䛻jbgݲ_T)pu[ x4´b-Y~ Iߎ˟eO-8wu@o?V~% <\Z:AN=λ1P/ ^s<eeg25#2 : Pi O"eX8<ȍDeh_0]Bt%uTp܀}SuU\x7Κz6QS^oZ<[8Ժ-d (J8`8?Vp8g vb]ǼFc ƃ+oя4^_S 80n_,p˂㜩5<)Ci)#sJ$\ɯ縑oyx{σnmyqܕ79\5fb%QRN˹ZkkPuPfQE11Ǿ!_A#Ku/w7x7Q?!T0u pidjЊT]-33B)XM,\w_zjڡ=~qO?z] "d|N?>^f >`!9T`2~zF]?>"U <F!'e <^xc#D4 K^NاW*YxHvIM܉ܩGKσiAa(;' ԞPDNH'eXq7zGF p R@$]}%\]X7'ϟ҅9^ۚSL~8pRDi^p2JJIZEHS/u{P}Pzώ]E2#_86L;OHK~qc<@|?. ,jmo6CME<2c["v=X^l}F77<9ܼlX[ǝ05)i8GQu4+x0_CcA(ofy8omCQs8q VM ĝxuyngxcXfZz*$cc9 aH; S)r%c0 +p*7Iwyzhai  ҎCuzR9G>ۃw'3q}bOIb|>SE,K4v ,٣˜Gt@`'ŧJ=X9}y?cN G*P(7-6ғ Mmt/@}]:;D.L/\2w{z"bH?}kLƯn\pE}׳cXkM19WP2&edt׵ƞCt].Zd-M$_0룘{nV u uq m)Wz^Qww:EٓU[8C5{Ӧ;o)"$ b(m:U`0^bFsЏw\6Qfrzy<\:?ܗPerlO[&[ayկQUҜ*3}Qq!<=G6bhYGFH)rUMff0r8;g`JN,5ktjF = P3Zeuw^ 6qU둞"B`KܳOJN |@K^U'gC_ZV Zc?ĴIǑ_>M 6bCKEesh\5gC*ӆ>{,*xkX#]]ݨlwr!8*֋9HPj7{z>ct=ӓPЃ2hfkSH#,̓;Uaa'gn,s<~WN_q,Pg$fץ4~P3[HkN BMOYߡhv5,kUEmvrE%S/)@~A;K`#҆m*@ZRIm޻ݽwEƤ_'Lb=r,ܸ.XyF|ƿXmhvZp"ۃq&匯cQuDy()-<%Fo G g !s[ua.'c~ 81-XN|(JvoK84Kjݲdd lf`eXvY``]o/ᴱ-ݲZ[}]UG^YYFꌌ#.~sP IB?//׏S(s?wqXk=\FZrO NOwoL&B"4p.RZ#04ƍJ> }dm{}pwNO9f&>`illҤqkjR M ځ'ߒ}K 6ZȦnzfK3 h{Y"ϻB>9R4zm*TN  @M"ob[-\OSU?)^+Λg41b]ᅁٳ}|8.]:h50Ky KmUa&u1y,^Dh{BHds= [[̩;sӁ ZloZw~^39j9vZ.+&8P;$kdQɞa|m I+k?M}Y_A__^D=cN+5!5H%d=1o}%l.&VWS0o;KլzH( ?0 *=\/n`>65`xzɤ0j@ rsЙe:ġ$ށJb@^v@w% ?*@gӂ޳P,X; w{W_j^Ʋ}z8=߅='@ i jς*K.b @j^&=ΌI9Bջ9$|ŞR iuw`ny|~K#9'%Yaۍ+a[`3s? 5~|S18d]3 JSfkvg ~17WwOK /$#K bC"pXZ8t#!^JvG+^>vs) K'e sC+EBՅ+uQ9ii?}n8yQ&= vu&r}Li1Msbǟ$BDLaJTP |lt4n.8JPYkS /O%ev1\]X9yV<h-n T*hS]nExN 85}Vŗld$γ?9HpuZA]q𫧭CiJ&m ,yD UA,WV?:7 o/4g7&vpG,7p\p0{ok6ްt }A ׯ1%L- N ڌg=5|o6[4*ei65㡫+h'7TH*N(p R 7Ƙo}04ldqpAA4#Yp_LR(,5 澱O ̋? iPjti-#V8>b+tϦzK@`RcR]> |"e`3'ҽ[omWkgc3w8xsv_7`xhf}we1.GNx7pF( z&t&M}zzx掿% ~56\њꤱs}O2dE\z=&|҉*lg'0nXgjYqoXz(09=px=β>vA :~a]o*E417m0^Zspf,?L=ow E7Z!8wWQ"pa!+I4e6˶ {7 >~6X[@6-DJqVGw3ysz8UFb}=j}aQA`prQw6S̾ cSغvyAo~;)*o)z=/h?E.S KPaY1@!$$_ВlE8:+nMv <L]޿~Աb  A=M6B2x  G%nƹ\. .qzj©KFIwg-bAgn7%Uˉ6~ Nn0b?YQ@!$k\7\10Q'0+ýn7 u K0 '{u@Z080'}D==9/|&RQ !Q^] ?Sف^0@ .o:P$ pQ^F|d5`+i{ޭo-;$hYzlF@qþͷCp$<Ϝ87?MV^lׁ[JNvӞOI@\< 2) Mޭ(H^nGQG~` <8<+X\A=f;{1 >|]LPn Uǥ$'KX'^V(ra%j^m\mOs43SOjyGCᬀA|-zW [ΪQ81{x08uwp,~kG kl=$? ؋QDU& n6X?dM+tNHSECU29nEpt*BH&W^moM MO 5}_!LU pd}b܂q^[H hOlaB||o%?՗8:^F)/[ /l (KHt1ݔO B+:{ !ƱN\]:ZLoRq4FE]`P| 65e3YW!44GMgN@$6X}qN2pE@x)„Ea˦L~=]A;sn v껞wlYmXO6ӧ^Vm $U6j=w<Φ9-8(~o;-0i>T'prMha4 ܽeodفnr1tX$eOO+$0*&x粹|۴=;=(iLV@? Znhx, G><\]δ6}Fa "^77 i{!?"kVm pqXZ"+ ad xeWl{ ll̑@ +`*|ۈVq˥@&繰|>1ѿǨ>+ z pjcG|Yϩc/ diR >[ ?f[oC>Xe@!$p pW(&?X濞.J0?hP쥇Ⱦ=8V!qlo5:h%~?M}b}os /q~lG[RUBHd ^śoW[&s?mBV^/8)1\.Mxyv_Or=( d8Z7Q\ߑg6caL|qbOm.顃09: { #VBPC8KB,5muCGՅNM<>p`y\`<|E aB{8Ak#^Zgdۭ*sIU6w˒jiOA(*o< =EѨIZg#Xz?Y' y 0ͦ' Z3?kàO(wZoThýRBH#du^YM6\j2/C2p̳7-"? ت˼^7j*ٵ<O3eH'̡o(0>3=/݊Ss-$+,UM(H6W4w9$jKQh͹3I a\$W0%Wy0( no- uh18w>9b0J_T=&|W֔[\.V b+ *`{>U=W\r\̑ ""V-mjCV{' F T83rq z$NkZ8|د&B~\h1yyIsvDdM6ȯz^y{bۈ%4: :4 RȷZ0*7E\3ؾ- &|@q*r^>'O=T\PFQʚ&w|5Y_SKWkra}n-4 t஀" }#/ ϮY Dv-Ow=7l˜ض3t&g y=Qt`?U-kܱ_O5nEV;뮥 'haӐB Xf/6 kg|,@g[$ ~\xaeȶ``D[t]}q~By?[ Xo' "gRs㝉Ɠݾ\.FH'Vc < ˥Yo h]gxJ A\/L\Wczf!(ks>?RipލtUZ".4| 5 rЖ̼F tU1b͇bA`$`y'N<2O}z o[׿%)q:Ssmg2878zs=e+nP5D.L7 %l_wHFlM=1woe{ɠD`;ƂJ.?f #&Z/@lܧХNEt;|ЋUkP`nDͻoow~.x r l8^}?%fBqo-7-oOjY=gg&_,M~B|ҧ?,#CxivT+m=,߰7I~3! vt\ >-1a"S10:7 \uBpQ- ~쿏6ޢ%[G?}NK^gYQ/]*Z@FW-6"D`lۥ͟IL= ^+`[>L5zft1}raIe_ݸ#%Ǎg}ݾ FfxdMИ&g׊d@ܳTX/œ?|9/vk w$VL܀o=O'n.}(W n6Z`'9P-?˥ŲI@݈ |/bTL=.m̯OuBM eiJR(AxT\€:p-OAMw&>ku$llX JL-!,seʱ,o2th7̈́Q=^B|s?=%G[7VTV ?9u{b%@mWt_MuTcQ^>?<c"XhwlO) XlQ ?k@W]j$ci5\,k:[Y ݧ'/ Q <À|U݁& ,r|yuO6J7hw.u55չرwuviv-ƞ>(q6w'o&aD xڨQf'w0罗b'f1Z$-(@;_saEd5 P"L]#}{}&M^'CtwSkPMT|/ hSK [h@o͙ Ki*D383qz@ M53#N[#/)hÐFEd5 A!%i KiF=Daxx"Fc$EZ3y 1V0G4|=~YPg~Ӧe_Р,B紼g{?zrSItl[.onԼ[7Jo Í7A'!lbʦ%NJh!yXOi PTI;CDmylOkw Q ?0 ~PX'0-|>98u-=\~y SI\y[ڶHo!#5ou ip2 M61-)t ? M]&; ,F.`G63Rl`'Xf=U˲LMѩ~5Y܏-~&|H%|u݈յIW3~s[Ih rtt6mn/ 貺`[K]Nnf<]&F)u/*I*c$)VPGds`#+9oUpJE[!|O(?"wQ˶PJ6  A<5׼+o:/%Qj` pY\'rN- ,,-Z,9ڵӺphST8cIB g`z~6-L}"EUyP'[k#QYM@ bGaWKZ/^[.]E,g8]j亠B}t٪a٤ZNw©y=m߳%`va&gGh_|7Y?qeAlGTEbf4J< XMR[bWv^(0vu`iFBil3T2C`Tt7ύ<b q],aiyf[lC5Y)`zOy'{ 8/`yTTGeYuK*J/GH"AKG}l=}Sm[k1Ru2ixҨMFlNSjmᵅ<,'? s$WËreNp >9kYOE@?Q @GؖƮo꒮J@k%nf{=ζb7^*ivg]DI 1X`or)ȉQֵ<"wDMAH$Haśܤ=0? SK.2;Alǫb[vwtNZ@$WaviY;ڣ>|tWѻ)>٧aDADK~naMi}{@}]f3]SRg" -/¹yepq fǕ~ep285́R[;!/ )ZUYf`1مw(OaC]^Gj 'PHI8έt<X2t14S@Q.A^."ݖȶ_,nd %eqv΍(crNm݀#BDIa cU>+ks-Ok~>=<}p4̋| 8(>n((-; X)2Z벖 5vB`B>z-D(u ’}G^VBfF/T-uy9zZ P ~!~%/( xi6e=~h{~mBp@@0GQ)>yQ~x?]st1o}>A\+*+?F!\лy-pVWF ox^/ڤȖ<%$/E/bͳ2OZG=^Gx'1 GV@?2%Qy/Q^86/8i2&~@ zi{=WyP)qm KJ(}Q ;# `% p;o?yn$& [%' 7x#"gc yxIgD (;5& _IENDB`(0`   "'+/2468898753/,(#%,38>CGLPRTUUUSPMIE@:4.(!%-5<DKQ8!snESX]_`]ZUuIH-bZTMF?80(  %-6>FD+qzM^f.|AHP–WśWŚOÕD;/~j_QT4ZQI@80(  &.6>'[Xf7U`ǟKÓ;3-'&+16>LŕL”3j\W6JB91(  3 7V d=fǢJ0 } }!~"##$$$$$#+9LŖ9f[N0_3+#  mA;_2~iƢR–({|!~"#$$%%&&&%%$#%8LĖ1azJq`HaJhȣ.y{|!~"#$%&''(((''&%$#&@@ e] bff_›^Ĝ {xz|!~"$%&'()†)Ç*Ç*Ç)Ç)Ç)†('&%#"7GmaaB dlŢRwxz{ }"#%&()†*Ç*Ĉ+ʼn+ʼn+ʼn+ʼn+ʼn*Ĉ)Ç(†'&%#"0J“nab"b_Wuwy{ }xqz&()Ç*Ĉ+ʼn,Ɗ-Nj-Nj-Nj-Nj-Nj,Ɗ+ʼn*Ĉ)†'&$#!~.G e`]U `Mmǣvvxz|!~mB(vgr ~,Ɗ-Nj.Ȍ/ɍ/ɍ/ʍ/ɍ/ɍ.Ȍ-Nj,ʼn*Ĉ)†'%$" }6Ab^1bz*x}̭!ytvxz |! bǯ*wm$0ʎ0ˏ1̏1̏1ˏ0ˎ/ʍ.Ɍ-Nj,ʼn*Ĉ(†&%#!~|>2`Zauȧ=suwy{ }{j,xo'…3Α3Α3Α2͐1̏0ʎ.Ɍ-Nj+ʼn)Ç'&$" }"~Mi`M`9wʪrsuwz|!~x-yо(vq+ň5Г4ϒ3͑1̏/ʎ.Ȍ,Ɗ*Ĉ(†&$" }{6:aUd d̰3qsvxz|!~uPλ%ts,Ɗ4ϒ2͑1ˏ/ɍ-Nj+ʼn)†'%#!~|{O•l`Z`e1}yȩortvxz }"td̷nw/ʏ1̏/ʍ-Nj+ʼn)Ç'%#!~|z76a`_Portvxz }"spoh!~0ʍ.Ȍ,Ɖ*Ç(&#!~|z%}NaU U b϶'zprtvx{ }"r|è?n&,Ɗ*Ç(&$!|zxP•m_N`J'uϴmortvxz }"pȰнot'(&#!~|zx<2~`_n@qƥmortvxz }"p̶rg {(&"|zx1Ab_Qcmoqsvxz|!~qмls)'#~{w*~L`acwɩP?1${vwz|!~pEm'$ |y$|Ua`vĦqȦ`ĝ_ŝ_ƞ^Ǟ[ǝSřSƚQǙQȚ'xe z'#}yx`Ý`U`xŧpȦbşbƟaǟaǟ`ȟ_ɟ_ʠ^ˠ^̡-|=o,)%~!{ ycş`UagyɪeƠdƠdǠcȡcɡaɡaʡ`ˢ`̢0~k v0.+(~${*~\a_V̮gƢgǢfǢfɢdɢcʢcʢbˣḅ2wæh,731-(%|2T`_nEεjǣiȣhȢgɢfɣfʣeˣdˣc̣4!r%z<Ď=852/+&};Lb`J,xlȤkȤkɤiɤiʤhʤgˤf̤f̥9ҼIq;851MJad cvɨsʨqʧpʧo˧n˧ņm̧R;5~'yNŖY̟X̞UʜSɛQȚNǗKŕHÔF’CA<:65qǥq`Z`Ktʩt˩r˨q˨p̨ǫǫbǠj>&wPÖ^̡\̠Z˟XʞVɝTțQǙOƗMŕJÔHCA>;8SXaUZ`ӿ|ʬv˪u˪t˪r˩q̩p̨ǫ c5&uQ—c̣a̢_̡^ˠ[ʟYɞWɝUǛSǙQŘNĖJ”HEC?=eßQ`U `o¡y̫w˫w̪u̪s̩r̩_Ý?^Üm̧k̦j̦h̥gˤeˤcʢbʡ`ɠ^ɟ\ȞZǝXƛUřRĘP–NKHFB\pĤ c^1b"a̴ѹz̬x̫w̫v̫t̪s̩q̩p̨ǫņl̦j̦i˥gˤfʣdʢaɠ_ȟ]Ȟ[ǝYƛVŚTØQ–OLJGSʬj`]aBg϶z̬x̫w̫v̪u̪s˩q˩p˨n˧m˦l˦j˥hˤgʣdɢcȡaȟ_Ǟ\Ɲ[śXĚVÙSPMKXβ&vabfjϹz̬y̬x̫w̫u̪s˩r˩p˧o˧m˦lʥiʤhɣfɢdȡbǠ_ƞ]ŝ[ěYĚW˜TROgġͳ&u``Ha{ũ}̭z̬x̫w̫v̪s˩r˩p˧o˧mʦlɥiɤgȢeȡdǠbƟ_ŝ\ěZÚX™VWzɪȬja])`Sӽy˫x̫v̪u˪t˩qʧpʧnʦlɥkɤiȣgǢeǡcƟ`Ğ^Ĝ\›YnŤѻ` e_Yc_fi϶{˫wʪu˪t˩qɧpɦnɦlɤjȣgǢfƠdşbĞcĞrȦѺrĤo``0`%akiѺͯ|˭w˪rɨqɧqɦsɧwʩ˭ӽӾk+xa`Ja2``p[ǫͶͶ}ƪb-y``aO])`za```_`_``aBsssssssssss?sssssssssssssssssssssssssss?sssssss?sss( @ &,/0/-("  $.8@IPUY[[XTNG?6,!*6BN<&xqFY]__\XkB5"bVK?3' ,8c=]g3JTĘYǝVƛMÕA)zf]Y7MA5(Z9?^hObȠI“5-&(.4ŠBőNƗ;g]G-O&_Ca1kɤF"~"$%'(((''=ÎMŖ%{aUK_C eWhȢ.|"$&(†*Ç*Ĉ+ʼn+Ĉ*Ç(†'/Iŕ: c_C`%a\Ty{pq{)…+Ĉ,Ɗ-ȋ.Ȍ.ȋ-NJ+ʼn)Ç'%?9a`%a7rɧwyyjè.yfx-Nj0ˎ1ˏ0ˏ/ʍ-ȋ+ʼn)†&$IÔ%{a_Sj̯-wzt[`i{2͐3Β2̐0ʎ-Nj*Ĉ'$+N•h_Saj Qtx{oͷfk!}2͑1̐/ɍ+ʼn(†%";=ab/pϳrtx{pim$/ʎ,Ɗ)Ç&# }Q×hb/`Mbqux|pJq%)Ç&#|@-{`ayƨ9qtx{o2|r$"|.Eb`Ϸ'zqtw{oȭn$~"~'Qb`N;.+,qm!{#|^Ý``dƠ_ŝ^ƞ]Ȟ]ɟ(wm$|'}fǢ``sʨcƟaǟ`Ƞ`ʡ(x͵n,,2bÞbaͭϲfơeȡdɢbʢ,z;!u54.?Za`ʭiȣhȢgɣfʣ/}`q9@:60^ĜA`b/6~nȦlȥjɤhʤ3ͳn5JǖGœA=95}̭nb/_nɦmɥlʥ8ζn2QǙQșLƖHÔC?:dƠiĠa_S'vгpʦnʦLиεj6XȜXɝVțRƙOĖJ”FBNѶm_S`ku˩qʨeƠm@h9_ȟ`ʡ]ɟZȞXǛSŘPÖMHFҸDa`%`w˪r˨57Siˤhʤeʢbɡ`Ƞ\ǝYƛVęR–NLΰyȩa`%_Cmҵt˩q˧oʧlʥjʤhɣeȡaǟ^ƞ\ŜWÙTcşˮh_C_C`ku˩qʧoʦlɥiȣgȢdǠ`Ş]Ĝ\ÛҶP`_C`%`&vӸ~ίpɦnȥu˩ΰֿӻn``%_S_7~ˮtť.za_Sb/`a````a`b/?(   3FNC3!7]:~O[_Z|NY7B(S^nNbǠmͨ\ǝDl]g@$`bJpȦ=<Ɛ0ŋ<ɒJ̙cΤ8b``Rv̪q dm#2ː0ˎ2ȎX˟;a`S&uҹ)m;k'/ʍ.Ċaˡo`S`m¡Wyj-zt(ÆBđFa`ޓй9xktäl)bŞa`Q>p_mϰb`޵{ͭbɠmbrF|̬a`кվhɣo'u2Lƕgʤiàa`S8y̬(w3~&wM”VǛWŚֿ0{`S`˲7 c/{XÚeˣ`ɠcȠ׿pģ`` c˲ѹҶuͪаӹuƦ d```?ѻ?```S`` c```SAAAAAAAAAAAAAAAAdist/copy/data/images/PaxHeaders.26361/16x160000644000175000017500000000013212233027261016707 xustar000000000000000030 mtime=1382821553.421046942 30 atime=1382821552.785046922 30 ctime=1382821553.421046942 exaile-3.3.2/data/images/16x16/0000755000000000000000000000000012233027261015725 5ustar00rootroot00000000000000dist/copy/data/images/16x16/PaxHeaders.26361/extension.png0000644000175000017500000000012412233027260021506 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.417046942 exaile-3.3.2/data/images/16x16/extension.png0000644000000000000000000000122612233027260020447 0ustar00rootroot00000000000000PNG  IHDRasBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<IDAT8OHTarq{&>h&ЕT ڵ֭ZIڄ Dh? E0g6Z#:84|~kf:pWù֞?8NN)u/fsep矖llluZGSEL$31&Ҭ`aqboz/6)! H̄G!DAc4pj'`eНօ3ei#حoRb9F4MHuP Jx[KQHkΝt)2a]] q6#ĂXg)JXա9DuD%"Tw6v񢭭-%=nj5r$D"RJsh:fggeڊbS|G)WDbP(?2A</twwe_܃VIENDB`dist/copy/data/images/16x16/PaxHeaders.26361/music-library.png0000644000175000017500000000012412233027260022254 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.417046942 exaile-3.3.2/data/images/16x16/music-library.png0000644000000000000000000000066212233027260021220 0ustar00rootroot00000000000000PNG  IHDRasBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org</IDAT8=KPВApR ]koȐIpp+uADbA," ` 84r9p:'J|ZVPJuhPJu?p0w7D8@<+p sR꬈eqi wQ"IE.AJ˲8o?9Djþضa^?YS q %6wςj=IVuiyn@|V`2k^i`a_2 ϳluZrw_}IENDB`dist/copy/data/images/16x16/PaxHeaders.26361/media-playlist-shuffle.png0000644000175000017500000000012412233027260024042 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.281046938 exaile-3.3.2/data/images/16x16/media-playlist-shuffle.png0000644000000000000000000000131312233027260023000 0ustar00rootroot00000000000000PNG  IHDRabKGDtIMEmIDAT8[Hq?(emsM|R"|ȐLD}!%޷1H2NPJ\tca.(穘 DIRll45bmbl<bqϼ~ i?AJ%Z Ðd2ɗ͕?AȍӵsE:::"FJ_YޣF`{e5ha k J)#hMDP.cLzY\Z@HYC3dRNP C1e?DՃ8Ygk@*Չk8Wŗ-Cݝ_sDd2Y˭##RƘh3?= >LIENDB`dist/copy/data/images/16x16/PaxHeaders.26361/genre.png0000644000175000017500000000012412233027260020572 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.417046942 exaile-3.3.2/data/images/16x16/genre.png0000644000000000000000000000165112233027260017535 0ustar00rootroot00000000000000PNG  IHDRasBIT|d pHYs  tEXtSoftwarewww.inkscape.org<&IDAT8uAhGٝYKcm,B-9E po],G ЋKnJ PC%V"LRT7 E P+ب* JN/8m}>8>>}k;3"(^jeee{ss r.X^^v: z7>v=C)A' XV@߁R=u)rDF"ry!?2MS J;[PJP(۶N$RtC)ŔR۶m>TJRT*H$=۶ۅBa^) TR`(zZTV^978F^L&*|(z* V0ABg2Rawsl60JkLLB^O2Ʈ:6Y,i}>ߤ4MeYYFM]_3Ʈz=I !D4~k]ס:4MC7>x !`}~ppjLMM}F){<9GUVbNӴ~ ЗRRjbf, Ïuԛ|>=?b{bRRЧT:.1:[rw,jreY\.w[N:.P> GGGpv4=Y]].@ ugg]80}Rv#`Oz Z5u?v !\\\|bdz??9_: J-"IENDB`dist/copy/data/images/16x16/PaxHeaders.26361/media-playlist-repeat.png0000644000175000017500000000012412233027260023666 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.281046938 exaile-3.3.2/data/images/16x16/media-playlist-repeat.png0000644000000000000000000000112312233027260022623 0ustar00rootroot00000000000000PNG  IHDRabKGDtIME}lIDAT8őkSQ?$$t%:)QA$!1 *,`:mAJ,uH"!vҳ\=sv@nk?csugZu(c7_]VW'fJ))%R*Tl%hԋ>=[ ۶WG䵫׷,mw;Tу'Τ].h4B%U[@XZ].25`Zu*?\8RJKϷjhLD3 -: l@^G)zu#|KK/é i&ӗ~.gc'[ipyZ54թSʳ>q$Zؕ\6Xv1y!qݟD!`jzoTJ+ܽeC5贲x8 ߘOD?gIENDB`dist/copy/data/images/16x16/PaxHeaders.26361/office-calendar.png0000644000175000017500000000012412233027260022474 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.417046942 exaile-3.3.2/data/images/16x16/office-calendar.png0000644000000000000000000000105412233027260021434 0ustar00rootroot00000000000000PNG  IHDRasBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<IDAT8AkAȔlPh9ymD"zĞrw{? ŽzH7R ["[kٙdXh7߼̼3Gv.a_]\|8|y~}|~yrrQķ8%nooNOyeXSZ$xZx4k P WW=?!X,> 0HI)Z& C\ץV.a&dBLj5RJR c N)JxbnjNZ"cDQx<^ST۶,kg|σFAP`4Q.V;wRd28 @JIJq!čfpi^َL&%7].RIENDB`dist/copy/data/images/16x16/PaxHeaders.26361/audio-x-generic.png0000644000175000017500000000012412233027260022452 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.421046942 exaile-3.3.2/data/images/16x16/audio-x-generic.png0000644000000000000000000000064312233027260021415 0ustar00rootroot00000000000000PNG  IHDRabKGD pHYs B(xtIME 69$G0IDAT8c`0b,5g`Z@H3^2_  ھvzg&l3~# ,l*ÿ@&0000t7^:  Ld?xpa\xIt@V, ˳0000dZH2w |k'ӧ:5- 3U~^u~ne{O2s2ga```aȰf33;'k.[ɿzOg`a{p[wo^<}C>''L"b,* \axCWy9uo)JIENDB`dist/copy/data/images/16x16/PaxHeaders.26361/exaile-pause.png0000644000175000017500000000012412233027260022054 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.233046936 exaile-3.3.2/data/images/16x16/exaile-pause.png0000644000000000000000000000145212233027260021016 0ustar00rootroot00000000000000PNG  IHDRasBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<IDAT8enG";A8J$9MY(M̦eQBoAVQ$z Rq;ԐD1ğa0hG={ϧ';Jy!(yτ4l]3ƬA\PJ- _Lh=0_ÝcLs@  Zsy;!Mz+cLSVWJ-f6e.o{ϩn]s}^z.nڣ2ůZ'L#Q|);tmgȞ/pA?C"._};Τ "PΨqD:FJZ7u($L"E?aZ'pOc F]cstt y&vqgI!ixOĂ]Ta*]v[ )Vc]Ƙ~&xSd|kƇ&7~t0Ƭ$Q)8}u0Vн8B ThiWj[kg1́]X\\fޜr)"C*ۥ>^{uZyii: B sWSp{~fZ}rjh!g:>w1_;TCIENDB`dist/copy/data/images/16x16/PaxHeaders.26361/media-playlist-dynamic.png0000644000175000017500000000012412233027260024032 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.281046938 exaile-3.3.2/data/images/16x16/media-playlist-dynamic.png0000644000000000000000000000103112233027260022765 0ustar00rootroot00000000000000PNG  IHDRasRGBbKGDpHl pHYs  tIME5IDAT8˕?K[QsXFƐ !!(R(.B-uӎY%..EIrcJFr}ˤqU9ppOiqP8YSmseu+KkP85{,.ͳFٶ1F#CYjH$ѶmBFJRx<E[ i|>_X*b{RpJ0M,k 26~֓;`Y`0d|dJO=(/ 2v[<AhrF}c'&gf"9I)b:5=8uh4#rǑR I\~=ZZ^|{|4IENDB`dist/copy/data/images/16x16/PaxHeaders.26361/artist.png0000644000175000017500000000012412233027260021000 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.417046942 exaile-3.3.2/data/images/16x16/artist.png0000644000000000000000000000107712233027260017745 0ustar00rootroot00000000000000PNG  IHDRasBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<IDAT81Q?YCFOrw߽{oFkM $p';ZkuC)1pK)]=Z+3,z/8΀q3!ĉyZMq#`q#EΘZ, (X5OBvL9z%a1.1(fكj$ 2Nl9*J{d?t:l] AX|A@)ZJoA(F#^8'p Ȧ XpX/O[֋fc] DQd5Zx<IZz}8[ZK;pjB|Ry; ޴=ԳjU(5ԏr2DAOl+]hihyIENDB`dist/copy/data/images/16x16/PaxHeaders.26361/exaile.png0000644000175000017500000000012412233027260020741 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.233046936 exaile-3.3.2/data/images/16x16/exaile.png0000644000000000000000000000163512233027260017706 0ustar00rootroot00000000000000PNG  IHDRasBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<IDAT8eKh\uȝ3n_ j5! kO|EW8a)#~ۼ5MHRCkh8P=˥mwq.[dɋwp&{RaF8 !isݱO^} ݯXDIE:_H*\c]1"0-ϣQzuul B@:˽7<1|qmVA͢h)Zj]}{ݿ}g$IvW[W_[ݺE }[.]FHAVM顇gS2=݈ ԍrʪR2I "j0t3GLjwv4/me_^UuhE+ZtmZ'x擣PK7(uc8z ]P)3 "g`0`FqgplfC澴 Lԟӷl{ԺKhE+&{>85>\2K'^܂D@0kZI-݄((*Cq .SB0qtf9u/y̩@6q+yɋ޲XVъVB/j]=[@IqqWA(JUaT2naHDN90'ZJԉ@8;ׂHg,77n^s'bVJvד=Z;r\J<OsSK0|@JĞTAQ@ 8%ì&7eՅ0VnFg={r~;E9±p_Y?zYav+Zъ/tGp @bM+dܫ3P*޼goU W(2}ZJ!ZIT^ ۷#wv޲@gמ:\{@wě N,BqRYZO9q ʉs\t'#fs0صz.uz8: FIuK.y':6t1T1UfMuf(7{@/D¹pzue.5*E<\!vRmVJg֢o:#/Tt s̠/@q@|rX弆ke^PlɃZ A$c:-'̳Ŗ]O1BԞ@B#{]xJz42=}9̓(ӀRuoѶ`@bϗ{'(KK$xnj'+_r䷲ihi!xK_@ʟr]\̽ϊE>PH/oKKmp-Z$־y8:F(GuNӰsGf$Rz~D^X=y}QWQgB٨"rsuzt|]7)E򆥻XGN%NZh1):V4Nؗ &m,lƂa;x[k=]\~9PD:o;!B8nvzE/8~Xw>~0S8<04@`2>bX;U pY@Ɍsě)N:amߥ *੓w_B ;㯹'a!q{2HC*gΌp 4|$ ,gf>B.S P1p&7My9]?ׯgu}DT_ 08d6|:fv;N)̌|242+]v8Mv2s71mhP<+uܫȸ#>J#H b(6eL `= 1Td \kKcP$@gr\m?ur\YC_7oZj̖^?%UF-y3ɚ sN y-kjg9G6B cc{=5sw-c7ο鶏h1λx1ncY5s{NyUL~~%G|-ܟs{B]t<0k%&bn&ypk7=9O'џs%Dt>yN2&e,Ϣ]!$a;Zct3KqD͊$)bLS%=5d3%IsՊnbd&.`ܵbQ!X*{kN"d5|ľ|DD뇿wR(;,2H_'k3xƑkSIu?&t)41z%NI(2с-%, ahN7s_1=a+krN"̡mZ#E t}o)<[᎜5# D\8u;i ;:}W>ʖSwt W#ˎvJ;{ Q`}2/L2,82 $j@9(^;,z7'q8z5^}{WY ڎ:υB(>XEGi瑧O} ȚN]c}asSwGhV]hKً׾hCk)JS/m!AGH[*=!efm^ק/x2 33^sg!qO>}u(+0> =)e s\Ji׈d߳Q%lJ\Tb"BX>s}{킭JMY}r9[w *:~+^}{QRXncJy F2f؟9.{ ;abr|ATS(uֿ9MϺu.BЊ>}SMomۯqs%w9mPL<{[F#-< Riog NrK~u6Cb3)y/+h<ߓp?ФͻWg˓#Jj;-97}@ywAbYcHIL~C9{>MY{ .nMc#aK7=~k#pW>.I U8& '|VF:o! ֌JXn>٥(Qt'_g$95ق1q_,6-kX=@3|,xLεX`&(ݨD?ܪ1} ۼqv,]/9 gCX"#]Sv5-ލA!ُ>PA1Mv8&b4V2Et"i߭MAVJO1jca#Hr.,[趐 eeh Z\jjeYkJgiG՞it C6 O,Db9ʣ$I%nV5g']"+br )6$x~c{{q]&S}8׌lϒ I||7YD[l693 Fdm65YOYuc(.4Z޾`jʥNmM -OmR_0b>S?#3o,4Oo" ;ԭOh [gx9롔k1V^u3RyFi[`~PR0 #qd@S1ʘ{z3+$`/BYbK- Nq W+LW 2Ier"{v /g0Zbvq!{ņ\rQ$.q͗yG[LZG~8f.ylG)y}:3>q'{,lrCnj#0wkf089MApP,f'̘ӜpI)q::xӛULZ'(NlR*A-O2;ui Mҟ^:7MY](E(l2Ba9(0^ȣn(XyD9):GZq.1Y2ɾ5SM{7WD9c"w (b1Fʳt#yL4$Pw{9sjFE&u[ptXZ|4s@ĐO{@ۚ1ѓ \=`ߵ}LJ?v[6W'0]?E*לNxmNVp&!ɜhNQҜ͜xRO:.8&TT3b1w}=cx3A8k<ƈ9!"G}:LGZ4=-y>xB `HB;&98,2-Kz=!1{|-=;bhީM=q X?F~Y`Lx 'xad֛%?~T\W]K.]t86IP85P^Ub$-}un9G9xV Nߑ2FKphA$hbk  >&H6"zXnnOH%*%{efI:Fr93rORLMODπxoЊݺ LbNu\j}&{CwɣQk1)yc(Z{cwƄMIğ|rQD#sk7WI/oDGA|\oPCBZ୯ncKNpܤuf=۵*Sb |V#xUuvv8l>~Bw=9 ̂lHY^iI?cu'u^u2 [x$5@˳og̉qrf?ꭥ\!xq ϝsQH@Je^ᙇ`L ]-k_Ƿj<|lgs7$rʙp[ v 0bZhYdr i踕^ac(:I~2`L eB ~kGѰWT4ٵgJK(Fk bp?cre٣K+s~+Buq ǣ2 V)$V&Jykmb^|e'iwJWK9ay>Z4y:蘏>be6-uC4SG"$frd&6ћfn7VS{AFCDkcL׈@ ރ&U bg?naj$3B) U3މ' ݆Q*Uܽ:"kuLGk!R k9dI݆K_ 0S=NkkۋR7{I$:&: L9).PQ,BL|?JE)*L. 6Ԍ[PNquCB8.#sʷ7T`$YK_{ao{v`7'> 4oJb a:0q60־6H拜Bp}1Q<{F`d]VVQv<Ӕ9sFa8nn]q|ܜz,Ν:b8 PgP-YhK,T@&'{u`RQϔA#4]_KCէpa!+©.Oc i>x]5by%XEAm—ctR~,b{,@,Ⱥ|XCa2v3qA6bF6f#u$02-^C6P4]ۘ:akϜ"":\Q-@Whm[FN6rs=JC98F'C# |%.v&$e %$Em f 7a@vlPiI9 SHXI|r9CGI(*dCbpCrd録aP{tٍDE8pr6oA3(ʁY:%\KM`oD_i<̧]3 '0p=]<~%֎nV*IGzx%dG 9& $6ڄ8Q݅ W5/đ]XϪO?~8UAw>BJA6ϳp*g*$@TM8Y~L2%©4Y`7v}:K#8\4ү!" v!YFBr6>+Yي @A _F;IL I~iA68 (sbdsQ"3D_ IDAT ;@} tS~(gKpZd1dx<etP %#}Fb2%|Áo9uAvjf-yAU L=8؟5 ᅛfQV[QafǸPl}Qof +W^ K9>t/9͉Gqbtc'Mu!\ (E8ő$H;_;j} J)\vSǷ>}V!c8p\jS;j)FXǥPJ'9vo11ܸph(8!.kIpNzd$.5p Gts sBKr%Z5o&ƢY؛lCP Ad}W12!HQ"X¹n7_2b]Rװr2BȨeid*^ZDg&䪔e$О$XZ'gx(jaI0x#!Yr!1YbxgF3<$P3:v<O܋)l 1cjTSsA $I 9M$J(Wp{zqK\C]#"VQmQ>(VDMAmc2Ww`=_Nh.QBxY[G1q#Q|R'\H(E:w `!%IkY Ύ7J 9FaPvtsX MWG)Y Pscn)Xo3丝 B(X-bM_|iz@~#$!CZqvn6"$!Ć[Ω=2)pG<͂<ϑA6Nnrs6JJIе|j\p0gQި܌rb moFmF3_y[я+׿ ơQ*Kd`ΥzZ`bx[lzե5JG]=y¯y~ _.:-<}8xb6múGys3(6-REIIy Ighp 0Y<}wtZa `Ω̲`S`8G;M]r>/]ʼgLK)+ݻpZa('m5ۅ t.#3KUq0VޜRf_qa/WaXޫP~A ;ztYBFmoilf:ce%R@pvCjO{ϸ-urL'BanyJ/-9w9qC"3'C)i5ëDIE"qd09sbͲs@2H2'!aX"Tk3j;{As * -9A $I+Ѩcn~Oaiya%~y\h4cxhq>% s4PxsnPG>SKςYcUf |مAhOkM ;14kR4ZG.u:qaLMi]r PKrY'nt>['ĶH}2Զ}݀vA3\D!&`64d_]ݳRzNHseU'fe%䊈ZkQ~:1cg9ZK6dKg76{<;b3bcWO:#NJibGHL X؆ߣ}?1ܺ'YӃ_#Vx4 QdJqj8^I3Gs9/;CrAn& (wq|a'HQۜlmd5 0JZ#Nfq$t˭{_(\ei\P1eL"ƙ`A˺`3hoQ)caVI .jR :-H l\#ڤѦ?f5(9F`9Ɯo4Zdk^K:$,tNiL2cT7d)S{"ퟟl̍]g^#'{ yI=H֩ΛH0 {V~c kO#>Qki=co XD,OQ̡NSP D8Uy{m|$47Caӌ#tv3FՑғ$ip1_SX\L3>t!Owx*x6fNJχrRO$P`sˢR{`/@Og?ameB !lb=g3+k(4BЈBWŨXJ)j5# OcvœuJ8u]_)0 >eN"JK'EVmi+pZi؍Wj:fmΑHvp0u?J85|D? s9Hb5K_ wJܯOCO9J %j+C{^rah'[gܰsu#Jr` UmfѦPwg9 z\TƮqJr :9#t~"ۋer6|*DQ.>o8|fOd \ O@Wf5d=e@܋]'ZUOusKU0F/o:үa|p+fs߽=_ OiL2&DG{Q$gl-Z? 2ᯡ ӿh8B?R lh(-"ʟ݂SV ŽzbG($H2,|SKמ958цG,0fD{UA$#^gnإbx1̀g؅ YZ҉3 3 XЮ-"M1Vq.Mw"DNDWŮ>b2'6ב5SjTlbØq8EmP3;AsL@ԝDh% hFW8JD 83= >͟PZ̟cOݍ'}bp}$D8]H+ yEV8]͡Y!Y8E@_ ECFɠ][3^RGѵ/ν4󃥱gy΍fN:j9aGR# [E y(d&C=Is_jp5@:v+AK!KGۓ8tZTTV8ȴx GfiT:*GGGnzӫǝ{ߏqj(Λ؊<~ ÓYd5AXՎa{bn4<~`4Q2j= 9gBP#(,LK(I9K@qIs=4G"*>/K94A1 Ksס>:(#aLPh BeJ#k . G2 I/G""p?TY{6s(ggRmq(g3p(#}WLu@9/y8yyVһryYU+0н C9Ak(ɫDet%9A,m%Is WV8yV2@YL]]GO^u ~ww8q[ DuPЛa*S̰fj&}syC1ҷ04Y;XԐN ;ڳx%!D\A(J0֒ Bf[mWA]cDz <'EG =)k,:!g]++ YP){EhW.?WX$hJ t6ֲM`ryWqQ 1n+(gCo[Zsn(bppOjY4 >;g<]9g|Bd,*xfOsL0a*qpvQͷEa`(EPb3g|:ݕ!k=v3Q8r'TP݃~߄_S?>yaƉt2 ,L\m) #d饍 o1  )=kk]~z~lHҸ ^2/ܤN\Z&'2# "K6K DxKn'wrf.9U4K JL6G 3Sr"#R3? P5liaY0aF1.:C>hJ8>TGtGh ˤЁI}9ϸIue͜rx:)";c=PW@s"/\#싙Bj8tw >P 3 ?LU&ޗf$0iQ_̳f'/ rw%-$2]EiBX{_B` jӮLsKÄ+M:lM?r Y`K7PHJE`IuyJ˄EJ¶ ˔K^&!{*8}晶/v,}J!<̾4 51dSQwρ#(c(ӷvU rXRY[O#?[s?ɜs;tGR" c9l6e:LtPoͤnΐ(BDS8NX*w/xq](|gfuaw-cKsXQ6HXdrUK+j4cg-NǑ'zO[" ­4hklDNd鳬ޅȝY#,8 ĉ؉" D }!H/DQ墓i$< KS>K>>KfOͅ_8?H'_^jBxF9 8>IoNW:8FWG%Cx0#K #;Crޕww`2g#]!0 LIı4 &y U69nŒqhhr MfqR%'AFxLU+@Oz+`hqpH(a@ 8G[;Ts^[g077Vs^wm/V_vs{jֽiPYs*cr@f,k4,,7#P*>*f+:H@BZ Š8e9sH2'APStI&Ѫ,c84Cd Jr33Bz#5\bG#9AgDf:n2(QM)4e0ó/L$׌²mֲy=˨!״tA!2DY2OǑb(mזy^g9"ִQ9cvXc"iGvbπxHZ1rGǰog`o@mIfvt$l6&\(^Ǔ{^CQCOwz{a e?/?4֍mqLx-r\E~ףs+V]Yv5j2ș87"Yqtl(*%3 K?e p%zOr)͓SxuJ\<GAvd{㖐8i2gV.Q'A$ #ޔIL!>AqDiCE.sp/9c*6o$DzȠX8Sۇd ~94gʢI%m)N(Ge2oˤ8k#|F>ڣraLWO`{>)=SBr,m΁Fga6꺺rjr+u~{9>xz> NbͨT: .dJF,!R[U0kT'*.4Z5}kӪ+>LQ3JĆF#JJٳvBbI;6a;4UpB?G3%"$GEt{P<83g [m?m5PhyFZN+7:qT-㶪>DkU :!oh)tYdD1'BNi!F{@'Y(<hΑ$yp^ILG˜d*_6΁;<B%f 3ߧOWO`ǧLzJ(4|ڕ v=6pf(R1;;M#NZMN}ـ7}ܣ,>VO`ȘM[?݉ ~lH"!tWh09M1Ik]KC)kc8/#R`32d%%Δ|H9Hl b3 D:ppz DY;PWJ.-[!wSH{GXE@{]3>CosHa SShPBj#T;CPk3f¢J_l\U-v M̥{~l崽}o;+i;e% U;f8+!VM7?ọ{̻vd `f<^db *yN(aNv@hAC4m<- ȾsPG+MeU)GZp9@h"Ț gޓ0nmBުUgʘ4( N؜L3puPťT8C(IF&zPߌfñ\Ś>(2mЕ%)A^$s?J"|wMد]\=޾O6Q=ʎSl t;DJ3W ck0Gts sj\~ dL(1,hCNut2iǂg׊>5U:vt_Y(;?y:#ah0=~ܑm4tA:(J_8yк8qDg5sRQ`5N%w"dn!c@P,4bC,=_6>oTtA#_~=a 2YS%dVDZ F=Y3Csa$s?0Jj6 +%j?s V8o եy03z⿼3xƟMþ5fWp@b)JO:f:1ф#(g١=v¾H;}bS,`A$HNr2K~$``̎oqTaiA$Szl}|h!ߡ=陪HHTq|'Se7.KlCT*O"`w]gp @[ +[ڦ>kTΟi7m3K?_vy׼y[Wl}śo7^[֯׿W7lМE<y sb䖮'RgJ"nzX4!69`@ q:%A++SCBo?ʪ1sbq'b|l"T,Ht F(fkY9%Χ@2uODt5[_{jUxmXEL :;2eQ?)poS̕O/ ^\:y籿{7\Ly,>6s>:';󽑼6xMk_9eo`gWnTfLq#I#F 66X@"Pj':;KIJ 2ج_?NlBiJy"CC:1K4]w?]Ɵ{dž;@Wgo~}GW 7?O>3U\cmn|buk|k ]]ݝn'ZlQ$?)gƳPfߡ+ܶtKo|߸w~ّՃMȑ;VjM8p (Ud_ LZnk6 W r6kRh);t`r WfhVHtXO{RV gFXPա*"0ܳ gW83 CZ&f040"74J\מ~7՗Qtd>;oQm fU|j8s4u-y}3k^-GyrŠ Y۬,:4?cʑ}ќ m-ˉn i8,*se` 73{6~a{( kr \-˰-K! V ~h3>Z*-JAsmS&NM)-[ϯ~-5 ok_{8~tko~zWF'??Ʀ͚Ħto?/~yoq묝0 'E{W?PO?I~67?' 6O%9dvYf @KRn\`L9v@B:Gf08J39wvpS t4/n~<҂Z=:x@HKf7 :tMH g.8Q;ybP5n)?=cyhԣA׮~ɬLek8eb7>y<}5 ٴ %5oWV-0ژ-}ґwۇOu'K#7,TSC?=`hsCE4tMwF`umK.#1׮">-]}ռS` ]O'2rӋY[sn}iGp[\O~K?xO غ=TL$g̔>/Z=?yi[ٿX/~wߝft\2aɶ֍8.鴴evk3smveL‰`n2H'm#SZ0JM)JO@%re=֕rJ ND"f$rsVd1Mb,!)obL:ͩsj{t7u& ;7ٿ ~37Arfmn9AH<Ř PR) rLgpq25^o>TS_86\YTɁ}ֲqS6_[?x_w'':fJZsGNT`KɫȌB+ cqϮ}Iк{z`gDU#7ώl٣Txk7ʑr&<#OlJcjicC];{ݚۧI3?-k_szZpc_8cSQ:oRl=CD^\4pEX|ƱWLǬΛhtNn(K/O\UV{Odsa#:Jt"5?o׷18׭k^3✮ ՒhHҔ~ |lo_VZcG<12oN'3}Bk6kR}P0pb)|z/cj0FGV-lZ'!*JdB /pE_}t&US7J=Mw6%u}Ste4MOO.jqCZs3KCW/윺odޭCTg8jTlHj&{ -ug_Cu",թMTD]Fa3=-H# eʚiKUJosoykvl@7g_4xܠS|jW>Mt.@ @II-m# jfc;t}w,?wȼo}} 7^U}um E_5WI.LazT_7AحٲecaDXdyGl0!~nI!jĤW9ߘ4gjq۔sh2LyE>d {*Ub[ F+c(Yڛn՛4uĺ@ea@OcGN՝ wi uO.i% * .bqsOm#=뾪RJ[I~2 `2>e3s"rPDvf,*'ZXXRoo4?zˉ|F?/|K۪o}N_vŅ StƓw mFGVN:.lI%]X3g7|UnH>Sۦ=eVy@_j ;Ɵ煒}){% bq]L/(.=CbO9LGtӇr)4O-g <7ӋkעT*Y i6|*J^)uRcCC8H$S lsM}BߦMoAN߹jc&^yݣ[3ۘda:t~zbvoʪ7 ,ϹorάRUI<(!dA4DPwhD h< ccC#ݦ HBj2r_޳W8{Xk}˔tGSYos;K%aÔ+ /p$:vX,Mݬʊ:0k@noM9Yws|򨡑o=9lO\}pYKK 0 51E r,(+Y b#?x]ykgoc?􏎼w?}-xkכ)xL=.C7Fy_z-GS _uNY9M9 P*Sչ9Sfz9{mBM[0Ed\x?cxk7suKW7^1߮Mui_Kfa~˻V6 &~{W yN^4O}tCvRvv;u<6]="ɾH.(IBݺVܼ[h&x!{v_\;_xݓ|^bOLĻڥnyfKZ>ڴ4‹^ SKwkL9=teghخ4"s4gѥ;7z64={hye[k||jGCG~C^n=<u7%U[o|?wcw^~˟g{q<{XY8o{};4>_zog񇟞ss3W/.p&?cs}3K~O8O?~w?O?wF˿Srސc.; Jp,k?s?k?[WWך+WWŀcg)#2%E^獉8s"Qs&!~1s_¤4k_8p>|>oJmFؐTPRS%F<\y!NHN J:phhS;Ǹ.Ǿo|ө4 &1US'~4-ޏ]K pK=sJ_Cy ѭ&]MR]dnE -V&n!3o;8w͸`eTk\ۖ^6rE Ō97ǻq8.~cgn-K IDATՙ[nܑT~=/o{Jr!EXl's|׋2ݺ_{V]mK;=]cǞ|tAto}wݮATB>s~﻾{=cS_<˿[{W7K~Ϟ]מ{?\4o{˵oy[ l=P{'PG=ݱE<(z}/4mW[t7~?<؉Oco{׾߸"E)>3Ԥ^^g{NB#D RB! Ɇ,E͛ne5t&z˄^ JC9*>E֋v :M%.<(ZyOwuwo+_ңk u 5:.y666W wa<š9'O!~? pMRe9xh&h%t Y*䞽'с5nCLZ(\2pZi,/mG3ֶ.O+|طf}+5yQ;fW&`# AYe#ʡ>0O=i(I>l _'~a[7_WƘ H(gM>[D+P3T"6b._h9z߲_qY&/K-Ƕ:p.6|B7wl խY_ $hwN `k`ا5Dɦs_J I4Sٲ ݟ|b ނM@FeasH4>D:2wc`ACJ=Y-f6ZĔ>BqUdgfaIh^)9CTa=`ML5dǜy6xa|h$l [ [}]/th! l&}9A]Pfg҃IϜbs[F6}?=?|Gn(l:kWDD5;>}_i4`qqGf(MNP{Ht$6Č{|jYnRurYxYya d_{yڶoH pӫE*GE:[^ָqge&hĢB"R/{ga1\#Dd3l"2xy<ȱ 4]C(Hj7( lӸ#E:]>DbJu8:C\)d˖N9ч y=.l:<婦<exEe7jG[@4`[O >{Zs8x:s&K-"0[ՓxJg1\rBء{|b$XX\ib0&qT'!ڎI ErNf?j(TBA%wI6/=g= 4mRne{䓷gCjjo5i=&Pe-JF9䄥Zll%+_Ai(3iǙSK*x>{!G۱a9R\ efOgKYc1"E  Ȑ&kX%CY=~£gGw_ mWb&41#/#is hއoc||Sسo7n=z3VPKQ)Hgr9oZ{ձ'՘I6\d{IŤjs)$N# Jь9'h% %U<PUdEwJsM[}ܐ('핗4oEF0 ?*P=gR4dpé9.qUH?TH,RD:W7.F"UxT[+;X{z]Y^w$HMh ' /+RGf&wZ \}(i)׭2W.<::u1\Z?휥[j^`kup{4My̌fu|?~%ne2s2;DR318^զb1sG0;Z^v++f˃]t#ۧql=1ꤩF6eN64}y:g}IMT6pG~W7{v"=]KyѐiCG{Ѻ9x?K=y/+3l/cY52`֠Gt%RϬFMGl YaYq ƂIS0%\mbR6DL)cyY1maO$Y ƐOKW@zsJRa mUH"Ecrq N:9-Id8@fIlcȫ !\otv9ĕ`gPEZ(-d⼌h_IЅ,I٘o'Eڑa=4=Q򗬚}w}ƇN<^~7`inFiyą7XO|T1 h!"P޳uU]JyPyDY2&lRe+Hv h^9l.:IJ+#$.yݠ^a 9B݂7-bùIh$*T"_X,}-W~ g4A7pu f ҙ`ffmۆf #מk{AJ/1d&6nQ~7ž3Z77WbAxn#@cBAU'3@xֻ-=,SyG. %W8s`EzėN=عjh31;t-EW̥q +EȃɅs8"" A eSjrW^I''x_0Tl!6"5|t.c 6t&1nŴs6s'XPW8yYtC6@ Ghnl}X{94tdAۿzgO.ߏ} w]8&{1Yݤ Wūᜃs{8033ٙYDd_8Rdsۻ]A lLXo6 QaEJsp }JIV E'jAո GRlr4tAbvq= taHl!C%f5i,yE)HcZ^%>.qb+eL(ܬRLV Kk&$8? b$sl`ߐ~?+x(VG`#P(StQxD"12{{`+0XW)0զy + + *׎ڕK4XuI;ڃ] uqy0:tdyd>W m_ }TId̴7{6O[_=NIufQѨpnQLM`qa5WS>KXߺo638xp?Y qAmӑ9 XM480L^lb fslKqנҐf³E{,ICjcLPrAmW h,N{f|>Sr$p:J_x^hX\˟ P>|d5 !AQXQɚM_c#b$ؿ !]0إ,P̯eV &#J.1e]{# ЇgcYd<u)rS)b,H.&BҙH [́JZ? $@KF̩mG>7gZ҆잪|w=3T>aEE,<m8X7|(R#,hDu. qU/u?O!%3aʠ93.?M,ή>O=~|Կoffq>,IQQ[Ŋ(Gm8:]F;e]¶n{揃qi\^=x۫BF J}*UYh6xObmy'Tf8X{L3bJY7`z6V,> >R .mVNe6&Ś N$DF"`rKv]S.;^ ]zoHߏ`WvB?P#lē9`X |'mZ]4V#ȨC{?\h- Kc1}mXR!`Aܧc䟙<ľOď?bb5[1c)oQ%ɂ>jT 'IOs*%$E۝'V=r8)(υp?YPb찏-|nV /IX#oxw_| 5ӿz8>ᚌs1;?~~܆!zFflQIkQeD/±-ܑ}f}tnT-n("Ts$?OAWs[vj$Nc.@>|Eѥ:>>c}ywL3}Py= ^~kϞ'|塓۰wvs45G;+˸xέ=:]׸r1u4p70rv78uq\߸G uvnvG\\ݡpy|PS}Ra]aɓy_;4Vȁ/ŘPSP!_'Q8 ėu9̟0b@Y9p|Ùl3Ł]M6av-HQoF/sN(5 swyΈ?J(N:0?W"Ůx}Cf\ϥ!-ާF]l%;b^vȵZŮ m"5c~W OeeqD*\SiCGx^=ή)`Q* d9{$B{·a&{kVf,Q9>ė?ѿ }U IDATfo4c~kՈw!x{5M~?&⹁Mg8ɐ itv?vDž+'̙V껿iH4TsKt~ZY [$X;9:سk`aqKUD͞&(`LVxXtlY*r#nDC05fjCꣴ&%޷RъC[7N8V:Aj!َkuDAz}eрn5C:¤k}z:jnh.j1˙y ۇgϋdzmwR[e ʑ'ʝTIG[_}m]]DpF!7NℼE>i̾=O3}]\=3?#fafo}a]vwla#4F nbqDj+V !bK o̐Y3{]{ƣzisFVő=`cy 6Ȋa 'f`#3YX}V&m 9R<=uyatTkssƚz1xr\p$P  S"Ζ3Ls1APfR4ՊP ޷"Y]XP=P% T{A$q8J^?EԟRP34X}"'#Bm?ͳc22:IRWٜ-uQVgƈBuS%wz̯<]n옒T+<{ڳt l؅jCP~'F6$ Hȡ\crDF- j3M~-XgkϡXuyYH\vP8qSoz2Ft.4" `/6L{^IbjIzkRh;UJ~>G?FbI`SҟHAZ *ҶMx]l؟lR?{*OŝT v01!fD]@RUGyD Wj^"ñO-fOK{q]h q\xJAgCύl6kmӡiSSdtӆv|3> U?|zqv-lG rڀV殏+;6du~D/ŕ?~T .Z9w`zg zԌ;}tNB.* v+ >"2N'EZI.ݸ7<:斱43{2w ׷yEXf֐VW;K.)9 g݃/BC-&~g頩vdozw~͡i8NNsRͰr*@S*]HƄ릃T%xR>2V^ePD}Uσ޽=TXijR Du| rĐ/UA˝~yBe-!6.FzYY *vṚv/$-t>HB@L'A!@)r@d໤`'e9;K0hB'&u cM06'ӫO7p[*N] VfS|GIOlXJ„篞ĉӏsG r\skךC4qhGk6۶A83 *Yy A SC"`Ob fǓU9HxZ4?Jͽ;4nuLHߪN(pڄv 3{DfXߺ>N*9PdUyh\ܧ$Z@hwi-ʑWlz&~K>矝j~3TzMSh8yM=wzߴvw2|O9h&~&_3|hKCŁ;BuoI\>ɚzdS7 ͵˘|c2¹s'1`Ƿͼ́I8n>oӶ(D5mж} O 镛NۍNsj''Miv7 w4-p3o qy}6`P+>DUFZ`O!QAxKY#! D !T B&~:@0d⩛0Au?n lW?t{v>VG-ïơ;ФfwX\ <& tĆk4vs2f%84=^쥓 `sAj}_sƨmm}&E2-7-m᠇ڶ4툸iGacAj>c+y/+cXhuҸs8cV& DP$/Ư@G391_zuEaNJd}jqbTU6( MlZۍ$ R ebŸ&_b?Om9A;5jHPZ DL^+ n UfÚA!J2$6}8}3w=[d&5nܡj}ڜZLOqގ+wa!mGUlwk?_GѕaB8נ6<Ĉ$e'zVQ eHlRIH-w9:Ah,߫;w "?An;{ܳ~?:917ݩO'07CoABӌ0,ce[9:xsXp` g]sr\j`[ͷmEǮ!i b&Gp.(v`9qZגYa2SY.]Ya"]&iPOX\.%ەg4<9:Xh I~\Š.üJ4;ZM&bRby>jVYfeg1%]C۔-RR_湿¦d\ó%ϩSkUedL:.I7atx'L>q#Mۚ Iơm\iXspO4M:I24 WD HWk-wRO1W +.ß4d5&$U&JxJrz`YwvE8WNS(i2PI`ǰ|ްoֶ=Qxs8JpkB (`%%BQnkjr!V9U_l FIOZ,$ :CVj{x\ӟA]TAp]PLo8]CD:ݱ[skt~^ylյvQ5a`̢iZ4nƵ ucx`2cl73dƇи~pm9jMP`KBR19":ߴD7M8&RqVRY4n #HFz^ŠvjpNLcN %k$K` lb%H^̊]9] ±.k-I]DdJD-ɡ]kKt s7l(Q+|8uӺŊ,s4({P+Ԙ^$ ՞1mkVG`(ĵD>3PR.S3E`jdSYYSP^Sx.&ɤ{^cxuL;瞈y |u. -pXm:vO1!OcGܠ /uF\~s_䨏tqiE@{_چRha`̃ztQڑC_f]zG ut(YޱRaҦԬĀ;My5Wm=v^Tr0+> Fuۀ@Yﺞٲ(k4y'zkлMz\ĵK#.F @)l<=41QrrJl!#v0qCԴ[Q-l6Αk(6|81{#.YFl|D!Mbş8UE`E%΀1sJb3)lVyذ`.֏+5l( *k__D7i)>ͷPpNU(D'H]Tj]%r=Ź8s"Бmc]e[@f.*lk㲈K #83ݯ=OJ7qM8yB96l_$mSމM kOe"c 皾\،5Ũ E0;נiM\6$kQ[(UD邑O\R_q' DA{^?!璜_$]f[[gi+Ct5vΒ.}?D|6Ԧ "8wH0 }y.R_>ņsٍ|= IgG$u= ZDCυ8-TA\k$U{Ĺ'>[O6s$S};I[iVtGn TI՗>sr&JIw1iMCu`]#,և!R, zUwhj 'XULU:jq8bFRثtHzuV$k|MYuqcBO8זdN4єgAV%ih*Tf[sxf|i- J*đ&L8D9"B\q+ZQ:xvjmgL8xY0dV$/;a,&%9:ͯ9#/u$!Ҙt$ WI,?"g {g1Y^TYltrL'12tOY"2FD$b"?({KZ0$C@.LlpD)MJuF]?|іNI0{T ƒ{!ãιĚ]ͩ15K9[sJ@p1dʰS QkR(+OVY쒲LRQ5A_*t{58RV?2a@|̠* -3 挞Tk& IMSYkR$gI)֡EAv-`\V-OU\T1RB\0ge@A~0?0kEg E|8/(svhtde5kFDdDLs«h/ %gZn{g5V 2ǫhq5!$JeU)f^H+3ޞ)as4˕"!UWf;jE5E|J&ɛ -B8RGZyXBXo,ʴ Exm\1vK. XUFUH$U@c"RR$p'.[$rD ꏘR3B~* _i=\o$@M$"$rpXe 311,a\eX &""P'I"{!} tQ䓎hhJjL:,1/r, LnF(q2AiY^J QkH c7e+#%ȵPcҐ4p.8*+(¼ 2* #JIF ŚbX{L~Ó2.o0>9B'^Y>-^1ȨG`Jqɰ Քw^SȡvwE;aàͬ!L9N6ya*bUAEbݸAYI]t l% VVjm֙KQ*, iHJ0&$PӟYa ƩsˬV L\؁4vli+5&,Dl9En^-M`wXХ&b:RM@A|R@'I3ռy ߒ>rUNX²xǹSFvH2[8ʠIlh5n)>Uyl2BQ|@claX6#km1EU20D{x͆ ( U&bH ni (cen΁ȇ@'ZFQ %^lQC?r*{e5X}(+|:W+z+ 7%ګDr^eCWd7[oVY\#DKr-}|7rFYkI @R^|LAѧDAP?P⛡J:Hqmviv9 u4~FV^~$k%d?Ѥ)+%J酲ٔ3vƜnzZ}UO*lbOkAfЀc IJ!V/Ph&[,6eQ)L JTi4y+}#&~&RA4JӮ<+$cS9jV:8:;S*1h-ԞOcWǺΐ}㴵^fWة}Sۙf4? >ŕ-Ecniͬ}f@(ղSa0lo> Ob\"-/2z)3+IL _2䡤Uhs'Zܹϑd!%b4kWM³ЌvuaeC&cO &3J޽V:x+=P>(5TQ"Y!,0Eל],po8󝬋IV̧`kH5ƾg$}Q+;M de%i,A-T I))aKp̡O<7֭^x5ՕhTqE+ŞӸI)'i_cDz1&&$,8Bwi/dž=O`F\>@\շyvΧj+[`C)Ə,ȝġЦc-].YW(\Sg%PD܇ss^#=a# HDiĮpO>EqpVAO >dKX~ U Y\QWNh+&^ABX8p yĪ͈${%uc$esPe3ȥ˜In\0ij2:, wI_ 3+JO\G4>[ vB; ƎR(A%b&I$l8pz;b,INJ} jYj]jhJe;ei@R&["^ERgY(ߟO8l k'i1杞dNoqaEb 4YYq>99,.| ux@(t#.K !彦{']9AXQr@8~1vIcEObij^ԥ!rwB"#eηF0a.6$Ȳd$b< ~U%I)oޛf4(@uݶiϫ})g4"!nт{ӡi3ՌFj.FXɯ௾tV/܉Jg1 pϼ9}QUіs4E49cAeS;_aJ,|֧ OUA=Qv*LUʈwhk}BSRGd'y͇4snȵ;A hSpkئ2P|2KdV̹d!5`YO(ijnޤVl!M~ rJ<Lk(J l/ҙͮ*i0Dj9;g_+]ٔ^AKCS=D(%)r&\Z#eB(~VGSVZ. \RdY֊r.ҫP}#JI ̡Q;}T ="P@JX #3?ΔpH fzaM)}PI$I 6!S#T$?>!5VÅZ;ʍT}%=)f*"s[&Nj53PFRBF#DYv){Zki-u'wI'Q(0.kDz*?ֹ{9l+5)&GA,Pha*=*48-'@@^^Ob')^ !d_뢊{# u12:mCB;ldUlmƒ^V7E.ILﰉt)}I2|?+WD^K6,< +RZ"z$82Q%d!cN"Y %luRšMr,xʑp%@> +Dokv*Rݎ, !+s`&NEzP$n@P6ج:0t1@K(:sA?l)Xs0^s%co5%uPQ"HKrKf6AEB԰BVP@Y1bVfX͉d,bǂv-f"Q\ɫHbeeFH|yi \]QlvT2=łQɹ/T;vL DNI&#"I"*!$L1Q*uA"dVXr T1].ʕX*&֒Z]N6'%S 0uaN&5ufErK[NCRήqz:qlQ!Uq$H@E,%ggX>ĸ[+l^xM+=db xڠdؓ:6%ӞuW@RHVx^OYGWFca c@X|9MiMJR kKpZi;'vst 9C(Aa ^<yj~N׺kmH]'L[hrM{crLW!\qk߄;pPoe"]JReH9yt=|1@\vn][rf]#Y|loE(]˾Gxo6&)1 Encz?cnm  *8ɐSiaby3.. pnL\m(; v!̮IH&m|=@N$x2XܚC^D>SVw5!_4&)錔Ť& 6'j_6]Jjm]':I"=CP99TR7ܦG`=ni 4 9{brYp1-z~Dbx5ШEe֒CƆ]iHꖭ4[q{6 7m:hwsǨ?"Ohqr۠ķVH^iog<9zW}|j?)noY2 3²,j C;(f!nŌ9V ()rcKξtP ~cE&:ePpIudsXAv$0xb5g٠ ဧ!Mfz@ˑ)#;fQS4=xtJW枫`S_X }`/ܹ)e!>aP. /)s}0SipXu}$Kɟk36v% kE®`I}Ly^8m–mWN.xK(pK\@;»ٌkmlW7:Ձcղm4%㠩+!{W-K{ 7@XÒVF[&/xG6?03T{ 4l}yF慎g 3@)K\g~j^XY<FRB)sޅNqwR^+Ei>'岫^k3iHk) B’i0+;֖9)U9BׂXxd 1?^8`ڛ4UB le$c=;zWwktO<]=\>P!?]]>w1];j\]}=&=`/k71}L?of M}??GOq==Hݼn_v ^DU4g$&RxG熉#ye Cb 7OTN!|_7 ubK Ar& I.j c0lؐeCFCw<#H N2l7,}NU=Nv37u8ƃSzkS2-IDATN2JXv$qNh6 2D kuԋA8KYpFI ܯvv &:ex Z R  ]ؓX66+8Tn"{s.#3TeN3u)j[!%zv~&er96QuͱcRvUtXفGn, ς!8?X\HSWq@Dgg ՂJiz]wMUP W|$QfO(&Hܿ/V׉f7SNJfJe(qnCHorzttt&\b~K0᠚@+[1Bɥuj w\5u^doB0FG?g5P!W~l\ !h1wn1F X鋊 t1챌Ė02>+Vl7ȒЏP}\̤1aD-mUqeb5ۇ8'*p(rE]vIENDB`dist/copy/data/images/PaxHeaders.26361/star.png0000644000175000017500000000012412233027260017656 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.317046939 exaile-3.3.2/data/images/star.png0000644000000000000000000000136212233027260016620 0ustar00rootroot00000000000000PNG  IHDRabKGD pHYs  tIME , ~IDAT8˭9hTa7IQ\K$``#ApA&Qk!`` AK I&e/6F[ᡝ=N:|Q9)c Ũ<{ʿec_SdȞ#oٳv*[@Wr-G0n^ʯ߆3%f:(Xc|J]taEDXa]}RltP鍭'Epob2D#V_`<8OeG Vm%>LlFN9AYM)H;񘇴њ}fECÊ,|~e'JfUr9bI{ۑ +EĐ|oaj;axd+뢆S*E+e3Wz'TXIENDB`dist/copy/data/images/PaxHeaders.26361/exailelogo.png0000644000175000017500000000012412233027260021035 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.233046936 exaile-3.3.2/data/images/exailelogo.png0000644000000000000000000006251412233027260020005 0ustar00rootroot00000000000000PNG  IHDR5sRGBbKGD pHYs . .ҖtIME }1 IDATxydey/}V[2 3#"(%޸QШWc4&|M̽x&cT*;3 30kLOOUյ:T9S=,=/>Ugs<ـű8Xcq,ű8Xcq,ű8Xcq,ű8Xcq,ű8Xv#8~cFCh/V+k(kK4 .(nqЊ|'ĸKlcְ +, N0Ab 0>xX~[_Ȃ~x8t\̌ 6^0oY#gs\{7xҼ\ NkzގmB _,}GD(IYPDT6\p ΢Â04 EhBhU H\v0މݣO`Y{A 73UBiX~.^|t$[ʏ̠d dVzRTZUF40bF3bV;Nb,3ȯoY8]cVMCZ ևQUFjYKލ3\xߜ"]L~Y{.l\ YT%U=Bx,_"@c}`j1DF4Gz`(/&k l; ZW ٸ"@^ moUƆ+aњ"21[CE<ᨺOpL<n ($qOh4;]S:z/c=ᓄ5;*=ȸtdo>;Kq)yU2,poT"LZ`9(#eIfq4X]hYw(ɝ5$ ~39-:mͱ\| XwPzu8(:)YNX<: 4J% &ǻ.34D&tV*z\C[11;xҝ7ڷs4n=N ~W2hpA,g&ٗ1(+҂|=#9U=$l@bjI((LVU-1Et0vݎ!bu2S'@ʹZ"~mwߠ&h bCYe`Բ/Hp i*zBԺzv*Lr2Kf_p+rKh5v~ƟS ΍9ٚ_@ Wsvfxwf@ TL[m?T*PCz>$s qbCJRpU21"Z^]3|Pm?W_cJcꎛJl88.\<ο7(._E{ӻd}V6O?2!:ILp܃b:CTZE,m(أ½$YQ̯wI/P%Lv*x=J 'lE; 6d+p'I,$C'?Ua&H fEz,HP}b&,#r)خHŬft5fQ݊scxӽ"@1nq_8C뾀3GzqC͘sjTCV<}%M$)F3ۀ%uH)c|'HǑjʱ @x|S(:94E}V a`._wm!ƍl2/=8gJN Q'bX5VB&س%W5 ꩧڠbԯ*&dK l?6|`G1,h%U$ 0⇬0ո 3dsݰRg Zk6,y.\Q)Pz{+ >Q~n S6_B!*BVp%*5U%R  Rll,EHPK>j(2}IQŪ+U"Qj&?6?"@oj=1cEcu~%@zeyf_ c2;V#T5R0Ck\O\IuiUȓAA)P )&@1Rb@pH/A*JW}Uk.6@Ξ3<ԚXajV"x5ƞ9/.D%_UkK, ==TaCf 8j9Wi߀ YT7K$^a U;k'`σBH,DČli Ght*f2C-HqWsM*V(7{TN7x9ASe՜ YM0Ov8KET퉀Qggw9#J\ jY@" |?nH 8BIH$DHDYNoF8Yy&s n'[_[rٰӑKn&ӈx꿮w>C bW ]ҀJ8*+Ѵ)eQ5SX&'>P~w'V]B@&N|J$FņagL>x׳8.kѹu kX h{2|oK$_@g A'^;x| cQ5hwN`Lp0#N@9+cnM銓UW!@a9B$M9z\~<Œ{C3RQ]Ip'q7/x?A> \{ߡ)㽜0Ƴ;<}70'!Yމ޳%$3c؎=p&!1;\5 /+$`TK)A"ط H5IF3"Wd{$7"cb t9Q3.owF?-]"j6yﵳqOni70띛s}][sp; ϛO8{%S\V|F za;>LVPU(CCdzǷ!WH"j5|JZW)5*\P"N/^G TiaLa c%̕ S@S%5 6~I|hg}} lmY [": 9]4uB!P1lBrD!kG@y1g|ބݍC!H bQzd,o++`q)>M؊cĬ3#AJ`yzw2Xbt]^z!Fk)S}WQ(P r+t.Gl^|X~$Ø. @tZ#ppp~M0p 'QrJg2{F@X8HpWfM5pZ5Do:w!dfCc;+̢1 "dtb(y㐀X->(ŅDD!T' &vs04+L CYg]m~q~=6_P%ыOzg`Z@aEݞ%X0/f-~4ě}ֆ3iLLb|r)9iE.K 1o\A|Gq?ھK"] O[K#[ MI 1bWKRpd Rb8TLO ]yIѿeXb2/ -rYC#/^s}`w4&K(rJYIQU.M#.@eu :(`nxISF8s8Pp284Sa߉Ec n)EӨIu7Ȃ 6 K%.R|6aMR(i$9f>$ v NJRdܹ5'!$ nKwM[BxPaڐ]g-%9#7>8[f JKN.8m`v6Qgpܒ$Q DWөȅ^[i$]xrOgx3l`mWwQa%X[')LR^H  %2.P~sc=ͧO"'ٸLo]o^MgT@@j %L}]i/?|޶6| X>gЎ*8mvF.80ti޵5MGC+އHr_3]KB4'١O (q|PKR)HVz>kcbML=o Yl7Hwͨ6Q{Xw7'赮#^.E=pЈ+ HA" *ˌz3u#sSm[:3 @W<{*I~!baq/E,#ʳ(}ǫ9>˞!^=/K6bAai`v=@NdwKomE9b|wĖ~"}*>Ybs 5ʗ"qO䕩qa iO, D\^BSIN$躅o>=X.@A6ƶOa:5d+`#PP  R.)1 Ymz#nJvB~|ڮT9#ՒrgճxY̨yLL!Nq7oŸ]|×NLij/=]7.Frb NEh IA&)No 1.>„Hy\7) 4W$q!J @qbڪא2l&%S4D;qՆ/+W?0acm.lD T{1,d I,!=bR/{It>q-|ʥmض)dsirCQ#DM(T-|$Dr"Zy U89Dh[bGRZBR!1C;aw0~JKߎ$ nŒ\m?j5J2u0Qn:DX888LNP,>f`Eye? ِOƞPr@7#-g!mzQR],jndǕLG*jZ(-'@J8W>[o*z*J! ^GCTX#{qضILLdn}ʕ _BHH<4Ͻ߅ ,ҒJmIb(!r~z`j^)_~{Xٸ\}pW,x\u~,m={R.Z- J,ZEBiR(ayYF\=@pԕp"&g&0F)I,_j?-s`6(fRcJg\ўpJ|_ TK!~v>uƾ% NXVT|D~ѵ`BGs-%DFĈ˜7!>trG1AOx%V2Pn~ju|,!ꕟͤeBZV +pݛo'o=Cbcs2ת\PD`{;б8T-v$ #B]. m~iku\$~^z♑G*,|J AgPH6]*I_5.SN6U'j&319jd`uw>mW~lT$nQ\V{‹9KUbFB{Rr(/Z!ho?6j2r>4kb%ݯ}+W\U~n[gps f&a۶4-= V}_q\sR.˿m%#V?A(!arv-_S[*}H7ӼExjҔ!Zu=5@:ZIU@?&l $I8+=D׼W k..܊{^@D_"[]!!iR'+8,(/-!&6)x3~rނS!$FE&Ɨz|2;Xwe[B6]ebѣdrs8 @Ȕ< |>1ds2Q{Nǧ..nz_"#5;m;W9 zꅜ (%qVKuR/3Iiw뫑7$@ Φɖ&eYyia,t`&&AZf[r()iBi# >S+;& g3iLNM _ ڞ'zWRծAl}iL''J+jN9-W]H(B+(Ua/%Fա< ڰPm  <)@kɆM@{ U̓(c)]s1 :Hf0=3Y17nƟ\Nykڵg%إH[tzu~I ia& J1'w",vQt~*3=(@ؕnR_*TTR&1(܌R :$0p HQGU'٤)݁DDe&19= +P^l_TR4, )=+8H[!)IJ-T2\r擒JK-+bBzƷ Ԉ;bBGm|Sr2D6_?}cx%'0xpvۆb1WDzfhWAg1,G#n-b)]#f6{1*<}a #];V tlOdBJq] 2#f6֘G/=r!ƙIL'df+~?嘧L;lAa7fS 臓-jt!贺fso~H,(\M@[Fjf*?2GP7=d'aruc4޶#.plIfSJ cyٸ]g|I\ã9 b[Ixf6= d J$ӑNNF"hbYEk’ B&XIVxIPӗ l<-5¥+]bܒoOpom4e1=3]`ek7!(!+YڻS#J-S ۋ")ׯ1KYTPԒ]h'~JDڥU+4OSH6!X* DS2X̧?xSɒig|:>qՆ?.4w]G1%;H׊y$؜D*$FkE' \vYo1S `8Bvc GfϦf_ut\!I rpe HldzJ*$残(F.9RH 5 жR ܵB)~ Bb䇡PUC"B9{ܑ IK5i$CjvLCW)ܥӿM:S}882U#d w~G`BZϹ(G-0 B *S 1^HiV !.ʬUANef8]. r , *Ka?Cw݌.Q?fRS8bAN_`t"f{A濏[E L>Dv<ݪlPJH+'@ Wk |8 :$Me l+: Hrw`ҳ)$e ,%ePS Ѯ4 KAxaI DҊH4\+/ERdd"ȩB㵊p7NmsW0`yL'*-H#>oʵ_U`#?EHPa-* i 0+E+M5DI ]wC`B+_X> ʊ(E8p֡G\f$5piλ NQLN  f-e". 34MWmR-d$9D `ݨnFT'4FDKuPG:5kBfHϦg"šqwAjɩqLN^,4g_SSyj,ҫ,0 E_1Z\#+7$X9t]n$ż1o 8J'u9>oQ^WK]g"-LTA/)x:rt  i運 #+i5!S1mudzؾT?풍d*0M5Al:=VxDUR2pton0l J:p`&U'AEZK /JIJi%W> 6)g/ׁV;PMf)UՋofVXz!S/J )8Za_\&D%*#(. H/݅+^d=7]ׁa;9n[6vxc|Er$K&+%\ƻ}ʿx`" R%V.݉_"='[?Kx*KZoRvf( DȉKNQ2:\|e4 +JS@4|)B)Fgym*2Y-SR"{8vƆ&.-\_{)4M444J)EB }Ю1b1R&E"/.wrX$(l1=Lqy;YvU&{uW$On"i։ j[]rzM ˴H4V$ȲYj7;mz@ӵJ0ޢkm*./5l?勳;eW Ώa8WR;QP ;ʮQX\#K 0~ ?L&Bu!A,erX]jtC"iJJr/,0&%)ŏL"]C0 ]0 H}> ,dETD# Ð.>*@x0N?k$N}tQIl )>Ss.D6AA~G$El:K`FM*}әa|pK&@hk+`YggH Ezkr$Jd.CJPR\r07X,{TL*?hwŨ2ڐpXׯť0Bg7Zղ,!K^jY'cX_vs(76nBmL~-W #x@4Qg-^guxn@֘݇m ͼx--s(R{م[N-JD 5CEvCBMo_:hbm?|@séTpId ~,"B,G$ =r"sCe:;h2HusGif0[H օ =9 ͑ޅ2%BQg;Y%>/A,3x,dx ?kniBGWlNJ8g׻0R(^ g2ðL= ЖXvB_T/=_kFx"iY)L  ,ݽ݈ǣ!5^h ы6䙽|0 `g:3{=]1ns9Sk_ Tsc3 8yGDv\xgScV^"y1{ $u{Ӹ[:b1zQcs$eEƃ 1ޅ{_*Nx=݈F#L=,%Oy$K@IݣtG/C2ҞXVTMb麁OC3r$#W:zrrD[bFD 'Ok ¬=F#z4%'C/>]J"]I"M1r¿ Q˺;viⰬH@b8n /߇-ũڌNh~G睰ڥ3#:=%]7,EFM.ĭSh35U͊Fbhjj!8m~pD\K{<(3ZwStr\0Ӵ{݉0P|>q_IS$H-H/,aܓi"M+[ǶmP Uhfx t_ ѶAv.~<0߆ަ'<ڷA#] >Y$hH4!T/?rli/}[{ N_s :C$h>'5D:FfLgŃGMd3ί Z(Jg1ۏ203:1^SO Ij49eU gQ|  Dh4 axC /<R>ߐ@DQH|00Y;\Ÿ tį\cjfݬ2LoR*56?Fl!/DedFH͍-ep(v("x#/aY&V\էD4#=>7zl C. N  @&l}7!gO4G^UBi.°bX@1d~~i@,M݉ήh9d#E6LMx0VX?  şazjV23 4bM#sUSVmҷs2%uUj&b8tP3(xfȮo$/aRaxR)9x.0u+E# f'쨤^9}ϱ~Gu&z`?XƾɧcZˌ'؞ʨTW`Ɔ&4$%p0)]88N[{ VZ` Rq==*"ɵS-0;b F2;mXWG]w{ CƟÙ}Te1Ď_T]^ml{MA]3iѴ'AtMG4eZ%x|p(#D 3ѿ--P˸!s.OPK֥xk؅\ 5FSWj15BuO|>"Jn @(',k9~[W3ReFT4a%:C4D#1D?\ N?_7lПiDwo4dvJeKf\z8 KKi2s3iqy/G7D)]J0V]\oEkc!Y1eCr( '?m8cT$_ՒԫGp8o;MqYzHU ߿&dOJ (iw@w }E{=j4 /·]=/D($aL$[eNDXQD"QOd2[-+ Km%W{CzpHeI暋l|8 VnL-uOPwIcq|&?}yeQ]V,EHxN@TGaܾ=KTe45Th[ab[a 8}ݩ8ԕ>8XTI^RSzא"?TB^\ktal<RI)F.ixO-]2fFՎc5*[G0gC4hy1={ BeCu^`E"F=sřx }=hni @e_*V^q?]\@lsbNS׏mxNOGZ IDAT.?( [~ yQ1 TdQ3d"(ˉKbUtc=|kЎXXj֮; M-M=J%=9I`7U u+:&HM~>Ǔ(u,w\cyr}kzގHGyU4۰\O>WwK*vHעbu݀m;U@""ѭWQO1TQ([09;|1ޮJ#AZ+Ej+5*5*Uhc{\%|SUrRxZn(àJ0LJIGCm UbJi0Ï79jFOGgW@H0 "5$:F|>hPCz5lD ޕ7~lcL<80N->0KCs!Bتۣ=O^~TDe_+U(ҡ0\HCGWzz:fUv`[7EVT-q!իm1 S{5jƣ\xDKF~^._j!4E{0!qIʢ&tBNH|b&hjl.gmYx%ƖADhhÚ3NCߒ^hh@@ $EjKlچ C :h,CSPvxeA8WLTnJ@oJ:a]׻́^:v` JIӧPrJ^ NMk,3H$]Ӄ'};1=G[[ :{~͜ז a*VyHHstt/f0:%F_:;*=v`In]O"fb$RJBfaZ}KEa&la%3 iZɯ#?Mg D(0ZZ B'|1juc>ͪaތeƁm~Χ? 񺐦5Mb_b}!bLdzŮ)Aul/` mD#~h$ 40-̌.<;4tv:-mEBzc.`V8z<)0,^U hhtz3-}'pMg]i zjtD*5MGs#/\4b[_o9[C7q܊ =EcnP4M3 `t"Ϸ-~4 m-Xmm-%U[e{F~PC#uH[l"Fw-)b #;?eD8˴1? p]1.]s#4*nl{&S,3Ij[O"M,DLfiYxDfl?s<5=vN]ъ!l%@Pds=pvpjI1Vڑ:GƁ宵q*NЏŶ6)+Ah\U"3aKÒ^<7M#o<iƁMxlﭸg}!d 0َhhLHC Wűz58j0YqJq 6kzS*Y\$qp|"Aݏccu …ݲ\2g1ى[Ԭ$' SPH|{ly/v(9%&_o61W J4AgW 4MjRJJ" N!ңi04+ UeJ4߻c \ղEDX_}!޶Ӱr;/K㌮Uk X/kU2 Ce(VBN/cc)yglq6{ ј@kk  qy3D},ktl[UC L-\1F[|e-F#ot3J-0@y,q’?~z*.ZF3;؃ uRDwf&L9]Gss#ZZ+ꘪBlӓ"j6KԖHzAuU`j]㚬r""pw`tj@d5K︩B~.>gwiWTOl\Uh, -Ra ̽!=H$=o<$$u7(v sQJy')=bF ڢ˽r}Y}>ߝ7x |̙/hg-2DSC~ͱ>d3SH[А惒4DQ44͍"w,)w "fNyNԒH lWg'?Ż'\!]C+t3=i)޸ oshd|ju o] 4E+ >r(})RK) (rD"ш~Kj/KA0‹PБsY\ ,='PX*_RCW4t-y$ >֛06D nր)^ـq՛.Jxi֜H}U>*DFaZ檨R'Qcn`mP8%c#~t2+߻p+F&'|Y[kapҪXu3q53="gut* T{|C(:R$/z#|A5B6PG iwJЩB ]9 bGK,С/|q~W e5MC{|52qKRDwRDT}=Izhj}.Љj zA9;9P!F2L="̤՛wnoBϟn#B%YdughT$r1YGj %*P,$HԐr7$WO pТ茟 _] lTJҗnh}ί|AZHa*;ӡkFY" 퉕(:dIj@0ѼK80jKpp`^ఌFtDWȐ18a}?l/8lY/U.WHcrv=ͧBL/5 TlJGzԒUjEtR@88bfc+AмGF6c29`ﵸ{ 8cf^? 5ދSk7D&$p[Ւ ; pP%<7X"< 0AKtp {n´bs聆,8IPol}/ph$_A{2D̄7f#}Hpq)2?;&5Jm09˫IFm*]}jhB𪮀S+W*L}7[-5D71B[l% Vwa;y= 3KN7/H (}}<Ñ4tWOPs88i9#B"Ҏ 8 CDo'z X z:(5bcTZZUmK傑̌az?o9/( 8mfw?^~mXUs<9tqm K64-ѥh:/͠$U0 Sk1҇rzLR.vxIz!5::;aɖm_ K#p$4Y@WʂP(TX4UXePX(dAĐo}ݧL_afc ( "l?*Xɯ!>>.%qĴ|Š`7 ,9þf ?tA*1(F2Px$SJ80Rn9y(`Yq߃#pԗ4x5@Px&(h46BQ )6L7>fqfL-9yyWͮv}pF$_@an; Q*,saW R,~NɅ{;x;d~#tӢ,ֱ)%(#]lQxB`Af g.E`08?.az 7-(`d{&<Ox`5ef45k #vv|3~/.kv%[F m@a"zi\{` 5 K `$ >ts"J}@t@2v(MŠ4Sd 0zOx~9M{} },1QGxW(]~3=6ĞyyK?mZ th77h{"Zѐ*Yfʆ͔Gk05:Og+_bv$ #eDP0Js%rɂ9ze11'2̚b@`~ӎ~i;CQS+F'Y1 0D%ij,JTł2hCgI> ש{/7oQ2FxqjZ%V-Kmₜy=bdZsCaGs n^@PI'Zd9T`U3`VaVa>GT!=9Ff5 3:[̛>:M<9<)f|ս /ժ=ݒ956sTEfx5'|Z?p']i.H A*Ta  Y 3Ta*0 [HnCmC0nW)ns^:WxΡdGQ1X^ һԲ m{d+Tr=9Y[G?vG 01,!9 k"R vȧ##qfNt }]٠xg΍Z?єyH)-$xdQtXڳQ`cjܳ4>qR[=ѣ-?zWf]ؠb'kMh9R  K |)(3/VϘ˹y"j Sed,HA(*{@q?s>Ni>q_/;5ѕ l2T)-P(x?"乣}:p+tY(b%ad'"Nd`4,!1 )d\#P8 PbpȾL,r م'0& @b94V}CB,pepA3 '`MOEF " ((H~,E%FYe4^I' FJ„J$=z` 3Tt XL!b!^#C3o,Bϒ,(D'\` #T"<8Nd+42/ǀYkjb H4Je$x ¾F\F]S )81<Hƪ9QZH!nxND`#N{JRPm;,$%)IIJR$%)IIJR$%)IIJR$%)IIJR$%)IIJ&ӗ+KK^ŧ\rWgxG늮DU~u}FZ14Ֆ5vSW4HɎYIxז=3>( `_myO[* B򖊉 scV4`UCE}q^[򛡴axew# 1s” e-c4^Ǭ) 9!OyV4ce3Z@n0D1 0h,VkѲq"~J;gq(fbaԕ?MIa7e٧ kwosJO~ \I/w][k_Diڲ&2!Aʆܚ&2f,Kͧt^uth]xQ@ys {]QmmgA1d]m-l]j0ZbFՖrN|kt3IbRngp~{z^x[#M0-oy1as}qVd}18ʯ/zA%n6*ԔslI0]4/P ,iME#֡: d"~ P);ALXP`:O ïSx@ @H b*_a`rڈ?wG`^A<3ldd>c$v,qWA|q뒠@k]ꍫe͗u >UR%I> .Iޡ6oJ3߂k 0=6*;rjv0S_EHexd}v垾Ûi s##h D뚝/~ Y[`ꊆzǎ\>XhCyX1T 5% jKƺ统y^^_r-xc]E<(xgU9 r{ݵϬ/ ז?qs- ;VW?682 EԖ=-2&ePyF}|fP (Wvin٤oCYaes7/bݨCG:hKgznܺ8octm㒅aתf'2 b/ѡ0Y[WT̄kiفP&4@5Afﲬ 33 F&D=%ޱ?G:n1ۦ]+?yuI{M}^J`2hEM䷡)/+]}[IDAT.in)k:Ȩ3.='L*EX{mI7pCa`& #Tƪ!(1X_'7ts/Әδ _ݺޠyXUt{7@4ih k蚶 &0Ce5˛U;>gM/~.EI0g4EՖ55ʆ|#9KS/ ?g %@%I\ 溚;1Ņ "]6<L{G޸z-CЕ>ݵ|jIŒ pQѦsh*PL ?' "(ɡFDJ'B[}}h՜1ѻ}cr! "@ !F] ;Q@K>IET6:ujpS#= pEoOEJ]|$v -{;?Re5MKa*omS:QڴqO6Gꤏ~p!jA0YYWb'9 ,D>YMc03cCUCNf0Owm|1S𤋮+%j7}4x֭u% @g&%uWO$ }U%2 Κfׂ&plܹe"'19)'"'I kʚ yNm sG 4/%9 -Er:"S!lIc#D$$(E!./9 ?2?9##0jdu-KV~HLi=@D@u>cMYQM 0'>DLN2]Ҧ1$Vn #&"fpR[VܖY,TY)#TmsB_S*1'ۗe5 _W'mz=4uU7zl@tɛ_.iomNJ 9^ hCmQ6A#׳@.jGpLZG>A !uejh*G^0}~R>c K/s@C'l>E LMAA0FP)(ffHZS; P mch>IENDB`dist/copy/data/images/PaxHeaders.26361/24x240000644000175000017500000000013212233027261016705 xustar000000000000000030 mtime=1382821553.421046942 30 atime=1382821552.785046922 30 ctime=1382821553.421046942 exaile-3.3.2/data/images/24x24/0000755000000000000000000000000012233027261015723 5ustar00rootroot00000000000000dist/copy/data/images/24x24/PaxHeaders.26361/extension.png0000644000175000017500000000012412233027260021504 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.417046942 exaile-3.3.2/data/images/24x24/extension.png0000644000000000000000000000171712233027260020452 0ustar00rootroot00000000000000PNG  IHDRw=sBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<LIDATH͋[e$1L![l҅ AEE+ i_nRZE\U@Qڄt&Lɽɽ}ܛ8{_99sޣDiNC)`%"ZQɃZrWJ|۽e1&ѿ*9MeYh7KҲ E90$M^o+_P-LZy"+)6i)6~kNU~OSWqjfCV$@CT^HǦߋxߜV(Ay]ؾsx+\x P(DhƩiqSc4ðtl{0HZP6:aG Ҷ6V?x<. ct:ZX|5{{qs; rghnWGضM\^"i5' OOYNBguDe`?E|u˯sg(G](tX[xnB @z]g G`Bws`k{1tt)J ~.ӏx{旉3} MvRtdsbY5b_qE$9f]rfm2X4? (KkLaֈ{RټiPu m~0 (J( 2XDT*'E>!rr{Zݞ8*L^o%ƘI|^o& UV6˲mqpuq]2'ٶeY4jzPz xx"_7ue 3IENDB`dist/copy/data/images/24x24/PaxHeaders.26361/music-library.png0000644000175000017500000000012412233027260022252 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.417046942 exaile-3.3.2/data/images/24x24/music-library.png0000644000000000000000000000113312233027260021210 0ustar00rootroot00000000000000PNG  IHDRw=bKGDԂ pHYs oy vpAgxL_IDATH핱JAEϓA imiIN~@ ~C,% A"jFYM feIN0fޝ9wL1K~ L["%" !,9 a1YSӯf?=ѧ0Muxk~3%"&TUq\3&TU41gOUiߠ4Iyuݕn%"o]KDmީf\j$ JO7!3hOԠCzBZFR 񇣪Ng\.jF1d>r_,ol$e #L"Bv5%tEXtdate:create2011-11-14T13:31:42+01:00q%tEXtdate:modify2011-11-14T13:31:42+01:00GXtEXtSoftwarewww.inkscape.org<IENDB`dist/copy/data/images/24x24/PaxHeaders.26361/media-playlist-shuffle.png0000644000175000017500000000012412233027260024040 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.281046938 exaile-3.3.2/data/images/24x24/media-playlist-shuffle.png0000644000000000000000000000204012233027260022774 0ustar00rootroot00000000000000PNG  IHDRw=sRGBbKGD pHYs  tIME EIDATHUmLU=})o H+:E9ͲdqvN@"(lRYT:dqd$UEDqI,dɐǀT$ٓ79Ͻs2phhL`8(+{Yy eYF55>.)0at<( ?~aEEi|r$e/B@RW*&G G3gNL YV^Š]f%dT8G_ !~0t:#W%Iş/"&!%JKLLLә5(󫧒W'p8L~ym]]]@^ ܼ읐^siLi}\Ъw7`f].0sKdXHVV( l56dfnB(D|9'&" cȲ*>pOյoZ69\!n7I'7*ڌMXzh1^P}Z}j*ь uww8>7hl38\k im)))ZBUDD2<&$Źyټ|KŬ?K}e6nHktBL-u[1{W;մ.IENDB`dist/copy/data/images/24x24/PaxHeaders.26361/folder-music.png0000644000175000017500000000012412233027260022061 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.241046936 exaile-3.3.2/data/images/24x24/folder-music.png0000644000000000000000000000206312233027260021022 0ustar00rootroot00000000000000PNG  IHDRw=sBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<tEXtTitleFolders!T`AtEXtAuthorLapo Calamandreiߑ*)tEXtDescriptionBased of Jakub Steiner designs>IDATHkUg엸biBBj 56K5z"UA[X wJ)Q݄|9Ng pΜyywQ"­ 疢:=9u䫮rf W һ/*]O?93xua|~ic|{ܹ?ܔcl } 7|1.IRQ"osD\˻ԁQmm$ EbaqY !X+τccc\π[04{Z7ZAiPã3q=}Ͽ5 Kpgw߹Kv.G+q}AgjDD3O"ԓOg* fk |1Q2O<8FcuˏtZX`dJAUB`P(E[C;&k|J%+0aDt;A ֹ1=jJ\Z.j{E،Eagqqu.3j:'88z?"+<0>Ɂ8-,2ۧ@)xaE >Z>"#tڝm|19`P *%&'*,.}r25M!_DϤv"t2J)}뗖?44L.q\ᾃc90J9tCCTֲr^C)(Z͝8vlulۈ"˅ Q(("s]\(^)^tݕ_.>S@ =wM"prcBMuÐuĎIENDB`dist/copy/data/images/24x24/PaxHeaders.26361/genre.png0000644000175000017500000000012412233027260020570 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.417046942 exaile-3.3.2/data/images/24x24/genre.png0000644000000000000000000000311312233027260017526 0ustar00rootroot00000000000000PNG  IHDRw=sBIT|d pHYsؽ'_tEXtSoftwarewww.inkscape.org<IDATHVaH[~sR#L&zccJ(@ Kh4zh4zCCC7Bq%ɼ^[zzzl6ӧOgppp`]ם,Ce,yBl6gxDSc,uկpQJ| !GK)n߾O h>qk׮8zMW(X,~?%›;999{޽KdYMޭMߟX,RȲkBVk FGGgJ)GnHI`R J6VkɄ@Y.e1|$шۗ$ ń$ }wwtt4?`%ce\@,Q:+Q8No%ɂ (KK$B:*}:+fP`v@Q}}}ie U TU-4kkk~EQŜrkz XeeR 0imi}k#J)*++1U׈9!B,?o͹lx<~ 1;_rݳ6E, 2˵9ys||~_ GkiBx]]L]]7wuuv'c .kQ'?â(JM: ggCwwwwyyy$IEq5ɴS(vSy$2nݺuVQ}ܼN_,MOO100pCUՏTUa… s-srl6+1lmmm3ƾ$)C!t:!xiٳ7{{{?ñq<)pvv1V[bEQXAP(@Iuvv_OB|q͛7nll)EQ~%|TUUu4Z d7t:M&m8_YE1ϳ?k?t@IENDB`dist/copy/data/images/24x24/PaxHeaders.26361/media-playlist-repeat.png0000644000175000017500000000012412233027260023664 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.281046938 exaile-3.3.2/data/images/24x24/media-playlist-repeat.png0000644000000000000000000000157612233027260022635 0ustar00rootroot00000000000000PNG  IHDRw=bKGDC pHYsHHFk>IDATHMLg;˲gQw (A dzbVzh1j^5tыy ai ӋIm&%զu@]>:F;<=ϛwxhڻO@ܛOUUgUG$Alv9>"#wx1JmPQD$̕H hw:MӞxhP6njhl -t-3l*u` l[[ ڶt=]H$dҙ2:??trÆ$OTv@=f<"ݍfdM "7vr!! d2m1 ˲!7ڼRuͯ&BְʥkS ɬ$ ^ydC@bxukVwA`0XRIZ?.H(嚰TWW{H&¾_MMTUmY"~ Gv2 YqV_W,!z{'3MnmIFN&9nb~*cQy#O/kݳ+z4Oŷ>6gWmvX; ÀSq ر_ynz[[9h+zzz:폎?p$f0okטfa3|@.Qm=%d.IENDB`dist/copy/data/images/24x24/PaxHeaders.26361/office-calendar.png0000644000175000017500000000012412233027260022472 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.421046942 exaile-3.3.2/data/images/24x24/office-calendar.png0000644000000000000000000000224212233027260021432 0ustar00rootroot00000000000000PNG  IHDRw=bKGDԂ pHYs oy vpAgxLIDATHǵK\W~̇8 T Ҵt%T E dE uR)./pDFPaBL(Nr9]载Ll^9s?C\zYUۓ_2/ёBwoųgo^Ŧnd<7ih(_޽{qnX ,OGG?(T0ًUa<:;C"}R.qXQeͶF^X18٢ԧBd P`qo,)V*彰öJ磜H$ŸQ$|jS $σ/OR:>FR(D:D.BaG-HI)EJb H]G$tejڹUeG|>_ӐqE&L`fhJRϥ!D|Tr@4"H3𧓁rD/#w'&7ٽ )% b1D"@Tb~~Ufggsk}W===LLL #bjj*.As ˲(alll dhh K-888@A @JI0tK).&iq,*e˲B8+sbp,rԄRCRi"HUI^.S׷NvO Hoo/h!(XYYXt|zVmr#ڢ۷oڊRh4J&0M*z#H+"WyCfSY_zƇ#"|7) ST=c?ܬ`.zsC֓sboH1zz_dfL:=v;00uap\k=fFAZ=NuwT@WOz}@VI/7HVKHEiLH#J V paOoow8F`ImmHh,1Om4:K2iQcmH41FI [t&;ٸ1Uz>"Dc@h5a-RhLTķMS| @&;`S\5ESrJB`#UlRT*̩*,,wtQ*: ZmVc(ր[m(ʏŢ;"KR!Jl1 y72uΝ*\OFxpl~?9Nmmիuο9?!Hݗi}peeӧ/oNA.0_ObEQa6(5!bq~_ٳ_@)zN<9z/Sݩ={z;Nt&T*UX(6l6 PHiR@O,d2 4J5=r׮]h4J0,+60@'ޭ@-x x[g BeWFIENDB`dist/copy/data/images/24x24/PaxHeaders.26361/media-playlist-dynamic.png0000644000175000017500000000012412233027260024030 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.281046938 exaile-3.3.2/data/images/24x24/media-playlist-dynamic.png0000644000000000000000000000170612233027260022774 0ustar00rootroot00000000000000PNG  IHDRw=sRGBbKGD񶏷A pHYs  tIME#'AFIDATH_hU? YR]eچVt1jtPepej}P]9JT|PW ЊIi֤6,LJdʯ3A_{p{rn pcH) |#+\//A]@m= mG]'#%RJ!"|"~5e-Z}כ.\.L3nZ9س~*~U<=?x<󦂉ȟneLL*)I3!I3)3̘ Io΄uONNvm̃{OaY{Iquƍ?vttF5 JKl>ā&FP HhzPDowJEEeùsJ)L;&MpF)5S>IENDB`dist/copy/data/images/24x24/PaxHeaders.26361/artist.png0000644000175000017500000000012412233027260020776 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.417046942 exaile-3.3.2/data/images/24x24/artist.png0000644000000000000000000000150012233027260017732 0ustar00rootroot00000000000000PNG  IHDRw=bKGDԂ pHYs oy vpAgxLDIDATHU?hQ}]@VtH9x2H d 828gtq(w TAmHJ=}M9ZB]c:}p݃Ib%Qa1C":;3y0M!6.b0Mf^eUdr /,oL&9!54z )G^o4̼OD'pk6Zv6;:8 ȁ8uKRߐRjEqA( EANXi_8~ 4bmGfDQg0B{\觾T*}Btx.nXu}jݚKR}˲ !DtH -VzG;0pQ˲΁/h"|LDGsxkr&yl6I)U{yNg=?royk+mvt8F0t>cnkf?̼תht)wQOPxSTvh0MpWU՗ӧPER"5p 7?>]}!ps=Z h1K7%tEXtdate:create2011-11-14T14:00:02+01:00y%tEXtdate:modify2011-11-14T14:00:02+01:00BtEXtSoftwarewww.inkscape.org<IENDB`dist/copy/data/images/24x24/PaxHeaders.26361/exaile.png0000644000175000017500000000012412233027260020737 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.233046936 exaile-3.3.2/data/images/24x24/exaile.png0000644000000000000000000000256212233027260017704 0ustar00rootroot00000000000000PNG  IHDRw=sBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<IDATH_\9gfΙqeMj4-T%"M{!E(ޔд^ySz%, (ĺw7n\3;?gf9^Hq|}N5SvګDv a eM*(u'PItԨmGlib dFMD9[_0|nV[W e;2w POw4et&sv;•rzh;㛯}VM%v=wjg9y~Bf Dh foL동w?x~|95O=/^} ;%JM ~mYhMH8 ƾ1?{\_1eF缫,+% {_1ig ĊY u.c#?pL=L#w[Gե{vXFG1m5; X12dKn4R{{Jd׶*it@q\,jvO\^%:`i `\*]=Av3FwX45a@QÊ3<,7([U2nV=BzFFۏ #h<}qx,T) wYumrK)NaYHhTۗieBpdYZ8/ =Zݫ(dS+Yӗ*Z5d2E>OM k)܁ C(TcANH$JYl^ezyB $)b31'}f1DFa=jG:sKsKKwKD+x?a"Fq=XY3S/ /{p`r=ʕ/~Hş¨<|F &6hQ&if&Șo W 'fc ncEB0hibmHlRkR`G{|~)WWJfy+fb-fV+謜}-ۅ$PVDz3 ǣxΞ w7w2mrx]TU`X.P42_u6uvPo^]v<IENDB`dist/copy/data/images/24x24/PaxHeaders.26361/exaile-play.png0000644000175000017500000000012412233027260021702 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.237046936 exaile-3.3.2/data/images/24x24/exaile-play.png0000644000000000000000000000252712233027260020650 0ustar00rootroot00000000000000PNG  IHDRw=sRGBbKGD pHYs B(xtIME 3ZIDATHǵoU|3t)Sȭ4#Ab $2 ]ѿDAC0Ƹ`I\  FV:v3w9j K|y~}}>xGcA&J`e-J62x<~2N]AWWWxSSSsc1d8hBA < Z踶PTj xsP"c)hH)\>gz1ng6=rATR%K|~Kudc40Ơ&-G.^t`Z-j ;w;Cr{6Z4+>3XB _Nxa.!J)oj55d+L:Yqc4`035; (J;RTs:!l1[$ZǞirֽo~?>` dR%ӓ7l\j 8=0O)?LrodMc{3e(Q[ ,KlbRi1GUBCߏB|e:B ǹc J+beYbˌ)eڂ3 >~R"%\~ϸ?$2sB؎R[fj$>`0HbDX0ZԳI\>\F)\!@H1Lm4cWlY/@&,qy!NR__']'s\By KU=_q"##CZ>uI!(j:ÕTjqv+H| %k #<#j^c"+yx<~r4?z7˵Qa;d"zCq8Omd~M}t\.OzNzϕKW'1.ܺnAm^@\n)k<ҴdMڶH_<7NrVc-LkWM|o߾OMl6{qPڿuUU/Kc4J)t4H)*y88o޸mro;;;vtt؍U 5vZm۶/DC]]?^hc c1Œʹbi$|z̙@1BX@-P j m mp$0>^z\fN8qqŷAAE(-J`eE"Zkj]wt&dL~d{ν9̍%B΋RJ"ޱEtPJEggg_rt/W*ՅRHM HL&GzAX\d2gU ЁT*u(wLD8hAuorzh"sO Rzi_ߧf1C6A,teWՓ;É~qh_W@us4}o,аx aUMr= G/€/L} Q`ZAM}+iSˤ?݊Zsh :q&¯xzFHwZR[/=!OO+oory-)ϑ<3zaY{;rPƎ\(oO<8|kxۿshQ&|Y5]|4;ñ/ DvOcGjˀl )[yY.D@jn'gz2%]uBe}q(u0X?ɋ3dR4Ld(vӲ:xSj L\`<1&}'&.P7=:Ào;0;" 6-v09A ;o2:AQn׈T䱧9DCK y2s;u^2"T&4<蚳 J5_ b[(nwk3R*lvthh(B4#vy)+X^^|D 17lկ c[rոkԀĦpZIENDB`dist/copy/data/images/32x32/PaxHeaders.26361/media-playlist-shuffle.png0000644000175000017500000000012412233027260024036 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.281046938 exaile-3.3.2/data/images/32x32/media-playlist-shuffle.png0000644000000000000000000000355212233027260023003 0ustar00rootroot00000000000000PNG  IHDR szzsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<IDATXW]lݙ]b0l4!!FZ45 + /UZZ0A !JTT!8(mqj?ŶRT%%G3w|KBOc'HǢDD((ć}Eu.g!'Do"7rQEiӦcEB2M34&>R@ ܜ.7MDN@VUU|rUUUYd?syoW &d"H.UVVYCJ٨c̵mtGd2)uӉD/..rUEQڈ?mƏ;;o{zzlJ8VR #=)g1ȊXE]7b.qx8.)Yrg۶Yf;valj' n|>!(9qחN$KRYGAh4*nf;kjl*YpGdfq\!ӧ̨|@|˖-|\ Ձs.s1 uM"1/l۾ue[b="@Q8eP|r.} kD$If@ ]T Z455y.8wٮ/4M0Fx]B4!( T*};Y'wl$I!9Dhcs@1rGnmm}5>Emgh޲ o|~-L&ܷ7}TۛƯ B܎SB\p3o߸u+pBMdY&?p8 u@Uը )իWмP(zQqpi'=R)O_EV9G[mr2sh"u]OMD GX'"Y bԀ(XlYfҤ///!afLtvE3 ړ'ON8眆{{{3###n[[**aGGGzREEEq80wÇ9]]7A6ۓL&Í͔,痽}Jx ,HTzǏ em[9O[D< R<9pd {zyg=dɚoXD۰IΟeYLJ[q]]]#/.}C^ziռyGY*`;6dYdU^b>P»RB|j-z8,nii`iIY/nΜ9W=k鲃_]~o6 Ѿ}/f}g˲ܡjG)!F1 !⌱Yp˲8aX))0 cғ+xaݺֿnxvsx<"X EQ (K4h{_z~7(D=!è zNdZ9dq`(R@ WSK ?iFNGgΝ#؄qg7Oċx{ IENDB`dist/copy/data/images/32x32/PaxHeaders.26361/folder-music.png0000644000175000017500000000012412233027260022057 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.241046936 exaile-3.3.2/data/images/32x32/folder-music.png0000644000000000000000000000247212233027260021024 0ustar00rootroot00000000000000PNG  IHDR szzsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<tEXtTitleFolders!T`AtEXtAuthorLapo Calamandreiߑ*)tEXtDescriptionBased of Jakub Steiner designsEIDATXϏSU?޶Bh1DX4-{4+A;HwĨkE+!d tN{әaB'y>ܟev?T"ds9ƊE< Rn֞oPATx *Bo?e>:g|jm\B_c],T5}6n܊a{cjfN>@()D0335@e\>Ne~~E![6of]ҧ@(Xa KVZZ}ɹ79u+3풋}/,f2Qr g7usƊrBVuk" l V` juޛVqeXR١1q(CmѳйUad;Tryg-v{ܼSo%˕ v=`Yd,4"Fy Fb#2xn(?g"x Q(㙧YDiZDig?}|t(?\#I ƚ.+1SRRTC,bVŇ$ v k%QR.G$ssl$ct&~Yyɩ[)| _@h1Ʀ.!Hn5@>Eqd9|b͎D-87tqSc?VwΖB!1&(d|VG (x4 DBT0f*LMFEncL~p_RrCxʹ}L֛{\V+ dBzZG@ꍏO]rOH]KD1 _ 7MԏvqiIENDB`dist/copy/data/images/32x32/PaxHeaders.26361/genre.png0000644000175000017500000000012412233027260020566 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.417046942 exaile-3.3.2/data/images/32x32/genre.png0000644000000000000000000000461712233027260017536 0ustar00rootroot00000000000000PNG  IHDR szzsBIT|d pHYsX tEXtSoftwarewww.inkscape.org< IDATXWmLTW~9r:3UZqBZڵTPX5Ʊ IjMlJlW]1Lp+hhcE@ ;̽3w̽jy?=D4< G̿:'PLpvX|T21ak'ݳcǎW(F(7322S/0{$ .]]]3jBZQ<σRPx<EQ $Il"@UUHƍ?+--= {G﫭mE"<Ǐ8pP(8hܹsk<OlLTUEvvv|aVVV>cѢEa5D"uttloGy睷޽8b19r9s|@1Ln>oZ& R[___+ R< kPVVV^^J)L&Vk M;vttxdYR(xoݺՆ/NΟ?Ν;}̌1$;w͟?pSS/|>檪6i8Ųgq ERe˖5>_hAA,[Ҳ Fzj&Kxr1#hٲeׯ__k2"Lcsyc <Ϗ/))ZQ~t\n_c6_8l6`׸\.ވEQPRR5G8J3Rh0 `h۶m NsɓedL&?Fu뚫_<KY@u /^<[VVV5441==m>lX,TYKNCH𿨪sFAc^(1Cig8W\%$i*KTUMIF\r '16pc$1@l {BTe9RړdҞ,G88BXݛ'M d y< -A@kkk)ԂˡPp_{HD6D"9v_# 2RaUU㹀D떈 6*""HymmmpΟ?]zzx^^^w\I h#qF𰥨lmmEQ4 65fͺ[%"zڢO(FFvhz> iu^:;QJ!2rssg͚u8p`!NFp9۷ouʕ4]r}oD;WKʕ+o߾}yrͪ8G3xGAJN'gP mڴi~<%30`0Fjj))166p8<nBi3c3SSS-VuTUE8VYY!4oΜ9S짔f ꔿ4 X,$ɲx<_VVŊMWK w~wъ˗/q%%%eUU199 UU͛wja2W8;w֭[޾H$-K@) 0u;77%K\HOOoC?l:q0uddiii`;  ~F׫IENDB`dist/copy/data/images/32x32/PaxHeaders.26361/media-playlist-repeat.png0000644000175000017500000000012412233027260023662 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.281046938 exaile-3.3.2/data/images/32x32/media-playlist-repeat.png0000644000000000000000000000310412233027260022620 0ustar00rootroot00000000000000PNG  IHDR szzsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<IDATXmlSU9綽mR`felf`'2`QDTb*_ԘhHHwc> aŗd"k7u+]{9~h;iys繤…4vA/\ ADp~ %*U C"b4bˊ0j(nR| ŽH5 cL(q]7fGci"!Ĵ |5X9 =:}EF~NlIRu]w(Wڎr.;ӌۙ ҫҽX/׽oY9m soOp;:pCT(ڳS5s 0?2ЙhG"ߵldd]v9?!x\|-|8ۻwխfSSPiyqrQe`x$nҫhtHmkdrN Oo-O Ju: NG^WƘm׶Mh&imqpkYq DOZ0,,qPd28񶶶 {ݻwk|KKDz,S)8TX:\<566ݜN ]^ڼ@ R>tO]F>L  Y[{Wmmhh81tz@m; )l"6y)i":zG|HJ{nlA]oN룜Rj1"SBSP!iMPPo&<O@;_mwW!Mӆ9yYb;)~6oj-[pmsROz< P**͙"OSƕ}>> ,' \p/i^4G)IENDB`dist/copy/data/images/32x32/PaxHeaders.26361/office-calendar.png0000644000175000017500000000012412233027260022470 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.421046942 exaile-3.3.2/data/images/32x32/office-calendar.png0000644000000000000000000000323012233027260021426 0ustar00rootroot00000000000000PNG  IHDR szzsBIT|d pHYs|4ktEXtSoftwarewww.inkscape.org<IDATXŗMlG鞙v3|+{{֭BZ;Bl˗_LM0B }{zzUgv9x~&NaxBӒ#=H#%VJ==[ Ç/f޸i޻'!3b@MRB*grzſ};kM[J۽auAk1P qHJ〔++ssYmYcX}; `[qR֜I"Jk-v_K}><2}}n|; %w]P H$6T@TI"s9AR,Btwc[RX^]E>"QM2V@􌌐۽L??!~=={ֽ8L&GyJa֦-^ONR0_\Lz:JaJ۪h&\-ɬRleKJX} hmmD-c'5 XA~1KKK4M $/Gs]$l/Cm&;t2t7ƠB+r@t^I;1 <NL( 6$ hu^ʕ+̠b:u bU.^btt 8Iv# j+)-˗dhhqhp1j5Ξ=KR묉|ߏ1e'hg_]]ejjb9wLOOSVQJQVZsر85J1$ $d&? ؾ}{lΝ((hٲe cccJ8A:a 3&,W^a!4Z^xAd2x>wdZvFi]$r]A)ZHh}k8k=NB5BuS(D c |>3}#bRJH)}U1RD&qJRd%K)i6d2uN(9rk׮q…Gknܸ'OR.z*{e۶m1x:V) n8#ɓ Z9qDٳgq>|ȣG( 1qr,,,p8ZZZ#;~FvIɥy(`ddbx>Lwwzcs]]] JV,s[vJHRH)Z~kkkxǎ;_6U.3ׯ_eY'<"BAl6hh4X^^RPTjuǡ]v188rҥKwR-!m{ nYkװ!&qIZBZ+b3(IENDB`dist/copy/data/images/32x32/PaxHeaders.26361/exaile-pause.png0000644000175000017500000000012412233027260022050 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.233046936 exaile-3.3.2/data/images/32x32/exaile-pause.png0000644000000000000000000000333712233027260021016 0ustar00rootroot00000000000000PNG  IHDR szzsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<\IDATXŗoTsν &|044 mp+pMEfQY(Ru?W]r*Q RC45$1bL=_]̝c']HG{=jv :R4W:vmR )کbx}1Z`rrr\*yfMCNoܸQaRZǏؙhӧκSS@Tz5 éW:rh1Fc; !Rz^U*Zb8J0 ?;8V.X=v0M_nԵֿ, P*?֛\&CGkC6GJI:POf _}tn}5 ekn9.Nys"a #^or*Z˗oa8cl6GY[ed9p۳;-oh?P}{ݸ9ͷLNN sNxQL+6ֵ:N_qьl߾][_xyrrr|UC?9MfXHZqE@&uzMЯi?q`}ogV(J^zi(Ѣ!H!^mF\.K!P*FR{^ݓ& $JIڹנceRj P @R"xP@/L7hNjӣM̆ >p8 B8<`o5I;YG*;?݆ιRJ\NC]5Rj0{wj# St>bK:o:]xԸM:zCn X)kmoE)|Vn֚E({pIШ !Zk}R(B$ X턧kؕ4KԊ">ky S}ރ5XkbcF% ϴ5|?S_>Razc-q+&nhmFJù{PzYZ!..}Jd@RzlKκS7 Sq+<鰀51Fӵ4RJܹu;*?&&&l:8.탣(Ѭ#zU%ʏLl}wZ߹5}u```}:3G2C!û>"Rj |RԹc?ZM7Ջjׯ}ZH n~Vel{{e( \33w7wo.\0 !@{-g_)`P\O Wp;::4 &HPUUMt>߇h4 Mb 29"-s/rƍ{Ν;M@ Bٓ܏VoAs@E99.^lE(?,"(JeYmoX_<=frW̙ ~󅆭k<&c-mR%>DBmooP}o p96)u]7(p8[U^UUECdA6EA2̲,yθMUQks"" Ps΍.Z(j&N=u')x?XPȔRJ"c9gy  `j82j"jjj6@9𯬬 PhlhS.\X!% m?a7Dy7=`CÁȴ躞6;"JɓsM0Dy#ކ@WWԍ6BC#0DLǐ16<+W)e]֮= 657_zj ;uҢN~?^^^544tߏrX5>1$"@AA$&N(…`̚~۶m;v* Ǐw'N 5GMM *++3̘1:4%%%Ɗ+g@ U 7׉:reWRR) !l כR6. YYYزC<܀{v# 87//tNQZu?~}>Զ}'%B)%ci0 x<l޸B O0Vm`vWC9NjƖ-[N1XTE-..b\UմysVm'HBJX,.悂Ƙ.9َ lsXV߾IDGps3g{}g͞n4t~BeȪMMK֭[L<6m(nQ&RJ+V4%zq1-8e)L$S4#So:H ֣Scvj`eh\It%=ky6ݙ*IENDB`dist/copy/data/images/32x32/PaxHeaders.26361/artist.png0000644000175000017500000000012412233027260020774 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.417046942 exaile-3.3.2/data/images/32x32/artist.png0000644000000000000000000000207512233027260017740 0ustar00rootroot00000000000000PNG  IHDR szzbKGD pHYsvtIME 8IDATXŗOH#g󯙱ĪvٺRmI=E/ [ UUP^="U.,Pzi@ڃn-(-bMęę6>=sIB~n*2PBo@ 8 200˲nʲ( 4MikkK| XW @[[[{szzzβaHҿ' ͢iD'^@x 7;;;W]Z~jm#IE=͌bcB@ (e; bcyX}黺#˲ut:}]v $mv .|6`!*f LQUռ[UU3L޹4p8/I,s*I4ͼ?z N*zC !LUUQşŪ*m׸/YRIKK϶m{ހb;C4ɵhQk_qD"O?~/gF)9ooF_g_:~woJz *[#9wU/BBD/gfmrkTJϲO14u|2<6wd֢w hמYsuO2=L.R Nn5Z&'x‚71սU;nWZGҷm|TfxC`b6^ոGbvo\0=3WMAb@,ADF@c5Թo?+}\+"m{3rb,GO֚ֆ546HD "#a a#rq2 < V_<+P۾m=nIu18V*<3vnrs%1"ʠ%2 }dfJiY(x.۞v#?0`1zclp?u~{-৯,J (e%d0wpu^gs{izn _X`bzrd]fd8Vz L3Ykݛ9vo^9g"b Bv* b-eDnvbӻ՝OWâF4ԵPִsO| wEw&&  a`&Dkk "_Q{=~rZ++/+a:.MXGzW(iLNFB0(VΊC5{D !(km 0Q8,aӝ1޾@ ^0ۋ!gEj,AiC[_d[㌎eD,e'֡sQlMRFT*l).5ceߧ\nn^4Q*u]H$^7yHS*(P(PP\AaAX^w}139?F).:V*aXk1b šѽgih(q)yR KIR88J?PU=vcp³cdWk CCB)W cg99F`QwB aM>Ewx7}?N9O۪&կ(HZ-Т*wd.C)DrP~ٌ)T_߇8E=%մZEg3cPvt#ӟåB'̫"b;'R*n|jMwTz͕ߒlHfW42QZ8p2Ub_|y^y+Gn"b  @zרǒuԪlw%$IbN +)Q ,ѰTʟk&P,_ӟH\.إ7뛲9[ܸmԮJT(O#>SJ @w;3B kqk H%_ҪU{7G]]]* C $\6mٹ9g= o hggǝY{HT@\gJBz`ppps}a޿e2 {<,u_*k=88rs&N'1ƚ&Q0%|ƒ#$ Ӕ%NJZ}fM }cmQ"Nb6^(:CpCt HK*Q.W9uTAk}p4]0 ~uwK&% N|OI͖Br#[Viisa6%CCCwnXAƵ ;< le]ٿzIO~opLPg{wT*===厡[H%_=$kz+70750B-ǔ?O_JEx<عE*M|ߪ+; I/9hm-VKx+>La~M=;3LKc;Ѩq-&В˭}MJ-62;=4^8 Zb*'0[^>$:ڞH)5 J@cO2yCTO()W'rl##$X@hwasf*(a@:(**3QgǶw^HRx绛s]RJwbX%UzdA(Q@HGEpuQ&ƍͅg)71Xz_X3Xks#$ΒIa* LIRMQ R h{!kb3RXkLR"Vu '#)$Z3A;>_f{h-Zk3M!RLq@Tk4Bs8aN4Z3MdD7cGPv*mQ7cM-RL49`=>;3sMX ^L\6joGޟ:uR1;;Ǜ?q*U5 m5aEyt}}4ìdf]x/B@,a:lI FLz'+s[Υ}u#M EjI28e[8랿t_Tj[eI\m=wtu3 {=M 7R"ᑢcMK/ti-{z֪RJ4/{\k$޵OʥnݬAɉ)36zeСC;5eZGϵE JKj%]_' [k=m}q{Rb+[dTخ{--ĵ*٦yH)Q*T(q;d! x}rk(c5NnK\)$flJuzz#Gw"asRGBbKGD pHYs B(xtIME+{H IDATxy$Uy/}jafT 1W1f$z{>$jEPMWf_u޽<:ufPVWWW=g=^^^n凾+HkXv<Ǻ`y'S6?~ nYLF@D瀹`F x{x_CX}#{/Cw+ |%$ЪIv~72_o D78aItgV-5EL!a7R)h[Q6J[%Ԭ*y̔1W- ]N/[Rc $p#FubmׅXӹ5hO!f;`0{!PNb<1݁]hؕKAt?Z*Cevͭ$OC}/iaUf۷;Υh_g3"HP ;,N sDN!G+#/`M_4^KBߢ^} _Vz542 (֧QfQi̠nard;  4Ҡk FXL-|1\Q*84Sxs{feٯR=2WhDj\8o*$[˘E~(C -#<½}@hkhH9hB#S|u&~B6Bn_J w [߶{_U34Nܘv%VtPticv*9yuS X?Rgo:M<C6dU*NjFx[x!cc t[mc kơqwz9=6ZPa@*@B63е>tC3y@= B.G5T>>=wGolzRd{'SGUTma2_0Ä0@L\z{qɺ(F].m#4|V؁i f5v7ꙡt=T<s(Xu0=`u{{C̝090aώ_8v?VRbW-ُ7 /0Q؃~P{sQ;ХPGDжoT @F"K5 3 -&db=2ttiĬ9܅ Fzޅͱ});?hp_.3zpuGdxPhU*}s}Apee)jhh'TphCG@:vұn蚉ƺWbRA*(;)dMT<|m-c " Qy͖mͷH?7o` [4AبERIJ7ݓ՟ Г=1Nл^=^qE ߮$꼏¡^Tg |Za^9.=1ǷC a{jB \N $`p;e.TF[|Н]UliLvE0cwS!3T _оm\x NCԱAhD8D"RtCcjU`gѳ!F%IVqBQʹZφ@(5pt[uXӵQ² )[zټMWg~ymy(`{{_v`PHc$"bg]TU ɷ63"@'T"hp P_P1Z|F^k]5ާѫ?h 6[o:2so!بK᳚Q h|4ESض OOn_AflV!*Շj4[xGUVaD]33ލMw|m0oi0noM8a΃3?F!?p.E~rmSaԬ2$@ c6;|6`޴O¬{:X( 0.AE1 S!a&{0<+^c|{}  Di9~gpv`ftk|[{Egr +7γ7 zBBq}>@ X+ k8T ̟lvgk&7pU φ P 8=s6t_fB3˵yL'lAs##t ֻg C>"2GA8.D^xF!7J%3pdi0.vg/W :9+Mb?S]-#;uG_&lp%RvGv#O *I'9*NI4yPY Jit$ׂ̬nԭ lZsێ{7!- -wlH38?<<"T?( |91E ?irizf7n@FfwBRu#{/M!!K8B5 7;*B9=@gl RO:[U# [4.:F S "'8NF}SJY@B:v}qׁHCZ4j*t!ߌ7s N}ur-}ɏ"K"6s)a0YV, ߰)C O_R`<>蚉Lsj;V5~ےk4ǵ 1=8:Lpv-L19?,m7}g(Ul BuE4uh bF z/e?lgA*Z/a|0f'g^ouWez9R&/A1cL,:k`$cm8>wM_,KceE5~n桷"k1<͉#e?\4 ?PORʬgn4l{sjfg19srIfұv\/޹~B[1[S{Ǔ{XHS A'>E{wZoO1()jͣPH'ww=<{) p z X{N~?_PC6@TEP ~߅l[C[P- <&'P* عT WQ|{tl\qO{ʴ{6v"VUg]A#Oˬ" G%I`_ }VƟ Ŝ<4ݸ@ d`0 JU!:&4 GNSHHųmOB)qK5u|~/pk>/0Ó]CVhv = E=Ux. Rl%$ Kl͢PtX !xSM \WN(H@8\T!6^;H5ᶽĽBσe ŧ$~D71lԋ/2䥌%Y4e3G s$BdITɺދ}Sa0v:Sk g+z]ؕFN09jDκUKR`feLN@oƟ]3\a 'fCϠa)u<oĒs)^]b ,"qCqfHOb̓!Г9Cf | S{ijIMscܜ/|'z~7:SDžK~OYT.br wBg_|쬛A6Om Cݎ+F pR0gZL9ԲcVi^VƢsd|I÷!]`h1l F* ;.}bDLbn*B4$[䒽2=#l{ezRə E~O^.Xfp||/~AL͎6*ElQG'?MTҷ#1y6QNuĮҽgq3/_'U=u vCe>!f*z+qM+:3k;q/xg!n873~Z0@ tsD(gJoh~A#Bh)|u_Q4g`_ 7H6F&abvPrM3dEL1xJvQQA67^IĻ`q+eЂ`K{szXӡ+9ݢ8|5< 3%yK>G5LM@>?a;ךIW -`c厭ԨgQ(LRu{˖z1VbFR)^`}OcnMw[4\@R%Ejz=\hHv_'ZB E\H%TL͞@\GWrWЕvnx<]û%)l_AnZ @M~&Q/b A54ƕLa`e7!C#]Tp`Gq7\B*čŞ%># ffPk|Л7o`&̞'05;{74e_ o (`bҎbF՚ Ilϣ5N 갏G -f?y!ϡ 4, v: g>G˲07?YؖH>?|#4xaqn;Z%Ԩ~XSE,k*$㺬Pj.kb*ЌsUjVKid]Ehz90#B1# ,|{k*gP(qړ>|_G6 gs1KQ.05;r9o1i'ʜOb02pPw,26ǑpLC˳@{r@ 溟Y^.YɃ7Te&4utjܪ!ʸ{B l~m $,>ݫ~5][]o=?AL}Ńc*&%_1}&:{Y mA0;-ԔgK:'S¡* D I̲1lī[Ө;J$>;}7p?i|a{=BiqԱ{5V%լ<$L|u6 Qn(EhV {#]ƹIhI?ܳ7TB4YZ|qnrB9iX 'd)~+uN޲8|lǏm= sKE{azAEX\6 3Jzݲ@s!]z)Tˇ~J8d6>*A)>G?5,ύfZ O˞[_Mpߺ037Gv\." EvCce`jwQ &M\ a_P`Ο#FtUkxv-E90йLu~hқZsӨknW}7>vЛ=˱ 5ޏىRb_Z9"} g:n*/bp=LDبG[IhfVAcP Cl9r)i>N9 I;P(Kݛ݀>fc;"KA#8g %v,014tt-  7O>&FU` -D&&wǧM1՚3Ŷn+|`](qllے.|KbV9,7'% &Bō`9X ).k1`,A@ ; AsQcr58s9TU~=ŝZG`"E~/:ڛyy__2Xg k5iL"ܑ3\((PBWpTm"% @G5]q+ziLN蝼UB3t2 d YSRhЂu%%8hsh@ϩ 'A#\ aCpB}xjR-\)+tH DJCWCe/V-zI 3éFîʛ Ϗg? QAî5ܐώokn1Fj?)IJ@QG\i" 9<-a[PmZT4?G< bq9x,]pj 4݀FZx,V!kGז jt%rk0f2,FUj]D*Ap[IN&'8"P9iMPgE5N3cHr4u<|sx򘮮@ܫ PZH04< %j4IDAT`|;tԭaM3͋ʵY(7fQi䝥 _ެ9M*0!4ݣ)¿[*F",Tm1=ݽfG]$ #/YD;5%i:la3ap 3.(X6 EST@=7a{MӑIg`3O~3~#"X`- Q(6R-l`fsĻ)G:M*J%moj I@%⿔x,T*#Cۂm?ǥ8/a7 V5G,Ǩ4S>W@3,|mlyw@+݀ 8Dʠ-ۆsK-<7|m7Mk֭9oD. 4X.ĭAQ ֬\A#Sarߖ.#u;39= @8 8QܻxO [N5)ijɯwM!O ˸L?3f1:r uRo/-ԑ)b ;O)֎ȠI ߃s'}&[W GiuX@Ś-lvRqU50Fw+M׃&:gDlj*U&knc2\UbwzdI,ԛOC㯽{HVw/x[͆{ 7Vn¶+Q!H-ۆ*C 3,¦bpU?tCWR!xiVj1L֠!g9n?\΍,v4wz VL(:ҫўXy+jѬCDg5wMmŬzMG"tKm;FN@{GHo@/0O ѿV 4M3c0zo%P,#W֧u -tbxF{ ezsrB >L#mg8>4OށhHi#֭_x<&Zaz08r+TG~#ZxYmjYib:m>f6܂ņc@ V@ TAϕG7u(5Q'k)xxn@t&^dspk~XM p U ѕZgyV5܍Vki=bolZڶbd~ʛ\6`&9ߍxc&H3 yO 'P}&E_7锟PSn zޠQ6@p;sv_0pمs >V45UOȧ~kWuX9-s~vA%#R?Ek y5ic[@,Id"d"0e z )<1]<";jgsY Do_ x tOHCAQ?9|N%gSۆjë,OyK˕v @|Os+ڒry%;RaѦˮSh4jеK(`/cb~o@\H$ay`o&,7jԯZͺ?I uCw}F1_}e+?(Rמz:0cxkB#m'PiG>Iȗ{YA>#ض5{G*U8,l݆9= ֞êՃp J NC[nbit2"]p_dVl0D c80D=ط9_R|+vxŚwD8j<9u|S^ `` $ ku0 }1=864v; M>{{̀^rs) Q* Vkơm*|-+lXw& ~@wbuDžN >c  s)s32'$S8sȵgy=JK`&%gR*}RL$ρN3'`|w)?q?Ɗ3' m߱f^g x'(Pǹ0$bzx/Jd (SaVk-뺎zzՉx"6DC%nX*Jpu5AGOjc|&vK&'N*~*jﵟr~-Bؘ*P@!i0U>h፻,N%mF0Ml]D*5T15PQ h|nR#A/g\Y0?4J[ᆬq.xuDYeLa%)Sވf6`oʙCXE,o:tz(^Gk#V5gXA0wyjGbnaױ/PsJ*2A*VgQkIVNi2z@(Ru =YeNKemJpD'*cP1נ+ =˵)rSl=}Gx o; DTX7fGU4R4"@]ncr4!Z `UÁPy_Uw|sR^bkh4o? 4$2w!),!/UǷb(0,li^AW +u& J,Pw)ȧ1>ljY88xuc@TT(rkF]3POaB R h&}/E >@VS@$0Е<:`T%9 %9!+Zbϋ.o~(t=d^d ska d;d*kfPOo&^Z*Z<4CŇU!P,bS\kώi\OY/{ns-Yr5]Ȧ:wHC[|X' P@GHr~KV-]bh&0$::ãJ'agx_Ì+|RO*c1O^K ʮ!n\6iZXM P(x̛9s`7xxߣ~H6|/4Ez*CN?ZGtt2 Lab .gp0F32e4JH߷P "O߬CXş{s?_Z $x_v,^峱΍X׻X[E5WG0WA՚S*~Za6@6et"a${j`4/MscGd}y8T/ eU=U0V{q-M=F=J}뱶w N!nQfPOl8UaGUDu*_tM$6zft\yc/Ԋ K,qT/==Bқ7_7JdF_ZFR bZ(5%E u,;qlLuG\ydВ0$L=4cUF]0(jRi?O|\V`RfF t-U轛E6-@6݅t xDx1#4\feZځ[I@VB^@VBV@2ruU..aO&QR/NH?` =@yUUֶ~ms2H[-ALf Р.؂mhQ wԅ7B4㧆w W"BV_KR" g:ݍyoݠmvyI^)d6BZ58P=V 0E N. åe ;oRChgb(7@NgO7M1tV¢bʅJ摑]btfK7콶[`ErKk8)P[=bZD$zOp9T_Q a}DP{[^੅E'XD>Bha1FK(S |2jKG0`(&!JM/4rh^[*FL%|b0%F+ɱ+G<)b~bbhW, %_,7-KP7BXQj"dfn /GD /.uxb~c^YIENDB`dist/copy/data/images/PaxHeaders.26361/22x220000644000175000017500000000013212233027261016701 xustar000000000000000030 mtime=1382821553.417046942 30 atime=1382821552.785046922 30 ctime=1382821553.417046942 exaile-3.3.2/data/images/22x22/0000755000000000000000000000000012233027261015717 5ustar00rootroot00000000000000dist/copy/data/images/22x22/PaxHeaders.26361/extension.png0000644000175000017500000000012412233027260021500 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.417046942 exaile-3.3.2/data/images/22x22/extension.png0000644000000000000000000000165112233027260020443 0ustar00rootroot00000000000000PNG  IHDRĴl;sBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<&IDAT8ϋE?Uӳ3Lv]&kB`/<z0(*!H56 5a{c{bBպ'Hۭ\.S(r}0Z" " M1FqоPbw)DAAPAYjkBbUecH!"r" DDUյ؊UWUp]w U+WZm6,π~cvppc2<=D(L!)aڠP(qq~ߜj> 8.+Hss>x?s{j]vm^P $I  ch4NI_Ux:KN۷ I1?: oš!Ѭf,+px"=[ .333g[/;E᫅ /by쮏N|Go!IjH].Wo ϟ?F2d\uM%-{loo@rIm^q/O^^"IvYO[W`xx8;---cvvV___w~~¿cZg2gpݹ } :qmJ4 E{ 155c dȺt5 ###QXOӋ/ JGyy_w}D)dYF n;;;;wZsB;$ ~j/>17w6? +ZVTZw6]o4'WXV+ l2>>~z /ɹ[򋊁`($H8-YYYybUFc$M$3I9jO,$YQT\k׮\ $KI>׭uKvGmm@b~`lp@b54 MlBIENDB`dist/copy/data/images/22x22/PaxHeaders.26361/folder-music.png0000644000175000017500000000012412233027260022055 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.241046936 exaile-3.3.2/data/images/22x22/folder-music.png0000644000000000000000000000201012233027260021006 0ustar00rootroot00000000000000PNG  IHDRĴl;sBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<tEXtTitleFolders!T`AtEXtAuthorLapo Calamandreiߑ*)tEXtDescriptionBased of Jakub Steiner designsIDAT8k\UcΈc+- -$ PM%QW݈Aڊ nƶJ (i>/*ΤD$tf9;kZ-}p/yppq?J*^N>rҁa-fb͊wN:1\I); Z|?_q`={8m_7l*?PTg}Df-{3^ȂMJ07ouJ-bu\]E]^?\Xƛ/GCCCX@5QLśq>>"f^' t)yfY{t]AW_ $S-i V*?#;wSr{J_xwcE CFs ]"ql}?!^_G3s~fP;8R#f!s瀂 գPJ>^Vq C?πΥk88*NoT\RR]톐;g{V5R*eFVc{E*MãLTkaEݠXADQR|F0@kAqGn=`B23? )!<6/HM ȑ痯\. )%B$ PZ~ k AjnI55OMM=|xEIM}eҥl6< ߾6>xQt/ (Arcl{p!HrhoyrlIENDB`dist/copy/data/images/22x22/PaxHeaders.26361/genre.png0000644000175000017500000000012412233027260020564 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.417046942 exaile-3.3.2/data/images/22x22/genre.png0000644000000000000000000000271412233027260017530 0ustar00rootroot00000000000000PNG  IHDRĴl;sBIT|d pHYs22htEXtSoftwarewww.inkscape.org<IIDAT8UHgyDOS/+::1QX F[]CvLĢQZQPi C<ݯ'Y篇|~?,~uZ'6} (A aAQ`0\BKK}}}_t:4MT̜ BR:::nP^ikkkl0l6]v=(((@0n޼Y~ƅ+!X,sN[CN)pfڸ=(L)elZVt )(=_[[6m,ҍr:-$ma6ky~ &d2 )j.0 I8G@PQA{nZ]] ~jppLE!,Nk$8k5>zkrr*/fff @$EgdN"0ͭ%%%ёo)ey3gYL(,TU@4e~DZXlSNNNX) !$I oF:::X*++s}LJ$At}15:&6xЃ{to5TUb @^D$H$5M{Y6XrKM{m?oc9uM'Or]Ns­-yv𩓧wB!%LVQWkֿ5~vt@-bMLBӃYp}}܅nb0&4FD# +**>FHTJް9 ˲!Y@s|`-ypp0Ϸ4ZqeUU*.R8SL$I<t:. S=T+>[7l\팞~J;%H(ᘞ.//,*vݍش3o`sUUk7l\=z-: YݮDj0];n{lyi47%\=<ij8u `?Iy29Q~19|֍Lsf^6{GYʡMg;O pr-0`WFʕCv5zK;o371s33|Iooo ج716fgl!HcoE"'b5xQ}Q z.o+IENDB`dist/copy/data/images/22x22/PaxHeaders.26361/office-calendar.png0000644000175000017500000000012412233027260022466 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.421046942 exaile-3.3.2/data/images/22x22/office-calendar.png0000644000000000000000000000201112233027260021420 0ustar00rootroot00000000000000PNG  IHDRĴl;sBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<IDAT8K\W?7LČ J!ҕ ](⢋.VIԅUQ!TčM7Z 3lGg2?wOBuW(0~aGǷL/K&%s9Bxׯ.|P 㭟57Q>>~A ǟ_*RJẮ{t"H5:)M$I@@!wea&ea6mmXEկjaptt_[R/|$h`ED~;A&;IENDB`dist/copy/data/images/22x22/PaxHeaders.26361/exaile-pause.png0000644000175000017500000000012412233027260022046 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.233046936 exaile-3.3.2/data/images/22x22/exaile-pause.png0000644000000000000000000000222612233027260021010 0ustar00rootroot00000000000000PNG  IHDRĴl;sBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<IDAT8oTU?i+XQbVd! ,0lЀ!WLL 6$l01 N:픙Lg̻ؖγy9syJD?,"Dc@6osh]2Xj+E؁o~ Z3jcR̔egsZ&)ٚN @+ER=ҝ[卞 JkjemNM3P*`nKbQ=!ʥJv,ֆł[_[yލ.8X!C), >Nv۴ѡ-?x;Y۶իW?O^xc@Lv#oZkeZmٙ3gKHo=,-9ZXv``O Ji@FkMX^*_'_;wkiΌR1ԩSǎ2ٗL3&t,CDXRTrتVOdzs@ x*"#@&y/JRCch, PU\.7ڵfπw āXu)"}[WIENDB`dist/copy/data/images/22x22/PaxHeaders.26361/media-playlist-dynamic.png0000644000175000017500000000012412233027260024024 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.281046938 exaile-3.3.2/data/images/22x22/media-playlist-dynamic.png0000644000000000000000000000170112233027260022763 0ustar00rootroot00000000000000PNG  IHDRĴl;sRGBbKGD񶏷A pHYs  tIME!"fLAIDAT8ŕ_L[U?@֍ h_`˥&*P-)-lFb胮ۜ05>,YM8`h(wY>6S4_rrn{(*k}% $`IDtW|Q`ZzO/}Lrw-ZD"ԿV^jh0?7/w_{pmm-B#xFGxX p8C^)]VޓєB)RZZJCi Mi=qwgMJ\-ak{U~pB]Tفi9v@ @j.EyEỶ^j fIsv_"*ǓPQlFrk.+f->sl]_d1\#M8@[Zo. 2M3ƥlBCHO= 44}~#P?jt+5kM|XbV(6.~'Nt:cv'l^}{d캸r檍>62LHŒKLt2.f\ffoӡs]"rWbxxxO/{E |qQu?w=՞KJ+YID z?gf#D$3U?5""HOՔ 4f|N)5S[#zIENDB`dist/copy/data/images/22x22/PaxHeaders.26361/artist.png0000644000175000017500000000012412233027260020772 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.417046942 exaile-3.3.2/data/images/22x22/artist.png0000644000000000000000000000130112233027260017725 0ustar00rootroot00000000000000PNG  IHDRĴl;sBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<>IDAT8?hQ?64DBC. P K( u.tp1D)dU4`$K琋M{G/~{w1C s&$^dRJqLPXBlm-, KJ`Nh~8f׀O|fkJ.?YelYKYm{:pV\@j­j7Ƽ?&晞O8Yypɠ2` :+{r5z% m~xaT*u݉ dzOMDWB[__vuu05+\8s!D8Kt:4> !Z:h8ư$-LptONX[[[[&{"eY^TVmǰㅂ]MiZwMpղb^ >7^^^T* 50<z#u481 ÒR>>6ϗR6p_@ǥq_8KOkۈIENDB`dist/copy/data/images/22x22/PaxHeaders.26361/exaile.png0000644000175000017500000000012412233027260020733 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.233046936 exaile-3.3.2/data/images/22x22/exaile.png0000644000000000000000000000253412233027260017677 0ustar00rootroot00000000000000PNG  IHDRĴl;sBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<IDAT8MlTU73ofڙN ViBb&~ЅѨcLtc&AS FBčcĐ@Bb*"t_3y3޻^-Uu99Zkcc7L:-BMZ>7zo^,ǺLwwlZ:`-hM &*)љivx ޳GcD,k{3]b|7F+ C;¶RdNĥ5?pzW}|M|yc+¯hIBO>c;)h<Ӥ)(PBJ Y7PzI HU=7rHО]ʹH͢}evFJI@JETa֪y%Fw\op@WAĈ"%L *_c>ǡׁIl~nn]֚EFN8YnYSV~xJֺt3 dV+NmcsfOIw4Q(¡r˓O Z[(@\5.u4ϭIENDB`dist/copy/data/images/22x22/PaxHeaders.26361/exaile-play.png0000644000175000017500000000012412233027260021676 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.237046936 exaile-3.3.2/data/images/22x22/exaile-play.png0000644000000000000000000000250612233027260020641 0ustar00rootroot00000000000000PNG  IHDRĴl;sBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<IDAT8oTU?ܙ{:R۔A(* HQ"A0DfA+(1h&l  吘` P % ҡL3qq1`$777sGc?^d2T*6Yئ,ѧ9 3tZ-XHqwwwԒ%KZSx,&0Fk) zppu?GT` p͡D"!SJ)!R`I|\یGÇHR.[ц /'{GV6mAc06h4"5rCcO)nWvv<_x/h}+%Znbs?]!ZklF)-SmKZG0RA[HK",(?<B %}|O8R.BZ$mCIڰ+6,ldog SXg'&&^jnn.@9.`<%/Cܾ{Q^[*bfs6y#cTjqv+H| kh$k! #s w Ve@o L'rX<*lB 39^$Yÿ(i,筎/i8RZ La<?S8N+n`>GSd{܂5ٳTwo/kt ِ8#_sZX; UܼqkjjrBh^e~QQJgGXJ1[,s>z艮.afS, {ٰcǎDKSS?^hc IŒ͹bi<||> c -hBtΖp8* eӧO_p'a`=~b: (}Vf{p1ξ{ZIENDB`dist/copy/data/PaxHeaders.26361/migrations0000644000175000017500000000013212233027261017031 xustar000000000000000030 mtime=1382821553.153046933 30 atime=1382821552.785046922 30 ctime=1382821553.153046933 exaile-3.3.2/data/migrations/0000755000000000000000000000000012233027261016047 5ustar00rootroot00000000000000dist/copy/data/migrations/PaxHeaders.26361/migration_2009071009310000644000175000017500000000013212233027261022321 xustar000000000000000030 mtime=1382821553.565046947 30 atime=1382821552.785046922 30 ctime=1382821553.565046947 exaile-3.3.2/data/migrations/migration_200907100931/0000755000000000000000000000000012233027261021337 5ustar00rootroot00000000000000dist/copy/data/migrations/migration_200907100931/PaxHeaders.26361/oldtrack.py0000644000175000017500000000012412233027260024553 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.289046938 exaile-3.3.2/data/migrations/migration_200907100931/oldtrack.py0000644000000000000000000003134312233027260023517 0ustar00rootroot00000000000000import os.path, gobject, re import xlmisc from xl import common import logging logger = logging.getLogger(__name__) class timetype(long): """ I am just extending long so that we know when to convert a long to a time when displaying the tracklist. I don't just send the trackslist the time in the 00:00 format because it won't sort correctly (I want it to sort numerically instead of alphabetically. """ def __init__(self, num=None): """ Initializes the class """ long.__init__(self) self.stream = False def to_unicode(x, default_encoding=None): if isinstance(x, unicode): return x elif default_encoding and isinstance(x, str): # This unicode constructor only accepts "string or buffer". return unicode(x, default_encoding) else: return unicode(x) def get_default_encoding(): """ Returns the encoding to be used when dealing with file paths. Do not use for other purposes. """ #return 'utf-8' return sys.getfilesystemencoding() or sys.getdefaultencoding() class ldict(dict): """ A dict that only handles lists """ def __init__(self): dict.__init__(self) def __setitem__(self, item, value): if type(value) is not list: value = [value] dict.__setitem__(self, item , value) def __getitem__(self, item): try: return dict.__getitem__(self, item) except KeyError: return [] class Track(object): """ Represents a generic single track. """ type = 'track' def __init__(self, *args, **kwargs): """ Loads and initializes the tag information Expects the path to the track as an argument """ self.tags = ldict() self.time_played = 0 self.read_from_db = False self.blacklisted = 0 self.next_func = None self.start_time = 0 self.set_info(*args, **kwargs) try: self.ext = os.path.splitext(self.loc.lower())[1] self.ext = self.ext.replace('.', '') except: self.ext = None def is_file(self): return self.type == "file" def is_multi(self): """ Does the track support multiple tag values? """ return formats[self.ext].is_multi() def set_info(self,loc="", title="", artist="", album="", disc_id=0, genre="", track=0, length=0, bitrate=0, year="", modified=0, user_rating=0, rating=0, blacklisted=0, time_added='', encoding=xlmisc.get_default_encoding(), playcount=0): """ Sets track information """ # Doesn't matter what charset we use here, as long as we use # the same one when we decode (or encode as it were) if type(loc) is unicode: self._loc = loc else: try: self._loc = unicode(loc, xlmisc.get_default_encoding()) except (UnicodeDecodeError, TypeError): self._loc = loc self._encoding = encoding self._bitrate = bitrate self._len = length self.connections = [] self.date = year self.playing = 0 self.submitted = False self.last_position = 0 self.bitrate = bitrate self.modified = modified self.blacklisted = blacklisted self._rating = user_rating self.system_rating = rating self.time_added = time_added self.playcount = playcount for tag, val in {'title': title, 'artist': artist, 'album':album,\ 'genre': genre, 'discnumber':disc_id,\ 'tracknumber':track}.iteritems(): self.set_tag(tag, val) # ========== Getters and setters ============ def set_tag(self, tag, values, append=False): """ Common function for setting a tag. Expects a list (even for a single value) """ if not isinstance(values, list): values = [values] # filter out empty values and convert to unicode values = (to_unicode(x, self.encoding) for x in values if x not in (None, '')) if append: self.tags[tag].extend(values) else: self.tags[tag] = list(values) def get_filename(self): """ Returns the base filename of the track location """ return os.path.basename(self.io_loc) def set_track(self, t): """ Sets the track number """ self.set_tag('tracknumber', t) def get_track(self): """ attempts to convert the track number to an int, otherwise it just returns -1 """ if self.type == 'stream': return -1 t = self.get_tag('tracknumber') if type(t) is int: return t b = t.find('/') if b > -1: t = t[0:b] try: return int(t) except: return -1 def get_bitrate(self): """ Returns the bitrate """ if self.type == 'stream': if self._bitrate: try: return "%sk" % self._bitrate.replace('k', '') except AttributeError: return str(self._bitrate) + "k" else: return '' try: rate = int(self._bitrate) / 1000 if rate: return "%dk" % rate else: return "" except: return self._bitrate def get_rating(self): """ Gets the rating """ try: return "* " * self._rating except TypeError: return "" def set_rating(self, rating): """ Sets the rating """ self._rating = rating self.user_rating = rating def get_title(self): """ Returns the title of the track from the id3 tag """ ret = self.get_tag('title') if not ret: return os.path.basename(self.loc) else: return ret def set_title(self, value): """ Sets the title """ self.set_tag('title', value) def set_artist(self, value): """ Sets the artist """ self.set_tag('artist', value) def get_artist(self): """ Gets the artist """ return self.get_tag('artist') def set_album(self, value): """ Sets the album """ self.set_tag('album', value) def get_album(self): """ Gets the album """ return self.get_tag('album') def get_encoding(self): """ Gets the encoding used for the metadata """ return self._encoding def set_encoding(self, value): """ Sets the encoding, translating info from the previous one """ for tag in xlmisc.VALID_TAGS: try: self.tags[tag] = unicode(self.tags[tag].encode(self.encoding), value) except AttributeError: pass self._encoding = value def get_len(self): """ Returns the length of the track in the format minutes:seconds """ sec = int(round(float(self._len))) return "%s:%02d" % divmod(sec, 60) def set_len(self, value): """ Sets the length """ if value == "": value = 0 self._len = value def get_duration(self): """ Gets the duration as an integer """ if self._len == '': self._len = 0 return timetype(self._len) def set_bitrate(self, rate): """ Gets the bitrate for this track """ self._bitrate = rate def get_loc(self): """ Gets the location as unicode (might contain garbled characters) """ return self._loc def get_loc_for_io(self): """ Gets the location as ascii. Should always be correct, see set_loc. """ return self._loc.encode(xlmisc.get_default_encoding()) def get_tag(self, tag): """ Common function for getting a tag. Simplifies a list into a single string separated by " / ". """ values = self.tags.get(tag) if values: values = (to_unicode(x, self.encoding) for x in values if x not in (None, '')) return u" / ".join(values) return u"" def set_loc(self, value): """ Sets the location. It is always in unicode. If the value is not unicode, convert it into unicode using some default mapping. This way, when we want to access the file, we decode it back into the ascii and don't worry about botched up characters (ie the value should be exactly identical to the one given) """ self._loc = to_unicode(value, xlmisc.get_default_encoding()) def get_disc(self): """ Gets the disc number """ return self.get_tag('discnumber') def set_disc(self, value): """ Sets the disc number """ self.set_tag('discnumber', value) def get_version(self): """ Get the version (ie "remixed by" etc) """ return self.get_tag('version') def set_version(self, value): """ Set the version """ self.set_tag('version', value) def get_performer(self): """ Get the lead performer/soloist """ return self.get_tag('performer') def set_performer(self, value): """ Set performer """ self.set_tag('performer', value) def get_copyright(self): """ Get copyright information """ return self.get_tag('copyright') def set_copyright(self, value): """ Set copyright """ self.set_tag('copyright', value) def get_publisher(self): """ Get the publisher (ie record label etc) """ return self.get_tag('publisher') def set_publisher(self, value): """ Set the publisher """ self.set_tag('publisher', value) def get_date(self): """ Get the recording date """ return self.get_tag('date') def set_date(self, value): """ Set the date """ # FIXME: check if the value is a valid ISO 8601 date self.set_tag('date', value) def get_isrc(self): """ Get the isrc (international standard recording code) """ return self.get_tag('isrc') def set_isrc(self, value): """ Set the isrc """ self.set_tag('isrc', value) def get_genre(self): """ Get the genre """ return self.get_tag('genre') def set_genre(self, value): """ Set the genre """ self.set_tag('genre', value) bitrate = property(get_bitrate, set_bitrate) duration = property(get_duration) encoding = property(get_encoding, set_encoding) filename = property(get_filename) io_loc = property(get_loc_for_io, None) length = property(get_len, set_len) loc = property(get_loc, set_loc) rating = property(get_rating, set_rating) # Data written to tags album = property(get_album, set_album) artist = property(get_artist, set_artist) copyright = property(get_copyright, set_copyright) date = property(get_date, set_date) disc_id = property(get_disc, set_disc) genre = property(get_genre, set_genre) isrc = property(get_isrc, set_isrc) performer = property(get_performer, set_performer) publisher = property(get_publisher, set_publisher) title = property(get_title, set_title) track = property(get_track, set_track) version = property(get_version, set_version) year = property(get_date, set_date) # backwards compatibility def read_from_path(uri, track_type=Track): """ Reads tags from a specified uri """ (path, ext) = os.path.splitext(uri.lower()) ext = ext[1:] #if ext not in formats: # xlmisc.log('%s format is not understood' % ext) # return None tr = track_type(uri) if tr.type != 'device': tr.type = 'file' format = formats.get(ext) if not format: return tr try: format.fill_tag_from_path(tr) except HeaderNotFoundError: logger.debug("Possibly corrupt file: " + uri) return None except: common.log_exception(log=logger) return None return tr dist/copy/data/migrations/migration_200907100931/PaxHeaders.26361/olddb.py0000644000175000017500000000012412233027260024034 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.565046947 exaile-3.3.2/data/migrations/migration_200907100931/olddb.py0000644000000000000000000001576312233027260023010 0ustar00rootroot00000000000000# Copyright (C) 2006 Adam Olsen # # 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 1, 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 xl import common import logging logger = logging.getLogger(__name__) import threading, re, os, traceback import tempfile import shutil try: from sqlite3 import dbapi2 as sqlite SQLITE_AVAIL = True except ImportError: try: from pysqlite2 import dbapi2 as sqlite SQLITE_AVAIL = True except ImportError: SQLITE_AVAIL = False #sqlite.enable_shared_cache(True) import glib class DBOperationalError(Exception): def __init__(self, message): """ Create a new DBOperationalError :Parameters: - `message`: The message that will be displayed to the user """ self.message = message def __repr__(self): msg = "%s: %s" return msg % (self.__class__.__name__, self.message,) def __str__(self): return self.__repr__() def the_cutter(field): """ Cuts "THE " off of the beginning of any field for better sorting """ field = field.lower() if field.find("the ") == 0: return field.replace("the ", "", 1) else: return field def lstrip_special(field): """ Strip special chars off the beginning of a field for sorting. If stripping the chars leaves nothing the original field is returned with only whitespace removed. """ lowered = field.lower() stripped = lowered.lstrip(" `~!@#$%^&*()_+-={}|[]\\\";'<>?,./") if stripped: return stripped return lowered.lstrip() class DBManager(object): """ Manages the database connection """ def __init__(self, db_loc, start_timer=True): """ Initializes and connects to the database """ self.db_loc = db_loc self.db = self.__get_db() self.pool = dict() self.timer_id = None self.p = '?' self.functions = [] cur = self.db.cursor() cur.execute("PRAGMA synchronize=OFF") cur.execute("PRAGMA count_changes=0") cur.execute("PRAGMA auto_vacuum=1") cur.execute("PRAGMA cache_size=4000") cur.execute("PRAGMA temp_store=MEMORY") cur.execute("PRAGMA fullsync=0") cur.execute("PRAGMA case_sensitive_like=0") cur.close() self._cursor = self.db.cursor() self.add_function_create(('THE_CUTTER', 1, the_cutter)) self.add_function_create(('LSTRIP_SPEC', 1, lstrip_special)) def _close_thread(self): """ Closes the db in the pool for the current thread """ name = threading.currentThread().getName() if name == "MainThread": return if self.pool.has_key(name): self.pool[name].close() del self.pool[name] logger.debug("Closed db for thread %s" % name) def _get_from_pool(self): """ Returns a database connection specific to the current thread """ name = threading.currentThread().getName() if name == "MainThread" or self.db_loc == ":memory:": return self.db if not self.pool.has_key(name): db = self.__get_db() for tup in self.functions: db.create_function(tup[0], tup[1], tup[2]) self.pool[name] = db logger.debug("Created db for thread %s" % name) logger.debug(self.pool) db = self.pool[name] return db def add_function_create(self, tup): """ Adds a function that will be created in all pooled dbs """ self.db.create_function(tup[0], tup[1], tup[2]) self.functions.append(tup) def cursor(self, new=False): """ Returns the write cursor """ if new: return self._get_from_pool().cursor() else: return self._cursor def __get_db(self): """ Returns a connection """ try: db = sqlite.connect(self.db_loc, check_same_thread=False) db.text_factory = lambda x: unicode(x, 'utf-8', 'ignore') except sqlite.OperationalError, e: raise DBOperationalError(str(e)) return db def close(self): """ Closes the connection """ if self.timer_id: glib.source_remove(self.timer_id) def execute(self, query, args=None): """ Executes a query """ cur = self._cursor if not args: args = [] try: cur.execute(query, args) except: common.log_exception(log=logger) def select(self, query, args=[]): """ Runs a select and returns all rows. This is only for small select operations. If you want to do a large select, use DBManager.realcursor() """ db = self._get_from_pool() cur = db.cursor() cur.execute(query, args) rows = [] while True: try: row = cur.fetchone() if not row: break rows.append(row) except: common.log_exception(log=logger) cur.close() return rows def realcursor(self): """ Returns a new cursor from the database """ return self.db.cursor() def record_count(self, table, where, args): """ Returns the number of rows matched for the query in the database """ db = self._get_from_pool() cur = db.cursor() cur.execute("SELECT count(*) AS c FROM %s WHERE %s" % (table, where), args) row = cur.fetchone() cur.close() return row[0] def commit(self): """ Commits the database """ if threading.currentThread().getName() == 'MainThread': self.db.commit() else: glib.idle_add(self.db.commit) def read_one(self, table, items, where, args): """ Returns the first row matched for the query in the database """ cur = self.db.cursor() query = "SELECT %s FROM %s WHERE %s LIMIT 1" % \ (items, table, where) cur.execute(query, args) row = cur.fetchone() cur.close() return row def insert_id(cur): cur.execute('SELECT LAST_INSERT_ROWID()') row = cur.fetchone() return row[0] dist/copy/data/migrations/migration_200907100931/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260024507 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.157046934 exaile-3.3.2/data/migrations/migration_200907100931/__init__.py0000644000000000000000000002116612233027260023455 0ustar00rootroot00000000000000import os import traceback from xl import xdg, trax, collection from xl import settings, common from xl.playlist import PlaylistManager, Playlist from ConfigParser import SafeConfigParser import urlparse import oldexailelib, olddb import logging import time logger = logging.getLogger(__name__) _SETTINGS_MAP = ( (int, 'ui', 'mainw_x', 'gui/mainw_x', None), (int, 'ui', 'mainw_y', 'gui/mainw_y', None), (int, 'ui', 'mainw_width', 'gui/mainw_width', None), (int, 'ui', 'mainw_height', 'gui/mainw_height', None), (list, 'ui', 'track_columns', 'gui/columns', '_set_track_columns'), (bool, 'ui', 'use_tray', 'gui/use_tray', None), (int, 'ui', 'mainw_sash_pos', 'gui/mainw_sash_pos', None), (bool, 'DEFAULT', 'shuffle', 'playback/shuffle', None), (bool, 'DEFAULT', 'repeat', 'playback/repeat', None), (bool, 'DEFAULT', 'dynamic', 'playback/dynamic', None), (str, 'lastfm', 'user', 'plugin/ascrobbler/user', None), (str, 'lastfm', 'pass', 'plugin/ascrobbler/password', '_set_lastfm_password'), (bool, 'lastfm', 'submit', 'plugin/ascrobbler/submit', None), (float, 'osd', 'opacity', 'osd/opacity', None), (int, 'osd', 'w', 'osd/w', None), (int, 'osd', 'h', 'osd/h', None), (int, 'osd', 'x', 'osd/x', None), (int, 'osd', 'y', 'osd/y', None), (str, 'osd', 'text_font', 'osd/text_font', None), (bool, 'osd', 'enabled', 'osd/enabled', None), (str, 'osd', 'text_color', 'osd/text_color', None), (str, 'osd', 'bgcolor', 'osd/bg_color', None), (str, 'ui', 'tab_placement', 'gui/tab_placement', '_set_tab_placement'), ) class MigrationException(Exception): pass def migration_needed(): # check for the presence of old exaile settings for file in ('~/.exaile/music.db', '~/.exaile/settings.ini'): if not os.path.exists(os.path.expanduser(file)): logger.debug("%s did not exist, old exaile version not detected" % file) return False # check for Exaile 0.3.x+ settings and music database if os.path.exists(os.path.join(xdg.get_data_dirs()[0], 'music.db')): logger.debug("Found a newer version of the database, no migration needed") return False if os.path.exists(os.path.join(xdg.get_config_dir(), 'settings.ini')): logger.debug("Found a newer version of the settings " \ "file, no migration needed") return False if not olddb.SQLITE_AVAIL: raise MigrationException("Sqlite not available. " "Cannot migrate 0.2.14 settings") # if we've gotten this far, check for sqlite, but if it's not available, # throw a migration exception # open up the old database, and make sure it's at least the version used # in 0.2.14 db = olddb.DBManager(os.path.expanduser('~/.exaile/music.db'), False) cur = db.cursor() row = db.read_one('db_version', 'version', '1=1', tuple()) db.close() if row[0] != 4: logger.debug("Cannot migrate from db_version %d" % row[0]) return False return True def _migrate_old_tracks(oldsettings, db, ntdb): libraries = eval(oldsettings.get('DEFAULT', 'search_paths')) oldtracks = oldexailelib.load_tracks(db) rating_steps = 5 # old dbs are hardcoded to 5 steps for library in libraries: ntdb.add_library(collection.Library(library)) newtracks = [] for oldtrack in oldtracks: # we shouldn't be checking os.path.isfile() here, since if it is a radio link, it will not be migrated newtrack = trax.Track(uri=oldtrack.loc, scan=False) if oldtrack._rating: # filter '' and 0 oldtrack._rating = max(0, oldtrack._rating) oldtrack._rating = min(oldtrack._rating, rating_steps) newtrack.set_tag_raw('__rating', float((100.0*oldtrack._rating)/rating_steps)) db_map = {'artist': 'artist', 'album': 'album', 'track': 'tracknumber', 'genre': 'genre', 'date': 'date', 'title': 'title', 'playcount': '__playcount'} newtrack.set_tag_raw('__length', int(getattr(oldtrack, 'duration'))) # Apparently, there is a bug in exaile 0.2.xx that dumps the time as hh:mm:YYYY, rather than hh:mm:ss. This is a workaround, that takes the seconds == 0, since this information is lost b/c of the bug temp_time = oldtrack.time_added; try: newtrack.set_tag_raw('__date_added', time.mktime(time.strptime(temp_time[0:len(temp_time)-5],'%Y-%m-%d %H:%M'))) except ValueError: try: newtrack.set_tag_raw('__date_added', time.mktime(time.strptime(temp_time[0:len(temp_time)-3],'%Y-%m-%d %H:%M'))) except ValueError: pass for item in db_map.keys(): newtrack.set_tag_raw(db_map[item], getattr(oldtrack, item)) newtrack._dirty = True newtracks.append(newtrack) ntdb.add_tracks(newtracks) ntdb.save_to_location() def _set_tab_placement(section, oldsetting, oldsettings): val = int(oldsettings.get(section, oldsetting)) if val == 0: return 'top' elif val == 1: return 'left' elif val == 2: return 'right' elif val == 3: return 'bottom' def _set_track_columns(section, oldsetting, oldsettings): items = eval(oldsettings.get(section, oldsetting)) newitems = [] for item in items: if item == 'track': newitems.append('tracknumber') else: newitems.append(item) return newitems def _crypt(string, key): """ Encrypt/Decrypt a string' """ kidx = 0 cryptstr = "" for x in range(len(string)): cryptstr = cryptstr + \ chr(ord(string[x]) ^ ord(key[kidx])) kidx = (kidx + 1) % len(key) return cryptstr XOR_KEY = "You're not drunk if you can lie on the floor without hanging on" def _set_lastfm_password(section, oldsetting, oldsettings): string = oldsettings.get(section, oldsetting) new = '' vals = string.split() for val in vals: try: new += chr(int(val, 16)) except ValueError: continue return _crypt(new, XOR_KEY) def _migrate_old_settings(oldsettings): for (t, section, oldsetting, newspot, func) in _SETTINGS_MAP: value = None try: if globals().has_key(func): func = globals()[func] if callable(func): value = func(section, oldsetting, oldsettings) if not value: value = oldsettings.get(section, oldsetting) value = t(value) settings.set_option(newspot, value) except: common.log_exception(log=logger) def _migrate_playlists(db, newdb, playlists): p_rows = db.select('SELECT name, id, type FROM playlists ORDER BY name') for p_row in p_rows: if p_row[2]: continue pl = Playlist(p_row[0]) rows = db.select('SELECT paths.name FROM playlist_items,paths WHERE ' 'playlist_items.path=paths.id AND playlist=?', (p_row[1],)) locs = ['file://' + row[0] for row in rows] tracks = newdb.get_tracks_by_locs(locs) if tracks: pl.add_tracks(tracks, add_duplicates=False) playlists.save_playlist(pl) playlists.save_order() def migrate(force=False): if not force and not migration_needed(): logger.debug("Will not migrate and overwrite data.") return logger.info("Migrating data from 0.2.14....") # allow force to overwrite the new db newdbpath = os.path.join(xdg.get_data_dirs()[0], 'music.db') if os.path.exists(newdbpath): os.remove(newdbpath) oldsettings = SafeConfigParser() oldsettings.read(os.path.expanduser('~/.exaile/settings.ini')) if not olddb.SQLITE_AVAIL: raise MigrationException("Sqlite is not available. " "Unable to migrate 0.2.14 settings") # old database db = olddb.DBManager(os.path.expanduser('~/.exaile/music.db'), False) # new database newdb = collection.Collection('tdb', os.path.join(xdg.get_data_dirs()[0], 'music.db')) _migrate_old_tracks(oldsettings, db, newdb) _migrate_old_settings(oldsettings) settings.MANAGER.save() playlists = PlaylistManager() _migrate_playlists(db, newdb, playlists) logger.info("Migration complete!") if __name__ == '__main__': migrate() dist/copy/data/migrations/migration_200907100931/PaxHeaders.26361/oldexailelib.py0000644000175000017500000000012412233027260025405 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.289046938 exaile-3.3.2/data/migrations/migration_200907100931/oldexailelib.py0000644000000000000000000001110112233027260024337 0ustar00rootroot00000000000000import traceback, os import oldtrack from xl import common def already_added(t, added): """ Checks to see if the title, artist, album and genre has already been added to the list of tracks """ if not t.title: t.title = "" if not t.album: t.album = "" if not t.artist: t.artist = "" if not t.genre: t.genre = "" h = "%s - %s - %s - %s" % (t.title, t.album, t.artist, t.genre) if added.has_key(h): return True added[h] = 1 return False class TrackData(object): """ Represents a list of tracks """ def __init__(self, tracks=None): """ Initializes the list """ self.total_length = 0 self.paths = {} self._inner = [] if tracks: for track in tracks: self.append(track) def __getitem__(self, index): return self._inner[index] def __setitem__(self, index, value): old = self._inner[index] try: del self.paths[old.loc] except KeyError: pass self.paths[value.loc] = value self._inner[index] = value def __len__(self): return len(self._inner) def index(self, item): return self._inner.index(item) def append(self, track): """ Adds a track to the list """ if not track: return self.paths[track.loc] = track self._inner.append(track) self.update_total_length(track.get_duration(), appending=True) def remove(self, track): """ Removes a track from the list """ if not track: return try: del self.paths[track.loc] except KeyError: return else: self._inner.remove(track) self.update_total_length(track.get_duration(), appending=False) def update_total_length(self, track_duration, appending): if appending: self.total_length += track_duration else: self.total_length -= track_duration def get_total_length(self): """ Returns length of all tracks in the table as preformatted string """ s = self.total_length m, s = divmod(s, 60) h, m = divmod(m, 60) d, h = divmod(h, 24) text = [] if d: text.append(ngettext("%d day", "%d days", d) % d) if h: text.append(ngettext("%d hour", "%d hours", h) % h) if m: text.append(ngettext("%d minute", "%d minutes", m) % m) if s: text.append(ngettext("%d second", "%d seconds", s) % s) text = ", ".join(text) return text def load_tracks(db, current=None): """ Loads all tracks currently stored in the database """ global ALBUMS items = ('PATHS', 'ARTISTS', 'RADIO', 'PLAYLISTS') for item in items: globals()[item] = dict() ALBUMS = {} added = dict() tracks = TrackData() for row in db.select(""" SELECT paths.name, title, artists.name, albums.name, disc_id, tracks.genre, track, length, bitrate, year, modified, user_rating, rating, blacklisted, time_added, encoding, plays FROM tracks, paths, artists, albums WHERE ( paths.id=tracks.path AND artists.id = tracks.artist AND albums.id = tracks.album ) AND blacklisted=0 ORDER BY THE_CUTTER(artists.name), LOWER(albums.name), disc_id, track, title """): t = oldtrack.Track(*row) path, ext = os.path.splitext(row[0].lower().encode('utf-8')) t.type = "file" if already_added(t, added): continue tracks.append(t) cur = db.cursor(new=True) for item in items: cur.execute("SELECT id, name FROM %s" % item.lower()) while True: try: row = cur.fetchone() if not row: break globals()[item][row[1]] = row[0] except: common.log_exception() cur.execute("SELECT artist, name, id FROM albums") while True: try: row = cur.fetchone() if not row: break ALBUMS["%d - %s" % (row[0], row[1])] = row[2] except: common.log_exception() cur.close() db._close_thread() return tracks dist/copy/data/migrations/migration_200907100931/PaxHeaders.26361/xlmisc.py0000644000175000017500000000012412233027260024247 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.333046939 exaile-3.3.2/data/migrations/migration_200907100931/xlmisc.py0000644000000000000000000000037712233027260023216 0ustar00rootroot00000000000000import sys def get_default_encoding(): """ Returns the encoding to be used when dealing with file paths. Do not use for other purposes. """ #return 'utf-8' return sys.getfilesystemencoding() or sys.getdefaultencoding() dist/copy/data/migrations/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260021217 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.153046933 exaile-3.3.2/data/migrations/__init__.py0000644000000000000000000000000012233027260020145 0ustar00rootroot00000000000000dist/copy/data/PaxHeaders.26361/ui0000644000175000017500000000013212233027261015272 xustar000000000000000030 mtime=1382821553.621046948 30 atime=1382821552.785046922 30 ctime=1382821553.621046948 exaile-3.3.2/data/ui/0000755000000000000000000000000012233027261014310 5ustar00rootroot00000000000000dist/copy/data/ui/PaxHeaders.26361/collection_manager.ui0000644000175000017500000000012412233027260021533 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.177046934 exaile-3.3.2/data/ui/collection_manager.ui0000644000000000000000000001711412233027260020477 0ustar00rootroot00000000000000 400 250 Collection Manager True dialog True vertical True 5 5 True True automatic automatic in True True model False 0 Location True 0 Monitored 1 0 True vertical 6 start gtk-add True True True True False False 0 gtk-remove True False True True True False False 1 False 1 2 True end gtk-cancel True True True False True False False 0 gtk-apply True True True False True False False 1 False end 0 cancel_button apply_button dist/copy/data/ui/PaxHeaders.26361/covermanager.ui0000644000175000017500000000012412233027260020357 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.621046948 exaile-3.3.2/data/ui/covermanager.ui0000644000000000000000000001742312233027260017326 0ustar00rootroot00000000000000 True False 3 gtk-find 500 390 False 3 Cover Manager center-on-parent True False 3 True True 3 never in True True True covers_model 100 0 True 2 center end 8000 3 True True 0 True False 3 3 True False 0.10000000149 False True 1 True False 3 3 end gtk-close False True True True False False True False False 0 True gtk-stop False True True True False True False True 1 _Fetch Covers False True True True False False image1 True False False 2 False False 2 dist/copy/data/ui/PaxHeaders.26361/widgets0000644000175000017500000000013212233027261016740 xustar000000000000000030 mtime=1382821553.329046939 30 atime=1382821552.785046922 30 ctime=1382821553.329046939 exaile-3.3.2/data/ui/widgets/0000755000000000000000000000000012233027261015756 5ustar00rootroot00000000000000dist/copy/data/ui/widgets/PaxHeaders.26361/track_info.ui0000644000175000017500000000012412233027260021473 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.329046939 exaile-3.3.2/data/ui/widgets/track_info.ui0000644000000000000000000001037212233027260020436 0ustar00rootroot00000000000000 True 6 True 0 0 100 100 True False False 0 True vertical True 0 0 True 0 0 True end 0 True vertical True True 3 gtk-missing-image False False 0 True True True 00:00 / 00:00 1 0 False 1 1 dist/copy/data/ui/widgets/PaxHeaders.26361/tracklist_info.ui0000644000175000017500000000012412233027260022367 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.329046939 exaile-3.3.2/data/ui/widgets/tracklist_info.ui0000644000000000000000000001024312233027260021327 0ustar00rootroot00000000000000 True 6 True 0 0 100 100 True gtk-missing-image False False 0 True vertical True 0 Album False 0 True 0 Artist False 1 True 0 0 6 6 6 6 True 3 6 2 True 0 False 3 1 dist/copy/data/ui/widgets/PaxHeaders.26361/volume_control.ui0000644000175000017500000000012412233027260022423 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.329046939 exaile-3.3.2/data/ui/widgets/volume_control.ui0000644000000000000000000000446012233027260021367 0ustar00rootroot00000000000000 True True True True none False True audio-volume-muted False False 0 125 True True slider_adjustment False 1 1 0.050000000000000003 0.10000000000000001 dist/copy/data/ui/PaxHeaders.26361/coverchooser.ui0000644000175000017500000000012412233027260020407 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821552.993046928 exaile-3.3.2/data/ui/coverchooser.ui0000644000000000000000000001566512233027260017364 0ustar00rootroot00000000000000 False 3 Cover Finder False center-on-parent True False 3 True False 3 True False 0 True True 0 True False The origin of this cover 1 True True 1 False True 0 True False True True 1 True True horizontal covers_model 0 0 0 0 True 2 False True 2 True False 6 gtk-cancel False True True True False True False False 0 _Set as Cover False True True True False image1 True False False 1 False True 4 True False gtk-ok dist/copy/data/ui/PaxHeaders.26361/coverwindow.ui0000644000175000017500000000012412233027260020254 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.177046934 exaile-3.3.2/data/ui/coverwindow.ui0000644000000000000000000001230712233027260017217 0ustar00rootroot00000000000000 GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK center-on-parent True True vertical True both True gtk-zoom-in False True True gtk-zoom-out False True True gtk-zoom-100 False True True gtk-zoom-fit False True True True gtk-close False True False False 0 True True automatic automatic True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 400 400 0 0 True gtk-missing-image 1 True False 2 dist/copy/data/ui/PaxHeaders.26361/queue_dialog.ui0000644000175000017500000000012412233027260020351 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.317046939 exaile-3.3.2/data/ui/queue_dialog.ui0000644000000000000000000001012312233027260017306 0ustar00rootroot00000000000000 480 330 5 Queue Manager True center-on-parent normal False True vertical 2 True vertical True True vertical 0 5 0 1 True end gtk-clear True True True True False False 0 True gtk-close True True True True True False False 1 False end 0 clear_button close_button dist/copy/data/ui/PaxHeaders.26361/main.ui0000644000175000017500000000012412233027260016632 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821552.993046928 exaile-3.3.2/data/ui/main.ui0000644000000000000000000003410712233027260015577 0ustar00rootroot00000000000000 700 400 True True True _File True True _Edit True True _View True True _Tools True True _Help True False 0 True True 129 True True True left True 0 True 4 6 True False 1 False True True 3 3 True False 0 True 1 True 6 True False False 0 True True False Previous Track none False True gtk-media-previous False 1 True True False Start Playback none False True gtk-media-play False 2 True True False Stop Playback Right Click for Stop After Track Feature none False True gtk-media-stop False 3 True True False Next Track none False True gtk-media-next False False 4 True 3 3 3 3 24 True GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK True 0.10000000149 0:00 / 0:00 5 False False 2 True True 1 True False end 2 1 0.10000000000000001 0.20000000000000001 dist/copy/data/ui/PaxHeaders.26361/playlist.ui0000644000175000017500000000012412233027260017547 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.565046947 exaile-3.3.2/data/ui/playlist.ui0000644000000000000000000002153112233027260016511 0ustar00rootroot00000000000000 True vertical 3 True True automatic automatic 0 True vertical True False 0 True True True True True True True True Shuffle playback order none True media-playlist-shuffle False False 0 True True True Repeat playback none True media-playlist-repeat False False 1 True True True Dynamically add similar tracks to the playlist none True media-playlist-dynamic False False 2 0 True 6 True 1 _Search: True search_entry 1 0 True True gtk-clear True False 1 1 False 1 dist/copy/data/ui/PaxHeaders.26361/about_dialog.ui0000644000175000017500000000012412233027260020337 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.513046945 exaile-3.3.2/data/ui/about_dialog.ui0000644000000000000000000000520512233027260017301 0ustar00rootroot00000000000000 5 About Exaile center-on-parent True dialog False Exaile © 2009-2012 http://www.exaile.org Copyright (C) 2008-2010 Adam Olsen <arolsen@gmail.com> 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. Adam Olsen Johannes Sasongko Aren Olson Mathias Brodala Andrew Starr-Bochicchio Brian Parma Dustin Spicuzza fidencio Joseph S. Atkinson Unknown translator Tuomas Kuosmanen Aron Homberg Josip Lisec True 2 True end False end 0 dist/copy/data/ui/PaxHeaders.26361/device_manager.ui0000644000175000017500000000012412233027260020637 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.189046935 exaile-3.3.2/data/ui/device_manager.ui0000644000000000000000000003241712233027260017606 0ustar00rootroot00000000000000 550 450 Device Manager 700 450 True True True True automatic automatic in True True 3 0 5 0 True gtk-connect True True False True False 3 0 gtk-disconnect True True False True False 3 1 gtk-edit True True False True False 3 2 gtk-add True True False True False 3 3 gtk-remove True True False True False 3 4 gtk-close True True False True False 3 6 False 5 1 5 Add Device 500 350 dialog False True 2 True True True Type of device: False 3 0 True 3 1 False 3 0 True True 0 Detected devices: False 0 True True 3 1 1 True True Custom: False 0 True True 1 ... True True False True False 2 False 2 1 True end gtk-cancel True True False True False False 0 gtk-ok True True False True False False 1 False end 0 cancel_button ok_button dist/copy/data/ui/PaxHeaders.26361/preferences0000644000175000017500000000013212233027261017573 xustar000000000000000030 mtime=1382821553.697046951 30 atime=1382821552.785046922 30 ctime=1382821553.697046951 exaile-3.3.2/data/ui/preferences/0000755000000000000000000000000012233027261016611 5ustar00rootroot00000000000000dist/copy/data/ui/preferences/PaxHeaders.26361/preferences_dialog.ui0000644000175000017500000000012412233027260024027 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.309046938 exaile-3.3.2/data/ui/preferences/preferences_dialog.ui0000644000000000000000000001222412233027260022770 0ustar00rootroot00000000000000 630 500 Preferences center-on-parent dialog True vertical True True 4 170 True True automatic automatic in True True model False False 1 autosize column 2 1 False True True vertical True True 2 True end gtk-close True True True False True False False 0 False end 0 close_button dist/copy/data/ui/preferences/PaxHeaders.26361/playlists.ui0000644000175000017500000000012412233027260022233 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821552.993046928 exaile-3.3.2/data/ui/preferences/playlists.ui0000644000000000000000000001050512233027260021174 0ustar00rootroot00000000000000 True 3 vertical 6 Open last playlists on startup True False True True False False 0 Prompt for saving custom playlists on close True False True True False False 1 Replace content on side pane double click True True False Instead of appending, tracks added via double click in the panes will replace the content of the current playlist. True False False 2 Appending/Replacing via menu item triggers playback True True False When using a menu item to add/replace tracks on the playlist, start playback if there is track currently playing. This option was the default behavior before Exaile 0.3.3 True False False 3 Queue tracks by default instead of playing them True True False When you double click or press enter to play a track in a playlist, queue the track instead of playing it True False False 4 dist/copy/data/ui/preferences/PaxHeaders.26361/collection.ui0000644000175000017500000000012412233027260022342 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.177046934 exaile-3.3.2/data/ui/preferences/collection.ui0000644000000000000000000000457312233027260021313 0ustar00rootroot00000000000000 True 3 vertical 3 0 Words to strip from the beginning of artist tags when sorting (space separated): fill True False 0 False False 1 (Right click to reset to defaults) False False 2 Use file based compilation detection True True False True False False 3 dist/copy/data/ui/preferences/PaxHeaders.26361/plugin.ui0000644000175000017500000000012412233027260021505 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.097046932 exaile-3.3.2/data/ui/preferences/plugin.ui0000644000000000000000000013402712233027260020454 0ustar00rootroot00000000000000 True vertical 6 True False True vertical 200 160 True True 2 automatic automatic etched-in True True model 1 fixed Plugin True 1 autosize Version 2 autosize Enabled 3 4 0 200 True 3 True 0 none True vertical True 0 3 True False False 0 50 True True 2 automatic automatic in 0 True True False word 3 3 False 1 True No Plugin Selected 0 False 1 True Installed Plugins False True 3 230 True True 2 automatic automatic etched-in True True False False False 0 True 0 none True True 2 vertical 3 True vertical True 2 2 2 3 3 True 0 0 Authors: 1 2 GTK_FILL True 0 Version: GTK_FILL True 0 1 2 GTK_FILL True 0 True 1 2 1 2 GTK_FILL False 0 True vertical True 0 Description: False False 0 True vertical True False False 0 True True 2 automatic automatic in 0 True True False word False 1 1 True True True True True 0 0 True 2 True gtk-apply False False 0 True Install True False False 1 False False end 2 False False 2 1 0 True <b>No Plugin Selected</b> True 1 1 True Available Plugins 1 False True 3 230 True True 2 automatic automatic etched-in True True False False False 0 True 0 none True True 2 vertical 3 True vertical True 2 2 2 3 3 True 0 0 Authors: 1 2 GTK_FILL True 0 Version: GTK_FILL True 0 1 2 GTK_FILL True 0 True 1 2 1 2 GTK_FILL False 0 True vertical True 0 Description: False False 0 True vertical True False False 0 True True 2 automatic automatic in 0 True True False word False 1 1 True True True True True 0 0 True 2 True gtk-apply False False 0 True Install Updates True False False 1 False False end 2 False False 2 1 0 True <b>No Plugin Selected</b> True 1 2 True Updates 2 False 0 True end True True True True 3 True gtk-add 0 True Install Plugin File 1 False False 0 False 1 dist/copy/data/ui/preferences/PaxHeaders.26361/playback.ui0000644000175000017500000000012412233027260021775 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.697046951 exaile-3.3.2/data/ui/preferences/playback.ui0000644000000000000000000003644412233027260020750 0ustar00rootroot00000000000000 1000 10000 50 50 3000 10000 50 50 True 3 vertical 3 True True 0 1 Playback engine: 0 True model1 0 1 False False 1 False 0 Use fade transitions on user actions True True False True True False False 1 True True 0.89999997615814209 Fade duration (ms): False 3 0 True True 1 adjustment1 False 1 False 2 Use crossfading (EXPERIMENTAL) True True False True True False False 3 True True 0.89999997615814209 Crossfade duration (ms): False 3 0 True True 1 adjustment2 False 1 False 4 True True 0 1 Audio Sink: 0 True model2 0 1 False False 1 False 5 False True 0 1 Device: 0 True model3 0 1 False False 1 False 6 True 3 True 0 Custom sink pipeline: False 0 150 True True 1 False 7 Resume playback on start True True False True True True False False 8 Resume playback in paused state True True False True True False False 9 Adding an item to an empty queue begins playback True True False True True False False 10 Remove track from queue upon playback True True False True True False False 11 Automatically advance to the next track True True False True False False 12 normal Normal unified Unified (unstable) dist/copy/data/ui/preferences/PaxHeaders.26361/general.ui0000644000175000017500000000012412233027260021624 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.245046936 exaile-3.3.2/data/ui/preferences/general.ui0000644000000000000000000000400512233027260020563 0ustar00rootroot00000000000000 True 3 Open last playlists on startup True False True True False False 3 True False False 8 dist/copy/data/ui/preferences/PaxHeaders.26361/appearance.ui0000644000175000017500000000012412233027260022306 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.621046948 exaile-3.3.2/data/ui/preferences/appearance.ui0000644000000000000000000003500512233027260021251 0ustar00rootroot00000000000000 True 3 vertical 3 Show info area True True False The info area contains the cover art and track information True True False False 0 Show cover art in info area True True False True True False False 1 True Always show tab bar True True False True True False False 0 True 1 0 True 3 True Tab placement: False False 0 True model1 1 False False 1 1 False False 2 True False 6 True False 0 Playlist font: False True 0 False True True True False False True 1 False True True True True Reset to the system font False True False gtk-revert-to-saved False True 2 False True 3 Display track counts in collection True True False True False False 4 True 6 Use alpha transparency: True True False Warning: this option can cause display errors if used with a window manager without compositing support. True False False 0 True True transparency_adjustment False 1 False False 5 Show tray icon True True False True True False False 6 Minimize to tray True True False True False False 7 Close to tray True True False True False 8 Jump to current song on track change True True False True True False False 9 Show splash screen on startup True True False True True False False 10 left Left right Right top Top bottom Bottom 1 0.10000000000000001 0.20000000000000001 dist/copy/data/ui/preferences/PaxHeaders.26361/cover.ui0000644000175000017500000000012412233027260021325 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.093046932 exaile-3.3.2/data/ui/preferences/cover.ui0000644000000000000000000002152112233027260020266 0ustar00rootroot00000000000000 True 3 True vertical True Use covers embedded in tags True True False True False 0 False 0 True Use covers from local files True True False This option will search for cover image files in the same folder as the music file. True False 0 False 1 True 6 True Preferred file names: False 3 0 True True gtk-info False A comma-separated list of file names without file extensions True 1 False 2 True Fetch covers automatically on playback start True True False 0.5 True False 0 False 3 True True 0 0 Cover Search Order: True 3 0 True True True automatic automatic etched-in True True True True 0 True (drag to reorder) False False 1 True 1 False 4 0 dist/copy/data/ui/PaxHeaders.26361/splash.ui0000644000175000017500000000012412233027260017200 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.317046939 exaile-3.3.2/data/ui/splash.ui0000644000000000000000000000147412233027260016146 0ustar00rootroot00000000000000 413 163 GTK_WINDOW_POPUP False GTK_WIN_POS_CENTER True GDK_WINDOW_TYPE_HINT_SPLASHSCREEN True True False True dist/copy/data/ui/PaxHeaders.26361/trackproperties_dialog.ui0000644000175000017500000000012412233027260022446 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821552.993046928 exaile-3.3.2/data/ui/trackproperties_dialog.ui0000644000000000000000000003663012233027260021416 0ustar00rootroot00000000000000 Track Properties True vertical True True True vertical True True 6 automatic True queue True 4 6 6 0 True 6 5 True 0 A_dd tag True True True image4 True False 1 _Remove tag True True True image3 True False 2 True vertical False 3 ab → A_b True True True Uppercase first letter of all tags True False 4 False False 1 True Tags False True vertical 3 True 4 50 5 False 5 0 True 1 1 True Properties 1 False 0 True 4 True _Previous True True True image2 True False False 0 True Editing track 1 of 10 False 10 1 _Next True True True image1 True False False 2 5 0 True vertical False 1 True 10 gtk-close True True True True False False 0 gtk-apply True False True True True False False 1 False False 5 2 False False 5 1 True gtk-go-back True gtk-go-forward True gtk-remove True gtk-add dist/copy/data/ui/PaxHeaders.26361/trackproperties_dialog_cover_row.ui0000644000175000017500000000012412233027260024533 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.421046942 exaile-3.3.2/data/ui/trackproperties_dialog_cover_row.ui0000644000000000000000000002103612233027260023475 0ustar00rootroot00000000000000 0 Other 1 32x32 pixels 'file icon' (PNG only) 2 Other file icon 3 Cover (front) 4 Cover (back) 5 Leaflet page 6 Media (e.g. label side of CD) 7 Lead artist/lead performer/soloist 8 Artist/performer 9 Conductor 10 Band/Orchestra 11 Composer 12 Lyricist/text writer 13 Recording Location 14 During recording 15 During performance 16 Movie/video screen capture 17 A bright coloured fish 18 Illustration 19 Band/artist logotype 20 Publisher/Studio logotype False 6 True False False True True True Click or drag files here to change the cover image False True False gtk-add 6 False True 0 True False 6 3 2 6 6 True False 0 Type: 1 2 GTK_FILL GTK_FILL True False 0 Description: 2 3 GTK_FILL GTK_FILL True False type_model 1 1 2 1 2 GTK_FILL GTK_FILL True True 1 2 2 3 GTK_FILL GTK_FILL True False 0 2 GTK_FILL GTK_FILL False True 1 dist/copy/data/ui/PaxHeaders.26361/panel0000644000175000017500000000013212233027261016371 xustar000000000000000030 mtime=1382821553.421046942 30 atime=1382821552.785046922 30 ctime=1382821553.421046942 exaile-3.3.2/data/ui/panel/0000755000000000000000000000000012233027261015407 5ustar00rootroot00000000000000dist/copy/data/ui/panel/PaxHeaders.26361/radio.ui0000644000175000017500000000012412233027260020103 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.421046942 exaile-3.3.2/data/ui/panel/radio.ui0000644000000000000000000000743712233027260017056 0ustar00rootroot00000000000000 Radio True 3 3 True True True True True 0 0 True 2 True gtk-add False False 0 True Add Station True False False 1 False False 0 False False 0 True 0 False False end 1 dist/copy/data/ui/panel/PaxHeaders.26361/playlists.ui0000644000175000017500000000012412233027260021031 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.421046942 exaile-3.3.2/data/ui/panel/playlists.ui0000644000000000000000000000076312233027260017777 0ustar00rootroot00000000000000 Playlists True 3 3 dist/copy/data/ui/panel/PaxHeaders.26361/collection.ui0000644000175000017500000000012412233027260021140 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.417046942 exaile-3.3.2/data/ui/panel/collection.ui0000644000000000000000000002545612233027260020114 0ustar00rootroot00000000000000 False Collection True False False True True False 12 True False <b>Collection is empty.</b> True center True 20 False False 0 True False True True True False True False True False gtk-add 6 True True 0 True False Add Music True True 1 False False 0 True True 1 True False 0 True False 3 3 True False True False collection_combo_model 0 True True 0 34 34 True True True Refresh collection view (Hold Shift key to rescan the collection) False none True False gtk-refresh False False 1 False False 0 True False True False Search: False False 0 True True False gtk-clear Clear search field True True 1 False False 1 True True 1 dist/copy/data/ui/panel/PaxHeaders.26361/files.ui0000644000175000017500000000012412233027260020107 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.417046942 exaile-3.3.2/data/ui/panel/files.ui0000644000000000000000000002176412233027260017061 0ustar00rootroot00000000000000 Files True vertical True 3 vertical 3 True True False True False Previous visited directory none True gtk-go-back False False 0 True False True False Next visited directory none True gtk-go-forward False False 1 True True False Up one directory none True gtk-go-up False False 2 True True False Refresh directory listing none True gtk-refresh False False 3 36 True True False Home directory none True user-home False False 4 False False 0 True liststore_libraries_location 0 False False 2 True True Search: False False 0 True False gtk-clear Clear search field 1 False False 3 0 dist/copy/data/ui/panel/PaxHeaders.26361/device.ui0000644000175000017500000000012412233027260020244 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.417046942 exaile-3.3.2/data/ui/panel/device.ui0000644000000000000000000000145712233027260017213 0ustar00rootroot00000000000000 Collection True 3 3 True True 0 dist/copy/data/ui/panel/PaxHeaders.26361/flatplaylist.ui0000644000175000017500000000012412233027260021515 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.417046942 exaile-3.3.2/data/ui/panel/flatplaylist.ui0000644000000000000000000001214112233027260020454 0ustar00rootroot00000000000000 Radio True 3 vertical 3 True 36 True True True Append All Tracks to Playlist none True 0 0 True 2 True gtk-add False False 0 False 0 True 36 True True True Import CD none True 2 True gtk-harddisk 0 False 1 True 3 False False 0 dist/copy/data/PaxHeaders.26361/org.exaile.Exaile.service.in0000644000175000017500000000012412233027260022164 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.289046938 exaile-3.3.2/data/org.exaile.Exaile.service.in0000644000000000000000000000007412233027260021125 0ustar00rootroot00000000000000[D-BUS Service] Name=org.exaile.Exaile Exec=@bindir@/exaile dist/copy/data/PaxHeaders.26361/config0000644000175000017500000000013212233027261016122 xustar000000000000000030 mtime=1382821553.421046942 30 atime=1382821552.785046922 30 ctime=1382821553.421046942 exaile-3.3.2/data/config/0000755000000000000000000000000012233027261015140 5ustar00rootroot00000000000000dist/copy/data/config/PaxHeaders.26361/settings.ini0000644000175000017500000000012412233027260020540 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.421046942 exaile-3.3.2/data/config/settings.ini0000644000000000000000000000021612233027260017477 0ustar00rootroot00000000000000 [plugins] enabled = L: ['shoutcast', 'lastfmcovers', 'lyricsfly', 'cd', 'replaygain', 'equalizer', 'lyricsviewer', 'lastfmdynamic', 'osd'] dist/copy/PaxHeaders.26361/DEPS0000644000175000017500000000012412233027260014477 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821552.993046928 exaile-3.3.2/DEPS0000644000000000000000000000073712233027260013446 0ustar00rootroot00000000000000List of dependencies for Exaile 0.3 =================================== .. note:plugin dependencies should be listed in their description Dependencies ------------ Essential: * python (>= 2.6) * pygst 0.10 * gstreamer-plugins-good 0.10 * mutagen (>= 1.10) * dbus-python * pygtk (>= 2.17) * pygobject (>= 2.18, built with gio support) Translation: * gettext Documentation: * sphinx * help2man Device detection: * hal CD info: * python-cddb Scalable icons: * librsvg2 dist/copy/PaxHeaders.26361/tools0000644000175000017500000000013212233027261015104 xustar000000000000000030 mtime=1382821553.565046947 30 atime=1382821552.785046922 30 ctime=1382821553.565046947 exaile-3.3.2/tools/0000755000000000000000000000000012233027261014122 5ustar00rootroot00000000000000dist/copy/tools/PaxHeaders.26361/cli0000644000175000017500000000012412233027260015653 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.165046934 exaile-3.3.2/tools/cli0000755000000000000000000000004412233027260014614 0ustar00rootroot00000000000000#!/bin/sh python -i ./exaile.py $* dist/copy/tools/PaxHeaders.26361/unkupo.sh0000644000175000017500000000012412233027260017036 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.329046939 exaile-3.3.2/tools/unkupo.sh0000644000000000000000000000026112233027260015775 0ustar00rootroot00000000000000 MERGES=`find $1 -name "*.po"` for m in $MERGES; do lc=`echo $m | cut -d - -f 2 | cut -c 1-2` mkdir -p po/$lc/LC_MESSAGES/ cp $m po/$lc/LC_MESSAGES/exaile.po done dist/copy/tools/PaxHeaders.26361/ipcli0000644000175000017500000000012412233027260016204 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.565046947 exaile-3.3.2/tools/ipcli0000755000000000000000000000367112233027260015156 0ustar00rootroot00000000000000#!/usr/bin/env python # Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import sys, os sys.path.append(os.getcwd()) from IPython.Shell import IPShellEmbed from xl import main exaile = main.Exaile() ipshell = IPShellEmbed(user_ns=dict(exaile=exaile)) ipshell() dist/copy/tools/PaxHeaders.26361/xdg-prefix-launch0000644000175000017500000000012412233027260020431 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.329046939 exaile-3.3.2/tools/xdg-prefix-launch0000755000000000000000000000037712233027260017403 0ustar00rootroot00000000000000#!/bin/sh if [ $# -lt 2 ]; then echo "Usage: $0 prefix command [args...]" exit 1 fi PREFIX=$1 CMD=$2 shift 2 export XDG_CONFIG_HOME="$PREFIX/config/" export XDG_DATA_HOME="$PREFIX/data/" export XDG_CACHE_HOME="$PREFIX/cache/" exec "$CMD" "$@" dist/copy/tools/PaxHeaders.26361/.bpythonrc0000644000175000017500000000012412233027260017172 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.165046934 exaile-3.3.2/tools/.bpythonrc0000644000000000000000000000017012233027260016130 0ustar00rootroot00000000000000#!/usr/bin/env python import sys sys.path.insert(0, '.') import exaile exaile.main() exaile = exaile.exaile print "" dist/copy/tools/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260017272 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.153046933 exaile-3.3.2/tools/__init__.py0000644000000000000000000000000012233027260016220 0ustar00rootroot00000000000000dist/copy/tools/PaxHeaders.26361/generate-launcher0000644000175000017500000000012412233027260020475 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.517046945 exaile-3.3.2/tools/generate-launcher0000755000000000000000000000210112233027260017432 0ustar00rootroot00000000000000#!/bin/sh # 2010-03-12 danfuhry: have launch script gracefully handle XDG_DATA_DIRS printf "Generating launcher script\n" DESTDIR=${1:-} PREFIX=${2:-/usr/local} LIBDIR=${3:-/lib} PYTHON2_CMD=${4:-python2} # realpath/readlink misbehave on OSX #if (command -v realpath > /dev/null); then # PREFIX=`realpath $PREFIX` #elif (command -v readlink > /dev/null); then # PREFIX=`readlink -f $PREFIX` #elif test "${PREFIX:0:1}" != "/"; then # echo "Please use an absolute path for PREFIX, or install either realpath or readlink" # exit 1 #fi PREFIX=`$PYTHON2_CMD -c 'import os,sys;print os.path.realpath(sys.argv[1])' $PREFIX` cd ${DESTDIR}${PREFIX}/bin && \ cat < exaile #!/bin/sh # Exaile launcher script (automatically generated) EXAILE_PREFIX=${PREFIX} if test -z "\${XDG_DATA_DIRS}"; then XDG_DATA_DIRS="/usr/local/share/:/usr/share/" fi XDG_DATA_DIRS="\${EXAILE_PREFIX}/share/:\${XDG_DATA_DIRS}" export XDG_DATA_DIRS exec ${PYTHON2_CMD} \${EXAILE_PREFIX}${LIBDIR}/exaile/exaile.py --datadir=\${EXAILE_PREFIX}/share/exaile/data --startgui ${DEFAULTARGS} "\$@" exit \$? EOF dist/copy/tools/PaxHeaders.26361/funcs.py0000644000175000017500000000012412233027260016651 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.517046945 exaile-3.3.2/tools/funcs.py0000644000000000000000000000271412233027260015615 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import time def timeit(n, func, *args): runs = [] for n in range(0, n): start = time.clock() func.__call__(*args) runs.append(time.clock() - start) avg = sum(runs)/len(runs) print "%1.8f seconds" % avg dist/copy/tools/PaxHeaders.26361/gui0000644000175000017500000000012412233027260015670 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.245046936 exaile-3.3.2/tools/gui0000755000000000000000000000007412233027260014634 0ustar00rootroot00000000000000#!/bin/sh python -i ../exaile.py --startgui $* make clean dist/copy/tools/PaxHeaders.26361/bpython0000644000175000017500000000012412233027260016567 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.165046934 exaile-3.3.2/tools/bpython0000755000000000000000000000007312233027260015532 0ustar00rootroot00000000000000#!/bin/sh export PYTHONSTARTUP=./tools/.bpythonrc bpython dist/copy/tools/PaxHeaders.26361/pylint.cfg0000644000175000017500000000012412233027260017161 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.317046939 exaile-3.3.2/tools/pylint.cfg0000644000000000000000000002152112233027260016122 0ustar00rootroot00000000000000# lint Python modules using external checkers. # # This is the main checker controlling the other ones and the reports # generation. It is itself both a raw checker and an astng checker in order # to: # * handle message activation / deactivation at the module level # * handle some basic but necessary stats'data (number of classes, methods...) # [MASTER] # Specify a configuration file. #rcfile= # Python code to execute, usually for sys.path manipulation such as # pygtk.require(). #init-hook= # Profiled execution. profile=no # Add to the black list. It should be a base name, not a # path. You may set this option multiple times. ignore=CVS # Pickle collected data for later comparisons. persistent=yes # Set the cache size for astng objects. cache-size=500 # List of plugins (as comma separated values of python modules names) to load, # usually to register additional checkers. load-plugins= [MESSAGES CONTROL] # Enable only checker(s) with the given id(s). This option conflicts with the # disable-checker option #enable-checker= # Enable all checker(s) except those with the given id(s). This option # conflicts with the enable-checker option #disable-checker= # Enable all messages in the listed categories (IRCWEF). #enable-msg-cat= # Disable all messages in the listed categories (IRCWEF). disable-msg-cat=IR # Enable the message(s) with the given id(s). #enable-msg= # Disable the message(s) with the given id(s). disable-msg=W0704,W0141,C0321,C0103,C0323,C0322 [REPORTS] # Set the output format. Available formats are text, parseable, colorized, msvs # (visual studio) and html output-format=text # Include message's id in output include-ids=yes # Put messages in a separate file for each module / package specified on the # command line instead of printing them on stdout. Reports (if any) will be # written in a file name "pylint_global.[txt|html]". files-output=no # Tells wether to display a full report or only the messages reports=no # Python expression which should return a note less than 10 (10 is the highest # note). You have access to the variables errors warning, statement which # respectivly contain the number of errors / warnings messages and the total # number of statements analyzed. This is used by the global evaluation report # (R0004). evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10) # Add a comment according to your evaluation note. This is used by the global # evaluation report (R0004). comment=no # Enable the report(s) with the given id(s). #enable-report= # Disable the report(s) with the given id(s). #disable-report= # checks for : # * doc strings # * modules / classes / functions / methods / arguments / variables name # * number of arguments, local variables, branchs, returns and statements in # functions, methods # * required module attributes # * dangerous default values as arguments # * redefinition of function / method / class # * uses of the global statement # [BASIC] # Required attributes for module, separated by a comma required-attributes= # Regular expression which should only match functions or classes name which do # not require a docstring no-docstring-rgx=__.*__ # Regular expression which should only match correct module names module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$ # Regular expression which should only match correct module level names const-rgx=(([A-Z_][A-Z0-9_]*)|(__.*__))$ # Regular expression which should only match correct class names class-rgx=[A-Z_][a-zA-Z0-9]+$ # Regular expression which should only match correct function names function-rgx=[a-z_][a-z0-9_]{2,30}$ # Regular expression which should only match correct method names method-rgx=[a-z_][a-z0-9_]{2,30}$ # Regular expression which should only match correct instance attribute names attr-rgx=[a-z_][a-z0-9_]{2,30}$ # Regular expression which should only match correct argument names argument-rgx=[a-z_][a-z0-9_]{2,30}$ # Regular expression which should only match correct variable names variable-rgx=[a-z_][a-z0-9_]{2,30}$ # Regular expression which should only match correct list comprehension / # generator expression variable names inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$ # Good variable names which should always be accepted, separated by a comma good-names=i,j,k,ex,Run,_ # Bad variable names which should always be refused, separated by a comma bad-names=foo,bar,baz,toto,tutu,tata # List of builtins function names that should not be used, separated by a comma bad-functions=map,filter,apply,input # checks for # * unused variables / imports # * undefined variables # * redefinition of variable from builtins or from an outer scope # * use of variable before assigment # [VARIABLES] # Tells wether we should check for unused import in __init__ files. init-import=no # A regular expression matching names used for dummy variables (i.e. not used). dummy-variables-rgx=_|dummy # List of additional names supposed to be defined in builtins. Remember that # you should avoid to define new builtins when possible. additional-builtins= # try to find bugs in the code using type inference # [TYPECHECK] # Tells wether missing members accessed in mixin class should be ignored. A # mixin class is detected if its name ends with "mixin" (case insensitive). ignore-mixin-members=yes # List of classes names for which member attributes should not be checked # (useful for classes with attributes dynamicaly set). ignored-classes=SQLObject # When zope mode is activated, add a predefined set of Zope acquired attributes # to generated-members. zope=no # List of members which are set dynamically and missed by pylint inference # system, and so shouldn't trigger E0201 when accessed. generated-members=REQUEST,acl_users,aq_parent # checks for sign of poor/misdesign: # * number of methods, attributes, local variables... # * size, complexity of functions, methods # [DESIGN] # Maximum number of arguments for function / method max-args=5 # Maximum number of locals for function / method body max-locals=15 # Maximum number of return / yield for function / method body max-returns=6 # Maximum number of branch for function / method body max-branchs=12 # Maximum number of statements in function / method body max-statements=50 # Maximum number of parents for a class (see R0901). max-parents=7 # Maximum number of attributes for a class (see R0902). max-attributes=7 # Minimum number of public methods for a class (see R0903). min-public-methods=2 # Maximum number of public methods for a class (see R0904). max-public-methods=20 # checks for : # * methods without self as first argument # * overridden methods signature # * access only to existant members via self # * attributes not defined in the __init__ method # * supported interfaces implementation # * unreachable code # [CLASSES] # List of interface methods to ignore, separated by a comma. This is used for # instance to not check methods defines in Zope's Interface base class. ignore-iface-methods=isImplementedBy,deferred,extends,names,namesAndDescriptions,queryDescriptionFor,getBases,getDescriptionFor,getDoc,getName,getTaggedValue,getTaggedValueTags,isEqualOrExtendedBy,setTaggedValue,isImplementedByInstancesOf,adaptWith,is_implemented_by # List of method names used to declare (i.e. assign) instance attributes. defining-attr-methods=__init__,__new__,setUp # checks for # * external modules dependencies # * relative / wildcard imports # * cyclic imports # * uses of deprecated modules # [IMPORTS] # Deprecated modules which should not be used, separated by a comma deprecated-modules=regsub,string,TERMIOS,Bastion,rexec # Create a graph of every (i.e. internal and external) dependencies in the # given file (report R0402 must not be disabled) import-graph= # Create a graph of external dependencies in the given file (report R0402 must # not be disabled) ext-import-graph= # Create a graph of internal dependencies in the given file (report R0402 must # not be disabled) int-import-graph= # checks for similarities and duplicated code. This computation may be # memory / CPU intensive, so you should disable it if you experiments some # problems. # [SIMILARITIES] # Minimum lines number of a similarity. min-similarity-lines=4 # Ignore comments when computing similarities. ignore-comments=yes # Ignore docstrings when computing similarities. ignore-docstrings=yes # checks for: # * warning notes in the code like FIXME, XXX # * PEP 263: source code with non ascii character but no encoding declaration # [MISCELLANEOUS] # List of note tags to take in consideration, separated by a comma. notes=FIXME,TODO # checks for : # * unauthorized constructions # * strict indentation # * line length # * use of <> instead of != # [FORMAT] # Maximum number of characters on a single line. max-line-length=80 # Maximum number of lines in a module max-module-lines=1000 # String used as indentation unit. This is usually " " (4 spaces) or "\t" (1 # tab). indent-string=' ' dist/copy/tools/PaxHeaders.26361/compilepo.sh0000644000175000017500000000012412233027260017504 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.517046945 exaile-3.3.2/tools/compilepo.sh0000755000000000000000000000256012233027260016452 0ustar00rootroot00000000000000#!/bin/sh # Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. outpath=$(echo "$1" | sed "s/.po/\/LC_MESSAGES/") mkdir -p $outpath msgmerge -o - $1 messages.pot | msgfmt -c -o $outpath/exaile.mo - dist/copy/tools/PaxHeaders.26361/dist.sh0000644000175000017500000000012412233027260016460 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.189046935 exaile-3.3.2/tools/dist.sh0000755000000000000000000000065312233027260015427 0ustar00rootroot00000000000000#!/bin/sh DIST_VERSION=`python2 -c 'import xl.xdg; xl.xdg.local_hack=False; import xl.version; print ".".join((xl.version.major, xl.version.minor))+xl.version.extra'` tar --gzip --format=posix --owner 0 --group 0 \ -cf dist/exaile-${DIST_VERSION}.tar.gz dist/copy \ --exclude=dist/copy/.bzr* \ --transform s/dist\\/copy/exaile-${DIST_VERSION}/ gpg --armor --sign --detach-sig dist/exaile-${DIST_VERSION}.tar.gz dist/copy/tools/PaxHeaders.26361/win-installer0000644000175000017500000000013212233027261017674 xustar000000000000000030 mtime=1382821553.701046951 30 atime=1382821552.793046922 30 ctime=1382821553.701046951 exaile-3.3.2/tools/win-installer/0000755000000000000000000000000012233027261016712 5ustar00rootroot00000000000000dist/copy/tools/win-installer/PaxHeaders.26361/README.txt0000644000175000017500000000012412233027260021447 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.701046951 exaile-3.3.2/tools/win-installer/README.txt0000644000000000000000000000220312233027260020404 0ustar00rootroot00000000000000 Requirements for building installer ----------------------------------- - Install NSIS: http://nsis.sourceforge.net - Install NSIS Inetc Plugin: http://nsis.sourceforge.net/Inetc_plug-in - Plugin installation procedure is copy the contents of the zip file to the NSIS installation directory.. Usage ----- From Exaile main directory: - bzr export dist/copy - run NSIS installer on exaile_installer.nsi - I just right click on it and select 'Compile NSIS Script' And that's about it. Should create an exe called exaile-LATEST.exe and it should 'just work'. Thanks ------ The Exaile NSIS installation script was originally heavily derived from the Quod Libet installation script: http://code.google.com/p/quodlibet/ However, the ASCEND project (http://www.ascend4.org/) had a lot of really cool stuff to download and install dependencies, and so a lot was borrowed from them too. Dependencies.nsi, detect.nsi, and download.nsi are originally derived from their NSIS installer. All installation scripts were released under the GPL, as is Exaile Dustin Spicuzza created the Exaile NSIS script dist/copy/tools/win-installer/PaxHeaders.26361/exaile_installer.nsi0000644000175000017500000000012412233027260024010 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.609046948 exaile-3.3.2/tools/win-installer/exaile_installer.nsi0000644000000000000000000003341612233027260022757 0ustar00rootroot00000000000000;Exaile Windows installer script ;Modified by Dustin Spicuzza ;Based on the Quod Libet / Ex Falso Windows installer script ;Modified by Steven Robertson ;Based on the NSIS Modern User Interface Start Menu Folder Example Script ;Written by Joost Verburg ;compression SetCompressor /SOLID LZMA !define MULTIUSER_EXECUTIONLEVEL Highest !define MULTIUSER_MUI !define MULTIUSER_INSTALLMODE_COMMANDLINE !include "MultiUser.nsh" !define UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\Exaile" !define INSTDIR_KEY "Software\Exaile" !define INSTDIR_SUBKEY "InstDir" ;-------------------------------- ;Include Modern UI and other libs !include "MUI2.nsh" !include "LogicLib.nsh" ;-------------------------------- ;General ;Name and file Name "Exaile" OutFile "exaile-LATEST.exe" ;Default installation folder InstallDir "$PROGRAMFILES\Exaile" ;Get installation folder from registry if available ;InstallDirRegKey HKCU "${INSTDIR_KEY}" "" ;doesn't work with multi user -> see onInit.. ;Request application privileges for Windows Vista+ RequestExecutionLevel admin ;-------------------------------- ;Variables Var StartMenuFolder Var instdir_temp Var HAVE_PYTHON Var HAVE_MUTAGEN ;Var HAVE_PYGTK ;Var HAVE_GST ;Var HAVE_GSTSDK Var HAVE_GSTCOMSDK Var NEED_PYTHON Var NEED_MUTAGEN ;Var NEED_PYGTK ;Var NEED_GST ;Var NEED_GSTSDK Var NEED_GSTCOMSDK ;-------------------------------- ;Interface Settings !define MUI_ABORTWARNING !define MUI_ICON "..\..\dist\copy\data\images\exaile.ico" ;-------------------------------- ;Pages !insertmacro MULTIUSER_PAGE_INSTALLMODE !insertmacro MUI_PAGE_LICENSE "..\..\COPYING" !insertmacro MUI_PAGE_DIRECTORY Page custom dependenciesCreate dependenciesLeave ;Start Menu Folder Page Configuration !define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU" !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\Exaile" !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder" !insertmacro MUI_PAGE_STARTMENU Application $StartMenuFolder !insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_UNPAGE_CONFIRM !insertmacro MUI_UNPAGE_INSTFILES ;-------------------------------- ;Languages ; TODO: Should we only support the languages that Exaile supports? !insertmacro MUI_LANGUAGE "English" ;first language is the default language !insertmacro MUI_LANGUAGE "Afrikaans" !insertmacro MUI_LANGUAGE "Albanian" !insertmacro MUI_LANGUAGE "Arabic" !insertmacro MUI_LANGUAGE "Basque" !insertmacro MUI_LANGUAGE "Belarusian" !insertmacro MUI_LANGUAGE "Bosnian" !insertmacro MUI_LANGUAGE "Breton" !insertmacro MUI_LANGUAGE "Bulgarian" !insertmacro MUI_LANGUAGE "Catalan" !insertmacro MUI_LANGUAGE "Croatian" !insertmacro MUI_LANGUAGE "Czech" !insertmacro MUI_LANGUAGE "Danish" !insertmacro MUI_LANGUAGE "Dutch" !insertmacro MUI_LANGUAGE "Esperanto" !insertmacro MUI_LANGUAGE "Estonian" !insertmacro MUI_LANGUAGE "Farsi" !insertmacro MUI_LANGUAGE "Finnish" !insertmacro MUI_LANGUAGE "French" !insertmacro MUI_LANGUAGE "Galician" !insertmacro MUI_LANGUAGE "German" !insertmacro MUI_LANGUAGE "Greek" !insertmacro MUI_LANGUAGE "Hebrew" !insertmacro MUI_LANGUAGE "Hungarian" !insertmacro MUI_LANGUAGE "Icelandic" !insertmacro MUI_LANGUAGE "Indonesian" !insertmacro MUI_LANGUAGE "Irish" !insertmacro MUI_LANGUAGE "Italian" !insertmacro MUI_LANGUAGE "Japanese" !insertmacro MUI_LANGUAGE "Korean" !insertmacro MUI_LANGUAGE "Kurdish" !insertmacro MUI_LANGUAGE "Latvian" !insertmacro MUI_LANGUAGE "Lithuanian" !insertmacro MUI_LANGUAGE "Luxembourgish" !insertmacro MUI_LANGUAGE "Macedonian" !insertmacro MUI_LANGUAGE "Malay" !insertmacro MUI_LANGUAGE "Mongolian" !insertmacro MUI_LANGUAGE "Norwegian" !insertmacro MUI_LANGUAGE "NorwegianNynorsk" !insertmacro MUI_LANGUAGE "Polish" !insertmacro MUI_LANGUAGE "PortugueseBR" !insertmacro MUI_LANGUAGE "Portuguese" !insertmacro MUI_LANGUAGE "Romanian" !insertmacro MUI_LANGUAGE "Russian" !insertmacro MUI_LANGUAGE "SerbianLatin" !insertmacro MUI_LANGUAGE "Serbian" !insertmacro MUI_LANGUAGE "SimpChinese" !insertmacro MUI_LANGUAGE "Slovak" !insertmacro MUI_LANGUAGE "Slovenian" !insertmacro MUI_LANGUAGE "SpanishInternational" !insertmacro MUI_LANGUAGE "Spanish" !insertmacro MUI_LANGUAGE "Swedish" !insertmacro MUI_LANGUAGE "Thai" !insertmacro MUI_LANGUAGE "TradChinese" !insertmacro MUI_LANGUAGE "Turkish" !insertmacro MUI_LANGUAGE "Ukrainian" !insertmacro MUI_LANGUAGE "Uzbek" !insertmacro MUI_LANGUAGE "Welsh" ;------------------------------------------------------------ ; DOWNLOAD AND INSTALL DEPENDENCIES FIRST ;!define TEST_URL "" ; Use the official python.org Python packages !define PYTHON_VERSION "2.7" !define PYTHON_FULL_VERSION "2.7.5" !define PYTHON_PATH "C:\Python27" !define PYTHON_FN "python-${PYTHON_FULL_VERSION}.msi" !define PYTHON_FSIZE "16MB" !define PYTHON_URL "http://python.org/ftp/python/${PYTHON_FULL_VERSION}/${PYTHON_FN}" ;!define PYTHON_URL "${TEST_URL}/${PYTHON_FN}" !define PYTHON_CMD "msiexec /i $DAI_TMPFILE /passive ALLUSERS=1" ; Use the mutagen setup package !define MUTAGEN_VERSION "1.22" !define MUTAGEN_FN "mutagen-${MUTAGEN_VERSION}.tar.gz" !define MUTAGEN_FSIZE "799KB" !define MUTAGEN_URL "https://bitbucket.org/lazka/mutagen/downloads/${MUTAGEN_FN}" ;!define MUTAGEN_URL "${TEST_URL}/${MUTAGEN_FN}" !define MUTAGEN_CMD "${PYTHON_PATH}\python.exe $PLUGINSDIR\install_targz.py $DAI_TMPFILE" ; Use the official PyGTK all-in-one-installer ;!define PYGTK_VERSION "2.24.2" ;!define PYGTK_FN "pygtk-all-in-one-${PYGTK_VERSION}.win32-py${PYTHON_VERSION}.msi" ;!define PYGTK_FSIZE "32MB" ;!define PYGTK_URL "http://ftp.gnome.org/pub/GNOME/binaries/win32/pygtk/2.24/${PYGTK_FN}" ;!define PYGTK_URL "${TEST_URL}/${PYGTK_FN}" ;!define PYGTK_CMD "msiexec /i $DAI_TMPFILE /passive TARGETDIR=$\"${PYTHON_PATH}$\" ALLUSERS=1" ; Use the OSSBuild installers ;!define GST_VERSION "0.10.7" ;!define GST_FN "GStreamer-WinBuilds-GPL-x86-Beta04-${GST_VERSION}.msi" ;!define GST_FSIZE "21MB" ;!define GST_URL "http://ossbuild.googlecode.com/files/${GST_FN}" ;!define GST_URL "${TEST_URL}/${GST_FN}" ;!define GST_CMD "msiexec /i $DAI_TMPFILE /passive ALLUSERS=1" ;!define GSTSDK_VERSION "0.10.7" ;!define GSTSDK_FN "GStreamer-WinBuilds-SDK-GPL-x86-Beta04-${GSTSDK_VERSION}.msi" ;!define GSTSDK_FSIZE "5.3MB" ;!define GSTSDK_URL "http://ossbuild.googlecode.com/files/${GSTSDK_FN}" ;!define GSTSDK_URL "${TEST_URL}/${GSTSDK_FN}" ;!define GSTSDK_CMD "msiexec /i $DAI_TMPFILE /passive ALLUSERS=1" ; Use the GStreamer.com SDK !define GSTCOMSDK_VERSION "2013.6" !define GSTCOMSDK_FN "gstreamer-sdk-x86-${GSTCOMSDK_VERSION}.msi" !define GSTCOMSDK_FSIZE "106MB" !define GSTCOMSDK_URL "http://cdn.gstreamer.com/windows/x86/${GSTCOMSDK_FN}" ;!define GSTCOMSDK_URL "${TEST_URL}/${GSTCOMSDK_FN}" !define GSTCOMSDK_FEATURES "_gstreamer_core,_gstreamer_system,_gstreamer_playback,_gstreamer_codecs,_gstreamer_networking,_gstreamer_python,_gtk__2.0,_gtk__2.0_python,_gstreamer_codecs_gpl,_gstreamer_codecs_restricted,_gstreamer_networking_restricted" !define GSTCOMSDK_CMD "msiexec /i $DAI_TMPFILE /passive ALLUSERS=1 ADDLOCAL=${GSTCOMSDK_FEATURES}" !include "download.nsi" Section "-python" ${If} $NEED_PYTHON == '1' DetailPrint "--- DOWNLOAD PYTHON ---" !insertmacro downloadAndInstall "Python" "${PYTHON_URL}" "${PYTHON_FN}" "${PYTHON_CMD}" Call DetectPython ${If} $HAVE_PYTHON == 'NOK' MessageBox MB_OK "Python installation appears to have failed. You may need to retry manually." ${EndIf} ${EndIf} SectionEnd Section "-mutagen" ${If} $NEED_MUTAGEN == '1' DetailPrint "--- DOWNLOAD MUTAGEN ---" !insertmacro downloadAndInstall "Mutagen" "${MUTAGEN_URL}" "${MUTAGEN_FN}" "${MUTAGEN_CMD}" Call DetectMutagen ${If} $HAVE_MUTAGEN == 'NOK' MessageBox MB_OK "Mutagen installation appears to have failed. You may need to retry manually." ${EndIf} ${EndIf} SectionEnd ;Section "-pygtk" ; ${If} $NEED_PYGTK == '1' ; DetailPrint "--- DOWNLOAD PYGTK ---" ; !insertmacro downloadAndInstall "PyGTK" "${PYGTK_URL}" "${PYGTK_FN}" "${PYGTK_CMD}" ; Call DetectPyGTK ; ${If} $HAVE_PYGTK == 'NOK' ; MessageBox MB_OK "PyGTK installation appears to have failed. You may need to retry manually." ; ${EndIf} ; ${EndIf} ;SectionEnd ;Section "-gst" ; ${If} $NEED_GST == '1' ; DetailPrint "--- DOWNLOAD GSTREAMER ---" ; !insertmacro downloadAndInstall "GStreamer" "${GST_URL}" "${GST_FN}" "${GST_CMD}" ; Pop $0 ; ${If} $0 != "0" ; MessageBox MB_OK "GStreamer installation appears to have failed. You may need to retry manually." ; ${EndIf} ; ${EndIf} ;SectionEnd ;Section "-gstsdk" ; ${If} $NEED_GSTSDK == '1' ; DetailPrint "--- DOWNLOAD GSTREAMER SDK ---" ; !insertmacro downloadAndInstall "GStreamer SDK" "${GSTSDK_URL}" "${GSTSDK_FN}" "${GSTSDK_CMD}" ; Pop $0 ; ${If} $0 != "0" ; MessageBox MB_OK "GStreamer SDK installation appears to have failed. You may need to retry manually." ; ${EndIf} ; ${EndIf} ;SectionEnd Section "-gstcomsdk" ${If} $NEED_GSTCOMSDK == '1' DetailPrint "--- DOWNLOAD GSTREAMER.COM SDK ---" !insertmacro downloadAndInstall "GStreamer.com SDK" "${GSTCOMSDK_URL}" "${GSTCOMSDK_FN}" "${GSTCOMSDK_CMD}" Pop $0 ${If} $0 != "0" MessageBox MB_OK "GStreamer.com SDK installation appears to have failed. You may need to retry manually." ${EndIf} ${EndIf} ; 2012.9 only: ; there's a mingw component required for this ... install it ; manually instead: see https://bugs.freedesktop.org/show_bug.cgi?id=54710 ;DetailPrint "--- PATCH GSTREAMER.COM SDK ---" ;ReadRegStr $0 HKLM Software\GStreamerSDK\x86 "InstallDir" ;${If} $0 != "" ; ${IfNot} ${FileExists} $0\0.10\x86\bin\libssp-0.dll ; File /oname=$0\0.10\x86\bin\libssp-0.dll libssp-0.dll ; ${Else} ; DetailPrint "No patch required" ; ${EndIf} ;${Else} ; MessageBox MB_OK "Error patching GStreamer SDK" ;${EndIf} SectionEnd ;------------------------------------------------------------ ; Install Exaile last Section "-Exaile" SecExaile SetOutPath "$INSTDIR" File /r "..\..\dist\copy\*.*" ;Store installation folder WriteRegStr SHCTX "${INSTDIR_KEY}" "${INSTDIR_SUBKEY}" $INSTDIR ;Multi user uninstaller stuff WriteRegStr SHCTX "${UNINST_KEY}" \ "DisplayName" "Exaile - Music Player for GTK+" WriteRegStr SHCTX "${UNINST_KEY}" "DisplayIcon" "$\"$INSTDIR\data\images\exaile.ico$\"" WriteRegStr SHCTX "${UNINST_KEY}" "UninstallString" \ "$\"$INSTDIR\uninstall.exe$\" /$MultiUser.InstallMode" WriteRegStr SHCTX "${UNINST_KEY}" "QuietUninstallString" \ "$\"$INSTDIR\uninstall.exe$\" /$MultiUser.InstallMode /S" ;Create uninstaller WriteUninstaller "$INSTDIR\uninstall.exe" !insertmacro MUI_STARTMENU_WRITE_BEGIN Application ;Create shortcuts CreateDirectory "$SMPROGRAMS\$StartMenuFolder" CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Exaile.lnk" "$INSTDIR\exaile.bat" "" "$INSTDIR\data\images\exaile.ico" CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Exaile (Debug).lnk" "$INSTDIR\exaile.bat" "console" "$INSTDIR\data\images\exaile.ico" !insertmacro MUI_STARTMENU_WRITE_END SectionEnd !include "dependencies.nsi" !include "detect.nsi" Function .onInit !insertmacro MULTIUSER_INIT ;Read the install dir and set it ReadRegStr $instdir_temp SHCTX "${INSTDIR_KEY}" "${INSTDIR_SUBKEY}" StrCmp $instdir_temp "" skip 0 StrCpy $INSTDIR $instdir_temp skip: ;set the default python target dir ;StrCpy $PYTHONTARGETDIR "c:\Python${PYVERSION}" ;StrCpy $PYINSTALLED "" InitPluginsDir File /oname=$PLUGINSDIR\install_targz.py install_targz.py ;ExpandEnvStrings $DEFAULTPATH "%WINDIR%;%WINDIR%\system32" Call DetectPython Call DetectMutagen ;Call DetectPyGTK ;Call DetectGstreamer ;Call DetectGstreamerSDK Call DetectGstreamerComSDK FunctionEnd Function .onGUIEnd Delete $PLUGINSDIR\install_targz.py FunctionEnd ;-------------------------------- ;Uninstaller Section Section "Uninstall" RMDir /r "$INSTDIR" Delete "$INSTDIR\uninstall.exe" !insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuFolder Delete "$SMPROGRAMS\$StartMenuFolder\Exaile.lnk" Delete "$SMPROGRAMS\$StartMenuFolder\Exaile (Debug).lnk" RMDir "$SMPROGRAMS\$StartMenuFolder" ;Old installer wrote the path to HKCU only, delete it ;DeleteRegKey HKCU "Software\Exaile" DeleteRegKey SHCTX "${UNINST_KEY}" DeleteRegKey SHCTX "${INSTDIR_KEY}" SectionEnd Function un.onInit !insertmacro MULTIUSER_UNINIT FunctionEnd dist/copy/tools/win-installer/PaxHeaders.26361/download.nsi0000644000175000017500000000012412233027260022273 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.621046948 exaile-3.3.2/tools/win-installer/download.nsi0000644000000000000000000000473312233027260021242 0ustar00rootroot00000000000000;--------------------------------------------------------------------- ; - Taken from ASCEND NSIS installer (http://www.ascend4.org/) Var DAI_RET Var DAI_MSG Var DAI_TMPFILE Var DAI_REMOVE !macro downloadAndInstall DAI_NAME DAI_URL DAI_FN DAI_CMD Push $0 Push $1 StrCpy $DAI_RET "" StrCpy $DAI_REMOVE "" ${If} ${FileExists} "${DAI_FN}" DetailPrint "Found local file ${DAI_FN}..." ${If} ${Cmd} `MessageBox MB_ICONQUESTION|MB_YESNO "File ${DAI_FN} was found in the current directory, so it may not be necessary to download it now.$\n$\nWould you like to run this local copy of the installer?" IDYES ` StrCpy $DAI_RET "success" StrCpy $DAI_TMPFILE "${DAI_FN}" ${EndIf} ${EndIf} ${If} $DAI_RET != "success" DetailPrint "Downloading file ${DAI_FN}..." DetailPrint "URL: ${DAI_URL}" StrCpy $DAI_TMPFILE "$TEMP\${DAI_FN}" ; Download files using the INETC plugin for NSIS, available from ; http://nsis.sourceforge.net/Inetc_plug-in inetc::get /CAPTION "${DAI_FN}" /USERAGENT "Mozilla/5.0 NSIS_Inetc (Exaile Installer)" "${DAI_URL}" "$DAI_TMPFILE" /END Pop $DAI_RET ; return value = exit code, "OK" means OK ${DoWhile} $DAI_RET != "OK" ${If} $DAI_RET == "cancel" StrCpy $DAI_MSG "cancelled" ${Else} StrCpy $DAI_MSG "failed (return '$DAI_RET')" ${EndIf} DetailPrint "Download of ${DAI_FN} $DAI_MSG." ${IfNot} ${Cmd} `MessageBox MB_ICONEXCLAMATION|MB_YESNO "${DAI_NAME} download $DAI_MSG. URL was:$\n$\n${DAI_URL}$\n$\nDo you wish to re-attempt the download?" IDYES ` ; response was no ;MessageBox MB_OK "File ${DAI_NAME} will not be installed..." Pop $1 Pop $0 Push 1 ; error code Return ${EndIf} ;MessageBox MB_OK "Will re-attempt download of ${DAI_NAME}" ${If} ${FileExists} "$DAI_TMPFILE" Delete "$DAI_TMPFILE" ${EndIf} ${Loop} StrCpy $DAI_REMOVE "1" ${EndIf} ;MessageBox MB_OK "Installing ${DAI_NAME}...$\n$\nCommand: ${DAI_CMD}" DetailPrint "Installing ${DAI_NAME} (${DAI_FN})" ExecWait "${DAI_CMD}" $0 DetailPrint "Installer return code = $0" ${If} $0 != "0" MessageBox MB_ICONEXCLAMATION|MB_OK "${DAI_NAME} installer returned a non-zero error code '$0'" Pop $1 Pop $0 Push 1 ; error code ${Else} Pop $1 Pop $0 Push 0 ; error code ${EndIf} ${If} $DAI_REMOVE != "" ;MessageBox MB_OK "Deleting $DAI_TMPFILE..." Delete "$DAI_TMPFILE" ${EndIf} !macroenddist/copy/tools/win-installer/PaxHeaders.26361/dependencies.nsi0000644000175000017500000000012412233027260023112 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.621046948 exaile-3.3.2/tools/win-installer/dependencies.nsi0000644000000000000000000000724312233027260022060 0ustar00rootroot00000000000000;--------------------------------------------------------------------- ; CUSTOM PAGE to DOWNLOAD REQUIRED DEPENDENCIES ; - Modified from ASCEND NSIS installer (http://www.ascend4.org/) Var CHECKPY Var CHECKMUTAGEN ;Var CHECKPYGTK ;Var CHECKGST ;Var CHECKGSTSDK Var CHECKGSTCOMSDK !macro setCheckboxChecked CB SendMessage ${CB} ${BM_SETCHECK} 0x0001 0 Pop $0 !macroend Function dependenciesCreate ${If} $HAVE_PYTHON == 'OK' ${AndIf} $HAVE_MUTAGEN == 'OK' ;${AndIf} $HAVE_PYGTK == 'OK' ;${AndIf} $HAVE_GST == 'OK' ;${AndIf} $HAVE_GSTSDK == 'OK' ${AndIf} $HAVE_GSTCOMSDK == 'OK' ; do nothing in this page ${Else} nsDialogs::Create /NOUNLOAD 1018 Pop $0 ${NSD_CreateLabel} 0% 0 100% 48% "The following additional packages are required for Exaile to function correctly. Checked items will be downloaded and installed (some of the installers may require you to click 'next' a few times). If you already have the components installed you can unckeck them and they will not be downloaded. If any of these packages are not installed, Exaile will not work." Pop $0 ${If} $HAVE_PYTHON == 'NOK' ${NSD_CreateCheckbox} 10% 48% 100% 8u "Python ${PYTHON_VERSION} (${PYTHON_FSIZE})" Pop $CHECKPY !insertmacro setCheckboxChecked $CHECKPY ${Else} ${NSD_CreateLabel} 10% 48% 100% 8u "--- Python ${PYTHON_VERSION} already installed" ${EndIf} ${If} $HAVE_MUTAGEN == 'NOK' ${NSD_CreateCheckbox} 10% 56% 100% 8u "Mutagen ${MUTAGEN_VERSION} (${MUTAGEN_FSIZE})" Pop $CHECKMUTAGEN !insertmacro setCheckboxChecked $CHECKMUTAGEN ${Else} ${NSD_CreateLabel} 10% 56% 100% 8u "--- Mutagen already installed" ${EndIf} ; GStreamer.com SDK ${If} $HAVE_GSTCOMSDK == 'NOK' ${NSD_CreateCheckbox} 10% 64% 100% 8u "GStreamer.com SDK ${GSTCOMSDK_VERSION} (${GSTCOMSDK_FSIZE})" Pop $CHECKGSTCOMSDK !insertmacro setCheckboxChecked $CHECKGSTCOMSDK ${Else} ${NSD_CreateLabel} 10% 64% 100% 8u "--- GStreamer.com SDK already installed" ${EndIf} ; PyGTK - only needed for OSSBuild install ;${If} $HAVE_PYGTK == 'NOK' ; ${NSD_CreateCheckbox} 10% 64% 100% 8u "PyGTK ${PYGTK_VERSION} All-in-one installer (${PYGTK_FSIZE})" ; Pop $CHECKPYGTK ; !insertmacro setCheckboxChecked $CHECKPYGTK ;${Else} ; ${NSD_CreateLabel} 10% 64% 100% 8u "--- PyGTK already installed" ;${EndIf} ; GStreamer OSSBuild ;${If} $HAVE_GST == 'NOK' ; ${NSD_CreateCheckbox} 10% 72% 100% 8u "GStreamer OSSBuild ${GST_VERSION} (${GST_FSIZE})" ; Pop $CHECKGST ; !insertmacro setCheckboxChecked $CHECKGST ;${Else} ; ${NSD_CreateLabel} 10% 72% 100% 8u "--- GStreamer OSSBuild already installed" ;${EndIf} ; ;${If} $HAVE_GSTSDK == 'NOK' ; ${NSD_CreateCheckbox} 10% 80% 100% 8u "GStreamer OSSBuild ${GSTSDK_VERSION} SDK w/PyGST (${GSTSDK_FSIZE}, requires .NET Framework)" ; Pop $CHECKGSTSDK ; !insertmacro setCheckboxChecked $CHECKGSTSDK ;${Else} ; ${NSD_CreateLabel} 10% 80% 100% 8u "--- GStreamer OSSBuild SDK already installed" ;${EndIf} nsDialogs::Show ${EndIf} FunctionEnd Function DependenciesLeave SendMessage $CHECKPY ${BM_GETCHECK} 0 0 $NEED_PYTHON SendMessage $CHECKMUTAGEN ${BM_GETCHECK} 0 0 $NEED_MUTAGEN ;SendMessage $CHECKPYGTK ${BM_GETCHECK} 0 0 $NEED_PYGTK ;SendMessage $CHECKGST ${BM_GETCHECK} 0 0 $NEED_GST ;SendMessage $CHECKGSTSDK ${BM_GETCHECK} 0 0 $NEED_GSTSDK SendMessage $CHECKGSTCOMSDK ${BM_GETCHECK} 0 0 $NEED_GSTCOMSDK FunctionEnd dist/copy/tools/win-installer/PaxHeaders.26361/detect.nsi0000644000175000017500000000012412233027260021734 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.621046948 exaile-3.3.2/tools/win-installer/detect.nsi0000644000000000000000000000534412233027260020702 0ustar00rootroot00000000000000;--------------------------------------------------------------------- ; ROUTINES TO DETECT PYTHON, PYGTK, PYGOBJECT, PYCAIRO and TCL/TK. ; - Taken from ASCEND NSIS installer (http://www.ascend4.org/) ;--------------------------------------------------------------------- ; Look for Python in specific directory Function DetectPython ; TODO: Really, we should be supporting more than one version here, but ; given the python support from GST only supports 2.6... nope. ; TODO: Really, assuming that the python path is a fixed location is ; a bit broken, but this installer is really geared towards non-technical ; users anyways, so the chances of them having it installed in a ; non-default location is.. low, right? *hides from bugreports* ${If} ${FileExists} "${PYTHON_PATH}\python.exe" StrCpy $HAVE_PYTHON "OK" ${Else} ;MessageBox MB_OK "No python.exe in $R6" StrCpy $HAVE_PYTHON "NOK" ${EndIf} FunctionEnd Function DetectMutagen ${If} $HAVE_PYTHON == "OK" ; run python to see if its present ExecWait "${PYTHON_PATH}\pythonw.exe -c $\"import mutagen$\"" $0 ${If} $0 != "0" ;MessageBox MB_OK "No mutagen module found" StrCpy $HAVE_MUTAGEN "NOK" ${Else} StrCpy $HAVE_MUTAGEN "OK" ${EndIf} ${Else} ; If they don't have Python, they probably don't have mutagen.. StrCpy $HAVE_MUTAGEN "NOK" ${EndIf} FunctionEnd ;-------------------------------------------------------------------- ; Are necessary PyGTK bits and pieces available? ;Function DetectPyGTK ; ${If} ${FileExists} "${PYTHON_PATH}\Lib\site-packages\gtk-2.0\gtk\__init__.py" ; StrCpy $HAVE_PYGTK "OK" ; ${Else} ; ;MessageBox MB_OK "No PyGTK in $PYPATH" ; StrCpy $HAVE_PYGTK "NOK" ; ${EndIf} ;FunctionEnd ;-------------------------------------------------------------------- ; GStreamer OSSBuild package detection ;Function DetectGstreamer ; ReadEnvStr $0 OSSBUILD_GSTREAMER_DIR ; ${IfNot} $0 == "" ; StrCpy $HAVE_GST "OK" ; ${Else} ; StrCpy $HAVE_GST "NOK" ; ${EndIf} ;FunctionEnd ;Function DetectGstreamerSDK ; ReadEnvStr $0 OSSBUILD_GSTREAMER_SDK_DIR ; ${IfNot} $0 == "" ; StrCpy $HAVE_GSTSDK "OK" ; ${Else} ; StrCpy $HAVE_GSTSDK "NOK" ; ${EndIf} ;FunctionEnd ;-------------------------------------------------------------------- ; GStreamer.com SDK package detection Function DetectGstreamerComSDK ReadEnvStr $0 GSTREAMER_SDK_ROOT_X86 ${IfNot} $0 == "" StrCpy $HAVE_GSTCOMSDK "OK" ${Else} StrCpy $HAVE_GSTCOMSDK "NOK" ${EndIf} ; TODO: What if they don't select the correct options? FunctionEnd dist/copy/tools/win-installer/PaxHeaders.26361/install_targz.py0000644000175000017500000000012412233027260023200 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.621046948 exaile-3.3.2/tools/win-installer/install_targz.py0000644000000000000000000000204112233027260022135 0ustar00rootroot00000000000000#!/usr/bin/env python ''' Script to install a setup.py-based python module from a tar.gz file ''' import os import os.path import shutil import subprocess import sys import tarfile import tempfile ret = 1 setup_py = None target = tempfile.mkdtemp() if target[-1] != os.path.sep: target += os.path.sep def safe_extract(tar): # inspired by a post on stack overflow global setup_py for item in tar: fname = os.path.abspath(os.path.join(target,item.name)) if fname.startswith(target): if fname.endswith('setup.py'): setup_py = fname yield item try: # extract tar.gz file tar = tarfile.open(sys.argv[1], 'r:gz') tar.extractall(path=target, members=safe_extract(tar)) # run installer if setup_py is not None: ret = subprocess.call([sys.executable, setup_py, 'install'], cwd=os.path.dirname(setup_py)) except: pass # cleanup and go away shutil.rmtree(target, ignore_errors=True) exit(ret) dist/copy/tools/win-installer/PaxHeaders.26361/libgstexailedirectsoundsink.dll0000644000175000017500000000012412233027260026253 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.697046951 exaile-3.3.2/tools/win-installer/libgstexailedirectsoundsink.dll0000644000000000000000000063040712233027260025225 0ustar00rootroot00000000000000MZ@ !L!This program cannot be run in DOS mode. $PEL|QP! 0RX@Tg`, `\pT r.text.0`P`.data@6@`.rdataH`T@`@/4T@ (@0@.bssP0.edata\`2@0@.idatap4@0.CRTF@0.tls H@0.relocT J@0B/14 X@B/29Z@B/45 ^@B/61d@B/73<@B/87AL@B/99d@0B/112h@B/123$ &l@B/134P@BUSPUgt4PUg9wtЋPUg9v$-PUg$w-[ÐUWVS,u] }t=|$\$4$' uPUgEdEe[^_ v$-PUgtcPUg0Ugt|$D$4$Ѓ R(*|$D$4$& te[^_ 1e[^_ , 1ifUD$PUgD$PUgE$,UD$PUgD$PUgE$_,ÐU$`Tg,RteD$`Tg$u,tD$PUg$@UgЋ ]Tgt1$)`Tg?,Rt*D$7`Tg$2,t $]Tgø말U$`Tg+Qt%D$K`Tg$+t $@UgÍvS(D$\$ \$$" t2D$D$ D$D$$!([f1([f$!@S\$ t,t$!Ct$!\$ [!f[ÍvWVS t$0|$<Åt_tbD$D$ D$D$D$4$6!Ct/\$$9! [^_$d`Tg$!랉$0 [^_fvS\$ D$D$Tg$ \$ [ v,D$D$D$$TgQ!D$x,ft$1,f1,D$D$D$$Tg!D$x,ft$L1,f1WVS D$D$ D$D$D$0$& Åt4$ƉD$$ lj$u [^_14$1D$@0TgËD$ÐD$D$ ÍvD$@@ Tg@\Tg@TgÍvfD$@ Tg@/Tg@LTg@TgÍvS\$ t$RPǃ[ÐS(\$0L$L$$R$D$u1([ÐD$L$L$$R uӋL$9v)1([f)1fS\$9t9[Ð[fSHt-u|=sUgw\$$R<H[ËT$ \$D$`TgD$D$D$ `gTgD$`TgD$(PUg$D$4D$4fiTgR<$Z$D$4& iTg|$>fT$> fT$T$8ۋD$4~14(fD$T$ ;tvÍvUWVSl$$\$H1D$`TgE$)UtD$<D$<$ $,D$@$"l$cTg2D$D$$&D$D$ D$HcTgD$ucTg$`TgD$D$$D$D$ D$|cTgD$cTg$cTgD$D$$8[ÐD$bTgD$$bTg(PUgfWS4\$@D$(D$,$$RHPD$$R4ǃD$D$D$L$,L$L$(L$ L$D$$R, x?T$(L$,1󪋃D$D$ L$,L$L$(L$$RLǃ$)4[_ÍvUWVSL\$`l$hD$,D$0$t$(t$$R$D$|$<|$$R D$(¨^jD$t$8t$t$0t$t$4t$t$,t$ l$L$$R, xuD$,L$4Njt$dD$0Wt$dt$4L$8L$0|$4t$81t$L$ |$L$,L$$RLD$(uǃ$L[^_]Ív)9$dQD$|$$R t$$R$x=D$(t5T$<9w)뛍v$RPRǃ1|ǃ$1L[^_]ËT$(E뭐1D$ D$D$$R0fUWVS<\$Ptw$D$D$4$ Tt4$pTD$D$$փ x<[^_]Ð1돉$lVD$$cTgS$EDžtF=sUgv=t$D$cTg\$D$D$ hTgD$`TgD$(PUg$tF=sUgv=|$D$cTg\$D$D$ hTgD$`TgD$(PUg$?D$ D$hTgD$`Tg|$t$D$ D$D$$~1<[^_]É$dWD$$cTgK$=ŅtF=sUgv=|$D$cTg\$D$D$ hTgD$`TgD$(PUg$tF=sUgv=l$D$cTg\$D$D$ hTgD$`TgD$(PUg$7D$ D$hTgD$`Tgl$|$D$ D$D$$vt4$1v1UWVS$$n@FD$nD$L1|$L󪋃@< fD$~fD$nN fL$p~|$rəfD$|fl$zl$vD$ @BF0D$,$D$ 1v@щD$ @BF(D$D$v$D$w ~@щN81F<Љ=sUgvzT$8D$vD$4D$zD$0D$|D$,D$rD$(F@D$$FD$ F D$D$8dTg\$D$+D$ iTgD$`TgD$(PUg$O t$X1D$XD$\@<t tD$\T$`D$nD$hD$ L$t$$R x\)Č[^_]ÐfD$nfD$pD$rfD$|fD$zD$vF8F< $ UD$$HeTg $ ƅtF=sUgv=|$D$cTg\$D$<D$ iTgD$`TgD$(PUg$ tF=sUgv=t$D$cTg\$D$<D$ iTgD$`TgD$(PUg$ 2 D$ <D$iTgD$`Tgt$|$D$ D$D$$ 1Č[^_]ÐUWVSl$$ =sUgw%$ $ Ɖl[^_]ÍvD$D$eTg\$D$vD$ 3iTgD$`TgD$(PUg$D$, D$,듃=sUgD$eTg\$D$pD$ 3iTgD$`TgD$(PUg$ 1^vD$eTg$ z$ $ ƍl$N1fD$NfD$PD$RfD$\fD$ZD$VT$8D$8D$<D$@l$HD$ |$T$$Q =sUg$RQ\s4$ 4$ =sUgvFD$D${fTg\$D$D$ 3iTgD$`TgD$(PUg$D$,/D$,$ f1D$5fTg\$D$<D$ iTgD$`TgD$(PUg$'f=sUgvF$; WD$D$eTg\$D$8D$ iTgD$`TgD$(PUg$D$$fTg)D$4$%D$$)fTgD$4$=sUg$ RD$D$PfTg\$D$AD$ iTgD$`TgD$(PUg$LD$fTgD$PiTg$1VSÅtV$u1$P[^ËP @$8뻍v1[^fUWVSLt$`\$d|$hl$ltb$BƋE$3t$ D$ED$\$D$`TgD$ fTgD$`TgD$$L[^_]iTgھ\$d|$`L[^_] t2D$d|$`L[^_]fuэvt_D$fD$> fD$؃L[^_]zft$ǃ t$ǃ ,$`$L[^_]fS\$ $t0D$D$4Tg$P$Jǃt$ǃ t$ǃ \$ 0PUg@[fVS4\$HD$`TgC$uaD$@$,Ƌ$t$ D$CD$D$DD$D$`TgD$ fTgD$`TgD$$4[^ÐS\$ t6$RPǃD$$1[ÍvD$fTgD$hTg$X1[ÐWVS t$0\$4B<t t\$0 [^_8$~}$Nj8D$GD$ GD$CD$C$t6D$\$<$CST$D$$| [^_Ív<$h11SH$$PUgt $PUgH[f$$PUg|t$gTgtD$0D$,D$(TgD$$D$ D$D$D$TgD$D$ 8TgD$\$$D$ gTgD$$FD$,gTgD$$-D$8gTgD$$\$$$PUg D$ D$D$iTgD$ $D%sUg%tsUg%xsUg%|sUg%sUg%sUg%sUg%sUg%sUg%tUg%tUg%tUg%sUg%sUg%sUg%sUg%sUg%tUg%sUg%sUg%sUg%sUg%tUg%sUg%tUg%sUg%sUg%sUg% tUg%sUg%sUg%sUg%sUg%sUg%sUg%sUg%sUg%tUg%sUg%sUg%PsUg%\sUg%hsUg%LsUg%lsUg%HsUg%(sUg%0sUg%DsUg%8sUg%,sUg%Tgt"t f>TgKu$ ;Tg[1ÍC>TgufU HPUgtfHPUg듐UVSPPUgue[^$TPUgQlPUgt*$rRru tC4$Ћ[u$TPUgWPe[^ÍvUSPPUgu1]ÐD$ $Åt7EE C$TPUgPlPUgClPUg$TPUgS1멸US]PPUgu 1]f$TPUgQlPUgt9u B9t‹Bu$TPUgR1]ÐHJ$$TPUgbRۋBlPUgݍvUE t>ruzÍvkPPUgHuPPUg$TPUgPfPPUgtPPUgf$TPUgRސQL$=r -=w) ̋p%tUg%tUg%tUg%ptUg%ltUg%tUg%xtUg%tUg%tUg%|tUg%tUg%DtUg%HtUg%XtUg%TtUg%4tUg%dtUg%`tUg%TgeTggTg iTgiTg2TgjTgjTgjTg0jTgWjTgnjTgkTgkTg@kTgHkTglkTgkTgkTgkTgkTglTg1lTgGlTgYlTgplTglTglTg lTglTg "mTg:mTg XmTglmTgmTgmTgmTgmTgnTg,nTg-RnTghnTg7nTgnTgBnTgoTgEToTgloTgFoTgoTgPoTgpTgTDpTg`pTgWpTgpTgXDqTg`qTgZqTgqTg`qTgrTgcRrTgdrTggrTgrTghrTgrTgp,sTg@sTg~jsTgsTgsTgtTgtTgtTguTg4uTgduTgruTg ~uTguTguTguTgovuTguTg xuTgvTgxNvTgdvTgxwTgwTgxxTgxTgxyTg(yTgxyTgyTgx,zTgDzTgxzTgzTgx<{TgP{Tgx|Tg|TgxTg$TgxXTgpTgxTg8Tg TgĂTg@TgTg@FTgTTg@TgTg@TgTg@TgTgۃTgTgTgTgT=TgQTgfTg|TgTgTgTgTgTgTgDTg|TgTg4TgxTgTgXTgTg@TgTgpTgTg TgPTg 8Tg`Tg TgTg TTgTg TgTg -TgCTgaTgpTgTgTgTgTg*Tg@Tg{TgTgTgАTgTg$TgqTgTgTgđTgTgTgJTg`TgTgTgޒTgTgTg0TglTgTgȓTgܓTgTg4TguTgTg TgϔTg!TgTg"$TgTgZTg0rTgUTg@TgTgPTgTg`TgTgpTg Tg#Tgv:TgPTg?vTgTg@vTgTgAvTgTgBv?TgTTgCvTgTgDvTTgpTgEvTgTgFv+Tg@TgGvTgTgHvTgTgIvtTgTgJvrTgTgKvTgTgLv Tg$TgMvrTgTgNvTgTgOvTgTgPvTgTgXvTg TgYveTgxTgZvTgTg[v1TgLTglvTgTgvvTgTgvTgTgvTgTgvTgTgviTgxTgvTgTgvTgTgvBTgPTgvzTgTgvTgTgvTgTgv)Tg@TgvzTgTgRvTgTgSvTg,TgTv6TgHTgUvQTgkTgVv}TgTgWvTgTgXvTgTgYvTgTgZvTgTg[v-TgCTg\vQTggTg]vtTgTg^vTgTg_vTgTg`vTgTgav/TgATgbvJTgaTgcvmTgTgdvTgTgevTgTgfvTgTggv Tg#Tghv3TgKTgivZTgxTgjvTgTgkvTgTglvTgTgvTgTgv(TgITgveTgTgvTgTgvTgTgvTgTgv4TgTTgvoTgTg!vTgTg"vTgTg&vTg=Tg'vYTgvTgfvTgTggvTgTghvTgTgivTgTgjvTgTgkvTg¾Tglv2TgETgmvRTgkTgT vTgTgU vTgTgV vTgTgW vTg"TgX v9TgSTgY vgTg{TgZ vTgTg[ vTgTg xTgTgxkTgTg2xTgTgFxTg,Tgdx}TgTgxxTgTgxTgTgx UgUgxRUghUgxUgضTgxUgUgx1UgDUgxUgUgxUgUgx4UgLUgxUgUgx:UgPUgxUgUgxUgUgxJUgdUgxUgUg xUgUgx=UgTUgxUgUgxUgUgxDUgXUgx}UgUgxUgUgxUg,Ug xwUgUg!xUgUg"x$Ug<Ug#xUgUg$xUgUg%x; UgL Ug&x Ug Ug'x Ug Ug(x Ug4 Ug)xm Ug Ug*x Ug Ug+x Ug Ug,x) Ug@ Ug-xn Ug Ug.x Ug Ug/x Ug0 Ug0x Ug Ug1x Ug Ug2xh Ug| Ug3x Ug Ug4xUg0Ug5xUgUg6xUg0Ug7xwUgUg8xUgUg9xHUg`Ug:x1UgLUg;xUgUg<xUgUg=x$Ug<Ug>xUgUg?xUgUgPxUgUgQxUg UgRxIUg`UgUxUgUgVx)UgHUgWxUgUgXxrUgUgYxUg4Ug`xUgUgaxUgUgbxUg Ugcx^UgtUgdxUg UgexIUg\UgfxUgUggxUg UgpxHUg`UgxUgUgxUg4UgxXUgtUgxUgUgxUgUgx5UgRUgxhUgUgxUgUgxUg UgxOUgdUgxUgUgx#Ug8UgxUgUgxX Ugp Ugx Ug Ugx!Ug!Ugx"Ug,"Ugxx"Ug"Ugx"Ug#Ugxh#Ug#Ugx$Ug<$Ugx0%UgT%Ugx%Ug%Ugx%Ug&UgxD&Ugh&Ugx&Ug&Ugx'Ug('Ugxx'Ug'Ugx'Ug (Ug x(Ug(Ug!x(Ug)Ug"x4)UgX)Ug#x)Ug)Ug$x<*Ug`*Ug%xD+Ugl+Ug&x=,Ug\,Ug'x,Ug,Ug(x-Ug-Ug)x.Ug,.Ug*xl.Ug.Ug+x.Ug.Ug,x@/UgT/Ug-x/Ug/Ug.x/Ug 0Ug/xp0Ug0UgmTg0Ug>Tglibgcc_s_dw2-1.dll__register_frame_infolibgcj-12.dll_Jv_RegisterClasses__deregister_frame_infoSetting volume on secondary buffer to %d from %dgstdirectsoundsink.cdevicepropertygstdirectsoundsink.c:314%s: invalid %s id %u for "%s" of type `%s' in `%s'No devices foundFound device: id=[%s] name=[%s]DSoundTrackgst_directsound_sink_acceptcapsframedparsedSebastien Moutte Output to a sound card via Direct SoundSink/AudioDirect Sound Audio SinkDirectSound sinkdirectsoundsinkgst_directsound_sink_getcapsgst_directsound_sink_payloadgst_directsound_sink_preparegst_directsound_sink_unpreparegst_directsound_sink_opengst_directsound_sink_closegst_directsound_sink_writegst_directsound_sink_delaygst_directsound_sink_resetVolume of this streamVolumevolumeDirectSound playback device as a GUID stringDeviceHuman-readable name of the audio deviceDevice namedevice-namegst_directsound_sink_open: DirectSoundCreate: %serror: %sgst_directsound_sink_open: IDirectSound_SetCooperativeLevel: %sGstRingBufferSpec->channels: %d, GstRingBufferSpec->rate: %d, GstRingBufferSpec->bytes_per_sample: %d WAVEFORMATEX.nSamplesPerSec: %ld, WAVEFORMATEX.wBitsPerSample: %d, WAVEFORMATEX.nBlockAlign: %d, WAVEFORMATEX.nAvgBytesPerSec: %ld Size of dsound circular buffer=>%d gst_directsound_sink_prepare: IDirectSound_CreateSoundBuffer: %sdevice not open, using template capsReturning cached caps: %ssinkAC3 passthrough not supported (IDirectSound_CreateSoundBuffer returned: %s) audio/x-ac3audio/x-dtsAC3 passthrough supported(IDirectSoundBuffer_Release returned: %s) returning caps %spad_template != NULLgstdirectsoundsink.c:609gstdirectsoundsink.c:583gstdirectsoundsink.c:292dsoundsink->pDS != NULLGstExaileDirectSoundSinkTg(TgTTggst_directsound_sink_set_volumeprobe_get_valuesaudio/x-raw-int, signed = (boolean) TRUE, width = (int) 16, depth = (int) 16, rate = (int) [ 1, MAX ], channels = (int) [ 1, 2 ]; audio/x-raw-int, signed = (boolean) FALSE, width = (int) 8, depth = (int) 8, rate = (int) [ 1, MAX ], channels = (int) [ 1, 2 ];audio/x-ac3, framed = (boolean) true;audio/x-dts, framed = (boolean) true;gst_directsound_sink_closegst_directsound_sink_opengst_directsound_sink_preparegst_directsound_sink_getcapsgst_directsound_sink_getcapsgst_directsound_probe_supported_formatsBAexailedirectsoundsinkexailedirectsoundDirect Sound plugin library (for Exaile)0.10.31LGPLgst-plugins-goodGStreamer Good Plug-ins source releaseUnknown package origin2012-02-20%hs(%Lu): %s (hr=%s(0x%Lx))File: %hs Line: %Lu Error Code: %s(0x%Lx) Calling: %s Do you want to debug the application?Unexpected error encountredS_OKThe function completed successfullyS_FALSECall successful, but returned FALSEDXERROR_FILE_NOT_FOUNDThe system cannot find the file specified.DXERROR_PATH_NOT_FOUNDThe system cannot find the path specified.DXERROR_TOO_MANY_OPEN_FILESThe system cannot open the file.DXERROR_ACCESS_DENIEDAccess is denied.DXERROR_INVALID_HANDLEThe handle is invalid.DXERROR_NOT_ENOUGH_MEMORYNot enough storage is available to process this command.DXERROR_INVALID_BLOCKThe storage control block address is invalid.DXERROR_BAD_ENVIRONMENTThe environment is incorrect.DXERROR_BAD_FORMATAn attempt was made to load a program with an incorrect format.DXERROR_OUTOFMEMORYThe system cannot find the drive specified.UnknownEnd of stream. Sample not updated.VFW_S_NO_MORE_ITEMSThe end of the list has been reached.VFW_S_DUPLICATE_NAMEAn attempt to add a filter with a duplicate name succeeded with a modified name.VFW_S_STATE_INTERMEDIATEThe state transition has not completed.VFW_S_PARTIAL_RENDERSome of the streams in this movie are in an unsupported format.VFW_S_SOME_DATA_IGNOREDThe file contained some property settings that were not used.VFW_S_CONNECTIONS_DEFERREDSome connections have failed and have been deferred.VFW_S_RESOURCE_NOT_NEEDEDThe resource specified is no longer needed.VFW_S_MEDIA_TYPE_IGNOREDA connection could not be made with the media type in the persistent graph, but has been made with a negotiated media type.VFW_S_VIDEO_NOT_RENDEREDCannot play back the video stream: no suitable decompressor could be found.VFW_S_AUDIO_NOT_RENDEREDCannot play back the audio stream: no audio hardware is available.VFW_S_RPZACannot play back the video stream: format 'RPZA' is not supported.VFW_S_ESTIMATEDThe value returned had to be estimated. It's accuracy can not be guaranteed.VFW_S_RESERVEDThis success code is reserved for internal purposes within ActiveMovie.VFW_S_STREAM_OFFThe stream has been turned off.VFW_S_CANT_CUEThe graph can't be cued because of lack of or corrupt data.VFW_S_NO_STOP_TIMEThe stop time for the sample was not set.VFW_S_NOPREVIEWPINThere was no preview pin available, so the capture pin output is being split to provide both capture and preview.VFW_S_DVD_NON_ONE_SEQUENTIALThe current title was not a sequential set of chapters (PGC) and the returned timing information might not be continuous.VFW_S_DVD_CHANNEL_CONTENTS_NOT_AVAILABLEThe audio stream did not contain sufficient information to determine the contents of each channel.VFW_S_DVD_NOT_ACCURATEThe seek into the movie was not frame accurate.DV_FULLDUPLEXFull duplexDV_HALFDUPLEXHalf duplexDV_PENDINGPendingD3DOK_NOAUTOGENThe call succeeded but there won't be any mipmaps generatedDS_NO_VIRTUALIZATIONThe call succeeded, but we had to substitute the 3D algorithmDMUS_S_PARTIALLOADThe object could only load partially. This can happen if some components are not registered properly, such as embedded tracks and tools. This can also happen if some content is missing. For example, if a segment uses a DLS collection that is not in the loader's current search directory.DMUS_S_PARTIALDOWNLOADReturn value from IDirectMusicBand::Download() which indicates that some of the instruments safely downloaded, but others failed. This usually occurs when some instruments are on PChannels not supported by the performance or port.DMUS_S_REQUEUEReturn value from IDirectMusicTool::ProcessPMsg() which indicates to the performance that it should cue the PMsg again automatically.DMUS_S_FREEReturn value from IDirectMusicTool::ProcessPMsg() which indicates to the performance that it should free the PMsg automatically.DMUS_S_ENDReturn value from IDirectMusicTrack::Play() which indicates to the segment that the track has no more data after mtEnd.DMUS_S_STRING_TRUNCATEDReturned string has been truncated to fit the buffer size.DMUS_S_LAST_TOOLReturned from IDirectMusicGraph::StampPMsg() this indicates that the PMsg is already stamped with the last tool in the graph. The returned PMsg's tool pointer is now NULL.DMUS_S_OVER_CHORDReturned from IDirectMusicPerformance::MusicToMIDI() this indicates that no note has been calculated because the music value has the note at a position higher than the top note of the chord. This applies only to DMUS_PLAYMODE_NORMALCHORD play mode. This success code indicates that the caller should not do anything with the note. It is not meant to be played against this chord.DMUS_S_UP_OCTAVEReturned from IDirectMusicPerformance::MIDIToMusic() and IDirectMusicPerformance::MusicToMIDI() this indicates that the note conversion generated a note value that is below 0, so it has been bumped up one or more octaves to be in the proper MIDI range of 0 through 127. Note that this is valid for MIDIToMusic() when using play modes DMUS_PLAYMODE_FIXEDTOCHORD and DMUS_PLAYMODE_FIXEDTOKEY, both of which store MIDI values in wMusicValue. With MusicToMIDI() it is valid for all play modes. Ofcourse, DMUS_PLAYMODE_FIXED will never return this success code.DMUS_S_DOWN_OCTAVEReturned from IDirectMusicPerformance::MIDIToMusic() and IDirectMusicPerformance::MusicToMIDI() this indicates that the note conversion generated a note value that is above 127, so it has been bumped down one or more octaves to be in the proper MIDI range of 0 through 127. Note that this is valid for MIDIToMusic() when using play modes DMUS_PLAYMODE_FIXEDTOCHORD and DMUS_PLAYMODE_FIXEDTOKEY, both of which store MIDI values in wMusicValue. With MusicToMIDI() it is valid for all play modes. Ofcourse, DMUS_PLAYMODE_FIXED will never return this success code.DMUS_S_NOBUFFERCONTROLAlthough the audio output from the port will be routed to the same device as the given DirectSound buffer, buffer controls such as pan and volume will not affect the output.DMUS_S_GARBAGE_COLLECTEDThe requested operation was not performed because during CollectGarbage the loader determined that the object had been released.E_PENDINGThe data necessary to complete this operation is not yet available.E_NOTIMPLThe function called is not supported at this timeE_NOINTERFACEThe requested COM interface is not availableE_POINTERInvalid pointerE_ABORTOperation abortedE_FAILAn undetermined error occurredE_UNEXPECTEDCatastrophic failureCLASSFACTORY_E_FIRSTThis object does not support aggregationREGDB_E_CLASSNOTREGClass not registeredCO_E_NOTINITIALIZEDCoInitialize has not been called.CO_E_ALREADYINITIALIZEDCoInitialize has already been called.DIERR_INSUFFICIENTPRIVS & VFW_E_INVALIDMEDIATYPEUnable to IDirectInputJoyConfig_Acquire because the user does not have sufficient privileges to change the joystick configuration. & An invalid media type was specifiedDIERR_DEVICEFULL & VFW_E_INVALIDSUBTYPE & DMO_E_INVALIDSTREAMINDEXThe device is full. & An invalid media subtype was specified.DIERR_MOREDATA & VFW_E_NEED_OWNER & DMO_E_INVALIDTYPENot all the requested information fit into the buffer. & This object can only be created as an aggregated object.DIERR_NOTDOWNLOADED & VFW_E_ENUM_OUT_OF_SYNC & DMO_E_TYPE_NOT_SETThe effect is not downloaded. & The enumerator has become invalid.DIERR_HASEFFECTS & VFW_E_ALREADY_CONNECTED & DMO_E_NOTACCEPTINGThe device cannot be reinitialized because there are still effects attached to it. & At least one of the pins involved in the operation is already connected.DIERR_NOTEXCLUSIVEACQUIRED & VFW_E_FILTER_ACTIVE & DMO_E_TYPE_NOT_ACCEPTEDThe operation cannot be performed unless the device is acquired in DISCL_EXCLUSIVE mode. & This operation cannot be performed because the filter is active.DIERR_INCOMPLETEEFFECT & VFW_E_NO_TYPES & DMO_E_NO_MORE_ITEMSThe effect could not be downloaded because essential information is missing. For example, no axes have been associated with the effect, or no type-specific information has been created. & One of the specified pins supports no media types.DIERR_NOTBUFFERED & VFW_E_NO_ACCEPTABLE_TYPESAttempted to read buffered device data from a device that is not buffered. & There is no common media type between these pins.DIERR_EFFECTPLAYING & VFW_E_INVALID_DIRECTIONAn attempt was made to modify parameters of an effect while it is playing. Not all hardware devices support altering the parameters of an effect while it is playing. & Two pins of the same direction cannot be connected together.DIERR_UNPLUGGED & VFW_E_NOT_CONNECTEDThe operation could not be completed because the device is not plugged in. & The operation cannot be performed because the pins are not connected.DIERR_REPORTFULL & VFW_E_NO_ALLOCATORSendDeviceData failed because more information was requested to be sent than can be sent to the device. Some devices have restrictions on how much data can be sent to them. (For example, there might be a limit on the number of buttons that can be pressed at once.) & No sample buffer allocator is available.DIERR_MAPFILEFAIL & VFW_E_RUNTIME_DXERRORA mapper file function failed because reading or writing the user or IHV settings file failed. & A run-time error occurred.VFW_E_BUFFER_NOTSETNo buffer space has been setVFW_E_BUFFER_OVERFLOWThe buffer is not big enough.VFW_E_BADALIGNAn invalid alignment was specified.VFW_E_ALREADY_COMMITTEDCannot change allocated memory while the filter is active.VFW_E_BUFFERS_OUTSTANDINGOne or more buffers are still active.VFW_E_NOT_COMMITTEDCannot allocate a sample when the allocator is not active.VFW_E_SIZENOTSETCannot allocate memory because no size has been set.VFW_E_NO_CLOCKCannot lock for synchronization because no clock has been defined.VFW_E_NO_SINKQuality messages could not be sent because no quality sink has been defined.VFW_E_NO_INTERFACEA required interface has not been implemented.VFW_E_NOT_FOUNDAn object or name was not found.VFW_E_CANNOT_CONNECTNo combination of intermediate filters could be found to make the connection.VFW_E_CANNOT_RENDERNo combination of filters could be found to render the stream.VFW_E_CHANGING_FORMATCould not change formats dynamically.VFW_E_NO_COLOR_KEY_SETNo color key has been set.VFW_E_NOT_OVERLAY_CONNECTIONCurrent pin connection is not using the IOverlay transport.VFW_E_NOT_SAMPLE_CONNECTIONCurrent pin connection is not using the IMemInputPin transport.VFW_E_PALETTE_SETSetting a color key would conflict with the palette already set.VFW_E_COLOR_KEY_SETSetting a palette would conflict with the color key already set.VFW_E_NO_COLOR_KEY_FOUNDNo matching color key is available.VFW_E_NO_PALETTE_AVAILABLENo palette is available.VFW_E_NO_DISPLAY_PALETTEDisplay does not use a palette.VFW_E_TOO_MANY_COLORSToo many colors for the current display settings.VFW_E_STATE_CHANGEDThe state changed while waiting to process the sample.VFW_E_NOT_STOPPEDThe operation could not be performed because the filter is not stopped.VFW_E_NOT_PAUSEDThe operation could not be performed because the filter is not paused.VFW_E_NOT_RUNNINGThe operation could not be performed because the filter is not running.VFW_E_WRONG_STATEThe operation could not be performed because the filter is in the wrong state.VFW_E_START_TIME_AFTER_ENDThe sample start time is after the sample end time.VFW_E_INVALID_RECTThe supplied rectangle is invalid.VFW_E_TYPE_NOT_ACCEPTEDThis pin cannot use the supplied media type.VFW_E_SAMPLE_REJECTEDThis sample cannot be rendered.VFW_E_SAMPLE_REJECTED_EOSThis sample cannot be rendered because the end of the stream has been reached.VFW_E_DUPLICATE_NAMEAn attempt to add a filter with a duplicate name failed.VFW_E_TIMEOUTA time-out has expired.VFW_E_INVALID_FILE_FORMATThe file format is invalid.VFW_E_ENUM_OUT_OF_RANGEThe list has already been exhausted.VFW_E_CIRCULAR_GRAPHThe filter graph is circular.VFW_E_NOT_ALLOWED_TO_SAVEUpdates are not allowed in this state.VFW_E_TIME_ALREADY_PASSEDAn attempt was made to queue a command for a time in the past.VFW_E_ALREADY_CANCELLEDThe queued command has already been canceled.VFW_E_CORRUPT_GRAPH_FILECannot render the file because it is corrupt.VFW_E_ADVISE_ALREADY_SETAn overlay advise link already exists.VFW_E_NO_MODEX_AVAILABLENo full-screen modes are available.VFW_E_NO_ADVISE_SETThis Advise cannot be canceled because it was not successfully set.VFW_E_NO_FULLSCREENA full-screen mode is not available.VFW_E_IN_FULLSCREEN_MODECannot call IVideoWindow methods while in full-screen mode.VFW_E_UNKNOWN_FILE_TYPEThe media type of this file is not recognized.VFW_E_CANNOT_LOAD_SOURCE_FILTERThe source filter for this file could not be loaded.VFW_E_FILE_TOO_SHORTA file appeared to be incomplete.VFW_E_INVALID_FILE_VERSIONThe version number of the file is invalid.VFW_E_INVALID_CLSIDThis file is corrupt: it contains an invalid class identifier.VFW_E_INVALID_MEDIA_TYPEThis file is corrupt: it contains an invalid media type.VFW_E_SAMPLE_TIME_NOT_SETNo time stamp has been set for this sample.VFW_E_MEDIA_TIME_NOT_SETNo media time stamp has been set for this sample.VFW_E_NO_TIME_FORMAT_SETNo media time format has been selected.VFW_E_MONO_AUDIO_HWCannot change balance because audio device is mono only.VFW_E_NO_DECOMPRESSORVFW_E_NO_AUDIO_HARDWARECannot play back the audio stream: no audio hardware is available, or the hardware is not responding.VFW_E_RPZAVFW_E_PROCESSOR_NOT_SUITABLEActiveMovie cannot play MPEG movies on this processor.VFW_E_UNSUPPORTED_AUDIOCannot play back the audio stream: the audio format is not supported.VFW_E_UNSUPPORTED_VIDEOCannot play back the video stream: the video format is not supported.VFW_E_MPEG_NOT_CONSTRAINEDActiveMovie cannot play this video stream because it falls outside the constrained standard.VFW_E_NOT_IN_GRAPHCannot perform the requested function on an object that is not in the filter graph.VFW_E_NO_TIME_FORMATCannot get or set time related information on an object that is using a time format of TIME_FORMAT_NONE.VFW_E_READ_ONLYThe connection cannot be made because the stream is read only and the filter alters the data.VFW_E_BUFFER_UNDERFLOWThe buffer is not full enough.VFW_E_UNSUPPORTED_STREAMCannot play back the file. The format is not supported.VFW_E_NO_TRANSPORTPins cannot connect due to not supporting the same transport.VFW_E_BAD_VIDEOCDThe Video CD can't be read correctly by the device or is the data is corrupt.VFW_E_OUT_OF_VIDEO_MEMORYThere is not enough Video Memory at this display resolution and number of colors. Reducing resolution might help.VFW_E_VP_NEGOTIATION_FAILEDThe VideoPort connection negotiation process has failed.VFW_E_DDRAW_CAPS_NOT_SUITABLEEither DirectDraw has not been installed or the Video Card capabilities are not suitable. Make sure the display is not in 16 color mode.VFW_E_NO_VP_HARDWARENo VideoPort hardware is available, or the hardware is not responding.VFW_E_NO_CAPTURE_HARDWARENo Capture hardware is available, or the hardware is not responding.VFW_E_DVD_OPERATION_INHIBITEDThis User Operation is inhibited by DVD Content at this time.VFW_E_DVD_INVALIDDOMAINThis Operation is not permitted in the current domain.VFW_E_DVD_NO_BUTTONThe specified button is invalid or is not present at the current time, or there is no button present at the specified location.VFW_E_DVD_GRAPHNOTREADYDVD-Video playback graph has not been built yet.VFW_E_DVD_RENDERFAILDVD-Video playback graph building failed.VFW_E_DVD_DECNOTENOUGHDVD-Video playback graph could not be built due to insufficient decoders.VFW_E_DDRAW_VERSION_NOT_SUITABLEVersion number of DirectDraw not suitable. Make sure to install dx5 or higher version.VFW_E_COPYPROT_FAILEDCopy protection cannot be enabled. Please make sure any other copy protected content is not being shown now.VFW_E_TIME_EXPIREDThis object cannot be used anymore as its time has expired.VFW_E_DVD_WRONG_SPEEDThe operation cannot be performed at the current playback speed.VFW_E_DVD_MENU_DOES_NOT_EXISTThe specified menu doesn't exist.VFW_E_DVD_CMD_CANCELLEDThe specified command was either cancelled or no longer exists.VFW_E_DVD_STATE_WRONG_VERSIONThe data did not contain a recognized version.VFW_E_DVD_STATE_CORRUPTThe state data was corrupt.VFW_E_DVD_STATE_WRONG_DISCThe state data is from a different disc.VFW_E_DVD_INCOMPATIBLE_REGIONThe region was not compatible with the current drive.VFW_E_DVD_NO_ATTRIBUTESThe requested DVD stream attribute does not exist.VFW_E_DVD_NO_GOUP_PGCCurrently there is no GoUp (Annex J user function) program chain (PGC).VFW_E_DVD_LOW_PARENTAL_LEVELThe current parental level was too low.VFW_E_DVD_NOT_IN_KARAOKE_MODEThe current audio is not karaoke content.VFW_E_FRAME_STEP_UNSUPPORTEDFrame step is not supported on this configuration.VFW_E_DVD_STREAM_DISABLEDThe specified stream is disabled and cannot be selected.VFW_E_DVD_TITLE_UNKNOWNThe operation depends on the current title number, however the navigator has not yet entered the VTSM or the title domains, so the 'current' title index is unknown.VFW_E_DVD_INVALID_DISCThe specified path does not point to a valid DVD disc.VFW_E_DVD_NO_RESUME_INFORMATIONThere is currently no resume information.VFW_E_PIN_ALREADY_BLOCKED_ON_THIS_THREADThis thread has already blocked this output pin. There is no need to call IPinFlowControl::Block() again.VFW_E_PIN_ALREADY_BLOCKEDIPinFlowControl::Block() has been called on another thread. The current thread cannot make any assumptions about this pin's block state.VFW_E_CERTIFICATION_FAILUREAn operation failed due to a certification failure.DIERR_DRIVERFIRSTDevice driver-specific codes. Unless the specific driver has been precisely identified, no meaning should be attributed to these values other than that the driver originated the error.DIERR_DRIVERFIRST+1DIERR_DRIVERFIRST+2DIERR_DRIVERFIRST+3DIERR_DRIVERFIRST+4DIERR_DRIVERFIRST+5VFW_E_BAD_KEYA registry entry is corrupt.DIERR_DRIVERLASTDevice installer errors.DIERR_INVALIDCLASSINSTALLERRegistry entry or DLL for class installer invalid or class installer not found.DIERR_CANCELLED & MS_E_SAMPLEALLOCThe user cancelled the install operation. & The stream already has allocated samples and the surface doesn't match the sample format.DIERR_BADINF & MS_E_PURPOSEIDThe INF file for the selected device could not be found or is invalid or is damaged. & The specified purpose ID can't be used for the call.MS_E_NOSTREAMNo stream can be found with the specified attributes.MS_E_NOSEEKINGSeeking not supported for this object.MS_E_INCOMPATIBLEThe stream formats are not compatible.MS_E_BUSYThe sample is busy.MS_E_NOTINITThe object can't accept the call because its initialize function or equivalent has not been called.MS_E_SOURCEALREADYDEFINEDMS_E_INVALIDSTREAMTYPEThe stream type is not valid for this operation.MS_E_NOTRUNNINGThe object is not in running state.E_ACCESSDENIEDAccess is deniedE_HANDLEInvalid handleDXERROR_INVALID_ACCESS & DIERR_NOTACQUIREDThe operation cannot be performed unless the device is acquired.E_OUTOFMEMORYRan out of memoryDXERROR_NOT_READY & DIERR_NOTINITIALIZEDThis object has not been initializedDXERROR_READ_FAULT & DIERR_INPUTLOSTAccess to the device has been lost. It must be re-acquired.E_INVALIDARGAn invalid parameter was passed to the returning functionDXERROR_BAD_DRIVER_LEVEL & DIERR_BADDRIVERVERThe object could not be created due to an incompatible driver version or mismatched or incomplete driver components.DXERROR_BUSY & DIERR_ACQUIREDThe operation cannot be performed while the device is acquired.DXERROR_NO_MORE_ITEMS & DIERR_NOMOREITEMSNo more items.DXERROR_OLD_WIN_VERSION & DIERR_OLDDIRECTINPUTVERSIONThe application requires a newer version of DirectInput.DXERROR_RMODE_APP & DIERR_BETADIRECTINPUTVERSIONThe application was written for an unsupported prerelease version of DirectInput.DXERROR_NOT_FOUND & E_PROP_ID_UNSUPPORTEDThe specified property ID is not supported for the specified property set.DXERROR_SET_NOT_FOUND & E_PROP_SET_UNSUPPORTEDThe specified property set is not supported.DXERROR_ALREADY_INITIALIZED & DIERR_ALREADYINITIALIZEDThis object is already initializedDVERR_BUFFERTOOSMALLBuffer too smallDVERR_EXCEPTIONExceptionDVERR_INVALIDFLAGSInvalid flagsDVERR_INVALIDOBJECTInvalid objectDVERR_INVALIDPLAYERInvalid playerDVERR_INVALIDGROUPInvalid groupDVERR_INVALIDHANDLEDVERR_SESSIONLOSTSession lostDVERR_NOVOICESESSIONNo voice sessionDVERR_CONNECTIONLOSTConnection lostDVERR_NOTINITIALIZEDNot initializedDVERR_CONNECTEDConnectedDVERR_NOTCONNECTEDNot connectedDVERR_CONNECTABORTINGConnect abortingDVERR_NOTALLOWEDNot allowedDVERR_INVALIDTARGETInvalid targetDVERR_TRANSPORTNOTHOSTTransport not hostDVERR_COMPRESSIONNOTSUPPORTEDCompression not supportedDVERR_ALREADYPENDINGAlready pendingDVERR_SOUNDINITFAILURESound init failureDVERR_TIMEOUTTime outDVERR_CONNECTABORTEDConnect abortedDVERR_NO3DSOUNDNo 3d soundDVERR_ALREADYBUFFEREDAlready bufferedDVERR_NOTBUFFEREDNot bufferedDVERR_HOSTINGHostingDVERR_NOTHOSTINGNot hostingDVERR_INVALIDDEVICEInvalid deviceDVERR_RECORDSYSTEMDXERRORRecord system errorDVERR_PLAYBACKSYSTEMDXERRORPlayback system errorDVERR_SENDDXERRORSend errorDVERR_USERCANCELUser cancelDVERR_RUNSETUPRun setupDVERR_INCOMPATIBLEVERSIONIncompatible versionDVERR_INITIALIZEDInitializedDVERR_NOTRANSPORTNo transportDVERR_NOCALLBACKNo callbackDVERR_TRANSPORTNOTINITTransport not initDVERR_TRANSPORTNOSESSIONTransport no sessionDVERR_TRANSPORTNOPLAYERTransport no playerDVERR_USERBACKUser backDVERR_NORECVOLAVAILABLENo rec vol availableDVERR_INVALIDBUFFERInvalid bufferDVERR_LOCKEDBUFFERLocked bufferDPNERR_ABORTEDAbortedDPNERR_ADDRESSINGAddressingDPNERR_ALREADYCLOSINGAlready closingDPNERR_ALREADYCONNECTEDAlready connectedDPNERR_ALREADYDISCONNECTINGAlready disconnectingDPNERR_ALREADYINITIALIZEDAlready initializedDPNERR_ALREADYREGISTEREDAlready registeredDPNERR_BUFFERTOOSMALLDPNERR_CANNOTCANCELCan not cancelDPNERR_CANTCREATEGROUPCant create groupDPNERR_CANTCREATEPLAYERCant create playerDPNERR_CANTLAUNCHAPPLICATIONCant launch applicationDPNERR_CONNECTINGConnectingDPNERR_CONNECTIONLOSTDPNERR_CONVERSIONConversionDPNERR_DATATOOLARGEData too largeDPNERR_DOESNOTEXISTDoes not existDPNERR_DPNSVRNOTAVAILABLEdpnsvr not availableDPNERR_DUPLICATECOMMANDDuplicate commandDPNERR_ENDPOINTNOTRECEIVINGEnd point not receivingDPNERR_ENUMQUERYTOOLARGEEnum query too largeDPNERR_ENUMRESPONSETOOLARGEEnum response too largeDPNERR_EXCEPTIONDPNERR_GROUPNOTEMPTYGroup not emptyDPNERR_HOSTINGDPNERR_HOSTREJECTEDCONNECTIONHost rejected connectionDPNERR_HOSTTERMINATEDSESSIONHost terminated sessionDPNERR_INCOMPLETEADDRESSIncomplete addressDPNERR_INVALIDADDRESSFORMATInvalid address formatDPNERR_INVALIDAPPLICATIONInvalid applicationDPNERR_INVALIDCOMMANDInvalid commandDPNERR_INVALIDDEVICEADDRESSInvalid device addressDPNERR_INVALIDENDPOINTInvalid end pointDPNERR_INVALIDFLAGSDPNERR_INVALIDGROUPDPNERR_INVALIDHANDLEDPNERR_INVALIDHOSTADDRESSInvalid host addressDPNERR_INVALIDINSTANCEInvalid instanceDPNERR_INVALIDINTERFACEInvalid interfaceDPNERR_INVALIDOBJECTDPNERR_INVALIDPASSWORDInvalid passwordDPNERR_INVALIDPLAYERDPNERR_INVALIDPRIORITYInvalid priorityDPNERR_INVALIDSTRINGInvalid stringDPNERR_INVALIDURLInvalid urlDPNERR_INVALIDVERSIONInvalid versionDPNERR_NOCAPSNo capsDPNERR_NOCONNECTIONNo connectionDPNERR_NOHOSTPLAYERNo host playerDPNERR_NOMOREADDRESSCOMPONENTSNo more address componentsDPNERR_NORESPONSENo responseDPNERR_NOTALLOWEDDPNERR_NOTHOSTNot hostDPNERR_NOTREADYNot readyDPNERR_NOTREGISTEREDNot registeredDPNERR_PLAYERALREADYINGROUPPlayer already in groupDPNERR_PLAYERLOSTPlayer lostDPNERR_PLAYERNOTINGROUPPlayer not in groupDPNERR_PLAYERNOTREACHABLEPlayer not reachableDPNERR_SENDTOOLARGESend too largeDPNERR_SESSIONFULLSession fullDPNERR_TABLEFULLTable fullDPNERR_TIMEDOUTTimed outDPNERR_UNINITIALIZEDUninitializedDPNERR_USERCANCELDDERR_ALREADYINITIALIZEDDDERR_CANNOTATTACHSURFACEThis surface can not be attached to the requested surface.DDERR_CANNOTDETACHSURFACEThis surface can not be detached from the requested surface.DDERR_CURRENTLYNOTAVAILSupport is currently not available.DDERR_EXCEPTIONAn exception was encountered while performing the requested operationDDERR_HEIGHTALIGNHeight of rectangle provided is not a multiple of reqd alignmentDDERR_INCOMPATIBLEPRIMARYUnable to match primary surface creation request with existing primary surface.DDERR_INVALIDCAPSOne or more of the caps bits passed to the callback are incorrect.DDERR_INVALIDCLIPLISTDirectDraw does not support provided Cliplist.DDERR_INVALIDMODEDirectDraw does not support the requested modeDDERR_INVALIDOBJECTDirectDraw received a pointer that was an invalid DIRECTDRAW object.DDERR_INVALIDPIXELFORMATpixel format was invalid as specifiedDDERR_INVALIDRECTRectangle provided was invalid.DDERR_LOCKEDSURFACESOperation could not be carried out because one or more surfaces are lockedDDERR_NO3DThere is no 3D present.DDERR_NOALPHAHWOperation could not be carried out because there is no alpha accleration hardware present or available.DDERR_NOSTEREOHARDWAREOperation could not be carried out because there is no stereo hardware present or available.DDERR_NOSURFACELEFTOperation could not be carried out because there is no hardware present which supports stereo surfacesDDERR_NOCLIPLISTno clip list availableDDERR_NOCOLORCONVHWOperation could not be carried out because there is no color conversion hardware present or available.DDERR_NOCOOPERATIVELEVELSETCreate function called without DirectDraw object method SetCooperativeLevel being called.DDERR_NOCOLORKEYSurface doesn't currently have a color keyDDERR_NOCOLORKEYHWOperation could not be carried out because there is no hardware support of the dest color key.DDERR_NODIRECTDRAWSUPPORTNo DirectDraw support possible with current display driverDDERR_NOEXCLUSIVEMODEOperation requires the application to have exclusive mode but the application does not have exclusive mode.DDERR_NOFLIPHWFlipping visible surfaces is not supported.DDERR_NOGDIThere is no GDI present.DDERR_NOMIRRORHWOperation could not be carried out because there is no hardware present or available.DDERR_NOTFOUNDRequested item was not foundDDERR_NOOVERLAYHWOperation could not be carried out because there is no overlay hardware present or available.DDERR_OVERLAPPINGRECTSOperation could not be carried out because the source and destination rectangles are on the same surface and overlap each other.DDERR_NORASTEROPHWOperation could not be carried out because there is no appropriate raster op hardware present or available.DDERR_NOROTATIONHWOperation could not be carried out because there is no rotation hardware present or available.DDERR_NOSTRETCHHWOperation could not be carried out because there is no hardware support for stretchingDDERR_NOT4BITCOLORDirectDrawSurface is not in 4 bit color palette and the requested operation requires 4 bit color palette.DDERR_NOT4BITCOLORINDEXDirectDrawSurface is not in 4 bit color index palette and the requested operation requires 4 bit color index palette.DDERR_NOT8BITCOLORDirectDraw Surface is not in 8 bit color mode and the requested operation requires 8 bit color.DDERR_NOTEXTUREHWOperation could not be carried out because there is no texture mapping hardware present or available.DDERR_NOVSYNCHWOperation could not be carried out because there is no hardware support for vertical blank synchronized operations.DDERR_NOZBUFFERHWOperation could not be carried out because there is no hardware support for zbuffer blting.DDERR_NOZOVERLAYHWOverlay surfaces could not be z layered based on their BltOrder because the hardware does not support z layering of overlays.DDERR_OUTOFCAPSThe hardware needed for the requested operation has already been allocated.D3DERR_OUTOFVIDEOMEMORYOut of video memoryDDERR_OVERLAYCANTCLIPhardware does not support clipped overlaysDDERR_OVERLAYCOLORKEYONLYONEACTIVECan only have ony color key active at one time for overlaysDDERR_PALETTEBUSYAccess to this palette is being refused because the palette is already locked by another thread.DDERR_COLORKEYNOTSETNo src color key specified for this operation.DDERR_SURFACEALREADYATTACHEDThis surface is already attached to the surface it is being attached to.DDERR_SURFACEALREADYDEPENDENTThis surface is already a dependency of the surface it is being made a dependency of.DDERR_SURFACEBUSYAccess to this surface is being refused because the surface is already locked by another thread.DDERR_CANTLOCKSURFACEAccess to this surface is being refused because no driver exists which can supply a pointer to the surface. This is most likely to happen when attempting to lock the primary surface when no DCI provider is present. Will also happen on attempts to lock an optimized surface.DDERR_SURFACEISOBSCUREDAccess to Surface refused because Surface is obscured.DDERR_SURFACELOSTAccess to this surface is being refused because the surface is gone. The DIRECTDRAWSURFACE object representing this surface should have Restore called on it.DDERR_SURFACENOTATTACHEDThe requested surface is not attached.DDERR_TOOBIGHEIGHTHeight requested by DirectDraw is too large.DDERR_TOOBIGSIZESize requested by DirectDraw is too large -- The individual height and width are OK.DDERR_TOOBIGWIDTHWidth requested by DirectDraw is too large.DDERR_UNSUPPORTEDFORMATPixel format requested is unsupported by DirectDrawDDERR_UNSUPPORTEDMASKBitmask in the pixel format requested is unsupported by DirectDrawDDERR_INVALIDSTREAMThe specified stream contains invalid dataDDERR_VERTICALBLANKINPROGRESSvertical blank is in progressDDERR_WASSTILLDRAWINGWas still drawingDDERR_DDSCAPSCOMPLEXREQUIREDThe specified surface type requires specification of the COMPLEX flagDDERR_XALIGNRectangle provided was not horizontally aligned on reqd. boundaryDDERR_INVALIDDIRECTDRAWGUIDThe GUID passed to DirectDrawCreate is not a valid DirectDraw driver identifier.DDERR_DIRECTDRAWALREADYCREATEDA DirectDraw object representing this driver has already been created for this process.DDERR_NODIRECTDRAWHWA hardware only DirectDraw object creation was attempted but the driver did not support any hardware.DDERR_PRIMARYSURFACEALREADYEXISTSthis process already has created a primary surfaceDDERR_NOEMULATIONsoftware emulation not available.DDERR_REGIONTOOSMALLregion passed to Clipper::GetClipList is too small.DDERR_CLIPPERISUSINGHWNDan attempt was made to set a clip list for a clipper objec that is already monitoring an hwnd.DDERR_NOCLIPPERATTACHEDNo clipper object attached to surface objectDDERR_NOHWNDClipper notification requires an HWND or no HWND has previously been set as the CooperativeLevel HWND.DDERR_HWNDSUBCLASSEDHWND used by DirectDraw CooperativeLevel has been subclassed, this prevents DirectDraw from restoring state.DDERR_HWNDALREADYSETThe CooperativeLevel HWND has already been set. It can not be reset while the process has surfaces or palettes created.DDERR_NOPALETTEATTACHEDNo palette object attached to this surface.DDERR_NOPALETTEHWNo hardware support for 16 or 256 color palettes.DDERR_BLTFASTCANTCLIPIf a clipper object is attached to the source surface passed into a BltFast call.DDERR_NOBLTHWNo blter.DDERR_NODDROPSHWNo DirectDraw ROP hardware.DDERR_OVERLAYNOTVISIBLEreturned when GetOverlayPosition is called on a hidden overlayDDERR_NOOVERLAYDESTreturned when GetOverlayPosition is called on a overlay that UpdateOverlay has never been called on to establish a destionation.DDERR_INVALIDPOSITIONreturned when the position of the overlay on the destionation is no longer legal for that destionation.DDERR_NOTAOVERLAYSURFACEreturned when an overlay member is called for a non-overlay surfaceDDERR_EXCLUSIVEMODEALREADYSETAn attempt was made to set the cooperative level when it was already set to exclusive.DDERR_NOTFLIPPABLEAn attempt has been made to flip a surface that is not flippable.DDERR_CANTDUPLICATECan't duplicate primary & 3D surfaces, or surfaces that are implicitly created.DDERR_NOTLOCKEDSurface was not locked. An attempt to unlock a surface that was not locked at all, or by this process, has been attempted.DDERR_CANTCREATEDCWindows can not create any more DCs, or a DC was requested for a paltte-indexed surface when the surface had no palette AND the display mode was not palette-indexed (in this case DirectDraw cannot select a proper palette into the DC)DDERR_NODCNo DC was ever created for this surface.DDERR_WRONGMODEThis surface can not be restored because it was created in a different mode.DDERR_IMPLICITLYCREATEDThis surface can not be restored because it is an implicitly created surface.DDERR_NOTPALETTIZEDThe surface being used is not a palette-based surfaceDDERR_UNSUPPORTEDMODEThe display is currently in an unsupported modeDDERR_NOMIPMAPHWOperation could not be carried out because there is no mip-map texture mapping hardware present or available.DDERR_INVALIDSURFACETYPEThe requested action could not be performed because the surface was of the wrong type.DDERR_NOOPTIMIZEHWDevice does not support optimized surfaces, therefore no video memory optimized surfacesDDERR_NOTLOADEDSurface is an optimized surface, but has not yet been allocated any memoryDDERR_NOFOCUSWINDOWAttempt was made to create or set a device window without first setting the focus windowDDERR_NOTONMIPMAPSUBLEVELAttempt was made to set a palette on a mipmap sublevelDDERR_DCALREADYCREATEDA DC has already been returned for this surface. Only one DC can be retrieved per surface.DDERR_NONONLOCALVIDMEMAn attempt was made to allocate non-local video memory from a device that does not support non-local video memory.DDERR_CANTPAGELOCKThe attempt to page lock a surface failed.DDERR_CANTPAGEUNLOCKThe attempt to page unlock a surface failed.DDERR_NOTPAGELOCKEDAn attempt was made to page unlock a surface with no outstanding page locks.DDERR_MOREDATAThere is more data available than the specified buffer size could holdDDERR_EXPIREDThe data has expired and is therefore no longer valid.DDERR_TESTFINISHEDThe mode test has finished executing.DDERR_NEWMODEThe mode test has switched to a new mode.DDERR_D3DNOTINITIALIZEDD3D has not yet been initialized.DDERR_VIDEONOTACTIVEThe video port is not activeDDERR_NOMONITORINFORMATIONThe monitor does not have EDID data.DDERR_NODRIVERSUPPORTThe driver does not enumerate display mode refresh rates.DDERR_DEVICEDOESNTOWNSURFACESurfaces created by one direct draw device cannot be used directly by another direct draw device.DXFILEERR_BADOBJECTBad objectDXFILEERR_BADVALUEBad valueDXFILEERR_BADTYPEBad typeDXFILEERR_BADSTREAMHANDLEBad stream handleDXFILEERR_BADALLOCBad allocDXFILEERR_NOTFOUNDNot foundDXFILEERR_NOTDONEYETNot done yetDXFILEERR_FILENOTFOUNDFile not foundDXFILEERR_RESOURCENOTFOUNDResource not foundDXFILEERR_URLNOTFOUNDUrl not foundDXFILEERR_BADRESOURCEBad resourceDXFILEERR_BADFILETYPEBad file typeDXFILEERR_BADFILEVERSIONBad file versionDXFILEERR_BADFILEFLOATSIZEBad file float sizeDXFILEERR_BADFILECOMPRESSIONTYPEBad file compression typeDXFILEERR_BADFILEBad fileDXFILEERR_PARSEDXERRORParse errorDXFILEERR_NOTEMPLATENo templateDXFILEERR_BADARRAYSIZEBad array sizeDXFILEERR_BADDATAREFERENCEBad data referenceDXFILEERR_INTERNALDXERRORInternal errorDXFILEERR_NOMOREOBJECTSNo more objectsDXFILEERR_BADINTRINSICSBad intrinsicsDXFILEERR_NOMORESTREAMHANDLESNo more stream handlesDXFILEERR_NOMOREDATANo more dataDXFILEERR_BADCACHEFILEBad cache fileDXFILEERR_NOINTERNETNo internetD3DERR_WRONGTEXTUREFORMATWrong texture formatD3DERR_UNSUPPORTEDCOLOROPERATIONUnsupported color operationD3DERR_UNSUPPORTEDCOLORARGUnsupported color argD3DERR_UNSUPPORTEDALPHAOPERATIONUnsupported alpha operationD3DERR_UNSUPPORTEDALPHAARGUnsupported alpha argD3DERR_TOOMANYOPERATIONSToo many operationsD3DERR_CONFLICTINGTEXTUREFILTERConflicting texture filterD3DERR_UNSUPPORTEDFACTORVALUEUnsupported factor valueD3DERR_CONFLICTINGRENDERSTATEConflicting render stateD3DERR_UNSUPPORTEDTEXTUREFILTERUnsupported texture filterD3DERR_CONFLICTINGTEXTUREPALETTEConflicting texture paletteD3DERR_DRIVERINTERNALDXERRORDriver internal errorD3DERR_NOTFOUNDD3DERR_MOREDATAMore dataD3DERR_DEVICELOSTDevice lostD3DERR_DEVICENOTRESETDevice not resetD3DERR_NOTAVAILABLENot availableD3DERR_INVALIDDEVICED3DERR_INVALIDCALLInvalid callD3DERR_DRIVERINVALIDCALLDriver invalid callD3DXERR_CANNOTMODIFYINDEXBUFFERCan not modify index bufferD3DXERR_INVALIDMESHInvalid meshD3DXERR_CANNOTATTRSORTCannot attr sortD3DXERR_SKINNINGNOTSUPPORTEDSkinning not supportedD3DXERR_TOOMANYINFLUENCESToo many influencesD3DXERR_INVALIDDATAInvalid dataD3DXERR_LOADEDMESHASNODATALoaded mesh has no dataD3DXERR_DUPLICATENAMEDFRAGMENTDuplicate named fragmentDSERR_ALLOCATEDThe call failed because resources (such as a priority level) were already being used by another callerDSERR_CONTROLUNAVAILThe control (vol, pan, etc.) requested by the caller is not availableDSERR_INVALIDCALLThis call is not valid for the current state of this objectDSERR_PRIOLEVELNEEDEDThe caller does not have the priority level required for the function to succeedDSERR_BADFORMATThe specified WAVE format is not supportedDSERR_NODRIVERNo sound driver is available for useDSERR_ALREADYINITIALIZEDDSERR_BUFFERLOSTThe buffer memory has been lost, and must be restoredDSERR_OTHERAPPHASPRIOAnother app has a higher priority level, preventing this call from succeedingDSERR_UNINITIALIZEDDSERR_BUFFERTOOSMALLTried to create a DSBCAPS_CTRLFX buffer shorter than DSBSIZE_FX_MIN millisecondsDSERR_DS8_REQUIREDAttempt to use DirectSound 8 functionality on an older DirectSound objectDSERR_SENDLOOPA circular loop of send effects was detectedDSERR_BADSENDBUFFERGUIDThe GUID specified in an audiopath file does not match a valid MIXIN bufferDMUS_E_DRIVER_FAILEDAn unexpected error was returned from a device driver, indicating possible failure of the driver or hardware.DMUS_E_PORTS_OPENThe requested operation cannot be performed while there are instantiated ports in any process in the system.DMUS_E_DEVICE_IN_USEThe requested device is already in use (possibly by a non-DirectMusic client) and cannot be opened again.DMUS_E_INSUFFICIENTBUFFERBuffer is not large enough for requested operation.DMUS_E_BUFFERNOTSETNo buffer was prepared for the download data.DMUS_E_BUFFERNOTAVAILABLEDownload failed due to inability to access or create download buffer.DMUS_E_NOTADLSCOLError parsing DLS collection. File is corrupt.DMUS_E_INVALIDOFFSETWave chunks in DLS collection file are at incorrect offsets.DMUS_E_ALREADY_LOADEDSecond attempt to load a DLS collection that is currently open. DMUS_E_INVALIDPOSError reading wave data from DLS collection. Indicates bad file.DMUS_E_INVALIDPATCHThere is no instrument in the collection that matches patch number.DMUS_E_CANNOTSEEKThe IStream* doesn't support Seek().DMUS_E_CANNOTWRITEThe IStream* doesn't support Write().DMUS_E_CHUNKNOTFOUNDThe RIFF parser doesn't contain a required chunk while parsing file.DMUS_E_INVALID_DOWNLOADIDInvalid download id was used in the process of creating a download buffer.DMUS_E_NOT_DOWNLOADED_TO_PORTTried to unload an object that was not downloaded or previously unloaded.DMUS_E_ALREADY_DOWNLOADEDBuffer was already downloaded to synth.DMUS_E_UNKNOWN_PROPERTYThe specified property item was not recognized by the target object.DMUS_E_SET_UNSUPPORTEDThe specified property item may not be set on the target object.DMUS_E_GET_UNSUPPORTED* The specified property item may not be retrieved from the target object.DMUS_E_NOTMONOWave chunk has more than one interleaved channel. DLS format requires MONO.DMUS_E_BADARTICULATIONInvalid articulation chunk in DLS collection.DMUS_E_BADINSTRUMENTInvalid instrument chunk in DLS collection.DMUS_E_BADWAVELINKWavelink chunk in DLS collection points to invalid wave.DMUS_E_NOARTICULATIONArticulation missing from instrument in DLS collection.DMUS_E_NOTPCMDownoaded DLS wave is not in PCM format. DMUS_E_BADWAVEBad wave chunk in DLS collectionDMUS_E_BADOFFSETTABLEOffset Table for download buffer has errors. DMUS_E_UNKNOWNDOWNLOADAttempted to download unknown data type.DMUS_E_NOSYNTHSINKThe operation could not be completed because no sink was connected to the synthesizer.DMUS_E_ALREADYOPENAn attempt was made to open the software synthesizer while it was already open.DMUS_E_ALREADYCLOSEDAn attempt was made to close the software synthesizer while it was already open.DMUS_E_SYNTHNOTCONFIGUREDThe operation could not be completed because the software synth has not yet been fully configured.DMUS_E_SYNTHACTIVEThe operation cannot be carried out while the synthesizer is active.DMUS_E_CANNOTREADAn error occurred while attempting to read from the IStream* object.DMUS_E_DMUSIC_RELEASEDThe operation cannot be performed because the final instance of the DirectMusic object was released. Ports cannot be used after final release of the DirectMusic object.DMUS_E_BUFFER_EMPTYThere was no data in the referenced buffer.DMUS_E_BUFFER_FULLThere is insufficient space to insert the given event into the buffer.DMUS_E_PORT_NOT_CAPTUREThe given operation could not be carried out because the port is a capture port.DMUS_E_PORT_NOT_RENDERThe given operation could not be carried out because the port is a render port.DMUS_E_DSOUND_NOT_SETThe port could not be created because no DirectSound has been specified. Specify a DirectSound interface via the IDirectMusic::SetDirectSound method; pass NULL to have DirectMusic manage usage of DirectSound.DMUS_E_ALREADY_ACTIVATEDThe operation cannot be carried out while the port is active.DMUS_E_INVALIDBUFFERInvalid DirectSound buffer was handed to port. DMUS_E_WAVEFORMATNOTSUPPORTEDInvalid buffer format was handed to the synth sink.DMUS_E_SYNTHINACTIVEThe operation cannot be carried out while the synthesizer is inactive.DMUS_E_DSOUND_ALREADY_SETIDirectMusic::SetDirectSound has already been called. It may not be changed while in use.DMUS_E_INVALID_EVENTThe given event is invalid (either it is not a valid MIDI message or it makes use of running status). The event cannot be packed into the buffer.DMUS_E_UNSUPPORTED_STREAMThe IStream* object does not contain data supported by the loading object.DMUS_E_ALREADY_INITEDThe object has already been initialized.DMUS_E_INVALID_BANDThe file does not contain a valid band.DMUS_E_TRACK_HDR_NOT_FIRST_CKThe IStream* object's data does not have a track header as the first chunk, and therefore can not be read by the segment object.DMUS_E_TOOL_HDR_NOT_FIRST_CKThe IStream* object's data does not have a tool header as the first chunk, and therefore can not be read by the graph object.DMUS_E_INVALID_TRACK_HDRThe IStream* object's data contains an invalid track header (ckid is 0 and fccType is NULL,) and therefore can not be read by the segment object.DMUS_E_INVALID_TOOL_HDRThe IStream* object's data contains an invalid tool header (ckid is 0 and fccType is NULL,) and therefore can not be read by the graph object.DMUS_E_ALL_TOOLS_FAILEDThe graph object was unable to load all tools from the IStream* object data. This may be due to errors in the stream, or the tools being incorrectly registered on the client.DMUS_E_ALL_TRACKS_FAILEDThe segment object was unable to load all tracks from the IStream* object data. This may be due to errors in the stream, or the tracks being incorrectly registered on the client.DSERR_OBJECTNOTFOUNDThe object requested was not found (numerically equal to DMUS_E_NOT_FOUND)DMUS_E_NOT_INITA required object is not initialized or failed to initialize.DMUS_E_TYPE_DISABLEDThe requested parameter type is currently disabled. Parameter types may be enabled and disabled by certain calls to SetParam().DMUS_E_TYPE_UNSUPPORTEDThe requested parameter type is not supported on the object.DMUS_E_TIME_PASTThe time is in the past, and the operation can not succeed.DMUS_E_TRACK_NOT_FOUNDThe requested track is not contained by the segment.DMUS_E_TRACK_NO_CLOCKTIME_SUPPORTThe track does not support clock time playback or getparam.DMUS_E_NO_MASTER_CLOCKThere is no master clock in the performance. Be sure to call IDirectMusicPerformance::Init().DMUS_E_LOADER_NOCLASSIDThe class id field is required and missing in the DMUS_OBJECTDESC.DMUS_E_LOADER_BADPATHThe requested file path is invalid.DMUS_E_LOADER_FAILEDOPENFile open failed - either file doesn't exist or is locked.DMUS_E_LOADER_FORMATNOTSUPPORTEDSearch data type is not supported.DMUS_E_LOADER_FAILEDCREATEUnable to find or create object.DMUS_E_LOADER_OBJECTNOTFOUNDObject was not found.DMUS_E_LOADER_NOFILENAMEThe file name is missing from the DMUS_OBJECTDESC.DMUS_E_INVALIDFILEThe file requested is not a valid file.DMUS_E_ALREADY_EXISTSThe tool is already contained in the graph. Create a new instance.DMUS_E_OUT_OF_RANGEValue is out of range, for instance the requested length is longer than the segment.DMUS_E_SEGMENT_INIT_FAILEDSegment initialization failed, most likely due to a critical memory situation.DMUS_E_ALREADY_SENTThe DMUS_PMSG has already been sent to the performance object via IDirectMusicPerformance::SendPMsg().DMUS_E_CANNOT_FREEThe DMUS_PMSG was either not allocated by the performance via IDirectMusicPerformance::AllocPMsg() or it was already freed via IDirectMusicPerformance::FreePMsg().DMUS_E_CANNOT_OPEN_PORTThe default system port could not be opened.DMUS_E_CANNOT_CONVERTA call to MIDIToMusic() or MusicToMIDI() resulted in an error because the requested conversion could not happen. This usually occurs when the provided DMUS_CHORD_KEY structure has an invalid chord or scale pattern.DMUS_E_DESCEND_CHUNK_FAILDMUS_E_DESCEND_CHUNK_FAIL is returned when the end of the file was reached before the desired chunk was found.DMUS_E_NOT_LOADEDAn attempt to use this object failed because it first needs to be loaded.DMUS_E_SCRIPT_LANGUAGE_INCOMPATIBLEThe activeX scripting engine for the script's language is not compatible with DirectMusic.DMUS_E_SCRIPT_UNSUPPORTED_VARTYPEA varient was used that had a type that is not supported by DirectMusic.DMUS_E_SCRIPT_DXERROR_IN_SCRIPTAn error was encountered while parsing or executing the script. The pErrorInfo parameter (if supplied) was filled with information about the error.DMUS_E_SCRIPT_CANTLOAD_OLEAUT32Loading of oleaut32.dll failed. VBScript and other activeX scripting languages require use of oleaut32.dll. On platforms where oleaut32.dll is not present, only the DirectMusicScript language, which doesn't require oleaut32.dll can be used.DMUS_E_SCRIPT_LOADSCRIPT_DXERRORAn error occured while parsing a script loaded using LoadScript. The script that was loaded contains an error.DMUS_E_SCRIPT_INVALID_FILEThe script file is invalid.DMUS_E_INVALID_SCRIPTTRACKThe file contains an invalid script track.DMUS_E_SCRIPT_VARIABLE_NOT_FOUNDThe script does not contain a variable with the specified name.DMUS_E_SCRIPT_ROUTINE_NOT_FOUNDThe script does not contain a routine with the specified name.DMUS_E_SCRIPT_CONTENT_READONLYScripts variables for content referenced or embedded in a script cannot be set.DMUS_E_SCRIPT_NOT_A_REFERENCEAttempt was made to set a script's variable by reference to a value that was not an object type.DMUS_E_SCRIPT_VALUE_NOT_SUPPORTEDAttempt was made to set a script's variable by value to an object that does not support a default value property.DMUS_E_INVALID_SEGMENTTRIGGERTRACKThe file contains an invalid segment trigger track.DMUS_E_INVALID_LYRICSTRACKThe file contains an invalid lyrics track.DMUS_E_INVALID_PARAMCONTROLTRACKThe file contains an invalid parameter control track.DMUS_E_AUDIOVBSCRIPT_SYNTAXDXERRORA script written in AudioVBScript could not be read because it contained a statement that is not allowed by the AudioVBScript language.DMUS_E_AUDIOVBSCRIPT_RUNTIMEDXERRORA script routine written in AudioVBScript failed because an invalid operation occurred. For example, adding the number 3 to a segment object would produce this error. So would attempting to call a routine that doesn't exist.DMUS_E_AUDIOVBSCRIPT_OPERATIONFAILUREA script routine written in AudioVBScript failed because a function outside of a script failed to complete. For example, a call to PlaySegment that fails to play because of low memory would return this error.DMUS_E_AUDIOPATHS_NOT_VALIDThe Performance has set up some PChannels using the AssignPChannel command, which makes it not capable of supporting audio paths.DMUS_E_AUDIOPATHS_IN_USEThis is the inverse of the previous error. The Performance has set up some audio paths, which makes is incompatible with the calls to allocate pchannels, etc. DMUS_E_NO_AUDIOPATH_CONFIGA segment or song was asked for its embedded audio path configuration, but there isn't any. DMUS_E_AUDIOPATH_INACTIVEAn audiopath is inactive, perhaps because closedown was called.DMUS_E_AUDIOPATH_NOBUFFERAn audiopath failed to create because a requested buffer could not be created.DMUS_E_AUDIOPATH_NOPORTAn audiopath could not be used for playback because it lacked port assignments.DMUS_E_NO_AUDIOPATHAttempt was made to play segment in audiopath mode and there was no audiopath.DMUS_E_INVALIDCHUNKInvalid data was found in a RIFF file chunk.DMUS_E_AUDIOPATH_NOGLOBALFXBUFFERAttempt was made to create an audiopath that sends to a global effects buffer which did not exist.DMUS_E_INVALID_CONTAINER_OBJECTThe file does not contain a valid container object.n/a|7TgMingw runtime failure: VirtualQuery failed for %d bytes at address %p Unknown pseudo relocation protocol version %d. Unknown pseudo relocation bit size %d. |9s s s s;# s# sC$ s$ s>& s' s( s( sB) sN* s* s6+ s+ zR|  dAB x A @CAB u D zR| (bAFM AC HAH C \(`=AC l AG CAD(AA AC0k A AAD `A AAt-AC cAHC0j C Q C (HC0j C Q C 4H|AA AC0b A AAA zR|  0 DX!l!/AC iA,AC0i AB @ AC (l.AC] AB HA pACPz AA 4H!HXAA AAC+ AA AAB I AA AAC G AA AAA hAA AA [AC m AB (AA C  AA<SAA AAFt AA AAB \EAC0A$|$fAC@9 AB (d AA C@ AATHAA AAC`q AA AAD  AA AAA T(tAA AACP AA AAB  AA AAA TgAA AAF AA AAB JAA AA<AA AACQ AA AAD 4PrAA C h  AAA  AAhPgAA AAC` AA AAA W AA AAE U AA AAG hAA AAC`z AA AAC q AA AAG QAA AA (8AC A(LAA C@ AA(x kAC  AD aADLAA AC0b A AAE y A AAD  ACPX AC zR| 4C pzR| DAB U |QP2`(`,`0`@@L`libgstdirectsoundsink.dllgst_plugin_descp~r8q (sqHtsqlsqs4r4$tDrt4t|rltrȀtrttttt u u0u@uHuTudutuuuuuuuv$v0vDvXvxvvvvvvw,w~R~`~tttt u u0u@uHuTudutuuuuuuuv$v0vDvXvxvvvvvvw,w~R~`~Ng_atomic_pointer_getzg_freeg_intern_static_stringHg_list_appendOg_list_foreachPg_list_freeYg_list_lengthjg_logg_mallocg_mutex_freeg_mutex_lockg_mutex_newg_mutex_unlockg_once_init_enterg_once_init_leaveg_return_if_fail_warningYg_static_rec_mutex_lock\g_static_rec_mutex_unlockgg_str_equaltg_strdupcg_utf16_to_utf8{g_utf8_to_utf16kg_object_class_find_propertymg_object_class_install_propertyg_object_newg_object_unrefg_param_spec_doubleg_param_spec_stringg_type_add_interface_static g_type_class_peek_parent,g_type_nameBg_value_array_appendHg_value_array_newWg_value_get_doublecg_value_get_stringjg_value_initrg_value_set_doubleg_value_set_stringg_value_take_stringg_value_unsetFgst_audio_iec61937_frame_sizeGgst_audio_iec61937_payloadSgst_audio_sink_get_type~gst_ring_buffer_parse_capsgst_mixer_get_type'gst_mixer_track_get_typeIgst_property_probe_get_type!__gst_debug_min)_gst_debug_category_new._gst_debug_register_funcptr0_gst_element_error_printffgst_buffer_copy_metadatagst_buffer_new_and_allocgst_caps_can_intersectgst_caps_copygst_caps_get_structuregst_caps_is_fixedgst_caps_new_simplegst_caps_refgst_caps_replacegst_caps_subtractgst_caps_to_stringgst_caps_unref$gst_debug_log7gst_element_class_add_static_pad_template8gst_element_class_get_pad_template<gst_element_class_set_details_simplezgst_element_message_fullgst_element_registergst_implements_interface_get_typengst_mini_object_refpgst_mini_object_unrefgst_object_unrefgst_pad_get_caps_reffedgst_pad_get_parent_elementgst_pad_set_acceptcaps_functiongst_pad_template_get_capsgst_resource_error_quarkgst_structure_get_booleangst_type_register_static_fullgst_util_uint64_scale_intDirectSoundCaptureEnumerateWDirectSoundCreateDirectSoundEnumerateWDebugBreakDeleteCriticalSectionEnterCriticalSectionGetLastErrorGetModuleHandleAAGetProcAddressInitializeCriticalSection.LeaveCriticalSection|OutputDebugStringASleepTlsGetValueVirtualProtectVirtualQuery4__dllonexit_errno _iob_swabGabortScallocbfflushqfreeyfwritelog10mallocvfprintfCLSIDFromStringStringFromGUID2GetDesktopWindowMessageBoxA~wsprintfApppppppppppppppppppppplibglib-2.0-0.dllpppppppppppppppppplibgobject-2.0-0.dll(p(p(p(plibgstaudio-0.10-0.dll>>N>V>]>>>>>>> 3;3J3^3f3s33333333$4C4R4f4n4{44444444>6666677777788(808=8Z8b88999*9B9Q9e9m9z99N::::::: ;;!;6;N;b;j;w;;;;;;<<(<0<=$=,=N=z>>>>l???050=0E0001111122B2[2t2222222223 333"3*323:3B3J3R3Z3b3j3r3z333333333333333334 444"4*424:4B4J4R4Z4b4j4r4z444444444444444445 555"5*525:5B5J5R5Z5b5j5r55556y6667!727:7B7777778;879J9^9g9l9v999999999 ::>:]:}::::;;#;,;E;W;a;|;;;;;;<$<\ >>>">*>2>:>B>J>R>Z>b>j>r>z>>>@H0,0H0L0P0T0X0\0`0d0h000000000000000000000011 111 1$1,10181<1D1H1P1T1\1`1h1l1t1x1111111111111111111111122222 2(2,24282@2D2L2P2X2\2d2h2p2t2|222222222222222222222233 3333$3(30343<3@3H3L3T3X3`3d3l3p3x3|333333333333333333333344 444 4$4,40484<4D4H4P4T4\4`4h4l4t4x4444444444444444444444455555 5(5,54585@5D5L5P5X5\5d5h5p5t5|555555555555555555555566 6666$6(60646<6@6H6L6T6X6`6d6l6p6x6|666666666666666666666677 777 7$7,70787<7D7H7P7T7\7`7h7l7t7x7777777777777777777777788888 8(8,84888@8D8L8P8X8\8d8h8p8t8|888888888888888888888899 9999$9(90949<9@9H9L9T9X9`9d9l9p9x9|9999999999999999999999:: ::: :$:,:0:8:<:D:H:P:T:\:`:h:l:t:x:::::::::::::::::::::::;;;;; ;(;,;4;8;@;D;L;P;X;\;d;h;p;t;|;;;;;;;;;;;;;;;;;;;;;;<< <<<<$<(<0<4<<<@>>>> >(>,>4>8>@>D>L>P>X>\>d>h>p>t>|>>>>>>>>>>>>>>>>>>>>>>?? ????$?(?0?4? ;Tgq;Tg;BDllMainCRTStartupatexit_onexitS__dyn_tls_init__tlregdtor_tls_index_tls_start_tls_end__xl_a__xl_z_tls_used*__dyn_tls_init_callbackU__xl_cj__xl_dmingw_initltsdrot_forcemingw_initltsdyn_forcemingw_initltssuo_force]DllMain,l_pei386_runtime_relocatorE>__do_global_dtors__do_global_ctorsP__mainrT_CRT_MTkqI___w64_mingwthr_add_key_dtor___w64_mingwthr_remove_key_dtor%__mingw_TLScallbackVY`__RUNTIME_PSEUDO_RELOC_LIST_END____RUNTIME_PSEUDO_RELOC_LIST___onexit_t_iobufcFILEDWORDWINBOOLBOOLPVOID LPVOIDHANDLE'PIMAGE_TLS_CALLBACKiVARENUMp_atexit_fn]DWORDWINBOOLBOOLULONG PVOIDLPVOID*HANDLErULONG_PTRPIMAGE_TLS_CALLBACK_IMAGE_TLS_DIRECTORY32IMAGE_TLS_DIRECTORY32IMAGE_TLS_DIRECTORYVARENUMI_iobufFILE_PVFVC^DWORDWINBOOLBOOLLPVOID HANDLEl[__gnuc_va_listva_listDWORDsize_t=PVOID_MEMORY_BASIC_INFORMATIONBMEMORY_BASIC_INFORMATIONx_iobufFILEptrdiff_tWruntime_pseudo_reloc_item_v1runtime_pseudo_reloc_item_v2runtime_pseudo_reloc_v2>func_ptrq^DWORDWINBOOLWORDLONG LPVOIDHANDLE__LIST_ENTRYLIST_ENTRY_CRITICAL_SECTION_DEBUG8PCRITICAL_SECTION_DEBUG_CRITICAL_SECTION^CRITICAL_SECTIONw__mingwthr_key_t__mingwthr_keyGNU C 4.5.2../mingw/dllcrt1.cC:\MinGW\msys\1.0\src\mingwrtTgTgunsigned intshort unsigned intintlong int_onexit_t|long long intchar_iobuf ]_ptr]#_cnt|#_base]#_flag|# _file|#_charbuf|#_bufsiz|#_tmpfname]#FILEshort intlong unsigned intsigned charunsigned charlong long unsigned intDWORD|WINBOOL|BOOLfloatPVOIDV  LPVOIDV HANDLE PIMAGE_TLS_CALLBACK CI _   double VARENUMs VT_EMPTY VT_NULL VT_I2 VT_I4 VT_R4 VT_R8 VT_CY VT_DATE VT_BSTR VT_DISPATCH VT_ERROR VT_BOOL VT_VARIANT VT_UNKNOWN VT_DECIMAL VT_I1 VT_UI1 VT_UI2 VT_UI4 VT_I8 VT_UI8 VT_INT VT_UINT VT_VOID VT_HRESULT VT_PTR VT_SAFEARRAY VT_CARRAY VT_USERDEFINED VT_LPSTR VT_LPWSTR VT_RECORD$ VT_INT_PTR% VT_UINT_PTR& VT_FILETIME VT_BLOB VT_STREAM VT_STORAGE VT_STREAMED_OBJECT VT_STORED_OBJECT VT_BLOB_OBJECT VT_CF VT_CLSID VT_BSTR_BLOB VT_VECTOR VT_ARRAY VT_BYREF VT_RESERVED VT_ILLEGAL VT_ILLEGALMASKED VT_TYPEMASKp_atexit_fn__dll_exitTgWTg<TgETg__last<8DllMainCRTStartup-DllMainCRTStartup@12XTg6TgVhDll-dwReason-lpReserved- bRet/atexit|8Tg`Tgpfn_onexit`TgTg )pfnc4_iob)O'first_atexit<PUgnext_atexit<PUg_iob)O% VGNU C 4.6.2gstdirectsound.cc:\Music\gstreamer\gst-plugins-good\sys\directsoundTTgTgintunsigned intwchar_tDshort unsigned intsigned charunsigned charshort intguint16&long long intlong long unsigned intlong intgchar0)chargint3jlong unsigned intguint9qfloatdoublegpointerOGList&_GList ( data*r# next+# prev,#)gunichar2O long double .u GST_STATE_VOID_PENDING GST_STATE_NULL GST_STATE_READY GST_STATE_PAUSED GST_STATE_PLAYING_iobuf   _ptr# _cntj# _base# _flagj# _filej# _charbufj# _bufsizj# _tmpfname#FILEu  D TGThread1c _GThread . func 1+# ) 2# joinable 3# priority 4# GMutex3 _GMutex:p=i>GCond6 _GCond H pK# iL#.u>uGData &K_GDataGList &a _GList ( ) *#  +# prev ,#TGHashTable '_GHashTableGSList & _GSList ( ) *#  +#;G_LOG_FLAG_RECURSIONG_LOG_FLAG_FATALG_LOG_LEVEL_ERRORG_LOG_LEVEL_CRITICALG_LOG_LEVEL_WARNINGG_LOG_LEVEL_MESSAGE G_LOG_LEVEL_INFOG_LOG_LEVEL_DEBUGG_LOG_LEVEL_MASK|GQueue& _GQueue 1+ head3# tail4# length5#>  long double 'G_THREAD_PRIORITY_LOWG_THREAD_PRIORITY_NORMALG_THREAD_PRIORITY_HIGHG_THREAD_PRIORITY_URGENTGThreadPriority ,L  mutex #GStaticMutex GStaticRecMutex # _GStaticRecMutex n mutex # depth # unused n# owner Idummy GType<GValue _GValuel o# )| #GTypeClass_GTypeClass#GTypeInterface*_GTypeInterfacen#g_instance_type#GTypeInstance_GTypeInstance/ #GInterfaceInfo_GInterfaceInfo / interface_init #interface_finalize #interface_data#GClassInitFuncEZGInstanceInitFunccf l } } nGInterfaceInitFuncnZGInterfaceFinalizeFuncyZ G_TYPE_FLAG_ABSTRACTG_TYPE_FLAG_VALUE_ABSTRACT GTypeFlags  r v_intsv_uinttv_longuv_ulongvv_int64wv_uint64xv_floatyv_doublezv_pointer{ u G_PARAM_READABLEG_PARAM_WRITABLEG_PARAM_CONSTRUCTG_PARAM_CONSTRUCT_ONLYG_PARAM_LAX_VALIDATIONG_PARAM_STATIC_NAME G_PARAM_PRIVATE G_PARAM_STATIC_NICKG_PARAM_STATIC_BLURBG_PARAM_DEPRECATEDxGParamFlags GParamSpec _GParamSpec(̄ [n# Ђ# Ѥ # value_typeґ# owner_typeӑ# _nick # _blurb # qdata+# # param_id#$  uGObject _GObject  [n#  # qdata+#GObjectClass _GObjectClassD8/g_type_class:#construct_properties=#constructorA#set_propertyE# get_propertyI#disposeM#finalizeN#dispatch_properties_changedP'#notifyT># constructedX#$[<#(pdummy^D#,GObjectConstructParamL_GObjectConstructParamik #l #      /!!  > -TuGValueArray+g _GValueArray 3 n_values5# values6 # n_prealloced9#GstElement_GstElementdL"#state_lock!#(state_cond$#,state_cookie%#0current_state&K#4next_state'K#8pending_state(K#<last_return)M#@bus+B#Dclock.##Hbase_time/w!#Pnumpads3#Xpads4#\numsrcpads5#`srcpads6#dnumsinkpads7#hsinkpads8#lpads_cookie9#pHEO#xGstElementClass{_GstElementClassce#detailsjF#xelementfactorymO#padtemplatesp#`q#pad_templ_cookier#pad_addedvO#pad_removedwO#no_more_padsxO#request_new_pad~O#release_padO#get_state)P#set_stateDP#change_state_P#set_busvP#>P#set_clockP#get_indexP#set_indexP#send_eventP#get_query_typesQ#query Q##request_new_pad_fullPQ#state_changedqQ#p&#.KGST_STATE_VOID_PENDINGGST_STATE_NULLGST_STATE_READYGST_STATE_PAUSEDGST_STATE_PLAYINGGstState4 _iobuf  _ptr# _cntn# _base# _flagn# _filen# _charbufn# _bufsizn# _tmpfname#FILE[_off_t4]off_t7xmlCharyXML_ELEMENT_NODEXML_ATTRIBUTE_NODEXML_TEXT_NODEXML_CDATA_SECTION_NODEXML_ENTITY_REF_NODEXML_ENTITY_NODEXML_PI_NODEXML_COMMENT_NODEXML_DOCUMENT_NODE XML_DOCUMENT_TYPE_NODE XML_DOCUMENT_FRAG_NODE XML_NOTATION_NODE XML_HTML_DOCUMENT_NODE XML_DTD_NODEXML_ELEMENT_DECLXML_ATTRIBUTE_DECLXML_ENTITY_DECLXML_NAMESPACE_DECLXML_XINCLUDE_STARTXML_XINCLUDE_ENDXML_DOCB_DOCUMENT_NODExmlElementType.XML_ATTRIBUTE_CDATAXML_ATTRIBUTE_IDXML_ATTRIBUTE_IDREFXML_ATTRIBUTE_IDREFSXML_ATTRIBUTE_ENTITYXML_ATTRIBUTE_ENTITIESXML_ATTRIBUTE_NMTOKENXML_ATTRIBUTE_NMTOKENSXML_ATTRIBUTE_ENUMERATION XML_ATTRIBUTE_NOTATION xmlAttributeType_xmlNode<1I#### last###prev#doc# ns#$content(#(P#,nsDef#0psviI#4line#8extra#:_xmlDtd@pR1qI#r#s#t# lastu#v#w#prevx#docy# notations|I#$elements}I#(attributes~I#,entitiesI#0ExternalID#4SystemID#8pentitiesI#<%_xmlDoc`1I#### last###prev #doc # compression n#$standalonen#(intSubsetR#,extSubsetR#0oldNs#4version#8encoding#<idsI#@refsI#DURL#Hcharsetn#Ldict#PpsviI#TparseFlags n#XP"n#\X_xmlDictxmlNsTypeQxmlNs]9_xmlNs_`#a#hrefb#prefixc# 1dI#contexte#+9_xmlAttr01I#### last###prev#doc# ns#$atype#(psviI#,xmlNodexmlNodePtrI<"GST_OBJECT_DISPOSINGGST_OBJECT_FLOATINGGST_OBJECT_FLAG_LASTGstObject3 _GstObject( Lğ # Ǚ# lock#  # name_prefix # # # p#$GstObjectClass_GstObjectClassx #path_string_separator#Dsignal_object#Hlock#Lparent_set #Pparent_unset  #Tobject_saved" #Xdeep_notify#8 #\save_thyself(S #`restore_thyself) #dp, #h"    8  " S > GstMiniObject)n _GstMiniObject instancen# # # ]!# t)!GST_MINI_OBJECT_FLAG_READONLYGST_MINI_OBJECT_FLAG_RESERVED1GST_MINI_OBJECT_FLAG_LASTGstMiniObjectPrivateE!_GstMiniObjectPrivate)!GstClockTime0GstClockTimeDiff>GstClockIDDGstClock!_GstClock#L"#slave_lock#(internal_calibrationc!#0external_calibrationc!#8rate_numeratorc!#@rate_denominatorc!#Hlast_timec!#Pentries#Xentries_changed#\resolutionc!#`stats#hmaster##lfilling#pwindow_size#twindow_threshold#xtime_index#|timeoutc!#times##clockid!#ABI##GstClockPrivate#_GstClockPrivate! ##p##c!#uc!$uGstStructure#$ _GstStructureK$ L# O# parent_refcountR# fieldsT$# pV#+$GST_CAPS_FLAGS_NONEGST_CAPS_FLAGS_ANYGstCapsFlags.$GstCaps$ _GstCaps ;% # # $# structs%# p #GstStaticCapsP% _GstStaticCaps4ɕ% $# string̸# pϊ #$GstBuffer!%_GstBufferX & Y #)#size#c!#'c!# &#(offset#0offset_end#8malloc_data#@free_func q#D!&#H$&#Lp%&#PGstBufferPrivate#&_GstBufferPrivate$%&&uY'GST_BUFFER_COPY_FLAGSGST_BUFFER_COPY_TIMESTAMPSGST_BUFFER_COPY_CAPSGST_BUFFER_COPY_QDATAGstBufferCopyFlags&GstBufferList('_GstBufferList& ''GST_ITERATOR_DONEGST_ITERATOR_OKGST_ITERATOR_RESYNCGST_ITERATOR_ERRORGstIteratorResult ,'GstIterator .&( _GstIterator4 (  H)# item Ј)# resync )# free )# pushed Ԃ)#  ֑# lock # cookie # master_cookie *# p ݊ #$ 81)GST_ITERATOR_ITEM_SKIPGST_ITERATOR_ITEM_PASSGST_ITERATOR_ITEM_ENDGstIteratorItem <(GstIteratorNextFunction Ug)m) '))(GstIteratorItemFunction e)) 1)))GstIteratorResyncFunction s))))GstIteratorFreeFunction ~)!4*GST_FORMAT_UNDEFINEDGST_FORMAT_DEFAULTGST_FORMAT_BYTESGST_FORMAT_TIMEGST_FORMAT_BUFFERSGST_FORMAT_PERCENTGstFormat!;*"0 +GST_EVENT_TYPE_UPSTREAMGST_EVENT_TYPE_DOWNSTREAMGST_EVENT_TYPE_SERIALIZED"~,GST_EVENT_UNKNOWNGST_EVENT_FLUSH_STARTGST_EVENT_FLUSH_STOP'GST_EVENT_EOSGST_EVENT_NEWSEGMENTGST_EVENT_TAGGST_EVENT_BUFFERSIZEGST_EVENT_SINK_MESSAGEGST_EVENT_QOSGST_EVENT_SEEKGST_EVENT_NAVIGATIONGST_EVENT_LATENCYGST_EVENT_STEPGST_EVENT_CUSTOM_UPSTREAMGST_EVENT_CUSTOM_DOWNSTREAMGST_EVENT_CUSTOM_DOWNSTREAM_OOBGST_EVENT_CUSTOM_BOTHGST_EVENT_CUSTOM_BOTH_OOBGstEventType" +GstEvent",_GstEvent0"dK-"eY #"h,#"i#src"j# V"l.#$H"r-#(":-GST_SEEK_FLAG_NONEGST_SEEK_FLAG_FLUSHGST_SEEK_FLAG_ACCURATEGST_SEEK_FLAG_KEY_UNITGST_SEEK_FLAG_SEGMENTGST_SEEK_FLAG_SKIPGstSeekFlags"AK-"o.seqnum"pp"q$#;$/GST_QUERY_NONEGST_QUERY_POSITIONGST_QUERY_DURATIONGST_QUERY_LATENCYGST_QUERY_JITTERGST_QUERY_RATEGST_QUERY_SEEKINGGST_QUERY_SEGMENTGST_QUERY_CONVERTGST_QUERY_FORMATS GST_QUERY_BUFFERING GST_QUERY_CUSTOM GST_QUERY_URI GstQueryType#I.GstQuery#\H/ _GstQuery#/ #Y # #$/# V#.# p##GstTaskFunction$&GstTask$1/ _GstTaskP$R0 L$"# state$0#( cond$#, lock$#0 func$/#4 )$#8 running$#< H$0#@ $1#LGstTaskPrivate$3h0_GstTaskPrivate$=0GST_TASK_STARTEDGST_TASK_STOPPEDGST_TASK_PAUSEDGstTaskState$Az0/T$0 thread$0# $1ABI$0 p$#R0GstPad%2(1_GstPad%4L%"#element_private%#(padtemplate%<#,%;#0stream_rec_lock%#4task%0#8preroll_lock%#<preroll_cond%#@block_cond%#Dblock_callback%;#Hblock_data%#L%&#Pgetcapsfunc%:#Tsetcapsfunc%7:#Xacceptcapsfunc%p:#\fixatecapsfunc%:#`activatefunc%Y7#dactivatepushfunc%7#hactivatepullfunc%7#llinkfunc%9#punlinkfunc%9#tpeer%7#xsched_private%#|chainfunc%7#checkgetrangefunc%8#getrangefunc%8#eventfunc%S8#mode%B7#querytypefunc% 9#queryfunc%a9#intlinkfunc%8#bufferallocfunc%:#do_buffer_signals%#do_event_signals%#iterintlinkfunc%8#block_destroy_data%%#H%b<#GstPadPrivate%34_GstPadPrivate%B|5GST_PAD_LINK_OKGST_PAD_LINK_WRONG_HIERARCHYGST_PAD_LINK_WAS_LINKED~GST_PAD_LINK_WRONG_DIRECTION}GST_PAD_LINK_NOFORMAT|GST_PAD_LINK_NOSCHED{GST_PAD_LINK_REFUSEDzGstPadLinkReturn%J4%6GST_FLOW_CUSTOM_SUCCESS_2GST_FLOW_CUSTOM_SUCCESS_1GST_FLOW_CUSTOM_SUCCESSGST_FLOW_RESENDGST_FLOW_OKGST_FLOW_NOT_LINKEDGST_FLOW_WRONG_STATE~GST_FLOW_UNEXPECTED}GST_FLOW_NOT_NEGOTIATED|GST_FLOW_ERROR{GST_FLOW_NOT_SUPPORTEDzGST_FLOW_CUSTOM_ERRORGST_FLOW_CUSTOM_ERROR_1GST_FLOW_CUSTOM_ERROR_2GstFlowReturn%5%B7GST_ACTIVATE_NONEGST_ACTIVATE_PUSHGST_ACTIVATE_PULLGstActivateMode%6GstPadActivateFunction%x7~7 771GstPadActivateModeFunction%77 77GstPadChainFunction%-77 6 87&t'GstPadGetRangeFunction%m.848 6S87'GstPadEventFunction%yo8u8 878,GstPadCheckGetRangeFunction%x7GstPadIntLinkFunction%88 87GstPadIterIntLinkFunction% 99 ) 97GstPadQueryTypeFunction%@9F9 V9V97\9$/GstPadQueryFunction%}99 9798/GstPadLinkFunction%99 |5977GstPadUnlinkFunction%99:7GstPadGetCapsFunction%!:': &7:7GstPadSetCapsFunction%U:[: p:7&GstPadAcceptCapsFunction%U:GstPadFixateCapsFunction%:::7&GstPadBufferAllocFunction%(:: 6;7&'GstPadBlockCallback%A1;7;M;7%K;GST_PAD_UNKNOWNGST_PAD_SRCGST_PAD_SINKGstPadDirection%OM;GstPadTemplate%g; _GstPadTemplateH&}"< L&~"# 0& #( &;#, &E=#0 &&#4 p& #8!%\<block_callback_called%#%\<#4%<ABI%"<p%.;GstStaticPadTemplate&)< _GstStaticPadTemplate@&= 0&# &;# &E=# static_caps&;%# & L's"# queue'vB#( queue_lock'w#, sync_handler'yjB#0 sync_handler_data'z#4 signal_watch_id'|#8 num_signal_watchers'}#< 'B#@ p'##DGstBusPrivate'I>_GstBusPrivateGstMessage(l>_GstMessage@(>(Y #lock(#cond(#(A#(# src( #(V(".#,H(+A#0(dAGST_MESSAGE_UNKNOWNGST_MESSAGE_EOSGST_MESSAGE_ERRORGST_MESSAGE_WARNINGGST_MESSAGE_INFOGST_MESSAGE_TAGGST_MESSAGE_BUFFERING GST_MESSAGE_STATE_CHANGEDGST_MESSAGE_STATE_DIRTYGST_MESSAGE_STEP_DONEGST_MESSAGE_CLOCK_PROVIDEGST_MESSAGE_CLOCK_LOSTGST_MESSAGE_NEW_CLOCKGST_MESSAGE_STRUCTURE_CHANGE GST_MESSAGE_STREAM_STATUSGST_MESSAGE_APPLICATIONGST_MESSAGE_ELEMENTGST_MESSAGE_SEGMENT_STARTGST_MESSAGE_SEGMENT_DONEGST_MESSAGE_DURATIONGST_MESSAGE_LATENCY GST_MESSAGE_ASYNC_STARTGST_MESSAGE_ASYNC_DONEGST_MESSAGE_REQUEST_STATEGST_MESSAGE_STEP_STARTGST_MESSAGE_QOSGST_MESSAGE_PROGRESSGST_MESSAGE_ANYGstMessageType(>!(&Aseqnum('#(%BABI((Ap(* 'ASBGST_BUS_DROPGST_BUS_PASSGST_BUS_ASYNCGstBusSyncReply'EBGstBusSyncHandler'VBB SBBBB[=Z>4>GstElementFactory)B _GstElementFactory)sC )t;F# )v#H details)yF#L staticpadtemplates){#l `)|#p uri_type)#t uri_protocols)7#x interfaces)#| )# p)##GModule*3C_GModuleCGstPlugin+'C _GstPlugin+þD L+"# desc+D#( orig_desc+/F#` +u#d filename+ #h basename+ #l module+C#p file_size+ #t file_mtime+i#x registered+ԥ#| +5F# p+##GstPluginPrivate+)D_GstPluginPrivateGstPluginDesc+*D _GstPluginDesc8+E major_version+# minor_version+# +# +# plugin_init+E# version+# license+# source+# package+# origin+#$ release_datetime+#( p+##,GstPluginInitFunc+xFF )F)FCDDGstPluginFeature,1SF _GstPluginFeatureH,OF L,P"# loaded,S#( ,T #, rank,U#0 plugin_name,W#4 plugin,X)F#8 p,[##<GstElementDetails)+F _GstElementDetails )@bG longname)C # )D # )E # author)F # p)I #GstIndexEntry-*wG _GstIndexEntry-øG -ZJ# id-ƙ# )-L#GstIndexGroup-+G _GstIndexGroup-2H groupnum-# entries-# certainty-I# peergroup-# GstIndex-,BH_GstIndexd-DIL-E"#groups-H#(curgroup-I@M#,maxgroup-J#0method-LL#4resolver-MM#8resolver_user_data-N#<filter-PFL#@filter_user_data-Q#Dfilter_user_data_destroy-R%#Hwriters-T1#Llast_id-U#Presolver_user_data_destroy-X%#Tp-[##X-7IGST_INDEX_UNKNOWNGST_INDEX_CERTAINGST_INDEX_FUZZYGstIndexCertainty-;I-FZJGST_INDEX_ENTRY_IDGST_INDEX_ENTRY_ASSOCIATIONGST_INDEX_ENTRY_OBJECTGST_INDEX_ENTRY_FORMATGstIndexEntryType-KIGstIndexAssociation-}J _GstIndexAssociation-J A-*# -#-LKGST_ASSOCIATION_FLAG_NONEGST_ASSOCIATION_FLAG_KEY_UNITGST_ASSOCIATION_FLAG_DELTA_UNITGST_ASSOCIATION_FLAG_LASTGstAssocFlags-J-xK - # -̲K nassocs-͙# assocs-ϲK# -LK#sJ -K key- # -ԑ# L-#-L A-؞*# key-ق# -FLid-aKassoc-xK L-ָK A-KGstIndexFilter-\LbL |L|LL2HbG- LGST_INDEX_RESOLVER_CUSTOMGST_INDEX_RESOLVER_GTYPEGST_INDEX_RESOLVER_PATHGstIndexResolverMethod-LGstIndexResolver-M!M @M|L7G[MGST_STATE_CHANGE_FAILUREGST_STATE_CHANGE_SUCCESSGST_STATE_CHANGE_ASYNCGST_STATE_CHANGE_NO_PREROLLGstStateChangeReturn`FM2NGST_STATE_CHANGE_NULL_TO_READY GST_STATE_CHANGE_READY_TO_PAUSEDGST_STATE_CHANGE_PAUSED_TO_PLAYINGGST_STATE_CHANGE_PLAYING_TO_PAUSED#GST_STATE_CHANGE_PAUSED_TO_READYGST_STATE_CHANGE_READY_TO_NULLGstStateChange9MGUOGST_ELEMENT_LOCKED_STATEGST_ELEMENT_IS_SINK GST_ELEMENT_UNPARENTINGGST_ELEMENT_IS_SOURCEGST_ELEMENT_FLAG_LAST!=Otarget_state?K#start_timeAc!#<OABIBUOpD BOO7OOOO 7OO<O M#PO#P#Pc!KP MDPOK/P M_PONJPvPOBeP #PO|P PO#P |LPOPPO|LP PO8P V9QOP  QO9 Q 7EQO<EQKQ$&QqQOKKKVQ.2QGST_BIN_FLAG_LAST/\SGST_RESOURCE_ERROR_FAILEDGST_RESOURCE_ERROR_TOO_LAZYGST_RESOURCE_ERROR_NOT_FOUNDGST_RESOURCE_ERROR_BUSYGST_RESOURCE_ERROR_OPEN_READGST_RESOURCE_ERROR_OPEN_WRITEGST_RESOURCE_ERROR_OPEN_READ_WRITEGST_RESOURCE_ERROR_CLOSEGST_RESOURCE_ERROR_READ GST_RESOURCE_ERROR_WRITE GST_RESOURCE_ERROR_SEEK GST_RESOURCE_ERROR_SYNC GST_RESOURCE_ERROR_SETTINGS GST_RESOURCE_ERROR_NO_SPACE_LEFTGST_RESOURCE_ERROR_NUM_ERRORS0LTGST_LEVEL_NONEGST_LEVEL_ERRORGST_LEVEL_WARNINGGST_LEVEL_INFOGST_LEVEL_DEBUGGST_LEVEL_LOGGST_LEVEL_FIXMEGST_LEVEL_TRACEGST_LEVEL_MEMDUMP GST_LEVEL_COUNT GstDebugLevel0Y\SGstDebugCategory0FT _GstDebugCategory0T threshold0# color0# 0# 0# .TGstDebugFuncPtr0; GstImplementsInterface1.T_GstImplementsInterfaceGstImplementsInterfaceClass10U _GstImplementsInterfaceClass16pU 17# supported1:U# p1= # UUTpUGstSegment2!U _GstSegmentX24{V rate26# abs_rate27# A28*# 29-# start2:# stop2;# time2<#( accum2=#0 last_stop2?#8 '2@#@ applied_rate2C#H p2G{V#PVuGstBaseSink3/V"_GstBaseSink38X 39# sinkpad3<7# pad_mode3=B7# offset3@# can_activate_pull3A# can_activate_push3B# preroll_queue3EB# preroll_queue_max_len3F# preroll_queued3G# buffers_queued3H# events_queued3I# eos3J# eos_queued3K# need_preroll3L# have_preroll3M# playing_async3N# have_newsegment3Q# segment3RU# clock_id3U!# end_time3Vc!# sync3W# 3X# H3dZ# 3fZ#GstBaseSinkClass30X"_GstBaseSinkClassp3MZ 3d# get_caps3[# set_caps32[# buffer_alloc3\[# get_times3}[# start3[# stop3[# unlock3[# event3[# preroll3[# render3[# async_play3[# activate_pull3[# fixate3\# unlock_stop3[# render_list3,\# query3G\# p3M\#GstBaseSinkPrivate31gZ_GstBaseSinkPrivate3\Z clip_segment3^Z# max_lateness3`# running3a#UP3[ZABI3b}Z p3cZZuMZ &[[V[ 2[[&[ 6\[[&'8[}[[&##b[ [[[ [[8[ 6[[&[ M[[[ [[[\[&\ 6,\[ 8\ G\[92\]\u GstRingBuffer4&r\_GstRingBuffer42]L43"#cond46#(open47#,acquired48#0)49&#4spec4:]#8segstate4;c#samples_per_seg4<#empty_seg4=#state4@#segdone4A#segbase4B#waiting4C#callback4F_#cb_data4G#H4Sc#GstRingBufferSpec4(] _GstRingBufferSpecx4_ 4&# 4`# A4=c# sign4# bigend4# width4# depth4# rate4#channels4# 4#(C4#0segsize4#8segtotal4 #<4#@silence_sample4Tc#Dseglatency4#dp4dc#hGstRingBufferCallback44-_3_N_N_]\4M_GST_SEGSTATE_INVALIDGST_SEGSTATE_EMPTYGST_SEGSTATE_FILLEDGST_SEGSTATE_PARTIALGstRingBufferSegState4RT_4g`GST_BUFTYPE_LINEARGST_BUFTYPE_FLOATGST_BUFTYPE_MU_LAWGST_BUFTYPE_A_LAWGST_BUFTYPE_IMA_ADPCMGST_BUFTYPE_MPEGGST_BUFTYPE_GSMGST_BUFTYPE_IEC958GST_BUFTYPE_AC3GST_BUFTYPE_EAC3 GST_BUFTYPE_DTS GST_BUFTYPE_MPEG2_AAC GST_BUFTYPE_MPEG4_AAC GstBufferFormatType4u_4=cGST_UNKNOWNGST_S8GST_U8GST_S16_LEGST_S16_BEGST_U16_LEGST_U16_BEGST_S24_LEGST_S24_BEGST_U24_LE GST_U24_BE GST_S32_LE GST_S32_BE GST_U32_LE GST_U32_BEGST_S24_3LEGST_S24_3BEGST_U24_3LEGST_U24_3BEGST_S20_3LEGST_S20_3BEGST_U20_3LEGST_U20_3BEGST_S18_3LEGST_S18_3BEGST_U18_3LEGST_U18_3BEGST_FLOAT32_LEGST_FLOAT32_BEGST_FLOAT64_LEGST_FLOAT64_BEGST_MU_LAWGST_A_LAW GST_IMA_ADPCM!GST_MPEG"GST_GSM#GST_IEC958$GST_AC3%GST_EAC3&GST_DTS'GST_MPEG2_AAC(GST_MPEG4_AAC)GstBufferFormat4adcutcu ! 4Kc4L#may_start4N#active4O#4JcABI4Ptcp4R _]GstBaseAudioSink5dc"_GstBaseAudioSink5md 5nV# ringbuffer5rN_# C5u# 5v# next_sample5y# >5|# provided_clock5}## 5e# H5e#GstBaseAudioSinkClass5ed"_GstBaseAudioSinkClass5Ae 5X# create_ringbuffer5e# payload5e# p5##GstBaseAudioSinkPrivate5f`e_GstBaseAudioSinkPrivate5e eos_rendering5# 5eABI5{e p5#Ae N_eece &ee&eGstAudioSink6& f"_GstAudioSink6.Sf 6/c# thread620# p65 #GstAudioSinkClass6'lf"_GstAudioSinkClass6H"g 6Id# open6N8g# prepare6PSg# unprepare6R8g# close6T8g# write6Xsg# delay6Zg# reset6\g# p6_ # 2g2ge"g Sg2gc>g sg2gYg g2gygg2gg7MhGST_MIXER_TRACK_INPUTGST_MIXER_TRACK_OUTPUTGST_MIXER_TRACK_MUTEGST_MIXER_TRACK_RECORDGST_MIXER_TRACK_MASTERGST_MIXER_TRACK_SOFTWARE GST_MIXER_TRACK_NO_RECORDGST_MIXER_TRACK_NO_MUTEGST_MIXER_TRACK_WHITELISTGST_MIXER_TRACK_READONLYGST_MIXER_TRACK_WRITEONLYGstMixerTrackFlags7YgGstMixerTrack7`h _GstMixerTrack 7ci 7d # label7f # 7ih# num_channels7k# min_volume7l# max_volume7m#GstMixerOptions8/i _GstMixerOptions489i 8:h# values8># p8A #$iGstMixer9/i_GstMixerGstMixerClass90j _GstMixerClassH9umk 9v# mixer_type9xk# list_tracks9{fl# set_volume9}l# get_volume9l# set_mute9l# set_record9l# mute_toggled9l# record_toggled9l#$ volume_changed9l#( set_option9l#, get_option9l#0 option_changed9l#4 get_mixer_flags9l#8 p9##<9:kGST_MIXER_HARDWAREGST_MIXER_SOFTWAREGstMixerType9=mk9n0lGST_MIXER_FLAG_NONEGST_MIXER_FLAG_AUTO_NOTIFICATIONSGST_MIXER_FLAG_HAS_WHITELISTGST_MIXER_FLAG_GROUPINGGstMixerFlags9sk UlUl`l[lTiEll`llhlll`llll`li l l`lil 0ll`llDWORD:BYTE:WORD:mLPBYTE:mLPLONG:>m]lLPDWORD:DmLONG;O]ULONG;SPVOID;VILPVOID;VI_GUID;mData1;#Data2;#Data3;#Data4;m#muGUID;mmLPGUID;nHRESULT:YmHWND__:+Gni:+n#HWND:+Tn)ntWAVEFORMATEX<owFormatTag<m#nChannels<m#nSamplesPerSec<l#nAvgBytesPerSec<l#nBlockAlign<m# wBitsPerSample<m#cbSize<m#WAVEFORMATEX<ZnZnLPWAVEFORMATEX<*oLPCWAVEFORMATEX<_oeooIID=mxmboolean>4#VARENUMEsrVT_EMPTYVT_NULLVT_I2VT_I4VT_R4VT_R8VT_CYVT_DATEVT_BSTRVT_DISPATCH VT_ERROR VT_BOOL VT_VARIANT VT_UNKNOWN VT_DECIMALVT_I1VT_UI1VT_UI2VT_UI4VT_I8VT_UI8VT_INTVT_UINTVT_VOIDVT_HRESULTVT_PTRVT_SAFEARRAYVT_CARRAYVT_USERDEFINEDVT_LPSTRVT_LPWSTRVT_RECORD$VT_INT_PTR%VT_UINT_PTR&VT_FILETIMEVT_BLOBVT_STREAMVT_STORAGEVT_STREAMED_OBJECTVT_STORED_OBJECTVT_BLOB_OBJECTVT_CFVT_CLSIDVT_BSTR_BLOBVT_VECTOR VT_ARRAYVT_BYREFVT_RESERVEDVT_ILLEGALVT_ILLEGALMASKEDVT_TYPEMASK$?!r ?ar# IUnknownVtbl ?ar ?r# O?r# ?r#!r%?r nrrruogrrrjorr kmrrrLPUNKNOWN?rmLPDIRECTSOUND@.rr$6@ s @ߦx#LPDIRECTSOUNDBUFFER@/&s,s&@Is@{# _DSCAPS`@6Uv :@8l# .@9l# dwMinSecondarySampleRate@:l# dwMaxSecondarySampleRate@;l# dwPrimaryBuffers@l# dwMaxHwMixingStreamingBuffers@?l# dwFreeHwMixingAllBuffers@@l# dwFreeHwMixingStaticBuffers@Al#$ dwFreeHwMixingStreamingBuffers@Bl#( dwMaxHw3DAllBuffers@Cl#, dwMaxHw3DStaticBuffers@Dl#0 dwMaxHw3DStreamingBuffers@El#4 dwFreeHw3DAllBuffers@Fl#8 dwFreeHw3DStaticBuffers@Gl#< dwFreeHw3DStreamingBuffers@Hl#@ dwTotalHwMemBytes@Il#D dwFreeHwMemBytes@Jl#H dwMaxContigFreeHwMemBytes@Kl#L dwUnlockTransferRateHwBuffers@Ll#P dwPlayCpuOverheadSwBuffers@Ml#T dwReserved1@Nl#X dwReserved2@Ol#\LPDSCAPS@PevIs _DSBCAPS@Tv :@Vl# .@Wl# @Xl# dwUnlockTransferRate@Yl# dwPlayCpuOverhead@Zl#LPDSBCAPS@[vkv _DSBUFFERDESC@_ew :@al# .@bl# @cl# dwReserved@dl# lpwfxFormat@e0o#DSBUFFERDESC@fvLPCDSBUFFERDESC@hwwew s IDirectSoundVtbl,@ߦx @x# O@x# @x# CreateSoundBuffer@y# GetCaps@-y# DuplicateSoundBuffer@My# SetCooperativeLevel@my# Compact@y# GetSpeakerConfig@y# SetSpeakerConfig@y#$ p@y#(w%6@r ]xxrrxx kmxxx ]yxywwrx ]-yxUvy ]Myx sw3y ]myxGnlSy ]yxsy ]yxJmy ]yxly ]yx nyIDirectSoundBufferVtblT@{@{#O@{#@{#GetCaps@{# GetCurrentPosition@|#GetFormat@@|#GetVolume@[|#GetPan@ [|#GetFrequency@!v|# GetStatus@"v|#$p@#|#(Lock@$|#,Play@%|#0SetCurrentPosition@&}#4SetFormat@'*}#8SetVolume@(E}#<SetPan@)E}#@SetFrequency@*}#DStop@+[}#HUnlock@,}#LRestore@-[}#Py'@,s ]{{rr{{ km{{{ ]{{v{ ]|{JmJm| ]@|{0olJm!| ][|{0mF| ]v|{Jma| ]|{ryw|| ]|{llrJmrJml| ]|{lll| ]}{l| ]*}{Go} ]E}{Ym0} ][}{K} ]}{mlmla}A*} idA, # A- #gst_directsound_deviceA.}GstExaileDirectSoundSinkB/}"_GstDirectSoundSink B5E B7e# pDSB:r# pDSBSecondaryB= s# buffer_sizeB@# current_circular_offsetBC# BE# volumeBH# tracksBK# cached_capsBM&# device_idBP # device_nameBS # dsound_lockBV# first_buffer_after_resetBX# buffer_formatBZ=c#GstExaileDirectSoundSinkClassB0j"_GstDirectSoundSinkClassB] B_Sf#GstPropertyProbeC+_GstPropertyProbeGstPropertyProbeInterfaceC, _GstPropertyProbeInterface,C9 C:# probe_neededC=# get_propertiesCAԀ# needs_probeCB# probe_propertyCE# get_valuesCH6# pCM #  UlԀĀ ڀ 00T|}PROP_0PROP_VOLUMEPROP_DEVICEPROP_DEVICE_NAME(probe_probe_property)))*+$+{$ +$,kV.)V2g+X.-\Dk*+!]n}Du4.gst_directsound_sink_is_spdif_format{o).+`(gst_buffer_unrefm/bufm&.gst_buffer_ref[&/buf[&.gst_directsound_sink_payloadM&K) Me/bufM&*0framesizeP0outQ&.device_get_name) .0l0list0dev0ret}1gst_directsound_sink_interfaces_init:23implements_interface_info:3mixer_interface_info:3probe_iface_info:4gst_directsound_sink_implements_interface_initTgTgt5T6gst_directsound_sink_mixer_list_tracksUlTgTgt7mixer`l8.4gst_directsound_sink_mixer_get_volumeTg%Tgtm7mixer`l7trackl7volumes8.4gst_directsound_sink_mixer_interface_init(TgITgt5j9probe_needs_probe)LTgRTgt:):):*;gst_directsound_sink_property_probe_interface_initWTTguTgtn:Wn]=lh?dwBytesInQueuel?nNbSamplesInQueue8+Sl@gst_directsound_sink_interface_supported0Tg^Tgo5U7iface_typeAgst_directsound_sink_set_volume`TgZTgd5.PBt`gTgC03dsVolume]D}TgTgE!ntud4gst_directsound_sink_mixer_set_volume\Tg}Tgt7mixer`l7trackl7volumes8.!In GH>!An" DTguTg=:={: =:*u Hlist,PUgDTgTg>  Igst_directsound_sink_initTgTg :.:?trackl E] k]?pLockedBuffer1lmEHpLockedBuffer2lmP?dwSizeBuffer1mlq?dwSizeBuffer2ml>nlOcalculate_freesize~C?dwFreeBufferSize|l]?lpGuid n)BhTgF #Tg $Tg?__txt _?__dbg }F9#TgB#Tgj>!nD#Tg#Tg>!nD$Tg%Tg?__txt ?__dbg FA$TgJ$TgА>!nD$Tg$Tg>!nu]=ewHwfxoNBiTgPIo%Tg%TgԑM|Do%Tg%TgQF<&TgE&Tg>!&nAPI&Tg&Tg1#R|UD&Tg&TgQuD'Tg(Tg?__txt: ?__dbg: F'Tg'Tgn>!:nD(Tg (Tg>!:nu,&D)./template_capsEQ+]+ew0wfxo+&-TS#+!6nS5+!<n*+!?nTu'Dip?pad_templatej<=k.=l&V>m B=3iTgB\BPiTgF(Tg(Tg4>!vnGN>!pn F)Tg)Tgl>!}nT)TgRKR^CQӒ~NߒNNQNiTgFL*TgY*TgܔQ(F4+Tg=+TgQ&D+Tg+TgQ6:D*Tg*Tg> ND*Tg*Tg>!naa>{a >aVK-Tg#.Tg]MiD-Tg#.TgQuQ/QNWIgst_directsound_sink_set_property1$.Tg>/Tgxv:L1:2:2 :2  = 4.DI.Tg.Tg>G>{G >GIgst_directsound_sink_finalisea@/Tg/Tgȗ:La=c.X}/Tgc0TgGMMMV}/Tg]0TgRtRRD/Tg]0TgQQ́tQفXd0Tg0TgMNNhTgFl0Tgv0TgQ V0Tg0TgVD0Tg0TgWYNhTgX0Tg1Tg8MMPI0Tg0TgOM|D0Tg0TgQT0Tge2RڂZ1Tg0MMMCHQ+.Q=LV1Tg1Tg[Ru[gst_directsound_sink_get_type1Tg2TgG\gonce_dataG$PUg]`D1Tg2Tg^_type_92Tg2Tg<RكD92Tg2TgN gTgN,gTgN!8gTg`2Tg2Tg<Wab_iobLb_pctypeDfemc~0T\directsoundsink_debugDT(PUg\directsoundsink_sink_factoryj<@Tg8#0PUgb_iobLb_pctypeDfemc~0T GNU C 4.6.2gstdirectsoundplugin.cc:\Music\gstreamer\gst-plugins-good\sys\directsound2Tg2Tgintunsigned intshort unsigned intsigned charunsigned charshort intguint32+wlong long intlong long unsigned intgsize^w__time32_t(%long inttime_t=gchar0Lchargint3pgboolean4Tlong unsigned intguint9wfloatdoublegpointerO??GMutex3_GMutex:p=i>  wGData& _GDataL long double GType GTypeClass_ _GTypeClassg_type># GTypeInstance _GTypeInstanceg_class#LGObject_GObject 3g_type_instance#ref_count#qdata## .GST_STATE_VOID_PENDINGGST_STATE_NULLGST_STATE_READYGST_STATE_PAUSEDGST_STATE_PLAYING_iobuf 6_ptr #_cnt p#_base #_flag p# _file p#_charbuf p#_bufsiz p#_tmpfname #FILE _off_t 4%off_t 7B <GST_OBJECT_DISPOSINGGST_OBJECT_FLOATINGGST_OBJECT_FLAG_LASTGstObject _GstObject( Vobject #refcount T# lock 8#name #name_prefix #parent V#flags #  ѥ#$ tGST_MINI_OBJECT_FLAG_READONLYGST_MINI_OBJECT_FLAG_RESERVED1GST_MINI_OBJECT_FLAG_LAST  w0-GST_EVENT_TYPE_UPSTREAMGST_EVENT_TYPE_DOWNSTREAMGST_EVENT_TYPE_SERIALIZEDGModule3< _GModule-GstPlugin'^_GstPluginJobjectĪ#descv#(orig_descɼ#`flagsw#dfilename#hbasename#lmoduleG#pfile_sizeP#tfile_mtime1#xregistered`#|priv##GstPluginPrivate)b _GstPluginPrivateGstPluginDesc*_GstPluginDesc8major_versionT#minor_versionT#name#description# &#version#license#source#package# origin#$release_datetime#(#,GstPluginInitFuncx`MvJC GST_RANK_NONEGST_RANK_MARGINALGST_RANK_SECONDARYGST_RANK_PRIMARY G GST_ELEMENT_LOCKED_STATEGST_ELEMENT_IS_SINK GST_ELEMENT_UNPARENTINGGST_ELEMENT_IS_SOURCEGST_ELEMENT_FLAG_LAST2 GST_BIN_FLAG_LASTVARENUMsL VT_EMPTYVT_NULLVT_I2VT_I4VT_R4VT_R8VT_CYVT_DATEVT_BSTRVT_DISPATCH VT_ERROR VT_BOOL VT_VARIANT VT_UNKNOWN VT_DECIMALVT_I1VT_UI1VT_UI2VT_UI4VT_I8VT_UI8VT_INTVT_UINTVT_VOIDVT_HRESULTVT_PTRVT_SAFEARRAYVT_CARRAYVT_USERDEFINEDVT_LPSTRVT_LPWSTRVT_RECORD$VT_INT_PTR%VT_UINT_PTR&VT_FILETIMEVT_BLOBVT_STREAMVT_STORAGEVT_STREAMED_OBJECTVT_STORED_OBJECTVT_BLOB_OBJECTVT_CFVT_CLSIDVT_BSTR_BLOBVT_VECTOR VT_ARRAYVT_BYREFVT_RESERVEDVT_ILLEGALVT_ILLEGALMASKEDVT_TYPEMASK&$`2Tg2Tgz plugin$ 6 _iob z _pctypef _iob z _pctypef gst_plugin_desc-v@@Tg GNU C 4.5.2../mingw/tlssup.cC:\MinGW\msys\1.0\src\mingwrtH7Tg8TgcharDWORDjlong unsigned intWINBOOLintBOOLunsigned charshort unsigned intfloatlong intunsigned intshort intUULONGSjPVOIDVLPVOIDVHANDLElong long intlong long unsigned intsigned charULONG_PTRhjPIMAGE_TLS_CALLBACK  ]  _IMAGE_TLS_DIRECTORY32  StartAddressOfRawData ]# EndAddressOfRawData ]# AddressOfIndex ]# AddressOfCallBacks ]# SizeOfZeroFill ]# Characteristics ]#IMAGE_TLS_DIRECTORY32 IMAGE_TLS_DIRECTORY double VARENUMsI VT_EMPTY VT_NULL VT_I2 VT_I4 VT_R4 VT_R8 VT_CY VT_DATE VT_BSTR VT_DISPATCH VT_ERROR VT_BOOL VT_VARIANT VT_UNKNOWN VT_DECIMAL VT_I1 VT_UI1 VT_UI2 VT_UI4 VT_I8 VT_UI8 VT_INT VT_UINT VT_VOID VT_HRESULT VT_PTR VT_SAFEARRAY VT_CARRAY VT_USERDEFINED VT_LPSTR VT_LPWSTR VT_RECORD$ VT_INT_PTR% VT_UINT_PTR& VT_FILETIME VT_BLOB VT_STREAM VT_STORAGE VT_STREAMED_OBJECT VT_STORED_OBJECT VT_BLOB_OBJECT VT_CF VT_CLSID VT_BSTR_BLOB VT_VECTOR VT_ARRAY VT_BYREF VT_RESERVED VT_ILLEGAL VT_ILLEGALMASKED VT_TYPEMASK _iobuf _ptr#_cnt#_base#_flag# _file#_charbuf#_bufsiz#_tmpfname#FILEI_PVFV__dyn_tls_dtorH7Tgy7Tg$SH*^]2__dyn_tls_initT__dyn_tls_init@12|7Tg7Tg\HT*^T]2TpfuncV__tlregdtorq7Tg8Tgfuncq_iob='S*Ug+U__xl_a-__xd_aGUg__xd_zHUg_CRT_MTO_iob='4PUgS*UUgg+UUg__xl_a-Ug__xl_z. Ug_tls_used6Ug_CRT_MTO__dyn_tls_init_callbackkP0Ug__xl_clUg__xl_dUgmingw_initltsdrot_force8PUgmingw_initltsdyn_force#w___w64_mingwthr_remove_key_dtor@ : ;I I' I : ;  : ; I8 : ; I  '  I  : ;  ( ' .: ; ' @ 4: ; I.? : ; @' I@: ; I .? : ; ' I@I!4: ; I? < 4: ; I? < &I4: ; I % $ > : ;I: ; I  I&I : ;  : ; I8  : ;  (  : ;  : ; : ;I8 I!I/  : ; ' II : ; .: ; ' I : ; I4: ; I.: ; ' I@: ; I4: ; I .? : ; ' I@.? : ; ' @: ; I 4: ; I.? : ; ' @  1RUX Y !1 " U#41$!%4: ; I? < &4: ; I?  % $ > : ; I  I' I&I  : ;  : ; I8 : ; I8 ' I  : ;  : ; II!I/ < '  : ; (  : ;  : ; : ;I : ; : ;I8  : ;I8  : ;5I : ; : ;I : ;I : ; I! : ;" : ; # : ; $ : ; %: ; I& : ;': ;I(.: ;' ): ;I* +4: ;I,.: ;' I -4I4 ..: ;' I /: ;I04: ;I1.: ; ' 2: ; I34: ; I4.: ; ' @ 5: ; I 6.: ; ' I@ 7: ; I 84: ; I 9.: ;' I@ :: ;I ;.: ;' @ <.: ;' I@=4: ;I >4: ;I?4: ;I@.: ; ' I@A.: ; ' @B4I4  C UD E4: ; IF G UH4: ;I I.: ;' @J: ;I K : ;L1RUX Y M1 N41 O : ;P1X YQ41R1S T1RUX YU: ;IV1X YW41X.1@Y1Z1RUX Y[.? : ; ' I@\4: ; I ] U^4: ; I_1X Y ` a!b4: ; I? < c4: ;I? < % $ > : ; I  I&I : ;  : ; I I !I/ < : ;I  : ; : ;I8 5I : ;  : ; I8  : ; (  : ; I8 ' II : ; : ; .: ; ' I@: ; I !4: ; I? < 4: ; I?  % $ > : ; I I : ;I' I  : ; : ;I8  : ;  (  : ;  : ; I8 ' .: ; ' I@: ; I .? : ; @' I@: ; I4: ; I.? : ; ' I@: ; I I!4: ; I? < 4: ; I? < 4: ; I 4: ; I?  4: ; I?  &I% $ > : ; I .? : ; @' I@: ; I % : ; I I$ >  I&  : ; : ;I8 : ;I &I  : ;  : ; I8  : ; .: ; ' : ; I4: ; I 4: ;I.: ; ' @: ; I 4: ; I : ; I4: ; I.? : ;' @4: ;I 1RUX Y U411 !I"!#4: ; I? < $4: ; I? < % $ > : ; I I' .? : ; ' @4: ; I 4: ; I .? : ; ' @ I ! 4: ; I? < % 4: ; I?  $ > % $ > : ; I  : ; : ;I8  I: ;I I !I/  : ;  : ; I8 ' I5I.: ; ' @4: ; I .? : ; ' I@: ; I 4: ; I % 4: ; I?  $ >  ../mingw../mingw/include../mingw/../w32api/includedllcrt1.cstdio.hstdlib.hwindef.hwinnt.hwtypes.hTguLlw= Jt#/X .QޯOg[A_ XiJv .kY .k c:/mingw/bin/../lib/gcc/mingw32/4.6.2/includeC:/gstreamer-sdk/0.10/x86/lib/glib-2.0/includeC:/gstreamer-sdk/0.10/x86/include/glib-2.0/glibc:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../../includeC:/gstreamer-sdk/0.10/x86/include/gstreamer-0.10/gstgstdirectsound.cstddef.hglibconfig.hgtypes.hglist.hgunicode.hstdio.hgstelement.hgstobject.hgstminiobject.hgstevent.hgstbin.hgstinfo.hwindef.hwinnt.hwtypes.hdsound.hgstdirectsound.hwctype.hTTg)v(0;>gvNMguKIuKvOP/Ol uKIr=I4aK1coJ=I4aK1cJf.MJPk  C:/gstreamer-sdk/0.10/x86/include/gstreamer-0.10/gstC:/gstreamer-sdk/0.10/x86/lib/glib-2.0/includec:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../../includeC:/gstreamer-sdk/0.10/x86/include/glib-2.0/glibC:/gstreamer-sdk/0.10/x86/include/glib-2.0/glib/deprecatedC:/gstreamer-sdk/0.10/x86/include/glib-2.0/gobjectc:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../../include/sysC:/gstreamer-sdk/0.10/x86/include/libxml2/libxmlC:/gstreamer-sdk/0.10/x86/include/glib-2.0C:/gstreamer-sdk/0.10/x86/include/gstreamer-0.10/gst/baseC:/gstreamer-sdk/0.10/x86/include/gstreamer-0.10/gst/audioC:/gstreamer-sdk/0.10/x86/include/gstreamer-0.10/gst/interfacesgstdirectsoundsink.cgstbuffer.hglibconfig.htime.hgtypes.hgarray.hgquark.hgthread.hgthread.hgdataset.hglist.hghash.hgslist.hgqueue.hgmessages.hgtype.hgvalue.hgparam.hgobject.hgvaluearray.hgstelement.hstdio.htypes.hxmlstring.htree.hgstobject.hgstminiobject.hgstclock.hgststructure.hgstcaps.hgstbufferlist.hgstiterator.hgstformat.hgstevent.hgstquery.hgsttask.hgstpad.hgstpadtemplate.hgstbus.hgstmessage.hgstelementfactory.hgmodule.h gstplugin.hgstpluginfeature.hgstindex.hgstbin.hgsterror.hgstinfo.hgstinterface.hgstsegment.hgstbasesink.h gstringbuffer.h gstbaseaudiosink.h gstaudiosink.h mixertrack.h mixeroptions.h mixer.h windef.hwinnt.hmmsystem.hbasetyps.hrpcndr.hunknwn.hdsound.hgstdirectsound.hgstdirectsoundsink.hpropertyprobe.h wctype.hwtypes.hTg ..NMwuuu)J*KuuuuJ y.ofK xteyփU2leYtKLSTF"MhLYZ=O!uy m9.n.fa.Klytguuuuv;"VtKKPr.*.gjutY_~ȅ(}uuw;;;;h@|@f(ؓKKف)~AL?!%tܠDe5Jqtv*.VO S0~ %K.YeJ-=J =A2l-=J =AK {oJ uuu!Y% hzK'QvYRuuuuu-=J =A4~׃jzH9 !uuuuL'|ڃFiz@O"'|X}$zuP.n1gwhn.ifZp<pt`ztyt~  u/zef.iYn,.otw^~؟uסIJgatZYyf}֑|JyfXM$>^zxJxJJyd C:/gstreamer-sdk/0.10/x86/lib/glib-2.0/includec:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../../includeC:/gstreamer-sdk/0.10/x86/include/glib-2.0/glibC:/gstreamer-sdk/0.10/x86/include/glib-2.0/gobjectc:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../../include/sysC:/gstreamer-sdk/0.10/x86/include/gstreamer-0.10/gstC:/gstreamer-sdk/0.10/x86/include/glib-2.0gstdirectsoundplugin.cglibconfig.htime.hgtypes.hgthread.hgdataset.hgtype.hgobject.hstdio.htypes.hgstelement.hgstobject.hgstminiobject.hgstevent.hgmodule.hgstplugin.hgstpluginfeature.hgstbin.hwctype.hwtypes.h2Tg$=% ../mingw../mingw/../w32api/include../mingw/includetlssup.cwindef.hwinnt.hbasetsd.hstdio.hwtypes.hH7TgXJZZ <zg+v<q[ ../mingw../mingw/../w32api/includedllmain.cwindef.hwinnt.h8Tg> o ../mingwc:/mingw/bin/../lib/gcc/mingw32/4.5.2/include../mingw/../w32api/include../mingw/includepseudo-reloc.cstdarg.hwindef.hstddef.hwinnt.hstdio.h8Tg?@)0XJq(Y-vNst~yXXYJYu:~ i >/ntui=fg=[y XBtf fq) ../mingwgccmain.c ;Tgm/y\un XhrDnfL. gG-' ../mingwcrtst.ch ../mingw../mingw/../w32api/includetlsthrd.cwindef.hwinnt.hwinbase.h;TgrtʮɒKx< Jw.rfYMYhʃhuJtihL s<Juhu*\rYwn93 ../mingwpseudo-reloc-list.c|  TgWAB DNA HXTgAB FB AAA F f AAA C F AAA C 8Tg(AB d `Tg#AB _ | H7Tg1AB k ,|7TgAB Dg A E l A C 7TgAB C | H8Tg AB F | |8TgLAB EH|\8TgAB FL AAA D  AAA C H AAA A 8|@9TgAB FM AAA C o AAA B | 8 ;Tg-AB i $8<;TgJAB Dk A A $8;Tg!AB N C K | 0;TgmAB EM AA A RAA  P>3WAP3UN1145t56t67t 78t8>t>FtFGtGHtHIt IJtJLtLtttt tt06PP| ##t>?t?@t @AtABtMM MDEtEHtHt ttttt dtdet eftfgtaaahitiltlt ttt ttz10ttt tt0tt tt}t0}~t~t ttt0 ##<PPP#P#xWWWtttttt=APASt3t 34ttt.u.1t45t57t7cuchthutu4WfmSSttuttt u tttLuLMtMOtOdudhth u  t ut0uL]P]aSesPsS S0SL]ReRV V0VL]QeQ \01t13t3IuILtLutu6TVVVBJ\\`PPP6P7PPPSSgSSSSSXtt,u,-t01t13t3cucdtdzuBFSdfShjSjzSBOSOPsPbS|}t}tututttutlulmt+/lPUg/USUjS=APAYVpqtqstsutuPSPSttut>u>@t@iu 0$R$+R?FR]i0lPUg$P$'R'+P?MP]iRlmtmotoututu22r^ TV;  | & 0 4 x  DQt(t(xxVV.file!gdllcrt1.c X _atexit8 __onexit` .text.data.bssVX ? /  >.file4gcygming-crtbegin.cI_obj]k  .text.data.bss`.rdatac.jcr.fileVggstdirectsound.cT      > c8  .textT.data.bss .rdatad) 'VX/  0`| .fileg   7( bL uT x  0 ` 0`D([\    ,    8  &D  p0~  | 0   53 I ]P xH  $ @  d  #>  \! {$ ,8.textk.data@.bss$.rdata0 [87/@  0Ho > .fileg" .text"4.data@8 .bss4.rdata ܮ j,/`  >0.text".idata$7D.idata$5.idata$4.idata$6\@feat.00.text".idata$78.idata$5t.idata$4.idata$6@feat.00.text".idata$7<.idata$5x.idata$4.idata$6 @feat.00.text".idata$7@.idata$5|.idata$4.idata$6@@feat.00.text".idata$7`.idata$5.idata$4.idata$6|@feat.00.text".idata$7h.idata$5.idata$4.idata$6@feat.00.text#.idata$7d.idata$5.idata$4.idata$6@feat.00.text#.idata$7.idata$5.idata$4.idata$6.text#.idata$7.idata$5.idata$4.idata$6L @feat.00.text#.idata$7.idata$5.idata$4.idata$6 @feat.00.text#.idata$7.idata$5.idata$4.idata$6 @feat.00.text #.idata$7.idata$5.idata$4.idata$6 @feat.00.text(#.idata$7.idata$5.idata$4.idata$6t @feat.00.text0#.idata$7.idata$5.idata$4.idata$6t @feat.00.text8#.idata$7.idata$5.idata$4.idata$68 @feat.00.text@#.idata$7.idata$5.idata$4.idata$6 @feat.00.textH#.idata$7.idata$5.idata$4 .idata$6` @feat.00.textP#.idata$7.idata$5.idata$4.idata$6 @feat.00.textX#.idata$7.idata$5.idata$4$.idata$6 @feat.00.text`#.idata$7.idata$5.idata$4.idata$6 @feat.00.texth#.idata$7.idata$5.idata$4.idata$6\ @feat.00.textp#.idata$7.idata$5.idata$4.idata$6@feat.00.textx#.idata$7.idata$5.idata$4.idata$6 @feat.00.text#.idata$7.idata$5.idata$4 .idata$6 @feat.00.text#.idata$7.idata$5.idata$4.idata$6 @feat.00.text#.idata$7 .idata$5.idata$4,.idata$6H @feat.00.text#.idata$7.idata$5.idata$4.idata$6 @feat.00.text#.idata$7.idata$5.idata$4.idata$6 @feat.00.text#.idata$7.idata$5.idata$4.idata$6 @feat.00.text#.idata$7.idata$5 .idata$4.idata$6 @feat.00.text#.idata$7.idata$5.idata$4.idata$6 @feat.00.text#.idata$7.idata$5.idata$4.idata$6 @feat.00.text#.idata$7.idata$5.idata$4.idata$6 @feat.00.text#.idata$7.idata$5.idata$4.idata$6 @feat.00.text#.idata$7.idata$5.idata$4.idata$60 @feat.00.text#.idata$7.idata$5.idata$4.idata$6X @feat.00.text#.idata$7.idata$5.idata$4.idata$6< @feat.00.text#.idata$7.idata$5.idata$4.idata$6H @feat.00.text#.idata$7.idata$5.idata$4(.idata$6( @feat.00.text$.idata$7.idata$5.idata$4.idata$6 @feat.00.text$.idata$7.idata$5.idata$4.idata$6 @feat.00.text$.idata$7.idata$5P.idata$4`.idata$6T@feat.00.text$.idata$7 .idata$5\.idata$4l.idata$6@feat.00.text $.idata$7.idata$5h.idata$4x.idata$6@feat.00.text($.idata$7.idata$5L.idata$4\.idata$6<@feat.00.text0$.idata$7.idata$5l.idata$4|.idata$6@feat.00.text8$.idata$7.idata$5H.idata$4X.idata$6,@feat.00.text@$.idata$7.idata$5(.idata$48.idata$6X@feat.00.textH$.idata$7.idata$50.idata$4@.idata$6@feat.00.textP$.idata$7.idata$5D.idata$4T.idata$6@feat.00.textX$.idata$7.idata$58.idata$4H.idata$6@feat.00.text`$.idata$7.idata$5,.idata$4<.idata$6x@feat.00.texth$.idata$7.idata$5<.idata$4L.idata$6@feat.00.textp$.idata$7.idata$5`.idata$4p.idata$6@feat.00.textx$.idata$7.idata$5d.idata$4t.idata$6@feat.00.text$.idata$7.idata$5T.idata$4d.idata$6h@feat.00.text$.idata$7.idata$5X.idata$4h.idata$6@feat.00.text$.idata$7.idata$54.idata$4D.idata$6@feat.00.text$.idata$7.idata$5@.idata$4P.idata$6@feat.00.text$.idata$7.idata$5.idata$4,.idata$60@feat.00.text$.idata$7.idata$5.idata$4.idata$6H@feat.00.text$.idata$7p.idata$5.idata$4.idata$6@feat.00.text$.idata$7x.idata$5.idata$4.idata$6@feat.00.text$.idata$7.idata$5.idata$4(.idata$6$@feat.00.text$.idata$7|.idata$5.idata$4.idata$6 @feat.00.text$.idata$7.idata$5.idata$4.idata$6 @feat.00.text$.idata$7.idata$5 .idata$40.idata$6D@feat.00.text$.idata$7.idata$5.idata$4$.idata$6@feat.00.text$.idata$7.idata$5.idata$4.idata$60@feat.00.text$.idata$7.idata$5.idata$4.idata$6@@feat.00.text$.idata$7.idata$5 .idata$4.idata$6@feat.00.text%.idata$7.idata$5.idata$4 .idata$6@feat.00.text%.idata$7.idata$5.idata$4.idata$6t@feat.00.text%.idata$7.idata$5.idata$4.idata$6d@feat.00.text%.idata$7.idata$5.idata$4 .idata$6@feat.00.text %.idata$7.idata$5.idata$4.idata$6@feat.00.text(%.idata$7.idata$5.idata$4.idata$6T@feat.00.text0%.idata$7l.idata$5.idata$4.idata$6@feat.00.text8%.idata$7.idata$5.idata$4.idata$6@feat.00.text@%.idata$7t.idata$5.idata$4.idata$6@feat.00.textH%.idata$7.idata$5.idata$4.idata$6@feat.00.textP%.data.bss4.idata$7.idata$5.idata$4.idata$6,.textX%.data.bss4.idata$7.idata$5.idata$4.idata$6.filegfakehnamefthunk.text`%.data.bss4.idata$2.idata$4.idata$5.filegfake.text`%.data.bss4.idata$4.idata$5.idata$7 .text`%.data.bss4.idata$7(.idata$5$.idata$44.idata$6d .texth%.data.bss4.idata$70.idata$5,.idata$4<.idata$6 .textp%.data.bss4.idata$7,.idata$5(.idata$48.idata$6 .filegfakehname4fthunk$.textx%.data.bss4.idata$2d.idata$44.idata$5$.filegfake.textx%.data.bss4.idata$4@.idata$50.idata$74 .filegdxerr9.c% _Errors1?% Z & .text%.data.bss4.rdata| L.text0'.data.bss4.idata$7.idata$5.idata$4.idata$6>.text8'.data.bss4.idata$7.idata$5.idata$4.idata$6`.text@'.data.bss4.idata$7.idata$5.idata$4.idata$6R.file,gfakehnamefthunk.textH'.data.bss4.idata$2.idata$4.idata$5.file:gfake.textH'.data.bss4.idata$4.idata$5.idata$7 .filengtlssup.cgH' z|' ___xd_a___xd_z' .textH'.data.bss4 ).tls$AAA .tls$ZZZ .CRT$XLA.CRT$XLZ .tls .rdata.CRT$XLC.CRT$XLD.CRT$XDA.CRT$XDZ$ ?  /  >2>.filegdllmain.c( .text( .data.bssD \uH4.8G  G/  .filegpseudo-reloc.c( \( @) D.text(.data.bssD l&s.rdata|fe 0  /  x0>pN.fileggccmain.c + _p.1615 <+ ___main+  H.text + .data.bssH >wu84!+ I /  >.filegcrtst.c.text+.data.bssLc0r1 .filegtlsthrd.c$ + > PR Ta lp ,  ,  - .text+".data.bssP q_"Z o /  .filekg .text-.data.bssp0Y=k Z.text-0.data.bsst.text-.data.bsst.text-.data.bsst.idata$7.idata$5.idata$4.idata$6 .text-.data.bsst.idata$7.idata$5.idata$4.idata$6 .text-.data.bsst.idata$7.idata$5.idata$4.idata$6.text-.data.bsst.idata$7.idata$5p.idata$4.idata$6 .text-.data.bsst.idata$7.idata$5l.idata$4|.idata$6 .text-.data.bsst.idata$7.idata$5.idata$4.idata$6 .text-.data.bsst.idata$7.idata$5x.idata$4.idata$6 .text-.data.bsst.idata$7.idata$5t.idata$4.idata$6 .text-.data.bsst.idata$7.idata$5.idata$4.idata$6 .text..data.bsst.idata$7.idata$5.idata$4.idata$6.text..data.bsst.idata$7.idata$5|.idata$4.idata$6 .text..data.bsst.idata$7.idata$5.idata$4.idata$6 .fileygfakehname|fthunkl.text..data.bsst.idata$2.idata$4|.idata$5l.filegfake.text..data.bsst.idata$4.idata$5.idata$7 .text..data.bsst.idata$7P.idata$5D.idata$4T.idata$6 .text ..data.bsst.idata$7T.idata$5H.idata$4X.idata$6 .text(..data.bsst.idata$7d.idata$5X.idata$4h.idata$6n .text0..data.bsst.idata$7`.idata$5T.idata$4d.idata$6X .text8..data.bsst.idata$7@.idata$54.idata$4D.idata$6 .text@..data.bsst.idata$7p.idata$5d.idata$4t.idata$6 .textH..data.bsst.idata$7l.idata$5`.idata$4p.idata$6 .textP..data.bsst.idata$7H.idata$5<.idata$4L.idata$6 .textX..data.bsst.idata$7h.idata$5\.idata$4l.idata$6v .text`..data.bsst.idata$7L.idata$5@.idata$4P.idata$6 .texth..data.bsst.idata$7\.idata$5P.idata$4`.idata$6@ .textp..data.bsst.idata$7D.idata$58.idata$4H.idata$6 .textx..data.bsst.idata$7X.idata$5L.idata$4\.idata$6$ .filegfakehnameDfthunk4.text..data.bsst.idata$2x.idata$4D.idata$54.filegfake.text..data.bsst.idata$4x.idata$5h.idata$7t .fileAgcygming-crtend.c   . .text..data.bsst<.jcr . ..rdatax$ |$ $ $ $ $ $ $ $ $ $ $ $ $ $$ 0$ <.idata$2.idata$5.idata$4.idata$2.idata$5(.idata$48.idata$2(.idata$5t.idata$4.idata$2<.idata$5.idata$4.idata$2P.idata$5.idata$4.idata$44.idata$5$.idata$7.idata$4.idata$5p.idata$7 .idata$4.idata$5.idata$7H.idata$4.idata$5.idata$7l.idata$40.idata$5 .idata$7@ " \ ~ H.  4  "  |1Ug  t- lP $ ` v  . _free-  `_g_log$  $   # __swab-  @, F d] w $    @% _log10-  \  ,. L__errno- Q r p.  | #   | ___xl_c 9Uj$ t$ > <,>h# i8' tT-# $  % ___xl_z *p$ >`. N# _g_free$ ]4q$ # `% @. 8(# t&C# b.  i# %H2UgH`0$ oC@' # @# pH4T . fx<$ H# 8 (0GW% gXP# __dll___fwrite- @$ H% Tg1Ih$ ^" H$ $ '# ;BS|1Ugq" 0#  "# 9@Jc% p}___xl_a___xl_d.__CRT_MTL_fflush- p% " % # '7xD __alloca-e6}48#  $ % 8. # '0. =.Lc$ wd_calloc. # P9F`# ll# " 8$ # $ .LJ# ]}P4$ #xE __end__OeDX% -  p# _malloc- .P. *(FT`y\8% Tg`$ H!/h_abort. J f( id;  P$ 1 # M$ aPz$ @ $  x. < $ Q ] D} @  i  !"!9!J!^!($ t!x!! !H!$ !# !X# "0% "9"Q"X$ f"Xu""# """h% "0' "# #,9#<Q#`k#X. z##$ #8#h. ##x# $-$V$v$$$# $x$ $H2Ug$P% $t%)%H_Sleep@4(. G%|f%%(% %$% %%%&0%&5&NM&`&. j&<&&&l&.eh_frame.debug_aranges.debug_pubnames.debug_pubtypes.debug_info.debug_abbrev.debug_line.debug_frame.debug_str.debug_loc.debug_ranges___dll_exit_first_atexit_next_atexit_DllMainCRTStartup@12.debug_abbrev.debug_info.debug_line.debug_frame.debug_loc.debug_pubnames.debug_pubtypes.debug_aranges.debug_str___EH_FRAME_BEGIN_____JCR_LIST_____gcc_register_frame___gcc_deregister_frame.eh_frame_guid_to_string_gst_directsound_device_alloc_gst_directsound_device_free_cb_enum@16_gst_directsound_device_free_func_gst_directsound_device_list_free_gst_directsound_capture_device_list_gst_directsound_playback_device_list_gst_directsound_get_device_guid.debug_ranges_gst_directsound_sink_implements_interface_init_gst_directsound_sink_mixer_list_tracks_gst_directsound_sink_mixer_get_volume_gst_directsound_sink_mixer_interface_init_probe_needs_probe_gst_directsound_sink_property_probe_interface_init_gst_directsound_sink_unprepare_gst_directsound_sink_delay_gst_directsound_sink_interface_supported_gst_directsound_sink_set_volume___FUNCTION__.53848_directsoundsink_debug_gst_directsound_sink_mixer_set_volume_probe_get_values___FUNCTION__.53898_probe_get_properties_list.53868_gst_directsound_sink_init_gst_directsound_sink_acceptcaps_gst_directsound_sink_base_init_directsoundsink_sink_factory_gst_directsound_sink_class_init_trampoline_parent_class_gst_directsound_sink_reset_gst_directsound_sink_write_gst_directsound_sink_open___FUNCTION__.54018_gst_directsound_sink_prepare___FUNCTION__.54041_gst_directsound_sink_getcaps___FUNCTION__.53982___FUNCTION__.54100___PRETTY_FUNCTION__.53987_device_set_default_gst_directsound_sink_get_property_gst_directsound_sink_set_property_gst_directsound_sink_finalise_probe_probe_property_gst_directsound_sink_close___PRETTY_FUNCTION__.54058_gst_directsound_sink_payload_gst_directsound_sink_get_type_gonce_data.53820_implements_interface_info.53828_mixer_interface_info.53829_probe_iface_info.53830gstdirectsoundsink.c_plugin_initgstdirectsoundplugin.c_DXGetErrorString9A@4_UnknownError_DXGetErrorDescription9A@4_DXTraceA@20___dyn_tls_dtor@12___dyn_tls_init@12___tlregdtor_DllMain@12___report_error___write_memory__pei386_runtime_relocator_was_init.30902___do_global_dtors___do_global_ctors_initialized___mingwthr_run_key_dtors___mingwthr_cs_init___mingwthr_cs_key_dtor_list____w64_mingwthr_add_key_dtor____w64_mingwthr_remove_key_dtor___mingw_TLScallbackpseudo-reloc-list.c___FRAME_END_____JCR_END___register_frame_ctor.text.startup.ctors.65535.rdata_runtime_pseudo_reloc_gst_audio_iec61937_payload__imp__gst_ring_buffer_parse_caps_VirtualProtect@16__libdsound_a_iname__imp__g_mutex_new_gst_audio_sink_get_type___RUNTIME_PSEUDO_RELOC_LIST____fu10____gst_debug_min__imp__gst_audio_iec61937_frame_size_libgstinterfaces_0_10_0_dll_iname_g_object_unref__nm____gst_debug_min__data_start_____DTOR_LIST____imp__gst_element_register__imp__VirtualProtect@16_g_list_free.weak.__Jv_RegisterClasses.___gcc_register_frame_gst_caps_copy__imp__GetLastError@0__imp__StringFromGUID2@12__imp__VirtualQuery@12__imp__gst_mixer_get_type_g_list_append__imp__gst_element_class_add_static_pad_template___tls_start___g_intern_static_string__imp__TlsGetValue@4__libmsvcrt_a_iname__imp__g_object_class_install_property__imp__InitializeCriticalSection@4__imp__gst_structure_get_boolean_DeleteCriticalSection@4__rt_psrelocs_start_gst_caps_new_simple.weak.___register_frame_info.___gcc_register_frame__imp__abort__imp__g_mutex_lock__dll_characteristics____size_of_stack_commit____imp__g_atomic_pointer_get__imp__g_list_append_g_malloc_g_utf16_to_utf8__fu7____gst_debug_min__imp__gst_debug_log__imp__g_list_free__imp__g_utf16_to_utf8__size_of_stack_reserve____imp__g_param_spec_string__major_subsystem_version_____crt_xl_start___gst_element_class_add_static_pad_template_wsprintfA__imp__g_strdup__imp__OutputDebugStringA@4___crt_xi_start_____chkstk_gst_pad_set_acceptcaps_function_g_list_length___crt_xi_end___g_return_if_fail_warning__imp__g_mutex_free_g_value_set_double_GetLastError@0_gst_debug_log__imp__DebugBreak@0_g_static_rec_mutex_lock_gst_buffer_copy_metadata_DirectSoundCaptureEnumerateW@8_VirtualQuery@12__head_libuser32_a_mingw_initltsdrot_force_gst_pad_get_caps_reffed__imp___iob__imp__gst_mini_object_unref_gst_type_register_static_full__imp___gst_debug_register_funcptr_GetModuleHandleA@4___register_frame_info__imp___gst_element_error_printf__fu13____gst_debug_min__imp__wsprintfA__bss_start____gst_debug_register_funcptr___RUNTIME_PSEUDO_RELOC_LIST_END____size_of_heap_commit___g_value_unset__imp__gst_caps_new_simple__fu5____gst_debug_min_MessageBoxA@16_gst_resource_error_quark_gst_caps_is_fixed__imp___errno__imp__g_once_init_leave__imp____gst_debug_min__imp__GetProcAddress@8__imp__gst_resource_error_quark_GetProcAddress@8___crt_xp_start____head_libgstinterfaces_0_10_0_dll_gst_implements_interface_get_type_gst_object_unref__imp__g_param_spec_double__imp__g_static_rec_mutex_unlock__imp__g_object_class_find_property__fu2____gst_debug_min___crt_xp_end___g_mutex_unlock__imp__g_value_get_string_gst_caps_get_structure__minor_os_version___g_object_class_find_property_g_once_init_leave__head_libmsvcrt_a__image_base____section_alignment____imp__gst_caps_to_string__imp__gst_object_unref_g_param_spec_string__imp__gst_pad_get_parent_element__imp__g_list_foreach_gst_property_probe_get_type_g_object_new_g_list_foreach__imp__gst_pad_get_caps_reffed__libole32_a_iname__IAT_end____fu15____gst_debug_min_gst_caps_to_string__fu11____gst_debug_min__RUNTIME_PSEUDO_RELOC_LIST___gst_audio_iec61937_frame_size__imp__GetDesktopWindow@0_gst_caps_can_intersect__imp__g_list_length__tls_start_libgstreamer_0_10_0_dll_iname__imp__gst_buffer_copy_metadata_gst_mini_object_unref_gst_plugin_desc__imp__gst_caps_subtract_g_mutex_new__data_end____imp__gst_caps_copy__imp__log10__CTOR_LIST____bss_end___DirectSoundCreate@12_gst_mixer_get_type_g_static_rec_mutex_unlock_gst_caps_replace__fu1____gst_debug_min___crt_xc_end____imp___swab__imp__gst_pad_template_get_caps__fu14____gst_debug_min__tls_index_gst_caps_unref__imp__g_static_rec_mutex_lock__imp__gst_caps_can_intersect_g_value_init_g_mutex_lock___crt_xc_start___DebugBreak@0_gst_mini_object_ref_OutputDebugStringA@4___CTOR_LIST____fu4____gst_debug_min_g_value_get_double__head_libdsound_a__imp__gst_util_uint64_scale_int__rt_psrelocs_size__imp__gst_element_class_set_details_simple__imp__MessageBoxA@16_gst_buffer_new_and_alloc__head_libgstreamer_0_10_0_dll__imp__g_log_gst_element_class_set_details_simple__imp____dllonexit__fu0____gst_debug_min__imp__gst_caps_ref_gst_util_uint64_scale_int_gst_ring_buffer_parse_caps_g_type_name_gst_element_message_full__file_alignment___g_value_array_new__imp__g_value_array_append_gst_caps_subtract__imp__g_return_if_fail_warning__imp__LeaveCriticalSection@4__imp__malloc__major_os_version____imp__CLSIDFromString@8__imp__g_object_unref__IAT_start____fu9____gst_debug_min_g_utf8_to_utf16__imp__gst_audio_iec61937_payload__tls_end__imp__g_mutex_unlock__imp__GetModuleHandleA@4_CLSIDFromString@8___dllonexit__imp__g_utf8_to_utf16__gst_debug_category_new__DTOR_LIST___EnterCriticalSection@4.weak.___deregister_frame_info.___gcc_register_frame__imp__DirectSoundCreate@12__imp__g_value_get_double__size_of_heap_reserve_____crt_xt_start____imp__g_value_init_g_once_init_enter___ImageBase__head_libole32_a__subsystem___g_object_class_install_property__imp__fflush__imp__g_type_name__imp__calloc__imp__g_value_take_string_libgobject_2_0_0_dll_iname__head_libgstaudio_0_10_0_dll__imp__gst_buffer_new_and_alloc__Jv_RegisterClasses__imp__g_value_set_string__imp__gst_mixer_track_get_type__fu3____gst_debug_min___tls_end___g_type_class_peek_parent_gst_pad_get_parent_element_g_value_get_string__imp__g_value_array_new__imp__gst_property_probe_get_type__head_libglib_2_0_0_dll__imp__g_intern_static_string_g_type_add_interface_static_mingw_initltssuo_force_gst_element_register_InitializeCriticalSection@4_g_value_take_string__imp__free__imp__g_type_class_peek_parent__imp__g_type_add_interface_static__imp__gst_pad_set_acceptcaps_function___deregister_frame_info__imp__gst_element_class_get_pad_template__major_image_version____fu6____gst_debug_min__loader_flags____libuser32_a_iname_g_value_array_append__head_libkernel32_a__fu8____gst_debug_min_directsound_debug__rt_psrelocs_end_g_str_equal_gst_mixer_track_get_type_gst_structure_get_boolean_g_atomic_pointer_get__minor_subsystem_version____minor_image_version___g_param_spec_double__imp__Sleep@4__imp__vfprintf_gst_element_class_get_pad_template_libglib_2_0_0_dll_iname__imp__g_malloc_DirectSoundEnumerateW@8_GetDesktopWindow@0_gst_pad_template_get_caps__imp__DirectSoundEnumerateW@8_mingw_initltsdyn_force__imp__g_value_set_double_TlsGetValue@4__imp__gst_type_register_static_full_g_strdup__imp__DeleteCriticalSection@4_LeaveCriticalSection@4__imp__g_once_init_enter__gst_element_error_printf__imp__gst_caps_is_fixed__imp__gst_implements_interface_get_type__imp__gst_element_message_full__imp__g_free__imp__gst_caps_get_structure_gst_caps_ref_g_value_set_string__RUNTIME_PSEUDO_RELOC_LIST_END___StringFromGUID2@12__libkernel32_a_iname___dyn_tls_init_callback_libgstaudio_0_10_0_dll_iname__imp__gst_audio_sink_get_type__imp___gst_debug_category_new_g_mutex_free__imp__DirectSoundCaptureEnumerateW@8__tls_used__imp__gst_mini_object_ref__imp__gst_caps_unref__head_libgobject_2_0_0_dll__imp__g_object_new___crt_xt_end____fu12____gst_debug_min__imp__g_str_equal_vfprintf__imp__EnterCriticalSection@4__imp__gst_caps_replace__imp__fwrite__imp__g_value_unsetdist/copy/tools/win-installer/PaxHeaders.26361/directsoundsink.patch0000644000175000017500000000012412233027260024202 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.621046948 exaile-3.3.2/tools/win-installer/directsoundsink.patch0000644000000000000000000003247312233027260023153 0ustar00rootroot00000000000000diff --git a/sys/directsound/Makefile.am b/sys/directsound/Makefile.am index b797551..4c1ba56 100644 --- a/sys/directsound/Makefile.am +++ b/sys/directsound/Makefile.am @@ -1,6 +1,9 @@ plugin_LTLIBRARIES = libgstdirectsoundsink.la -libgstdirectsoundsink_la_SOURCES = gstdirectsoundsink.c gstdirectsoundplugin.c +libgstdirectsoundsink_la_SOURCES = \ + gstdirectsound.c \ + gstdirectsoundsink.c \ + gstdirectsoundplugin.c libgstdirectsoundsink_la_CFLAGS = \ $(GST_PLUGINS_BASE_CFLAGS) \ $(GST_BASE_CFLAGS) \ @@ -17,4 +20,4 @@ if !GST_PLUGIN_BUILD_STATIC libgstdirectsoundsink_la_LIBTOOLFLAGS = --tag=disable-static endif -noinst_HEADERS = gstdirectsoundsink.h +noinst_HEADERS = gstdirectsound.h gstdirectsoundsink.h diff --git a/sys/directsound/gstdirectsoundplugin.c b/sys/directsound/gstdirectsoundplugin.c index 7eede97..bb51cbe 100644 --- a/sys/directsound/gstdirectsoundplugin.c +++ b/sys/directsound/gstdirectsoundplugin.c @@ -35,7 +35,7 @@ static gboolean plugin_init (GstPlugin * plugin) { - if (!gst_element_register (plugin, "directsoundsink", GST_RANK_PRIMARY, + if (!gst_element_register (plugin, "exailedirectsoundsink", GST_RANK_PRIMARY, GST_TYPE_DIRECTSOUND_SINK)) return FALSE; @@ -44,6 +44,6 @@ plugin_init (GstPlugin * plugin) GST_PLUGIN_DEFINE2 (GST_VERSION_MAJOR, GST_VERSION_MINOR, - directsound, - "Direct Sound plugin library", + exailedirectsound, + "Direct Sound plugin library (for Exaile)", plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) diff --git a/sys/directsound/gstdirectsoundsink.c b/sys/directsound/gstdirectsoundsink.c index 27576fa..f35a0a7 100644 --- a/sys/directsound/gstdirectsoundsink.c +++ b/sys/directsound/gstdirectsoundsink.c @@ -54,6 +54,7 @@ #include "gstdirectsoundsink.h" #include +#include #include @@ -98,6 +99,9 @@ static void gst_directsound_sink_implements_interface_init (GstImplementsInterfaceClass * iface); static void gst_directsound_sink_mixer_interface_init (GstMixerClass * iface); +static void +gst_directsound_sink_property_probe_interface_init (GstPropertyProbeInterface * + iface); static GstStaticPadTemplate directsoundsink_sink_factory = GST_STATIC_PAD_TEMPLATE ("sink", @@ -119,10 +123,12 @@ static GstStaticPadTemplate directsoundsink_sink_factory = enum { PROP_0, - PROP_VOLUME + PROP_VOLUME, + PROP_DEVICE, + PROP_DEVICE_NAME }; -GST_BOILERPLATE_FULL (GstDirectSoundSink, gst_directsound_sink, GstAudioSink, +GST_BOILERPLATE_FULL (GstExaileDirectSoundSink, gst_directsound_sink, GstAudioSink, GST_TYPE_AUDIO_SINK, gst_directsound_sink_interfaces_init); /* interfaces stuff */ @@ -140,18 +146,28 @@ gst_directsound_sink_interfaces_init (GType type) NULL, NULL, }; + + static const GInterfaceInfo probe_iface_info = { + (GInterfaceInitFunc) gst_directsound_sink_property_probe_interface_init, + NULL, + NULL, + }; g_type_add_interface_static (type, GST_TYPE_IMPLEMENTS_INTERFACE, &implements_interface_info); g_type_add_interface_static (type, GST_TYPE_MIXER, &mixer_interface_info); + g_type_add_interface_static (type, GST_TYPE_PROPERTY_PROBE, + &probe_iface_info); } static gboolean gst_directsound_sink_interface_supported (GstImplementsInterface * iface, GType iface_type) { - g_return_val_if_fail (iface_type == GST_TYPE_MIXER, FALSE); - + if (iface_type != GST_TYPE_MIXER && iface_type != GST_TYPE_PROPERTY_PROBE) { + return FALSE; + } + /* for the sake of this example, we'll always support it. However, normally, * you would check whether the device you've opened supports mixers. */ return TRUE; @@ -241,6 +257,98 @@ gst_directsound_sink_mixer_interface_init (GstMixerClass * iface) iface->get_volume = gst_directsound_sink_mixer_get_volume; } +static const GList * +probe_get_properties (GstPropertyProbe * probe) +{ + GObjectClass * klass = G_OBJECT_GET_CLASS (probe); + static GList * list = NULL; + + /* ###: from gstalsadeviceprobe.c + * well, not perfect, but better than no locking at all. + * In the worst case we leak a list node, so who cares? */ + GST_CLASS_LOCK (GST_OBJECT_CLASS (klass)); + + if (!list) { + GParamSpec * pspec; + + pspec = g_object_class_find_property (klass, "device"); + list = g_list_append (NULL, pspec); + } + + GST_CLASS_UNLOCK (GST_OBJECT_CLASS (klass)); + + return list; +} + +static void +probe_probe_property (GstPropertyProbe * probe, guint prop_id, + const GParamSpec * pspec) +{ + /* we do nothing in here. the actual "probe" occurs in get_values(), + * which is a common practice when not caching responses. + */ + + if (!g_str_equal (pspec->name, "device")) { + G_OBJECT_WARN_INVALID_PROPERTY_ID (probe, prop_id, pspec); + } +} + +static gboolean +probe_needs_probe (GstPropertyProbe * probe, guint prop_id, + const GParamSpec * pspec) +{ + /* don't cache probed data */ + return TRUE; +} + +static GValueArray * +probe_get_values (GstPropertyProbe * probe, guint prop_id, + const GParamSpec * pspec) +{ + GValueArray * array; + GValue value = { 0, }; + GList * l, * list; + gst_directsound_device * dev; + + if (!g_str_equal (pspec->name, "device")) { + G_OBJECT_WARN_INVALID_PROPERTY_ID (probe, prop_id, pspec); + return NULL; + } + + list = gst_directsound_playback_device_list (); + + if (list == NULL) { + GST_LOG_OBJECT (probe, "No devices found"); + return NULL; + } + + array = g_value_array_new (g_list_length (list)); + g_value_init (&value, G_TYPE_STRING); + for (l = list; l != NULL; l = l->next) { + dev = (gst_directsound_device *) l->data; + GST_LOG_OBJECT (probe, "Found device: id=[%s] name=[%s]", dev->id, dev->name); + g_value_take_string (&value, dev->id); + dev->id = NULL; + gst_directsound_device_free (dev); + l->data = NULL; + g_value_array_append (array, &value); + } + g_value_unset (&value); + g_list_free (list); + + return array; +} + +static void +gst_directsound_sink_property_probe_interface_init (GstPropertyProbeInterface * iface) +{ + iface->get_properties = probe_get_properties; + iface->probe_property = probe_probe_property; + iface->needs_probe = probe_needs_probe; + iface->get_values = probe_get_values; +} + + static void gst_directsound_sink_finalise (GObject * object) { @@ -253,10 +361,99 @@ gst_directsound_sink_finalise (GObject * object) g_list_free (dsoundsink->tracks); dsoundsink->tracks = NULL; } + + if (dsoundsink->device_id) { + g_free (dsoundsink->device_id); + dsoundsink->device_id = NULL; + } + + if (dsoundsink->device_name) { + g_free (dsoundsink->device_name); + dsoundsink->device_name = NULL; + } G_OBJECT_CLASS (parent_class)->finalize (object); } +static gboolean +device_set_default (GstDirectSoundSink * sink) +{ + GList * list; + gst_directsound_device * dev; + gboolean ret; + + /* obtain the device list */ + list = gst_directsound_playback_device_list (); + if (!list) + return FALSE; + + ret = FALSE; + + /* the first item is the default */ + if (g_list_length (list) >= 1) { + dev = (gst_directsound_device *) list->data; + + /* take the strings, no need to copy */ + sink->device_id = dev->id; + sink->device_name = dev->name; + dev->id = NULL; + dev->name = NULL; + + /* null out the item */ + gst_directsound_device_free (dev); + list->data = NULL; + + ret = TRUE; + } + + gst_directsound_device_list_free (list); + + return ret; +} + +static gboolean +device_get_name (GstDirectSoundSink * sink) +{ + GList * l, * list; + gst_directsound_device * dev; + gboolean ret; + + /* if there is no device set, then attempt to set up with the default, + * which will also grab the name in the process. + */ + if (!sink->device_id) + return device_set_default (sink); + + /* if we already have a name, free it */ + if (sink->device_name) { + g_free (sink->device_name); + sink->device_name = NULL; + } + + /* obtain the device list */ + list = gst_directsound_playback_device_list (); + if (!list) + return FALSE; + + ret = FALSE; + + /* look up the id */ + for (l = list; l != NULL; l = l->next) { + dev = (gst_directsound_device *) l->data; + if (g_str_equal (dev->id, sink->device_id)) { + /* take the string, no need to copy */ + sink->device_name = dev->name; + dev->name = NULL; + ret = TRUE; + break; + } + } + + gst_directsound_device_list_free (list); + + return ret; +} + static void gst_directsound_sink_base_init (gpointer g_class) { @@ -274,13 +471,13 @@ static void gst_directsound_sink_class_init (GstDirectSoundSinkClass * klass) { GObjectClass *gobject_class; - GstElementClass *gstelement_class; + /*GstElementClass *gstelement_class;*/ GstBaseSinkClass *gstbasesink_class; GstBaseAudioSinkClass *gstbaseaudiosink_class; GstAudioSinkClass *gstaudiosink_class; gobject_class = (GObjectClass *) klass; - gstelement_class = (GstElementClass *) klass; + /* gstelement_class = (GstElementClass *) klass; */ gstbasesink_class = (GstBaseSinkClass *) klass; gstbaseaudiosink_class = (GstBaseAudioSinkClass *) klass; gstaudiosink_class = (GstAudioSinkClass *) klass; @@ -315,6 +512,18 @@ gst_directsound_sink_class_init (GstDirectSoundSinkClass * klass) g_param_spec_double ("volume", "Volume", "Volume of this stream", 0.0, 1.0, 1.0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, + PROP_DEVICE, + g_param_spec_string ("device", "Device", + "DirectSound playback device as a GUID string", + NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, + PROP_DEVICE_NAME, + g_param_spec_string ("device-name", "Device name", + "Human-readable name of the audio device", + NULL, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); } static void @@ -340,6 +549,9 @@ gst_directsound_sink_init (GstDirectSoundSink * dsoundsink, dsoundsink->volume = 100; dsoundsink->dsound_lock = g_mutex_new (); dsoundsink->first_buffer_after_reset = FALSE; + + dsoundsink->device_id = NULL; + dsoundsink->device_name = NULL; gst_pad_set_acceptcaps_function (GST_BASE_SINK (dsoundsink)->sinkpad, GST_DEBUG_FUNCPTR (gst_directsound_sink_acceptcaps)); @@ -356,6 +568,17 @@ gst_directsound_sink_set_property (GObject * object, sink->volume = (int) (g_value_get_double (value) * 100); gst_directsound_sink_set_volume (sink); break; + case PROP_DEVICE: + if (sink->device_id) { + g_free (sink->device_id); + sink->device_id = NULL; + } + if (sink->device_name) { + g_free (sink->device_name); + sink->device_name = NULL; + } + sink->device_id = g_strdup (g_value_get_string (value)); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -372,6 +595,16 @@ gst_directsound_sink_get_property (GObject * object, case PROP_VOLUME: g_value_set_double (value, (double) sink->volume / 100.); break; + case PROP_DEVICE: + if (!sink->device_id) + device_set_default (sink); + g_value_set_string (value, sink->device_id); + break; + case PROP_DEVICE_NAME: + if (!sink->device_name) + device_get_name (sink); + g_value_set_string (value, sink->device_name); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -476,14 +709,23 @@ gst_directsound_sink_open (GstAudioSink * asink) { GstDirectSoundSink *dsoundsink = GST_DIRECTSOUND_SINK (asink); HRESULT hRes; + LPGUID lpGuid = NULL; + + if (dsoundsink->device_id) + lpGuid = gst_directsound_get_device_guid (dsoundsink->device_id); /* create and initialize a DirecSound object */ - if (FAILED (hRes = DirectSoundCreate (NULL, &dsoundsink->pDS, NULL))) { + if (FAILED (hRes = DirectSoundCreate (lpGuid, &dsoundsink->pDS, NULL))) { GST_ELEMENT_ERROR (dsoundsink, RESOURCE, OPEN_READ, ("gst_directsound_sink_open: DirectSoundCreate: %s", DXGetErrorString9 (hRes)), (NULL)); + if (lpGuid) + g_free (lpGuid); return FALSE; } + + if (lpGuid) + g_free (lpGuid); if (FAILED (hRes = IDirectSound_SetCooperativeLevel (dsoundsink->pDS, GetDesktopWindow (), DSSCL_PRIORITY))) { diff --git a/sys/directsound/gstdirectsoundsink.h b/sys/directsound/gstdirectsoundsink.h index 8bb10bf..32ee62e 100644 --- a/sys/directsound/gstdirectsoundsink.h +++ b/sys/directsound/gstdirectsoundsink.h @@ -32,13 +32,11 @@ #include #include #include +#include "gstdirectsound.h" + +#define GstDirectSoundSink GstExaileDirectSoundSink +#define GstDirectSoundSinkClass GstExaileDirectSoundSinkClass -#include -#include -#include -#include -#include -#include G_BEGIN_DECLS #define GST_TYPE_DIRECTSOUND_SINK (gst_directsound_sink_get_type()) @@ -77,6 +75,12 @@ struct _GstDirectSoundSink GList *tracks; GstCaps *cached_caps; + + /* current directSound device ID */ + gchar * device_id; + + /* current directSound device name */ + gchar * device_name; /* lock used to protect writes and resets */ GMutex *dsound_lock; dist/copy/tools/PaxHeaders.26361/ipshell0000644000175000017500000000012412233027260016544 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.257046937 exaile-3.3.2/tools/ipshell0000755000000000000000000000027112233027260015507 0ustar00rootroot00000000000000#!/usr/bin/env python import sys sys.path.insert(0, ".") from IPython.Shell import IPShellEmbed import exaile exaile.main() exaile = exaile.exaile IPShellEmbed()({'exaile': exaile}) dist/copy/PaxHeaders.26361/exaile.bat0000644000175000017500000000012412233027260015760 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.621046948 exaile-3.3.2/exaile.bat0000644000000000000000000001323012233027260014717 0ustar00rootroot00000000000000@echo off REM REM Win32 launch script for Exaile REM REM Since GStreamer SDK and OSSBuild are a bit difficult to work with, we REM go through and set things up for the user so they don't need to worry REM too much about PATH variables being set properly and other madness. REM REM Additionally, this script tries to be a bit more verbose and let the REM user know more about the errors that they are seeing, instead of just a REM stack trace. REM setlocal set EXAILE_CONSOLE=N set PYTHON_EXE=pythonw.exe if "%1" == "console" set EXAILE_CONSOLE=Y if "%1" == "console" shift REM If certain arguments are passed, we must start in a console or the user REM will be a bit confused... for %%I in (%*) DO ( if "%%I" == "--help" set EXAILE_CONSOLE=Y if "%%I" == "--debug" set EXAILE_CONSOLE=Y if "%%I" == "--version" set EXAILE_CONSOLE=Y ) if "%EXAILE_CONSOLE%" == "Y" set PYTHON_EXE=python.exe echo Detecting Exaile requirements (this may take a minute or two): REM Detect Python in the path for %%X in (%PYTHON_EXE%) do (set PYTHON_BIN=%%~$PATH:X) if defined PYTHON_BIN goto python_found REM No python in path, see if its in a default location. Prefer REM Python 2.7, since our installer ships with that as default set PYTHON_BIN=C:\Python27\%PYTHON_EXE% if exist %PYTHON_BIN% goto python_found set PYTHON_BIN=C:\Python26\%PYTHON_EXE% if not exist %PYTHON_BIN% goto nopython :python_found echo Python : %PYTHON_BIN% REM See if pygst *just works* set PYGST_BINDINGS=In python path %PYTHON_BIN% -c "import pygst;pygst.require('0.10');import gst" if %ERRORLEVEL% == 0 goto pygst_found REM Nope... detect GStreamer SDK set GST_VIA=environment set GST_SDK=N if defined GSTREAMER_SDK_ROOT_X86 set GST_SDK=%GSTREAMER_SDK_ROOT_X86% if defined GSTREAMER_SDK_ROOT_X64 set GST_SDK=%GSTREAMER_SDK_ROOT_X64% if not "%GST_SDK%" == "N" goto pygst_env_found REM For some reason the GStreamer SDK doesn't define the environment REM variables globally, so we just have to cheat if we can't do it REM the 'correct' way if exist C:\gstreamer-sdk\0.10\x86\bin goto found_pygst_x86_hardcoded if exist C:\gstreamer-sdk\0.10\x64\bin goto found_pygst_x64_hardcoded goto nogst :found_pygst_x86_hardcoded set GSTREAMER_SDK_ROOT_X86=C:\gstreamer-sdk\0.10\x86 set GST_SDK=%GSTREAMER_SDK_ROOT_X86% set GST_VIA=hardcoded path goto pygst_env_found :found_pygst_x64_hardcoded set GSTREAMER_SDK_ROOT_X64=C:\gstreamer-sdk\0.10\x64 set GST_SDK=%GSTREAMER_SDK_ROOT_X64% set GST_VIA=hardcoded path goto pygst_env_found :pygst_env_found echo GStreamer SDK Runtime : %GST_SDK% (via %GST_VIA%) REM REM Then try to setup the environment properly for GStreamer SDK REM -> Note that we put the GST path first, so that any needed DLLs REM are searched for there first, hopefully avoiding DLL hell REM set PATH=%GST_SDK%\bin;%PATH% set PYGST_BINDINGS=%GST_SDK%\lib\python2.7\site-packages if defined PYTHONPATH set PYTHONPATH=%PYGST_BINDINGS%;%PYTHONPATH% if not defined PYTHONPATH set PYTHONPATH=%PYGST_BINDINGS% %PYTHON_BIN% -c "import pygst;pygst.require('0.10');import gst" if not %ERRORLEVEL% == 0 goto badgst :pygst_found echo GStreamer Python Bindings : %PYGST_BINDINGS% REM Detect PyGTK. We do detection here since it may be in the GStreamer SDK %PYTHON_BIN% -c "import pygtk;pygtk.require('2.0');import gtk" if not %ERRORLEVEL% == 0 goto badgtk echo PyGTK : OK REM Detect Mutagen now %PYTHON_BIN% -c "import mutagen" 2> nul if not %ERRORLEVEL% == 0 goto badmutagen echo Mutagen : OK echo. echo Dependencies good, starting exaile. echo. goto start_exaile REM Various errors :nopython echo Python 2.7 was not detected. Please include the python directory in your echo PATH, or install it. You can download it at http://www.python.com/ echo. pause && goto end :nogst echo GStreamer SDK Runtime : not found echo. echo GStreamer SDK Runtime was not found. echo. echo You can download the GST SDK runtime at http://www.gstreamer.com/ echo. echo See %~dp0\README.Win32 for more information. echo. pause && goto end :badgst echo GStreamer Python Bindings : not found echo. echo The python bindings for GStreamer could not be imported. Please re-run the echo installer and ensure that the python bindings are selected for echo installation (they should be selected by default). echo. echo You can download the GST SDK runtime at http://www.gstreamer.com/ echo. echo See %~dp0\README.Win32 for more information. echo. pause && goto end :badgtk echo. echo PyGTK 2.x could not be imported. It is installed by default with the echo GStreamer SDK (select GTK Python Bindings), or you can use the echo PyGTK all-in-one installer from http://www.pygtk.org/ echo. echo Note that the PyGTK all-in-one installer is NOT compatible with echo the GStreamer SDK. echo. echo You can download the GST SDK runtime at http://www.gstreamer.com/ echo. echo See %~dp0\README.Win32 for more information. echo. pause && goto end :badmutagen echo. echo The Mutagen python module could not be imported. It can be downloaded echo from http://code.google.com/p/mutagen/ echo. echo See %~dp0\README.Win32 for more information. echo. pause && goto end :start_exaile pushd %~dp0 if "%EXAILE_CONSOLE%" == "Y" goto start_exaile_in_console start %PYTHON_BIN% exaile.py --startgui --no-dbus --no-hal %* popd goto end :start_exaile_in_console REM Note: Cannot use %* here because we use 'shift' above %PYTHON_BIN% exaile.py --startgui --no-dbus --no-hal %1 %2 %3 %4 %5 %6 %7 %8 %9 popd goto end :end endlocal dist/copy/PaxHeaders.26361/po0000644000175000017500000000013212233027261014362 xustar000000000000000030 mtime=1382821553.453046943 30 atime=1382821552.777046921 30 ctime=1382821553.453046943 exaile-3.3.2/po/0000755000000000000000000000000012233027261013400 5ustar00rootroot00000000000000dist/copy/po/PaxHeaders.26361/el.po0000644000175000017500000000012412233027260015377 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.017046929 exaile-3.3.2/po/el.po0000644000000000000000000034347212233027260014354 0ustar00rootroot00000000000000# Greek translation for exaile # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2012-08-22 09:02+0000\n" "Last-Translator: Filippos Kolyvas \n" "Language-Team: Greek \n" "Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-08-28 05:26+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "%d ημέρα, " msgstr[1] "%d ημέρες, " #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "%d ώρα, " msgstr[1] "%d ώρες, " #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "%d λεπτό, " msgstr[1] "%d λεπτά, " #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d δευτερόλεπτο" msgstr[1] "%d δευτερόλεπτα" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "%dd, " #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "%dh, " #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "%dm, " #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "%ds" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "%dd " #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "%d:%02d:%02d" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "%d:%02d" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "Ποτέ" #: ../xl/formatter.py:702 msgid "Today" msgstr "Σήμερα" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "Εχθές" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "Αποτυχία μετάβασης από 0.2.14" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "Χρήση: exaile [ΕΠΙΛΟΓΗ]... [URI]" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "Επιλογές" #: ../xl/main.py:421 msgid "Playback Options" msgstr "Επιλογές αναπαραγωγής" #: ../xl/main.py:423 msgid "Play the next track" msgstr "Αναπαραγωγή επόμενου κομματιού" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "Αναπαραγωγή προηγούμενου κομματιού" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "Διακοπή αναπαραγωγής" #: ../xl/main.py:429 msgid "Play" msgstr "Αναπαραγωγή" #: ../xl/main.py:431 msgid "Pause" msgstr "Αναπαραγωγή/Παύση" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "Παύση ή συνέχιση αναπαραγωγής" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "Τερματισμός αναπαραγωγής μετά το τρέχον κομμάτι" #: ../xl/main.py:440 msgid "Collection Options" msgstr "Επιλογές συλλογής" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "Τοποθεσία" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "Προσθήκη κομματιών από την ΤΟΠΟΘΕΣΙΑ στη συλλογή" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "Επιλογές της λίστας αναπαραγωγής" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "Εξαγωγή της τρέχουσας λίστας αναπαραγωγής σε τοποθεσία" #: ../xl/main.py:454 msgid "Track Options" msgstr "Επιλογές κομματιού" #: ../xl/main.py:456 msgid "Query player" msgstr "" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "" "Εμφάνιση ενός αναδυόμενου παραθύρου με τα στοιχεία του τρέχοντος κομματιού" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "Προβολή του τίτλου του τρέχοντος κομματιού" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "Προβολή του άλμπουμ του τρέχοντος κομματιού" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "Προβολή του καλλιτέχνη του τρέχοντος κομματιού" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "Προβολή της διάρκειας του τρέχοντος κομματιού" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "N" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "Ορισμός βαθμολογία για τρέχον κομμάτι N%" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "Πάρε τη βαθμολογία για τρέχοντος κομματιού" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "" #: ../xl/main.py:490 msgid "Volume Options" msgstr "Επιλογές έντασης" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "Αυξάνει την ένταση κατά N%" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "Μειώνει την ένταση κατά N%" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "Ενεργοποίηση ή απενεργοποίηση του ήχου" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "" #: ../xl/main.py:507 msgid "Other Options" msgstr "Άλλες επιλογές" #: ../xl/main.py:509 msgid "Start new instance" msgstr "Εκκίνηση νέου παραθύρου" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "Εμφάνισε αυτό το μήνυμα βοήθειας και κάνε έξοδο" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "Εμφάνισε την έκδοση του προγράμματος και κάνε έξοδο" #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "" "Εκκίνηση σε ασφαλή κατάσταση - χρήσιμη επιλογή αν αντιμετωπίζετε κάποιο " "πρόβλημα" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" "Εξαναγκασμός εισαγωγής παλιών δεδομένων από την έκδοση 0.2.x (Αντικαθιστά τα " "υπάρχοντα δεδομένα)" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "Μην εισάγετε παλιά δεδομένα από την έκδοση 0.2.x" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "ΚΑΤΑΛΟΓΟΣ" #: ../xl/main.py:536 msgid "Set data directory" msgstr "Ορισμός καταλόγου δεδομένων" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "ΕΝΟΤΗΤΑ" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "" #: ../xl/main.py:543 msgid "LEVEL" msgstr "ΕΠΙΠΕΔΟ" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "Προβολή επιλογών αποσφαλμάτωσης" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "" "Ενεργοποίηση μηνυμάτων αποσφαλμάτωσης του xl.event. Εκτυπώνει ΜΕΓΑΛΟ αριθμό " "μηνυμάτων" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:555 msgid "TYPE" msgstr "ΤΥΠΟΣ" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "Απενεργοποίηση υποστήριξης D-BUS" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "Απενεργοποίηση υποστήριξης HAL" #: ../xl/main.py:580 msgid "Entire Library" msgstr "Ολόκληρη η Βιβλιοθήκη" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "Τυχαία %d" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "Βαθμολογία > %d" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "Ετικέτες" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "" #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "Δεν έχετε ορίσει τοποθεσία αποθήκευσης της βάσης πληροφοριών μουσικής" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "Διάφοροι Καλλιτέχνες" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "Άγνωστο" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr " / " #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "%dk" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" "Η μορφή Vorbis είναι ανοικτό πρότυπο για κωδικοποίηση ήχου με απώλειες, " "υψηλό ρυθμό εξόδου και μικρότερο μέγεθος από το MP3." #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" "Η μορφή Free Lossless Audio Codec (FLAC) είναι ένα ανοικτό πρότυπο για " "κωδικοποίηση ήχου, το οποίο συμπιέζει χωρίς όμως να χάνει σε ποιότητα ήχου." #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "" #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "Αυτόματα" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "Προσαρμοσμένο" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "Δεν παίζει." #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" "κατάσταση: %(status)s, τίτλος: %(title)s, καλλιτέχνης: %(artist)s, άλμπουμ: " "%(album)s, διάρκεια: %(length)s, θέση: %(progress)s%% [%(position)s]" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "" #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "Δεν ξέρουμε πως να αποθηκεύσουμε αυτή τη ρύθμιση: " #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "Βρέθηκε άγνωστος τύπος ρύθμισης!" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "" #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "Λίστα αναπαραγωγής" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "Λίστα Αναπαραγωγής M3U" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "Λίστα Αναπαραγωγής PLS" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "" #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "Λίστα Αναπαραγωγής ASX" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "Λίστα Αναπαραγωγής XSPF" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "_Απενεργοποίηση τυχαίας σειράς" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "Τυχαία αναπαραγωγή _Τραγουδιών" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "Τυχαία αναπαραγωγή _Άλμπουμ" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "Απενεργοποίηση _επανάληψης" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "Επανάληψη _όλων" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "Επανάληψη _ενός" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "_Απενεργοποίηση δυναμικής λίστας" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "Δυναμική λίστα από παρόμοιους _καλλιτέχνες" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "δευτερόλεπτα" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "λεπτά" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "ώρες" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "ημέρες" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "εβδομάδες" #: ../xl/lyrics.py:305 msgid "Local" msgstr "Τοπικό" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "Τοποθέτηση στην σειρά αναπαραγωγής" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "Άνοιγμα καταλόγου" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "Μετακίνηση στον κάδο απορριμμάτων" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "Όνομα:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "Τυχαία διάταξη αποτελεσμάτων" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "" #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr "" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "Δεν αναπαράγεται" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "Μεταφορά" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "Σίγαση" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "%d%%" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "Μέγιστη ένταση" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" "$title\n" "του $artist\n" "από $album" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "Διάφορα" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "#" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "Αριθμός κομματιού" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "Τίτλος" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "Καλλιτέχνης:" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "Συνθέτης" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "Άλμπουμ" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "Διάρκεια" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "Δίσκος" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "Αριθμός δίσκου" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "Βαθμολογία" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "Ημερομηνία" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "Είδος μουσικής" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "Ρυθμός bit" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "Τοποθεσία" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "Όνομα αρχείου" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "Μετρητής εκτελέσεων" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "BPM" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "Τελευταία αναπαραγωγή" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "Βαθμολογία:" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "Τυχαία αναπαραγωγή" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "Επανάληψη" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "Δυναμικό" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "Τυχαία Επιλογή στην Λίστα" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "Νέα λίστα αναπαραγωγής" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "Μετονομασία" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "Διακοπή αναπαραγωγής μετά από αυτό το κομμάτι" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "Συνέχιση αναπαραγωγής μετά από αυτό το κομμάτι" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "Εισάγετε μια διεύθυνση URL για άνοιγμα" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "Άνοιγμα URL" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "Υποστηριζόμενοι Τύποι Αρχείων" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "Αρχεία Μουσικής" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "Αρχεία Λίστας Αναπαραγωγής" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "Όλα τα Αρχεία" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "Να αποθηκευθούν οι αλλαγές στο %s πριν κλείσει;" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "Οι αλλαγές σας θα χαθούν αν δεν τις αποθηκεύσετε" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "Κλείσιμο Χωρίς Αποθήκευση" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "" #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "Δε δώσατε όνομα για τη λίστα αναπαραγωγής" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "" #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "Κλείσιμο καρτέλας" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "προφόρτωση: %d%%..." #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "Συνέχεια αναπαραγωγής" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "Παύση αναπαραγωγής" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "Έναρξη αναπαραγωγής" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "Αναπαραγωγή Μουσικής Exaile" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "_Νέα λίστα κομματιών" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "Άνοιγμα _URL" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "Άνοιγμα καταλόγων" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "_Εξαγωγή τρέχουσας λίστας αναπαραγωγής" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "Επανεκκίνηση" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "_Συλλογή" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "_Σειρά αναπαραγωγής" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "_Εξώφυλλα" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "_Στήλες" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "Ακύρωση" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "Γνήσιο άλμπουμ" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "Στιχουργός" #: ../xlgui/properties.py:54 msgid "Website" msgstr "Ιστοσελίδα" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "Εξώφυλλο" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "Αρχικός καλλιτέχνης" #: ../xlgui/properties.py:57 msgid "Author" msgstr "Δημιουργός" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "Αρχική ημερομηνία" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "Ενορχηστρωτής" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "Καλλιτέχνης" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "Πνευματικά Δικαιώματα" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "Κομμάτι" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "Έκδοση" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "ISRC" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "Σύνθεση από" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "Οργανισμός" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "Τροποποιήθηκε" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "Προβολή Εξώφυλλου" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "Λήψη Εξώφυλλου" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "Αφαίρεση Εξώφυλλου" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "Εξώφυλλο για %s" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "Δεν βρέθηκαν εξώφυλλα." #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "Εικόνα" #: ../xlgui/devices.py:81 msgid "Device" msgstr "Συσκευή" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "Οδηγός υλικού" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "Σάρωση συλλογής..." #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "Ανίχνευση %s..." #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "Ρυθμίσεις" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "Νέος σταθμός" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "Νέα έξυπνη λίστα αναπαραγωγής" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "Επεξεργασία" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "Εξαγωγή Λίστας Αναπαραγωγής" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "Διαγραφή Λίστας Αναπαραγωγής" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "" "Είστε σίγουροι ότι θέλετε να διαγραφεί για πάντα η επιλεγμένη λίστα " "αναπαραγωγής;" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "Εισάγετε το νέο όνομα της λίστας αναπαραγωγής" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "Μετονομασία Λίστας Αναπαραγωγής" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "Αφαίρεση" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "Λίστα αναπαραγωγής %d" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "Προσθήκη ενός καταλόγου" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "Ο κατάλογος δεν προστέθηκε." #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "" #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "" #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "Προσθήκη ραδιοφωνικού σταθμού" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "Διεύθυνση URL:" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "Αποθηκευμένοι Σταθμοί" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "Ροές Ραδιοφώνου" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "Ανανέωση" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "Εισάγετε το όνομα της νέας λίστας αναπαραγωγής" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "Είδος - Καλλιτέχνης" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "Είδος - Άλμπουμ" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "Επανασάρωση συλλογής" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "Μέγεθος" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s KB" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "and" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "είναι" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "δεν είναι" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "περιέχει" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "δεν περιέχει" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "τουλάχιστον" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "το πολύ" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "πριν από" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "μετά από" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "μεταξύ" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "Χρονιά" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "%(first)s και %(second)s" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "Έξυπνες Λίστες" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "Προσαρμοσμένες Λίστες Κομματιών" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "Προσθήκη Έξυπνης Λίστας" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "Επεξεργασία Έξυπνης Λίστας" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "Αναπαραγωγή" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "Επεκτάσεις" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "Δεν ήταν δυνατή η φόρτωση πληροφορίας για το πρόσθετο!" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "" msgstr[1] "" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "Δεν μπορείτε να απενεργοποιήσετε το πρόσθετο!" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "Δεν μπορείτε να ενεργοποιήσετε το πρόσθετο!" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "Επιλέξτε μία πρόσθετη λειτουργία" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "Η εγκατάσταση της πρόσθετης λειτουργίας απέτυχε!" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "Εξώφυλλα" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "Εμφάνιση" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "Συλλογή" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "Επαναφορά αρχικών ρυθμίσεων" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "Επανεκκίνηση του Exaile;" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "Συντόμευση" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "Λίστες αναπαραγωγής" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "Σχετικά με το Exaile" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "© 2009-2012" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "Εύρεση Εξώφυλλων" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "_Αρχείο" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "_Επεξεργασία" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "_Προβολή" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "_Εργαλεία" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "_Βοήθεια" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "Προηγούμενο κομμάτι" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "Επόμενο κομμάτι" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0:00 / 0:00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "ab → A_b" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "_Προηγούμενο" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "_Επόμενο" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "Περιγραφή:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "Διαχειριστής Συλλογής" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "Ράδιο" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "Εισαγωγή CD" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "Προσθήκη Σταθμού" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "Αρχεία" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "Ανανέωση περιεχομένων καταλόγου" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "Αρχικός κατάλογος" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "Αναζήτηση: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "Καθαρισμός πεδίου αναζήτησης" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "Η συλλογή είναι άδεια." #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "Προσθήκη μουσικής" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "Χρήση εξώφυλλων από τα τοπικά αρχεία" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "(σύρετε με το ποντίκι για αναδιάταξη)" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "" #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "Κανονικό" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "Επέκταση" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "Ενεργό" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "Δεν έχει επιλεγεί πρόσθετο" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "Εγκατεστημένες Επεκτάσεις" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "Συγγραφείς:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "Έκδοση:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "Εγκατάσταση" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "Δεν Εχει Επιλεγεί Κάποια Επέκταση" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "Διαθέσιμες Επεκτάσεις" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "Εγκατάσταση Ενημερώσεων" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "Ενημερώσεις" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "Εγκατάσταση αρχείου πρόσθετης λειτουργίας" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "Εμφάνιση εικονιδίου συστήματος" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "Ελαχιστοποίηση στη μπάρα εργασιών" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "Εμφάνισε την αρχική οθόνη κατα το ξεκίνημα" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "Αριστερά" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "Δεξιά" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "Επάνω" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "Κάτω" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "Προτιμήσεις" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "Διαχειριστής Συσκευών" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "Προσθήκη συσκευής" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "Τύπος συσκευής:" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "Ανιχνευμένες συσκευές:" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "" #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "Διαχειριστής σειράς αναπαραγωγής" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "" #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "Ξυπνητήρι" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "" #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "Αναζήτηση Shoutcast" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "Αποτελέσματα Αναζήτησης" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "Αναζήτηση" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "" #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "Οποιοδήποτε" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "AudioScrobbler" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "Ισοσταθμιστής ήχου" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "Τερματισμός μετά την αναπαραγωγή" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "Προγραμματισμένος τερματισμός" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "Υπολογιστής θα κλείσει στο τέλος της αναπαραγωγής." #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "Άμεσος τερματισμός λειτουργίας" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "Ο υπολογιστής θα κλείσει σε %d δευτερόλεπτα." #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "Ο τερματισμός απέτυχε" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "%(title)s" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "από %(artist)s" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "από %(album)s" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "Κονσόλα IPython - Exaile" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "Εμφάνιση κονσόλας IPython" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "Κονσόλα IPython" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "Ειδοποίηση" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "Εισαγωγή CD..." #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "Δίσκος ήχου" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "CD" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "Αριθμός κομματιού" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "Αριθμός δίσκου" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "Μετρητής εκτελέσεων" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "Καλλιτέχνης: " #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" "Γνωρίζατε οτι...\n" "\n" "%s" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "Μικροσκοπική κατάσταση λειτουργίας" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "$tracknumber - $title" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "$title από $artist" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "$title ($__length)" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "Προηγούμενο" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "Μετάβαση στο προηγούμενο κομμάτι" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "Προηγούμενο κομμάτι" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "Επόμενο" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "Μετάβαση στο επόμενο κομμάτι" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "Επόμενο κομμάτι" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "Αναπαραγωγή/Παύση" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "Έναρξη, παύση ή συνέχιση της αναπαραγωγής" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "Έναρξη αναπαραγωγής" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "Συνέχιση αναπαραγωγής" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "Παύση αναπαραγωγής" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "Διακοπή" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "Διακοπή αναπαραγωγής" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "Συνέχιση της αναπαραγωγής μετά το τρέχον κομμάτι" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "Ένταση" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "Αλλαγή έντασης" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "Επαναφορά" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "Επαναφορά του κύριου παραθύρου" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "Επαναφορά κύριου παραθύρου" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "$title ($current_time / $total_time)" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "Κουμπί προόδου" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "Γραμμή προόδου" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "Ομάδα" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "ReplayGain" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "Έτοιμο" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "" #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "Εμφάνιση στην οθόνη" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "Podcasts" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "Φορητή εκπομπή (Podcast)" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "Ανανέωση φορητής εκπομπής (Podcast)" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "Διαγραφή" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "Γίνεται φόρτωση %s..." #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "" #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "Περιεχόμενο" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "Σελιδοδείκτης" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "Διακομιστής DAAP" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "Χειροκίνητα..." #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "Εισάγετε την διεύθυνση IP και τη θύρα για τον διαμοιρασμό" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "Εισάγετε την διεύθυνση IP και τη θύρα." #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "Χρώμα βάσης:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "Χρώμα βάσης" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "Τοποθεσία αποθήκευσης:" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "Κλειδί API:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "Δευτέρα" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "Τρίτη" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "Τετάρτη" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "Πέμπτη" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "Παρασκευή" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "Σάββατο" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "Κυριακή" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "Χρήση Σβησίματος" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "Αύξηση:" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "Κωδικός:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "Όνομα Χρήστη:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "+12 dB" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "0" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "-24 dB" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "29" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "59" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "119" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "237" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "474" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "947" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "1.9K" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "3.8K" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "7.5K" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "15K" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "Εικονίδια" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "Περιεχόμενο" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "Γραμματοσειρά:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "Χρώμα Φόντου:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "Μόνο καλλιτέχνης:" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "Μόνο άλμπουμ:" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "Ogg Vorbis" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "FLAC" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "AAC" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "MP3 (VBR)" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "MP3 (CBR)" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "WavPack" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "Στοιχεία ελέγχου" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "Πάντα στην κορυφή" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "Πλήρης" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "Απλή" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "Αποτελέσματα:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "Προχωρημένες Ρυθμίσεις" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "Προσθήκη φορητής εκπομπής" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "Εικονοστοιχεία" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "Μέγεθος:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "ms" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "Επάνω αριστερά" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "Επάνω δεξιά" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "Κάτω αριστερά" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "Κάτω δεξιά" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "Προσθήκη" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "Αναπαραγωγή" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "Εγγραφείτε για το Last.fm" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "Όνομα εξυπηρετητή:" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "Θύρα:" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "Τρέχον τραγούδι" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "Ραδιόφωνο Shoutcast" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "XKeys" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "Librivox" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "Συσκευές" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "Αναπαραγωγή CD" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "A-B Επανάληψη" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "Jamendo" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "Υποστήριξη iPod" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "Καραόκε" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" "Προβολή διαφόρων πληροφοριών για το τρέχον κομμάτι.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "Wiki στίχων" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" #~ msgid "Clear" #~ msgstr "Καθαρισμός" #~ msgid "Close" #~ msgstr "Κλείσιμο" #~ msgid "Close tab" #~ msgstr "Κλείσιμο καρτέλας" #~ msgid "Export as..." #~ msgstr "Εξαγωγή ως..." #~ msgid "%d KB" #~ msgstr "%d KB" #~ msgid "© 2009-2010" #~ msgstr "© 2009-2010" #~ msgid "GNOME" #~ msgstr "GNOME" #~ msgid "ALSA" #~ msgstr "ALSA" #~ msgid "OSS" #~ msgstr "OSS" #~ msgid "PulseAudio" #~ msgstr "PulseAudio" #~ msgid "JACK" #~ msgstr "JACK" #~ msgid "AWN" #~ msgstr "AWN" #~ msgctxt "yes" #~ msgid "Monday" #~ msgstr "Δευτέρα" #~ msgctxt "yes" #~ msgid "Tuesday" #~ msgstr "Τρίτη" #~ msgctxt "yes" #~ msgid "Wednesday" #~ msgstr "Τετάρτη" #~ msgctxt "yes" #~ msgid "Thursday" #~ msgstr "Πέμπτη" #~ msgctxt "yes" #~ msgid "Friday" #~ msgstr "Παρασκευή" #~ msgctxt "yes" #~ msgid "Saturday" #~ msgstr "Σάββατο" #~ msgctxt "yes" #~ msgid "Sunday" #~ msgstr "Κυριακή" #~ msgid "Awn" #~ msgstr "Awn" #~ msgid "General" #~ msgstr "Γενικές" #~ msgid "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgstr "" #~ "Μετακινήστε το παράθυρο OSD στο σημείο που θέλετε να εμφανίζεται" #~ msgid "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "Year - Artist\n" #~ "Year - Album\n" #~ "Artist - Year - Album" #~ msgstr "" #~ "Καλλιτέχνης\n" #~ "Άλμπουμ\n" #~ "Είδος - Καλλιτέχνης\n" #~ "Είδος - Άλμπουμ\n" #~ "Έτος - Καλλιτέχνης\n" #~ "Έτος - Άλμπουμ\n" #~ "Καλλιτέχνης - Έτος - Άλμπουμ" #~ msgid "Autosize" #~ msgstr "Αυτόματο μέγεθος" #~ msgid "New Search" #~ msgstr "Νέα αναζήτηση" #~ msgid "Popup" #~ msgstr "Αναδυόμενο (Popup)" #~ msgid "Resizable" #~ msgstr "Δυνατότητα αλλαγής μεγέθους" #~ msgid "Start" #~ msgstr "Έναρξη" #~ msgid "Stopped" #~ msgstr "Σταματημένο" #~ msgid "Stop Playback" #~ msgstr "Σταμάτημα Αναπαραγωγής" #~ msgid "Text Font:" #~ msgstr "Γραμματοσειρά Κειμένου:" #~ msgid "Text Color" #~ msgstr "Χρώμα Κειμένου" #~ msgid "_Close" #~ msgstr "_Κλείσιμο" #~ msgid "Window Height:" #~ msgstr "Ύψος Παραθύρου" #~ msgid "Window Width:" #~ msgstr "Πλάτος Παραθύρου" #~ msgid "Open" #~ msgstr "Άνοιγμα" #~ msgid "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgstr "" #~ "{title}\n" #~ "{artist}\n" #~ "από {album} - {length}" #~ msgid "Vol:" #~ msgstr "Ένταση:" #~ msgid "Playing %s" #~ msgstr "Παίζει %s" #~ msgid "Set rating for current song" #~ msgstr "Ορισμός βαθμολογίας για το τρέχον αρχείο μουσικής" #~ msgid " New song, fetching cover." #~ msgstr " Νέο αρχείο μουσικής, αναζήτηση εξώφυλλου." #~ msgid "Toggle: Stop after selected track" #~ msgstr "Toggle: Διακοπή αναπαραγωγής μετά το επιλεγμένο αρχείο μουσικής" #~ msgid "Show a popup of the currently playing track" #~ msgstr "Προβολή αναδυόμενου παραθύρου με το κομμάτι που αναπαράγεται" #~ msgid "Plugin archive contains an unsafe path" #~ msgstr "Η λίστα επεκτάσεων περιέχει ένα μη ασφαλή κατάλογο" #~ msgid " songs" #~ msgstr " τραγούδια" #~ msgid "0:00" #~ msgstr "0:00" #~ msgid "File Type" #~ msgstr "File Type" #~ msgid "Extension" #~ msgstr "Επέκταση" #~ msgid "No covers found" #~ msgstr "Δε βρέθηκαν εξώφυλλα" #~ msgid "Choose a file to open" #~ msgstr "Επιλέξτε ένα αρχείο για άνοιγμα" #~ msgid "Add to Playlist" #~ msgstr "Προσθήκη στη Λίστα Αναπαραγωγής" #~ msgid "Add Playlist" #~ msgstr "Προσθήκη Λίστας Αναπαραγωγής" #~ msgid "Select File Type (By Extension)" #~ msgstr "Επιλογή Τύπου Αρχείων (Επέκτασης Ονόματος)" #~ msgid "from %s" #~ msgstr "από το άλμπουμ %s" #~ msgid "by %s" #~ msgstr "από %s" #~ msgid "%d covers to fetch" #~ msgstr "%d εξώφυλλα προς λήψη" #~ msgid "Enter the search text" #~ msgstr "Εισάγετε το κείμενο προς αναζήτηση" #~ msgid "Export" #~ msgstr "Εξαγωγή" #~ msgid "Quit" #~ msgstr "Τερματισμός" #~ msgid "Add a directory" #~ msgstr "Προσθήκη ενός καταλόγου" #~ msgid " + " #~ msgstr " + " #~ msgid " - " #~ msgstr " - " #~ msgid "..." #~ msgstr "..." #~ msgid "Page 1" #~ msgstr "Σελίδα 1" #~ msgid "0/0 tracks" #~ msgstr "0/0 κομμάτια" #~ msgid "Add device" #~ msgstr "Προσθήκη συσκευής" #~ msgid "Opacity Level:" #~ msgstr "Βαθμός Αδιαφάνειας:" #~ msgid "Loved Tracks" #~ msgstr "Αγαπημένα Κομμάτια" #~ msgid "LastFM Radio" #~ msgstr "Ραδιόφωνο LastFM" #~ msgid "Clear Playlist" #~ msgstr "Εκκαθάριση Λίστας Αναπαραγωγής" #~ msgid "Exaile" #~ msgstr "Exaile" #~ msgid "Location:" #~ msgstr "Τοποθεσία:" #~ msgid "Search:" #~ msgstr "Αναζήτηση:" #~ msgid "Alarm Days:" #~ msgstr "Ημέρες Αφύπνισης:" #~ msgid "Bitrate:" #~ msgstr "Ρυθμός δεδομένων:" #~ msgid "Toggle Play or Pause" #~ msgstr "Αναπαραγωγή ή Παύση" #~ msgid "Get rating for current song" #~ msgstr "Ανίχνευση βαθμολογίας για το τρέχον κομμάτι" #~ msgid "order must be a list or tuple" #~ msgstr "η σειρά πρέπει να είναι λίστα ή tuple" #~ msgid "Choose a file" #~ msgstr "Επιλογή ενός αρχείου" #~ msgid "Restart Playlist" #~ msgstr "Επανεκκίνηση Λίστας Κομματιών" #~ msgid "Buffering: 100%..." #~ msgstr "Προφόρτωση: 100%..." #~ msgid "Number of Plays" #~ msgstr "Αριθμός Εκτελέσεων" #~ msgid "Recommended" #~ msgstr "Συνιστώμενα Κομμάτια" #~ msgid "Neighbourhood" #~ msgstr "Γειτονικοί Ακροατές" #~ msgid "Alarm:" #~ msgstr "Αφύπνιση:" #~ msgid "Alarm Name:" #~ msgstr "Όνομα Αφύπνισης:" #~ msgid "Alarm Time:" #~ msgstr "Ώρα Αφύπνισης:" #~ msgid "Maximum Volume:" #~ msgstr "Μέγιστη Ένταση:" #~ msgid "Name - Time" #~ msgstr "Όνομα - Ώρα" #~ msgid "Minimum Volume:" #~ msgstr "Ελάχιστη Ένταση:" #~ msgid "Enable Fading" #~ msgstr "Ενεργοποίηση Σβησίματος" #~ msgid "Fading:" #~ msgstr "Σβήσιμο:" #~ msgid "Show OSD on track change" #~ msgstr "Προβολή OSD κατά την αλλαγή κομματιού" #~ msgid "Print the position inside the current track as time" #~ msgstr "Προβολή αναπαραχθέντος χρόνου στο τρέχον κομμάτι" #~ msgid "Print the progress inside the current track as percentage" #~ msgstr "Προβολή αναπαραχθέντος ποσοστού στο τρέχον κομμάτι" #~ msgid "Decreases the volume by VOL%" #~ msgstr "Μειώνει την ένταση κατα VOL%" #~ msgid "Increases the volume by VOL%" #~ msgstr "Αυξάνει την ένταση κατα VOL%" #~ msgid "No track" #~ msgstr "Κανένα κομμάτι" #~ msgid "%(minutes)d:%(seconds)02d" #~ msgstr "%(minutes)d:%(seconds)02d" #~ msgid "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager" #~ msgstr "" #~ "Mathias Brodala\n" #~ " \n" #~ " Διαχειριστής μετάφρασης" dist/copy/po/PaxHeaders.26361/eo.po0000644000175000017500000000012312233027260015401 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 29 ctime=1382821553.05304693 exaile-3.3.2/po/eo.po0000644000000000000000000031021612233027260014345 0ustar00rootroot00000000000000# Esperanto translation for exaile # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2012-07-29 07:12+0000\n" "Last-Translator: Dustin Spicuzza \n" "Language-Team: Esperanto \n" "Language: eo\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-08-28 05:25+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d sekundo" msgstr[1] "%d sekundoj" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "" #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "" #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "" #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "" #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "%d:%02d" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "Neniam" #: ../xl/formatter.py:702 msgid "Today" msgstr "Hodiaŭ" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "Hieraŭ" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "Migrigo de 0.2.14 fiaskis" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "Uzado: exaile [OPCIO]... [URI]" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "Opcioj" #: ../xl/main.py:421 msgid "Playback Options" msgstr "Reproduktadaj opcioj" #: ../xl/main.py:423 msgid "Play the next track" msgstr "Ludu la sekvan trakon" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "Ludu la antaŭan trakon" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "Haltigu reproduktadon" #: ../xl/main.py:429 msgid "Play" msgstr "Ludi" #: ../xl/main.py:431 msgid "Pause" msgstr "Paŭzu" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "Paŭzu aŭ daŭrigu reproduktadon" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "Halti la reproduktadon post aktuala trako" #: ../xl/main.py:440 msgid "Collection Options" msgstr "Ludlistaj opcioj" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "DOSIERUJO" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "Aldoni trakojn de DOSIERUJO al la ludlisto" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:454 msgid "Track Options" msgstr "Trakaj opcioj" #: ../xl/main.py:456 msgid "Query player" msgstr "Informpetaj ludilo" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "Montri ŝprucfenestron pri datumoj de la aktuala trako" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "Montru la titolon de la nuna trako" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "Montru la albumon de la nuna trako" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "Montru la artiston de la nuna trako" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "Montru la longecon de la nuna trako" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "N" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "Agordu pritakson por aktuala trako al N%" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "Obtenu pritakson por aktuala trako" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "Montru la aktualan reproduktadlokon kiel tempo" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "Montru la aktualan reproduktadplenumon kiel elcento" #: ../xl/main.py:490 msgid "Volume Options" msgstr "Sonfortecaj opcioj" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "Plialtigu la sonfortecon je N%" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "Malplialtigu la sonfortecon je N%" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "Silentigu aŭ laŭtigu sonfortecon" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "Montru la aktualan sonfortecelcenton" #: ../xl/main.py:507 msgid "Other Options" msgstr "Aliaj agordoj" #: ../xl/main.py:509 msgid "Start new instance" msgstr "Ruli novan ekzempleron" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "Montri ĉi tiun helpmesaĝon kaj eliri" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "Montru nombrversion de la programaro kaj eliru" #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "Rulu minimumigite (al la breto, se ebla)" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "Ŝaltu montreblecon de la GUI (se ebla)" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "Rulu en sendanĝera reĝimo – kelkfoje utile se vi renkontas problemojn" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" "Perfortu importadon de malnovaj datumoj de versio 0.2.x (skribu super " "aktualaj datumoj)" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "Ne importu malnovajn datumojn de versio 0.2.x" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "Kreu kontrolajn opciojn, kiel --play, kiu rulas Ekzailon se ne rulis" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "Evoluigantaj / sencimigaj opcioj" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "DOSIERUJO" #: ../xl/main.py:536 msgid "Set data directory" msgstr "Elekti datumdosieron" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "MODULO" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "" #: ../xl/main.py:543 msgid "LEVEL" msgstr "NIVELO" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "Montru sencimigan eligon" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "Ŝalti sencimigon de xl.event. Provokas MULTAN eligon." #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:555 msgid "TYPE" msgstr "" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "Malpliigi kvanton da eligo" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "Malŝalti D-Bus-subtenon" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "Elŝalti HAL-subtenon" #: ../xl/main.py:580 msgid "Entire Library" msgstr "Tuta muzik-kolekto" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "Hazarda %d" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "Takso > %d" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "" #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "Vi ne indikis lokon por konservi la datumbazon" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "Diversaj artistoj" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "Nekonate" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr "" #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" "Vorbis estas malfermitkoda, perda sonkodero kun altkvalita kvalito je grando " "malpli granda ol MP3." #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" "Free Lossless Audio Codec (FLAC) estas malfermitkoda sonkodeko, kiu densigas " "sed ne malaltigas sonkvaliton." #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" "Komerca perda sonformo de Apple, kiu donas pli bonan sonkvaliton ol MP3 je " "malpli alta bitrapido." #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" "Malfermitkoda kaj pli maljuna, sed ankaŭ populara, perda sonformo. VBR donas " "pli altan kvaliton ol CBR, sed povas esti malkongrua kun kelkaj ludiloj." #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" "Malfermitkoda kaj pli maljuna, sed ankaŭ populara, perda sonformo. CBR donas " "malpli altan kvaliton ol VBR, sed estas kongrua kun ĉiuj ludiloj." #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "Tre rapida senperda sonformo kun bona densigo." #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "Aŭtomata" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "Propra" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "" #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "" #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "Ni ne scias kiel stoki tiun tipon da agordoj: " #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "Nekonata tipo da agordoj trovita!" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "" #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "M3U-ludlisto" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "PSL-ludlisto" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "" #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "ASX-ludlisto" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "XSPF-ludlisto" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "sekundoj" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "minutoj" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "horoj" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "tagoj" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "semajnoj" #: ../xl/lyrics.py:305 msgid "Local" msgstr "" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "Aldoni post kurantaj" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "Nomo:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "Kongruigi iun ajn kriterion" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "Limigi al: " #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr "" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "Neleganta" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "#" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "Kantnumero" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "Titolo" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "Artisto" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "Verkisto" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "Albumo" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "Daŭro" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "Disko" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "Disknumero" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "Takso" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "Dato" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "Kategorio" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "Bitrapido" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "Loko" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "Dosiernomo" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "Ludnombrilo" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "pulsoj minute" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "Miksu" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "Ripeti" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "Nova ludlisto" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "Alinomi" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "Tajpu la malfermendan URL-on" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "Malfermi URL" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "Muzikdosieroj" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "Kantaraj dosieroj" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "Ĉiuj dosieroj" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "Ĉu konservi ŝanĝojn de %s antaŭ ol fermi?" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "Viaj ŝanĝoj perdiĝos, se vi ne konservos ilin" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "Fermi sen konservi" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "" #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "Vi devas doni nomon al via kantaro" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "" #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "Fermi langeton" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "Bufrado: %d%%…" #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "Muzik-programo Ekzajlo" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "Malfermi _URL-on" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "_Kolumnoj" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "Rezigni" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "" #: ../xlgui/properties.py:54 msgid "Website" msgstr "Retejo" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "" #: ../xlgui/properties.py:57 msgid "Author" msgstr "Aŭtoro" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "Kopirajto" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "Montri kovrilon" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "Preniri kovrilojn" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "Forigi kovrilon" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "" #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "" #: ../xlgui/devices.py:81 msgid "Device" msgstr "" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "Traridargado de la kolekto..." #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "" #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "Atendovico" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "Atendoviceroj" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "Redakti" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "Forigi ludliston" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "Ĉu vi vere volas forviŝi la elektitan kantaron por ĉiam?" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "Enigu la novan nomon de la ludlisto" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "Alinomi kantaron" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "Forigi" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "Ludlisto %d" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "" #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "Ŝarganta fluojn…" #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "Konservitaj stacioj" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "Radiofluoj" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "Aktualigi" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "Nomu tiun novan kantaron" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "Grando" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s kB" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "kaj" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "estas" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "ne estas" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "enhavas" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "ne enhavas" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "almenaŭ" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "maksimume" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "antaŭ" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "post" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "inter" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "Jaro" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "Inteligentaj ludlistoj" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "Propraj kantaroj" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "Aldonu inteligentan ludliston" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "Redaktu inteligentan ludliston" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "Kromprogramoj" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "" msgstr[1] "" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "Arĥivoj de kromprogramoj" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "Kolekto" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "Ludlistoj" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "Pri Exaile" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "Trovi kovrilojn" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "_Dosiero" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "_Redakti" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "_Vidi" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "_Helpo" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "Antaŭa kanto" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "Sekva trako" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0:00 / 0:00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "Priskribo:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "Kolekto-administrilo" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "Radio" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "Aldoni stacion" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "Dosieroj" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "Lasta vizitita dosierujo" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "Sekva vizitota dosierujo" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "Hejma dosiero" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "Serĉi: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "" #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "(trenu por reorgidi)" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "Malfermi lastajn ludlistojn je lanĉo" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "" #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "Kromprogramo" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "Ŝaltita" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "Instalitaj kromprogramoj" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "Aŭtoroj:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "Versio:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "Instali" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "Elektu kromprogramon" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "Disponeblaj kromprogramoj" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "Instali ĝisdatigojn" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "Ĝisdatigoj" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "Montri piktogramon sur la pleto" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "Montri salutŝildon ĉe startigo" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "Agordaĵoj" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "Aparata administrilo" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "Detektitaj aparatoj" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "" #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "" #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "Vekhorloĝo" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "" #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "Enigu serĉajn ŝlosilvortoj" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "Serĉi" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "" #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "de %(artist)s" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "el %(album)s" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" "de %(artist)s\n" "el %(album)s" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "" #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "Antaŭen" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "Sekva" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "Haltigi" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "" #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "Forigi" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "" #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "" #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "" #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "" #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "Lundo" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "Mardo" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "Merkredo" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "Ĵaŭdo" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "Vendredo" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "Sabato" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "Dimanĉo" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "Uzi velkofinon" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "Pasvorto:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "Uzantonomo:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "0" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "Fonkoloro:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "Altnivele" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "Supra maldekstra" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "Supra dekstra" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "Malsupra maldekstra" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "Malsupra dekstra" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "Aldoni" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" #~ msgid "Close tab" #~ msgstr "Fermi la langeton" #~ msgid "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "Year - Artist\n" #~ "Year - Album\n" #~ "Artist - Year - Album" #~ msgstr "" #~ "Artisto\n" #~ "Albumo\n" #~ "Kategorio - artisto\n" #~ "Kategorio - albumo\n" #~ "Jaro - artisto\n" #~ "Jaro - albumo\n" #~ "Artisto - jaro - albumo" #~ msgid "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgstr "" #~ "{titolo}\n" #~ "{artisto}\n" #~ "sur {albumo} - {length}" #~ msgid "Autosize" #~ msgstr "Aŭtomate regrandigi" #~ msgid "Text Font:" #~ msgstr "Teksta tiparo:" #~ msgid "Text Color" #~ msgstr "Teksta koloro" #~ msgid "_Close" #~ msgstr "_Fermi" #~ msgid "Window Height:" #~ msgstr "Fenestra alto:" #~ msgid "Window Width:" #~ msgstr "Fenestra larĝo:" #~ msgid "Open" #~ msgstr "Malfermi" #~ msgid " songs" #~ msgstr " kantoj" #~ msgid "Choose a file" #~ msgstr "Elektu dosieron" #~ msgid "Quit" #~ msgstr "Eliri" #~ msgid "from %s" #~ msgstr "el %s" #~ msgid "Playing %s" #~ msgstr "Ludas %s" #~ msgid "by %s" #~ msgstr "de %s" #~ msgid "Add to Playlist" #~ msgstr "Aldoni al kantaro" #~ msgid "Popup" #~ msgstr "Ŝpruco" #~ msgid "Resizable" #~ msgstr "Ŝanĝebla grandeco" #~ msgid "Start" #~ msgstr "Ek" #~ msgid "Vol:" #~ msgstr "Laŭto:" #~ msgid "Alarm Days:" #~ msgstr "Vektagoj:" #~ msgid "Add Playlist" #~ msgstr "Aldoni kantaron" #~ msgid "Add a directory" #~ msgstr "Aldoni dosierujon" #~ msgid "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgstr "" #~ "Movu la surekranan vidigfenestron al la situo kie vi deziras ĝin " #~ "aperi" #~ msgid " - " #~ msgstr " - " #~ msgid " + " #~ msgstr " + " #~ msgid "0:00" #~ msgstr "0:00" #~ msgid "0/0 tracks" #~ msgstr "0/0 trakoj" #~ msgid "..." #~ msgstr "..." #~ msgid "Toggle Play or Pause" #~ msgstr "Baskuli Ludadon aŭ Paŭzon" #~ msgid "Show a popup of the currently playing track" #~ msgstr "Montri ŝprucfenestron pri la legata trako" #~ msgid "Get rating for current song" #~ msgstr "Obteni takson pri la nuna muzikaĵo" #~ msgid "Set rating for current song" #~ msgstr "Taksi la nunan muzikaĵon" #~ msgid "Select File Type (By Extension)" #~ msgstr "Elektu dosiertipon (laŭ finaĵo)" #~ msgid "File Type" #~ msgstr "Dosiertipo" #~ msgid "Stopped" #~ msgstr "Haltigita" #~ msgid "%(title)s (by %(artist)s)" #~ msgstr "%(title)s (fare de %(artist)s)" #~ msgid "Extension" #~ msgstr "Sufikso" #~ msgid "No covers found" #~ msgstr "Neniu kovrilo trovata" #~ msgid " New song, fetching cover." #~ msgstr " Nova muzikaĵo, kovrilo venigata" #~ msgid "Buffering: 100%..." #~ msgstr "Bufrado: 100%…" #~ msgid "Choose a file to open" #~ msgstr "Elektu malfermotan dosieron" #~ msgid "Invalid file extension, file not saved" #~ msgstr "Nevalida dosiersufikso, dosiero ne konservita" #~ msgid "Page 1" #~ msgstr "Paĝo 1" #~ msgid "Add device" #~ msgstr "Aldoni aparaton" #~ msgid "New Search" #~ msgstr "Nova serĉo" #~ msgid "Personal" #~ msgstr "Persona" #~ msgid "Recommended" #~ msgstr "Rekomendata" #~ msgid "Loved Tracks" #~ msgstr "Amataj trakoj" #~ msgid "Restart Playlist" #~ msgstr "Restartigi ludliston" #~ msgid "Name - Time" #~ msgstr "Nomo - Tempo" #~ msgid "Minimum Volume:" #~ msgstr "Minimuma laŭteco" #~ msgid "Export" #~ msgstr "Eksporti" #~ msgid "Display OSD when hovering over tray icon" #~ msgstr "Montri ekranan afiŝilon je musoŝvebo super la pleta piktogramo" #~ msgid "Show OSD on track change" #~ msgstr "Montri ekranan afiŝilon je trakŝanĝo" #~ msgid "Maximum Volume:" #~ msgstr "Maksimuma laŭteco" #~ msgid "Plugin archive contains an unsafe path" #~ msgstr "Arkivo de kromprogramo enhavas nesekuran vojon" #~ msgid "A plugin with the name \"%s\" is already installed" #~ msgstr "Kromprogramo nomita \"%s\" jam estas instalita" #~ msgid "Plugin archive is not in the correct format" #~ msgstr "Arkivo de kromprogramo ne estas en korekta formato" #~ msgid "Choose a plugin" #~ msgstr "Elekti kromprogramon" #~ msgid "" #~ "Exaile now uses absolute URI's, please delete/rename your %s directory" #~ msgstr "" #~ "Exaile nun uzas absolutajn adresojn. Bonvolu forigi/alinomigi vian " #~ "dosierujon %s" #~ msgid "Enter the search text" #~ msgstr "Tajpu la serĉatan tekston" #~ msgid "Number of Plays" #~ msgstr "Nombro da legadoj" #~ msgid "General" #~ msgstr "Ĝenerale" #~ msgid "%d covers to fetch" #~ msgstr "%d prenirendaj kovriloj" #~ msgid "Clear Playlist" #~ msgstr "Vakigi ludliston" #~ msgid "Close this dialog" #~ msgstr "Fermi ĉi tiun dialogon" dist/copy/po/PaxHeaders.26361/en_GB.po0000644000175000017500000000012312233027260015750 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 29 ctime=1382821553.05304693 exaile-3.3.2/po/en_GB.po0000644000000000000000000040002212233027260014707 0ustar00rootroot00000000000000# English (United Kingdom) translation for exaile # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2012-07-29 07:12+0000\n" "Last-Translator: SteVe Cook \n" "Language-Team: English (United Kingdom) \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-08-28 05:29+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "%d day, " msgstr[1] "%d days, " #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "%d hour, " msgstr[1] "%d hours, " #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "%d minute, " msgstr[1] "%d minutes, " #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d second" msgstr[1] "%d seconds" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "%dd, " #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "%dh, " #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "%dm, " #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "%ds" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "%dd " #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "%d:%02d:%02d" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "%d:%02d" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "Never" #: ../xl/formatter.py:702 msgid "Today" msgstr "Today" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "Yesterday" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "Failed to migrate from 0.2.14" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "Usage: exaile [OPTION]... [URI]" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "Options" #: ../xl/main.py:421 msgid "Playback Options" msgstr "Playback Options" #: ../xl/main.py:423 msgid "Play the next track" msgstr "Play the next track" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "Play the previous track" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "Stop playback" #: ../xl/main.py:429 msgid "Play" msgstr "Play" #: ../xl/main.py:431 msgid "Pause" msgstr "Pause" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "Pause or resume playback" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "Stop playback after current track" #: ../xl/main.py:440 msgid "Collection Options" msgstr "Collection Options" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "LOCATION" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "Add tracks from LOCATION to the collection" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "Playlist Options" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "Exports the current playlist to LOCATION" #: ../xl/main.py:454 msgid "Track Options" msgstr "Track Options" #: ../xl/main.py:456 msgid "Query player" msgstr "Query player" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "Show a popup with data of the current track" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "Print the title of current track" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "Print the album of current track" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "Print the artist of current track" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "Print the length of current track" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "N" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "Set rating for current track to N%" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "Get rating for current track" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "Print the current playback position as time" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "Print the current playback progress as percentage" #: ../xl/main.py:490 msgid "Volume Options" msgstr "Volume Options" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "Increases the volume by N%" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "Decreases the volume by N%" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "Mutes or unmutes the volume" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "Print the current volume percentage" #: ../xl/main.py:507 msgid "Other Options" msgstr "Other Options" #: ../xl/main.py:509 msgid "Start new instance" msgstr "Start new instance" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "Show this help message and exit" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "Show program's version number and exit." #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "Start minimised (to tray, if possible)" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "Toggle visibility of the GUI (if possible)" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "" "Start in safe mode - sometimes useful when you're running into problems" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "Force import of old data from version 0.2.x (Overwrites current data)" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "Do not import old data from version 0.2.x" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "Make control options like --play start Exaile if it is not running" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "Development/Debug Options" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "DIRECTORY" #: ../xl/main.py:536 msgid "Set data directory" msgstr "Set data directory" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "MODULE" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "Limit log output to MODULE" #: ../xl/main.py:543 msgid "LEVEL" msgstr "LEVEL" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "Limit log output to LEVEL" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "Show debugging output" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "Enable debugging of xl.event. Generates LOTS of output" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "Add thread name to logging messages." #: ../xl/main.py:555 msgid "TYPE" msgstr "TYPE" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "Limit xl.event debug to output of TYPE" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "Reduce level of output" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "Disable D-Bus support" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "Disable HAL support." #: ../xl/main.py:580 msgid "Entire Library" msgstr "Entire Library" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "Random %d" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "Rating > %d" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "Tags" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "Plugin archive is not in the correct format." #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "A plugin with the name \"%s\" is already installed." #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "Plugin archive contains an unsafe path." #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "You did not specify a location to load the db from" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "You did not specify a location to save the db" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "Various Artists" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "Unknown" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr " / " #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "%dk" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "A very fast Free lossless audio format with good compression." #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "Automatic" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "Custom" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "Not playing." #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "Settings version is newer than current." #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "Error storing setting: " #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "Error reading setting" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "Invalid playlist type." #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "Playlist" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "M3U Playlist" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "PLS Playlist" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "Invalid format for %s." #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "Unsupported version %(version)s for %(type)s" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "ASX Playlist" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "XSPF Playlist" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "Shuffle _Off" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "Shuffle _Tracks" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "Shuffle _Albums" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "Repeat _Off" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "Repeat _All" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "Repeat O_ne" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "Dynamic _Off" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "Dynamic by Similar _Artists" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "seconds" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "minutes" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "hours" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "days" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "weeks" #: ../xl/lyrics.py:305 msgid "Local" msgstr "Local" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "Enqueue" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "Replace Current" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "Append to Current" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "Open Directory" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" "The files cannot be moved to the Deleted Items folder. Delete them " "permanently from the disc?" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "Move to Deleted Items folder" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "_Show Playing Track" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "Name:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "Match any of the criteria" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "Randomise results" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "Limit to: " #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr " tracks" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "Not Playing" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "Seeking: %s" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "Move" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "New Marker" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "Muted" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "%d%%" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "Full Volume" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" "$title\n" "by $artist\n" "from $album" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "Various" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "%(track_count)d in total (%(total_duration)s)" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "%d in collection" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "%d showing" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "%d selected" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "Queue" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "Queue (%d)" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "#" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "Track Number" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "Title" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "Artist" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "Composer" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "Album" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "Length" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "Disc" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "Disc Number" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "Rating" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "Date" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "Genre" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "Bitrate" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "Location" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "Filename" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "Playcount" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "BPM" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "Last played" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "Date added" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "_Resizable" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "_Autosize" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "Rating:" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "Shuffle" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "Repeat" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "Dynamic" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "Remove Current Track From Playlist" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "Randomise Playlist" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "New Playlist" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "Rename" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "Stop Playback After This Track" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "Continue Playback After This Track" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "Requires plug-ins providing dynamic playlists" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "Dynamically add similar tracks to the playlist" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "Enter the URL to open" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "Open URL" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "Select File Type (by Extension)" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "Choose Media to Open" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "Supported Files" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "Music Files" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "Playlist Files" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "All Files" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "Choose Directory to Open" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "Export Current Playlist" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "Playlist saved as %s." #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "Close %s" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "Save changes to %s before closing?" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "Your changes will be lost if you don't save them" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "Close Without Saving" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "Saved %(count)s of %(total)s." #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "You did not enter a name for your playlist" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "The playlist name you entered is already in use." #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "Close Tab" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "$title (by $artist)" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "Toggle: Stop after Selected Track" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "Playback error encountered!" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "Buffering: %d%%..." #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "Continue Playback" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "Pause Playback" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "Playlist export failed!" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "Start Playback" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "Exaile Music Player" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "_New Playlist" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "Open _URL" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "Open Directories" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "_Export Current Playlist" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "Restart" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "_Collection" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "_Queue" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "C_overs" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "_Playlist Utilities Bar" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "_Columns" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "C_lear playlist" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "_Device Manager" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "Re_scan Collection" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "Track _Properties" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "Cancel" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "Original album" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "Lyricist" #: ../xlgui/properties.py:54 msgid "Website" msgstr "Website" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "Cover" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "Original artist" #: ../xlgui/properties.py:57 msgid "Author" msgstr "Author" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "Original date" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "Arranger" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "Conductor" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "Performer" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "Copyright" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "Lyrics" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "Track" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "Version" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "ISRC" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "Encoded by" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "Organisation" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "Modified" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "Times played" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "Editing track %(current)d of %(total)d" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "of:" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "Apply current value to all tracks" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "Show Cover" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "Fetch Cover" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "Remove Cover" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "Cover for %s" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "Cover options for %(artist)s - %(album)s" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "No covers found." #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "Icon" #: ../xlgui/devices.py:81 msgid "Device" msgstr "Device" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "Driver" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "Scanning collection..." #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "Scanning %s..." #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "Toggle Queue" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "Queue Items" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "Properties" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "New Station" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "New Smart Playlist" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "Edit" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "Export Playlist" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "Delete Playlist" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "Are you sure you want to permanently delete the selected playlist?" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "Enter the new name you want for your playlist" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "Rename Playlist" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "Remove" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "Playlist %d" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "Add a Directory" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "Directory not added." #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "Transferring to %s..." #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "Loading streams..." #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "Add Radio Station" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "URL:" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "Saved Stations" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "Radio Streams" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "Refresh" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "Enter the name you want for your new playlist" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "Genre - Artist" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "Genre - Album" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "Re-scan Collection" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "Size" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s KB" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "and" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "is" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "is not" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "contains" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "does not contain" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "at least" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "at most" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "before" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "after" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "between" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "greater than" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "less than" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "in the last" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "not in the last" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "Plays" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "Year" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "%(first)s, %(second)s and others" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "%(first)s and %(second)s" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "Smart Playlists" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "Custom Playlists" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "Add Smart Playlist" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "Edit Smart Playlist" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "Playback" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "Plug-ins" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "Could not load plugin info!" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "Failed plugin: %s" msgstr[1] "Failed plugins: %s" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "Could not disable plugin!" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "Could not enable plugin!" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "Choose a Plug-in" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "Plug-in Archives" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "Plugin file installation failed!" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "Covers" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "Appearance" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "Collection" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "the" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "Reset to Defaults" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "Restart Exaile?" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "A restart is required for this change to take effect." #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "Action" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "Shortcut" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "Playlists" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "About Exaile" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "© 2009-2012" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "Cover Manager" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "Shuffle playback order" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "Repeat playback" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "Cover Finder" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "_Set as Cover" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "_File" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "_Edit" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "_View" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "_Tools" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "_Help" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "Previous Track" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "Next Track" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0:00 / 0:00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "Track Properties" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "A_dd tag" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "_Remove tag" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "ab → A_b" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "Capitalise first letter of all tags" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "_Previous" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "_Next" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "Description:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "Collection Manager" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "Monitored" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "Radio" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "Append All Tracks to Playlist" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "Import CD" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "Add Station" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "Files" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "Previous visited directory" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "Next visited directory" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "Up one directory" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "Refresh directory listing" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "Home directory" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "Search: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "Clear search field" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "Collection is empty." #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "Add Music" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "Use covers embedded in tags" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "Use covers from local files" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" "This option will search for cover image files in \n" "the same folder as the music file." #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "Fetch covers automatically on playback start" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "Cover Search Order:" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "(drag to reorder)" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "Open last playlists on startup" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "Prompt for saving custom playlists on close" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "Replace content on side pane double-click" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "Playback engine: " #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "Use fade transitions on user actions" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "Fade duration (ms):" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "Use crossfading (EXPERIMENTAL)" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "Crossfade duration (ms):" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "Audio Sink: " #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "Custom sink pipeline:" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "Resume playback on start" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "Resume playback in paused state" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "Normal" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "Unified (unstable)" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "Plug-in" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "Enabled" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "No Plugin Selected" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "Installed Plug-ins" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "Authors:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "Version:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "Install" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "No Plug-in Selected" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "Available Plug-ins" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "Install Updates" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "Updates" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "Install Plug-in File" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "Show info area" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "The info area contains the cover art and track information" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "Always show tab bar" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "Tab placement:" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "Display track counts in collection" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "Use alpha transparency:" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "Show tray icon" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "Minimise to tray" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "Close to tray" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "Jump to current song on track change" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "Show splash screen on startup" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "Left" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "Right" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "Top" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "Bottom" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "Preferences" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "(Right click to reset to defaults)" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "Use file based compilation detection" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "Device Manager" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "Add Device" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "Type of device:" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "Detected devices:" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "Custom: " #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "Queue Manager" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "Searching for mood..." #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "Mood found." #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "Could not read moodbar." #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "Moodbar executable is not available." #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "Moodbar" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "Error executing streamripper" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "Streamripper" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "Last.fm Loved Tracks" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "The API key is invalid." #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "Please make sure the entered data is correct." #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "Could not start web browser" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" "Please copy the following URL and open it with your web browser:\n" "{url}" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "Loved" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "Last.fm Loved" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "Love This Track" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "Unlove This Track" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "Alarm Clock" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "Contacting Shoutcast server..." #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "Error connecting to Shoutcast server." #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "Enter the search keywords" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "Shoutcast Search" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "Search Results" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "Search" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "No lyrics found." #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "Go to: " #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "Any" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "Lyrics Viewer" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "AudioScrobbler" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "Enable audioscrobbling" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "Equaliser" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "Shutdown after Playback" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "Shutdown scheduled" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "Computer will be shutdown at the end of playback." #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "Imminent Shutdown" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "The computer will be shut down in %d seconds." #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "Shutdown failed" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "Computer could not be shutdown using D-Bus." #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "Notify-osd notifications" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "%(title)s" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "by %(artist)s" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "from %(album)s" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "IPython Console - Exaile" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "Show IPython Console" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "IPython Console" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "Notify" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" "by %(artist)s\n" "from %(album)s" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "Importing CD..." #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "Audio Disc" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "CD" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "Track number" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "Disc number" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "Play count" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "Artist: " #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" "Did you know...\n" "\n" "%s" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "Repeat Segment" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "Repeat Beginning" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "Repeat End" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "Mini Mode" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "$tracknumber - $title" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "$title by $artist" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "$title ($__length)" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "Previous" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "Go to the previous track" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "Previous track" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "Next" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "Go to the next track" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "Next track" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "Play/Pause" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "Start, pause or resume the playback" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "Start playback" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "Continue playback" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "Pause playback" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "Stop" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "Stop the playback" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "Continue playback after current track" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "Volume" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "Change the volume" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "Restore" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "Restore the main window" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "Restore main window" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "Select rating for the current track" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "Track selector" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "Simple track list selector" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "Playlist button" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "Access the current playlist" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "$title ($current_time / $total_time)" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "Progress button" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "Playback progress and access to the current playlist" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "Progress bar" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "Playback progress and seeking" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "Group" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "ReplayGain" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "Drop to Choose" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "Append and Play" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "Append" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "Ready" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "Searching Jamendo catalogue..." #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "Retrieving song data..." #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "On Screen Display" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "Amazon Covers" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "Podcasts" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "Podcast" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "Refresh Podcast" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "Delete" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "Enter the URL of the podcast to add" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "Open Podcast" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "Loading %s..." #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "Error loading podcast." #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "Loading Podcasts..." #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "Could not save podcast file" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "Desktop Cover" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "Multi-Alarm Clock" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "Context" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "Contextinfo" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "Bookmark This Track" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "Delete Bookmark" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "Clear Bookmarks" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "Bookmarks" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "Pause on Screensaver" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "DAAP Server" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "DAAP Client" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "Manually..." #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "Enter IP address and port for share" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "Enter IP address and port." #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "Refresh Server List" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "Disconnect from Server" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "Select a Location for Saving" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "Connect to DAAP..." #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "Darken played section instead of using cursor" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "Darkness level:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "Use waveform style" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "Show only waveform, not mood" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "Use colour theme " #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "Base colour:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "Base colour" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "Save location:" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "Relay port:" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "Rip to single file" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "Delete incomplete files" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "API key:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "Secret:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "Request Access Permission" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "Alarm time" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "Monday" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "Tuesday" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "Wednesday" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "Thursday" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "Friday" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "Saturday" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "Sunday" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "Alarm Days" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "Use Fading" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "Increment:" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "Display overlay:" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "Display covers" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "Circle display" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "Text percentage" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "None" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "Refresh Lyrics" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "Submit tracks using Audioscrobbler" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "Show menu item to toggle submission" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "Password:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "Username:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "pre" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "+12 dB" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "0" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "-24 dB" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "29" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "59" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "119" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "237" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "474" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "947" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "1.9K" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "3.8K" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "7.5K" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "15K" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "On track change" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "On playback start, pause or stop" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "On tag change" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "On tray icon hover" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "When main window is focused" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "Display" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "Use album covers as icons" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "Use media icons for pause, stop and resume" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "Icons" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "Artist line:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "Summary:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "Album line:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "Content" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "Terminal opacity:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "Font:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "Background Colour:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "Resize displayed covers" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "Only artist:" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "Only album:" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "Both artist and album:" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "Body Message" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "Ogg Vorbis" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "FLAC" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "AAC" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "MP3 (VBR)" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "MP3 (CBR)" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "WavPack" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "Import format: " #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "Import quality: " #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "Import path: " #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "Controls" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "Track Title Format" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "Always on top" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "Show in tasklist" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "Display window decorations:" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "Show on all desktops" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "Show button in main window" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "Full" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "Simple" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "Prefer per-album correction" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "Prefer ReplayGain's per-album correction over per-track correction." #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "Use clipping protection" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "Protect against noise caused by over-amplification" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "Additional amplification to apply to all files" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "Additional amplification (dB):" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "Fallback correction for files that lack ReplayGain information" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "Fallback correction level (dB):" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "Order by:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "Order direction:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "Results:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "Advanced" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "Descending" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "Ascending" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "Release date" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "Rating this week" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "Rating this month" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "Number of playlist additions" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "Number of downloads" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "Number of listens" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "Starred" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "Date of starring" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "Genre/Tags" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "Add Podcast" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "Anchor:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "X offset:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "pixels" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "Y offset:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "Override cover size" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "Size:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "Use fading" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "Fading duration:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "ms" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "Top left" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "Top right" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "Bottom left" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "Bottom right" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "Add" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "Alarms" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "Enable volume fade-in" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "Fade start volume:" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "Fade stop volume:" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "Fade Increment:" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "Fade Time (s):" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "Restart playlist" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "Playback" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "Please enter your Last.fm authentication:" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "Sign up for Last.fm" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "Use covers in the bookmarks menu (takes effect on next start)" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "Server name:" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "Server host:" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "Port:" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "Server enabled" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "Current Song" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the supported services." #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "GNOME Multimedia Keys" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "Last.fm Covers" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "Searches Last.fm for covers" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "Sets the cover and adds some menu items to AWN for Exaile" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "Shoutcast Radio" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "Shoutcast Radio list" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "Ex Falso tag editor" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "Adds a side tab displaying lyrics for the currently playing track." #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "XKeys" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "Global hotkeys using xlib (mmkeys.so)" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "Multimedia keys for Windows" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "A 10-band equaliser" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "Lyrics Fly" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "Plug-in to fetch lyrics from lyricsfly.com" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "Librivox" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "Browse and listen to audiobooks from Librivox.org." #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "Allows for shutdown of the computer at the end of playback." #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "USB Mass Storage Media Player Support" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" "Support for accessing portable media players using the USB Mass Storage " "protocol" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "Devices" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "Last.fm Dynamic Playlists" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "The Last.fm backend for dynamic playlists" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" "This plug-ins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "Provides an IPython console that can be used to manipulate Exaile." #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "Pops up a notification when playback of a track starts" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "CD Playback" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "Information" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "A-B Repeat" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "Continuously repeats a segment of a track." #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "Compact mode for Exaile with a configurable interface" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "Enables ReplayGain support" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "Drop Trayicon" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" "Provides an alternative tray icon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "Jamendo" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "Enables access to the Jamendo music catalogue." #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "iPod Support" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" "Searches Amazon for covers\n" "\n" "To be able to use this plug-in, an AWS API key and secret key are required." #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "Karaoke" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "Removes voice from audio" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "Adds Simple Podcast Support" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "Displays the current album cover on the desktop" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "Hello World" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "A simple plug-in for testing the basic plug-in system" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "Contextual Info" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" "Show various information about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "Allows saving/resuming bookmark positions in audio files." #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "Lyrics Wiki" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" "This plug-in integrates spydaap (http://launchpad.net/spydaap) into Exaile " "so a collection can be shared over DAAP." #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "Allows playing of DAAP music shares." #~ msgid "Clear" #~ msgstr "Clear" #~ msgid "Close" #~ msgstr "Close" #~ msgid "Close tab" #~ msgstr "Close tab" #~ msgid "Export as..." #~ msgstr "Export as..." #~ msgid "%d KB" #~ msgstr "%d KB" #~ msgid "© 2009-2010" #~ msgstr "© 2009-2010" #~ msgid "GNOME" #~ msgstr "GNOME" #~ msgid "ALSA" #~ msgstr "ALSA" #~ msgid "OSS" #~ msgstr "OSS" #~ msgid "PulseAudio" #~ msgstr "PulseAudio" #~ msgid "JACK" #~ msgstr "JACK" #~ msgid "AWN" #~ msgstr "AWN" #~ msgid "API Key:" #~ msgstr "API Key:" #~ msgctxt "yes" #~ msgid "Monday" #~ msgstr "Monday" #~ msgctxt "yes" #~ msgid "Tuesday" #~ msgstr "Tuesday" #~ msgctxt "yes" #~ msgid "Wednesday" #~ msgstr "Wednesday" #~ msgctxt "yes" #~ msgid "Thursday" #~ msgstr "Thursday" #~ msgctxt "yes" #~ msgid "Friday" #~ msgstr "Friday" #~ msgctxt "yes" #~ msgid "Saturday" #~ msgstr "Saturday" #~ msgctxt "yes" #~ msgid "Sunday" #~ msgstr "Sunday" #~ msgctxt "yes" #~ msgid "Use Fading" #~ msgstr "Use Fading" #~ msgctxt "yes" #~ msgid "Minimum volume:" #~ msgstr "Minimum volume:" #~ msgctxt "yes" #~ msgid "Maximum volume:" #~ msgstr "Maximum volume:" #~ msgctxt "yes" #~ msgid "Increment:" #~ msgstr "Increment:" #~ msgctxt "yes" #~ msgid "Time per increment:" #~ msgstr "Time per increment:" #~ msgid "Secret key:" #~ msgstr "Secret key:" #~ msgid "Awn" #~ msgstr "AWN" #~ msgid "General" #~ msgstr "General" #~ msgid "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgstr "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgid "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgstr "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgid "Autosize" #~ msgstr "Autosize" #~ msgid "Clear Playlist" #~ msgstr "Clear Playlist" #~ msgid "Display OSD when hovering over tray icon" #~ msgstr "Display OSD when hovering over tray icon" #~ msgid "Exaile" #~ msgstr "Exaile" #~ msgid "Location:" #~ msgstr "Location:" #~ msgid "New Search" #~ msgstr "New Search" #~ msgid "Popup" #~ msgstr "Popup" #~ msgid "Resizable" #~ msgstr "Resizable" #~ msgid "Search:" #~ msgstr "Search:" #~ msgid "Show OSD on track change" #~ msgstr "Show OSD on track change" #~ msgid "Start" #~ msgstr "Start" #~ msgid "Stop Playback" #~ msgstr "Stop Playback" #~ msgid "Stopped" #~ msgstr "Stopped" #~ msgid "Text Color" #~ msgstr "Text Colour" #~ msgid "Text Font:" #~ msgstr "Text Font:" #~ msgid "Vol:" #~ msgstr "Vol:" #~ msgid "Window Height:" #~ msgstr "Window Height:" #~ msgid "Window Width:" #~ msgstr "Window Width:" #~ msgid "_Close" #~ msgstr "_Close" #~ msgid "Select a save location" #~ msgstr "Select a save location" #~ msgid "Open" #~ msgstr "Open" #~ msgid "Add Playlist" #~ msgstr "Add Playlist" #~ msgid "Relay Port:" #~ msgstr "Relay Port:" #~ msgid "Enter the search text" #~ msgstr "Enter the search text" #~ msgid "Add a directory" #~ msgstr "Add a directory" #~ msgid "Choose a file" #~ msgstr "Choose a file" #~ msgid "Quit" #~ msgstr "Quit" #~ msgid "Part" #~ msgstr "Part" #~ msgid "Original Date" #~ msgstr "Original Date" #~ msgid "Original Album" #~ msgstr "Original Album" #~ msgid "Original Artist" #~ msgstr "Original Artist" #~ msgid "Encoded By" #~ msgstr "Encoded By" #~ msgid "Title:" #~ msgstr "Title:" #~ msgid "Artist:" #~ msgstr "Artist:" #~ msgid "Album:" #~ msgstr "Album:" #~ msgid "Track Number:" #~ msgstr "Track Number:" #~ msgid "Genre:" #~ msgstr "Genre:" #~ msgid "Bitrate:" #~ msgstr "Bitrate:" #~ msgid "" #~ "Path is already in your collection, or is a subdirectory of another path " #~ "in your collection" #~ msgstr "" #~ "Path is already in your collection, or is a subdirectory of another path " #~ "in your collection" #~ msgid "%(title)s (by %(artist)s)" #~ msgstr "%(title)s (by %(artist)s)" #~ msgid "by %s" #~ msgstr "by %s" #~ msgid "from %s" #~ msgstr "from %s" #~ msgid "Playing %s" #~ msgstr "Playing %s" #~ msgid "Import" #~ msgstr "Import" #~ msgid "Add to Playlist" #~ msgstr "Add to Playlist" #~ msgid "Number of Plays" #~ msgstr "Number of Plays" #~ msgid "Date Added" #~ msgstr "Date Added" #~ msgid "Last Played" #~ msgstr "Last Played" #~ msgid "Plugin Manager" #~ msgstr "Plugin Manager" #~ msgid "0:00" #~ msgstr "0:00" #~ msgid "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "Year - Artist\n" #~ "Year - Album\n" #~ "Artist - Year - Album" #~ msgstr "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "Year - Artist\n" #~ "Year - Album\n" #~ "Artist - Year - Album" #~ msgid " songs" #~ msgstr " songs" #~ msgid "Alarm Days:" #~ msgstr "Alarm Days:" #~ msgid "Opacity Level:" #~ msgstr "Opacity Level:" #~ msgid "LastFM Radio" #~ msgstr "LastFM Radio" #~ msgid "Personal" #~ msgstr "Personal" #~ msgid "Neighbourhood" #~ msgstr "Neighbourhood" #~ msgid "Loved Tracks" #~ msgstr "Loved Tracks" #~ msgid "Recommended" #~ msgstr "Recommended" #~ msgid "Select File Type (By Extension)" #~ msgstr "Select File Type (By Extension)" #~ msgid "File Type" #~ msgstr "File Type" #~ msgid "Extension" #~ msgstr "Extension" #~ msgid "Toggle: Stop after selected track" #~ msgstr "Toggle: Stop after selected track" #~ msgid "No covers found" #~ msgstr "No covers found" #~ msgid "Invalid file extension, file not saved" #~ msgstr "Invalid file extension, file not saved" #~ msgid "Export" #~ msgstr "Export" #~ msgid " - " #~ msgstr " - " #~ msgid " + " #~ msgstr " + " #~ msgid "Add device" #~ msgstr "Add device" #~ msgid "..." #~ msgstr "..." #~ msgid "Page 1" #~ msgstr "Page 1" #~ msgid "0/0 tracks" #~ msgstr "0/0 tracks" #~ msgid "" #~ "OSD\n" #~ "Drag to the location you'd like the\n" #~ "OSD to appear" #~ msgstr "" #~ "OSD\n" #~ "Drag to the location you would like the\n" #~ "OSD to appear" #~ msgid "Display a progressbar in the OSD" #~ msgstr "Display a progressbar in the OSD" #~ msgid "Toggle Play or Pause" #~ msgstr "Toggle Play or Pause" #~ msgid "Set rating for current song" #~ msgstr "Set rating for current song" #~ msgid "Get rating for current song" #~ msgstr "Get rating for current song" #~ msgid "Streaming..." #~ msgstr "Streaming..." #~ msgid "Buffering: 100%..." #~ msgstr "Buffering: 100%..." #~ msgid "Choose a file to open" #~ msgstr "Choose a file to open" #~ msgid "%d covers to fetch" #~ msgstr "%d covers to fetch" #~ msgid "Streamripper can only record streams." #~ msgstr "Streamripper can only record streams." #~ msgid "Alarm:" #~ msgstr "Alarm:" #~ msgid "Alarm Name:" #~ msgstr "Alarm Name:" #~ msgid "Alarm Time:" #~ msgstr "Alarm Time:" #~ msgid "Maximum Volume:" #~ msgstr "Maximum Volume:" #~ msgid "Enable Fading" #~ msgstr "Enable Fading" #~ msgid "Restart Playlist" #~ msgstr "Restart Playlist" #~ msgid "Minimum Volume:" #~ msgstr "Minimum Volume:" #~ msgid "Name - Time" #~ msgstr "Name - Time" #~ msgid "Fading:" #~ msgstr "Fading:" #~ msgid "Show a popup of the currently playing track" #~ msgstr "Show a popup of the currently playing track" #~ msgid " New song, fetching cover." #~ msgstr " New song, fetching cover." #~ msgid "order must be a list or tuple" #~ msgstr "order must be a list or tuple" #~ msgid "_Go to Playing Track" #~ msgstr "_Go to Playing Track" #~ msgid "Decreases the volume by VOL%" #~ msgstr "Decreases the volume by VOL%" #~ msgid "Increases the volume by VOL%" #~ msgstr "Increases the volume by VOL%" #~ msgid "Print the position inside the current track as time" #~ msgstr "Print the position inside the current track as time" #~ msgid "Print the progress inside the current track as percentage" #~ msgstr "Print the progress inside the current track as percentage" #~ msgid "" #~ "Exaile now uses absolute URI's, please delete/rename your %s directory" #~ msgstr "" #~ "Exaile now uses absolute URI's, please delete/rename your %s directory" #~ msgid "Filter event debug output" #~ msgstr "Filter event debug output" #~ msgid "Device class does not support transfer." #~ msgstr "Device class does not support transfer." #~ msgid "%(playlist_count)d showing, %(collection_count)d in collection" #~ msgstr "%(playlist_count)d showing, %(collection_count)d in collection" #~ msgid "%(minutes)d:%(seconds)02d" #~ msgstr "%(minutes)d:%(seconds)02d" #~ msgid "Save As..." #~ msgstr "Save As..." #~ msgid "New playlist title:" #~ msgstr "New playlist title:" #~ msgid "Custom playlist name:" #~ msgstr "Custom playlist name:" #~ msgid "Add to custom playlist" #~ msgstr "Add to custom playlist" #~ msgid "_Rename Playlist" #~ msgstr "_Rename Playlist" #~ msgid "" #~ "Exaile Music Player\n" #~ "Not playing" #~ msgstr "" #~ "Exaile Music Player\n" #~ "Not playing" #~ msgid "In pause: %s" #~ msgstr "In pause: %s" #~ msgid "_Save As..." #~ msgstr "_Save As..." #~ msgid "C_lear All Tracks" #~ msgstr "C_lear All Tracks" #~ msgid "_Save Changes To Playlist" #~ msgstr "_Save Changes To Playlist" #~ msgid " (%(queue_count)d queued)" #~ msgstr " (%(queue_count)d queued)" #~ msgid "_Save As Custom Playlist" #~ msgstr "_Save As Custom Playlist" #~ msgid "No track" #~ msgstr "No track" #~ msgid "Delete track" #~ msgstr "Delete track" #~ msgid "_Close Playlist" #~ msgstr "_Close Playlist" #~ msgid "Export current playlist..." #~ msgstr "Export current playlist..." #~ msgid "%(year)d-%(month)02d-%(day)02d" #~ msgstr "%(year)d-%(month)02d-%(day)02d" #~ msgid "New custom playlist name:" #~ msgstr "New custom playlist name:" #~ msgid "Idle." #~ msgstr "Idle." #~ msgid "" #~ "This will permanantly delete the selected tracks from your disk, are you " #~ "sure you wish to continue?" #~ msgstr "" #~ "This will permanently delete the selected tracks from your disk; are you " #~ "sure you want to continue?" #~ msgid "Add To New Playlist..." #~ msgstr "Add To New Playlist..." #~ msgid "Move selected item down" #~ msgstr "Move selected item down" #~ msgid "Choose a plugin" #~ msgstr "Choose a plugin" #~ msgid "Remove item" #~ msgstr "Remove item" #~ msgid "Could not enable plugin: %s" #~ msgstr "Could not enable plugin: %s" #~ msgid "Could not disable plugin: %s" #~ msgstr "Could not disable plugin: %s" #~ msgid "Add item" #~ msgstr "Add item" #~ msgid "Move selected item up" #~ msgstr "Move selected item up" #~ msgid "Remove current track from playlist" #~ msgstr "Remove current track from playlist" #~ msgid "File Size:" #~ msgstr "File Size:" #~ msgid "Length:" #~ msgstr "Length:" #~ msgid "Basic" #~ msgstr "Basic" #~ msgid "Details" #~ msgstr "Details" #~ msgid "Date:" #~ msgstr "Date:" #~ msgid "Repeat playlist" #~ msgstr "Repeat playlist" #~ msgid "Dynamically add similar tracks" #~ msgstr "Dynamically add similar tracks" #~ msgid "Play Count:" #~ msgstr "Play Count:" #~ msgid "" #~ "Left\n" #~ "Right\n" #~ "Top\n" #~ "Bottom" #~ msgstr "" #~ "Left\n" #~ "Right\n" #~ "Top\n" #~ "Bottom" #~ msgid "" #~ "Copyright (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "This program is free software; you can redistribute it and/or modify\n" #~ "it under the terms of the GNU General Public License as published by\n" #~ "the Free Software Foundation; either version 2 of the License, or\n" #~ "(at your option) any later version.\n" #~ "\n" #~ "This program is distributed in the hope that it will be useful,\n" #~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" #~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" #~ "GNU General Public License for more details.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along\n" #~ "with this program; if not, write to the Free Software Foundation, Inc.,\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ msgstr "" #~ "Copyright (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "This program is free software; you can redistribute it and/or modify\n" #~ "it under the terms of the GNU General Public License as published by\n" #~ "the Free Software Foundation; either version 2 of the License, or\n" #~ "(at your option) any later version.\n" #~ "\n" #~ "This program is distributed in the hope that it will be useful,\n" #~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" #~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" #~ "GNU General Public License for more details.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along\n" #~ "with this program; if not, write to the Free Software Foundation, Inc.,\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ msgid "© 2009" #~ msgstr "© 2009" #~ msgid "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager" #~ msgstr "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager" #~ msgid "Use alpha transparency (if supported)" #~ msgstr "Use alpha transparency (if supported)" #~ msgid "Remove All" #~ msgstr "Remove All" #~ msgid "" #~ "Automatic\n" #~ "GNOME\n" #~ "ALSA\n" #~ "OSS\n" #~ "PulseAudio\n" #~ "JACK" #~ msgstr "" #~ "Automatic\n" #~ "GNOME\n" #~ "ALSA\n" #~ "OSS\n" #~ "PulseAudio\n" #~ "JACK" #~ msgid "" #~ "Normal\n" #~ "Unified (unstable)" #~ msgstr "" #~ "Normal\n" #~ "Unified (unstable)" #~ msgid "Playback engine (requires restart): " #~ msgstr "Playback engine (requires restart): " #~ msgid "Close this dialog" #~ msgstr "Close this dialogue" #~ msgid "Randomize the order of the current playlist" #~ msgstr "Randomise the order of the current playlist" #~ msgid "Install plugin file" #~ msgstr "Install plugin file" #~ msgid "These options only affect the unified engine." #~ msgstr "These options only affect the unified engine." #~ msgid "Start/Pause Playback" #~ msgstr "Start/Pause Playback" #~ msgid "Track _properties" #~ msgstr "Track _properties" #~ msgid "_Export current playlist" #~ msgstr "_Export current playlist" #~ msgid "_Randomize Playlist" #~ msgstr "_Randomise Playlist" #~ msgid "Bookmark this track" #~ msgstr "Bookmark this track" #~ msgid "Clear bookmarks" #~ msgstr "Clear bookmarks" #~ msgid "Delete bookmark" #~ msgstr "Delete bookmark" #~ msgid "Restore Main Window" #~ msgstr "Restore Main Window" #~ msgid "$title ($length)" #~ msgstr "$title ($length)" #~ msgid "Available controls" #~ msgstr "Available controls" #~ msgid "Selected controls" #~ msgstr "Selected controls" #~ msgid "Show Menuitem to toggle Submission" #~ msgstr "Show Menuitem to toggle Submission" #~ msgid "Seeking: " #~ msgstr "Seeking: " #~ msgid "Timer per Increment:" #~ msgstr "Timer per Increment:" #~ msgid "Time per Increment:" #~ msgstr "Time per Increment:" #~ msgid "Artist Line:" #~ msgstr "Artist Line:" #~ msgid "Album Line:" #~ msgstr "Album Line:" #~ msgid "Use Media Icons For Pause, Stop and Resume" #~ msgstr "Use Media Icons For Pause, Stop and Resume" #~ msgid "When GUI is Focused" #~ msgstr "When GUI is Focused" #~ msgid "Secret Key:" #~ msgstr "Secret Key:" #~ msgid "On Tray Icon Hover" #~ msgstr "On Tray Icon Hover" #~ msgid "Use Album Covers As Icons" #~ msgstr "Use Album Covers As Icons" #~ msgid "" #~ "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " #~ "replaced by their respective values. The title will be replaced by " #~ "\"Unknown\" if it is empty." #~ msgstr "" #~ "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " #~ "replaced by their respective values. The title will be replaced by " #~ "\"Unknown\" if it is empty." #~ msgid "On Track Change" #~ msgstr "On Track Change" #~ msgid "On Playback Start, Pause or Stop" #~ msgstr "On Playback Start, Pause or Stop" #~ msgid "" #~ "To sign up for an Amazon AWS account and get \n" #~ "this information visit http://aws.amazon.com/" #~ msgstr "" #~ "To sign up for an Amazon AWS account and get \n" #~ "this information visit http://aws.amazon.com/" #~ msgid "Only artist" #~ msgstr "Only artist" #~ msgid "Summary" #~ msgstr "Summary" #~ msgid "Both artist and album" #~ msgstr "Both artist and album" #~ msgid "" #~ "Message that should be displayed in the body of the notification. In each " #~ "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced " #~ "by their respective values. If the tag is not known, \"Unknown\" will be " #~ "filled in its place" #~ msgstr "" #~ "Message that should be displayed in the body of the notification. In each " #~ "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced " #~ "by their respective values. If the tag is not known, \"Unknown\" will be " #~ "filled in its place" #~ msgid "Only album" #~ msgstr "Only album" #~ msgid "Terminal Opacity:" #~ msgstr "Terminal Opacity:" #~ msgid "Position" #~ msgstr "Position" #~ msgid "Save Location:" #~ msgstr "Save Location:" #~ msgid "Display window decorations" #~ msgstr "Display window decorations" #~ msgid "Track title format:" #~ msgstr "Track title format:" #~ msgid "Vertical:" #~ msgstr "Vertical:" #~ msgid "Center vertically" #~ msgstr "Centre vertically" #~ msgid "Horizontal:" #~ msgstr "Horizontal:" #~ msgid "Center horizontally" #~ msgstr "Centre horizontally" #~ msgid "MPRIS" #~ msgstr "MPRIS" #~ msgid "Creates an MPRIS D-Bus object to control Exaile" #~ msgstr "Creates an MPRIS D-Bus object to control Exaile" #~ msgid "" #~ "Adds support for playing audio CDs.\n" #~ "Requires python-cddb to look up tags." #~ msgstr "" #~ "Adds support for playing audio CDs.\n" #~ "Requires python-cddb to look up tags." #~ msgid "Last.fm Dynamic Search" #~ msgstr "Last.fm Dynamic Search" #~ msgid "iPod support" #~ msgstr "iPod support" #~ msgid "Pauses/resumes playback on screensaver start/stop" #~ msgstr "Pauses/resumes playback on screensaver start/stop" #~ msgid "" #~ "Show various informations about the track currently playing.\n" #~ "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2" #~ msgstr "" #~ "Shows various information about the track currently playing.\n" #~ "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2" #~ msgid "Tag Covers" #~ msgstr "Tag Covers" #~ msgid "Searches track tags for covers" #~ msgstr "Searches track tags for covers" #~ msgid "Plugin to fetch lyrics from lyricwiki.org" #~ msgstr "Plugin to fetch lyrics from lyricwiki.org" #~ msgid " & " #~ msgstr " & " #~ msgid "Plugin archive is not in the correct format" #~ msgstr "Plug-in archive is not in the correct format" #~ msgid "A plugin with the name \"%s\" is already installed" #~ msgstr "A plug-in with the name \"%s\" is already installed" #~ msgid "Plugin archive contains an unsafe path" #~ msgstr "Plug-in archive contains an unsafe path" #~ msgid "Install a third party plugin from a file" #~ msgstr "Install a third party plug-in from a file" #~ msgid "A plugin for iPod support" #~ msgstr "A plug-in for iPod support" dist/copy/po/PaxHeaders.26361/af.po0000644000175000017500000000012312233027260015364 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 29 ctime=1382821553.36104694 exaile-3.3.2/po/af.po0000644000000000000000000033633012233027260014335 0ustar00rootroot00000000000000# Afrikaans translation for exaile # Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2012. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2013-09-12 09:29+0000\n" "Last-Translator: JC Brand \n" "Language-Team: Afrikaans \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2013-10-22 05:13+0000\n" "X-Generator: Launchpad (build 16807)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "%d dag, " msgstr[1] "%d dae, " #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "%d uur, " msgstr[1] "%d ure, " #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "%d minuut, " msgstr[1] "%d minute, " #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d sekonde" msgstr[1] "%d sekondes" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "%dd, " #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "%du, " #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "%dm, " #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "%ds" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "%dd " #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "%d:%02d:%02d" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "%d:%02d" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 #: ../xl/formatter.py:696 msgid "Never" msgstr "Nooit" #: ../xl/formatter.py:702 msgid "Today" msgstr "Vandag" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "Gister" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "Kon nie vanaf 0.2.14 opgradeer nie" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "Gebruik: exaile [OPTION]... [URI]" #: ../xl/main.py:417 #: ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "Opsies" #: ../xl/main.py:421 msgid "Playback Options" msgstr "Terugspeel-opsies" #: ../xl/main.py:423 msgid "Play the next track" msgstr "Speel die volgende snit" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "Speel die vorige snit" #: ../xl/main.py:427 #: ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "Stop terugspeel" #: ../xl/main.py:429 msgid "Play" msgstr "Speel" #: ../xl/main.py:431 msgid "Pause" msgstr "Pouse" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "Halt of hervat terugspeling" #: ../xl/main.py:437 #: ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "Stop terugspeel na die huidige nommer" #: ../xl/main.py:440 msgid "Collection Options" msgstr "Versamelingsopsies" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 #: ../xl/main.py:450 msgid "LOCATION" msgstr "LIGGING" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "Voeg nommers vanaf LIGGING tot die versameling by" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "Speellys Opsies" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "Eksporteer die huidige speellys na LIGGING" #: ../xl/main.py:454 msgid "Track Options" msgstr "Snit-opsies" #: ../xl/main.py:456 msgid "Query player" msgstr "Queryspeler" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "FORMAAT" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "Verkry die terugspeel status en snit informasie as FORMAAT" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "ETIKETTE" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" "ETIKETTE om vanaf die lopende snit te bekom, gebruik met --format-query" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "Vertoon 'n pop-op van die huidige nommer" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "Wys die titel van die huidige nommer" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "Wys die album van die huidige nommer" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "Wys die huidige nommer se kunstenaar" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "Wys die tydsduur van die huidige nommer" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 #: ../xl/main.py:493 #: ../xl/main.py:497 msgid "N" msgstr "N" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "Stel die keuring vir die huidige nommer op N%" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "Kry die keuring vir die huidige nommer" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "Vertoon die huidige terugspeelposisie as tyd" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "Vertoon die terugspeel vooruitgang as 'n persentasie" #: ../xl/main.py:490 msgid "Volume Options" msgstr "Volume-opsies" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "Verhoog die volume met N%" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "Verlaag die volume met N%" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "Skakel volumedemping aan of af" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "Vertoon die volumepersentasie van die huidige nommer" #: ../xl/main.py:507 msgid "Other Options" msgstr "Ander opsies" #: ../xl/main.py:509 msgid "Start new instance" msgstr "Begin 'n nuwe instansie" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "Vertoon hierdie hulpboodskap en sluit af" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "Vertoon die program se weergawenommer en sluit af" #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "Begin geminimaliseerd (in die stelselvak, indien moontlik)" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "Wissel die gebruikerskoppelvlak se sigbaarheid (indien moontlik)" #: ../xl/main.py:521 msgid "" "Start in safe mode - sometimes useful when you're running into problems" msgstr "Begin in velige modus - soms nuttig waneer probleme voorkom" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" "Forseer die invoer van ou weergawe 0.2.x data (Oorskryf die huidige data)" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "Moenie ou data van weergawe 0.2.x invoer nie" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" "Laat beheeropsies soos --play Exaile aanskakel indien dit nog nie aan is nie." #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "Ontwikkelings- en ontfoutingsopsies" #: ../xl/main.py:536 #: ../xl/main.py:538 msgid "DIRECTORY" msgstr "GIDS" #: ../xl/main.py:536 msgid "Set data directory" msgstr "Stel die datagids" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "Stel data- en konfigurasiegids" #: ../xl/main.py:540 msgid "MODULE" msgstr "MODULE" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "Beperk logresultate tot MODULE" #: ../xl/main.py:543 msgid "LEVEL" msgstr "VLAK" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "Beperk logresultate to VLAK" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "Vertoon ontfoutingsuitvoer" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "Aktiveer ontfouting vir xl.event. Dit genereer BAIE uitvoer" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "Voeg thread-naam tot log boodskappe" #: ../xl/main.py:555 msgid "TYPE" msgstr "TIPE" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "Beperk xl.event ontfoutings-resultate tot TIPE" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "Verminder die hoeveelheid uitvoer" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "D-Bus-ondersteuning uitskakel" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "HAL-ondersteuning uitskakel" #: ../xl/main.py:580 msgid "Entire Library" msgstr "Hele biblioteek" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "Willekeurig %d" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "Keuring > %d" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" "Exaile het nog nie klaar gelaai nie. Miskien moet u eers vir die " "exaile_loaded signaal wag?" #: ../xl/covers.py:466 #: ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "Etikette" #: ../xl/covers.py:505 msgid "Local file" msgstr "Lokale lêer" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "Uitbreidingsargief is nie in die korrekte formaat nie" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "'n Uitbreiding met de naam \"%s\" is reeds geïnstalleer." #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "Uitbreidingsargief bevat 'n onveilige pad" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "Verskaf asseblief 'n ligging van waar die databasis gelaai moet word" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "" "Verskaf asseblief eers 'n ligging waar die databasis gestoor moet word" #: ../xl/trax/track.py:65 #: ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "Verskeie Kunstenaars" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 #: ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "Onbekend" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr " / " #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 #: ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "%dk" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" "Vorbis is 'n oopbron, klankformaat, weliswaar met kwaliteitsverlies, maar 'n " "hoër kwaliteit en kleiner lêergrootte as MP3." #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" "Die vrye klankformaat sonder kwaliteitsverlies (FLAC) is 'n oopbron formaat " "wat wel samepersing gebruik, maar sonder kwaliteitsverlies." #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" "Apple se eie nie-vrye klankformaat (met verlies) wat beter klankkwaliteit by " "laer bistempos as MP3 bereik." #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" "'n Nie-vrye, oud maar populêre klankformaat (met verlies). VBR gee 'n hoër " "kwaliteit as CBR, maar werk nie goed met sommige spelers nie." #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" "'n Nie-vrye, ouer, maar populêre klankformaat (met verlies). CBR gee 'n laer " "kwaliteit as VBR, maar werk met alle spelers." #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "" "'n Baie vinnige vry klankformaat (sonder verlies) met goeie kompressie." #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "Outomaties" #: ../xl/player/pipe.py:340 #: ../xl/player/pipe.py:365 #: ../xl/player/pipe.py:386 msgid "Custom" msgstr "Doelgemaak" #: ../xl/player/pipe.py:441 #: ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "Outo" #: ../xl/xldbus.py:117 #: ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "Speel nie" #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" "status: %(status)s, titel: %(title)s, kunstenaar: %(artist)s, album: " "%(album)s, tyd: %(length)s, posisie: %(progress)s%% [%(position)s]" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "Die instellingsweergawe is nuwe as die huidige" #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "Ons weet nie hoe om daardie soort instelling te stoor nie " #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "'n Onbekende tipe instelling is gevind!" #: ../xl/playlist.py:152 #: ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "Ongeldige speellystipe" #: ../xl/playlist.py:173 #: ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "Speellys" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "M3U speellys" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "PLS-speellys" #: ../xl/playlist.py:517 #: ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "Ongeldige formaat vir %s." #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "Nie ondersteunde weergawe %(version)s vir %(type)s" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "ASX-speellys" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "XSPF-speellys" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "_Nie deurmekaar" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "Sni_tte deurmekaar" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "_Albums deurmekaar" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "_Geen herhaling" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "_Alles herhaal" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "Herhaal Ee_n" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "Dinamies a_f" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "Dinamies met soortgelyke _kunstenaars" #: ../xl/playlist.py:1824 #: ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 #: ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "sekondes" #: ../xl/playlist.py:1825 #: ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "minute" #: ../xl/playlist.py:1826 #: ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "ure" #: ../xl/playlist.py:1827 #: ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "dae" #: ../xl/playlist.py:1828 #: ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "weke" #: ../xl/lyrics.py:305 msgid "Local" msgstr "Plaaslik" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "Plaas in tou" #: ../xlgui/widgets/menuitems.py:118 #: ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "Vervang die huidige" #: ../xlgui/widgets/menuitems.py:122 #: ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "Voeg toe tot huidige" #: ../xlgui/widgets/menuitems.py:145 #: ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "Open gids" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" "Die lêers kan nie na die asblik geskuif word nie. Moet hulle permanent vanaf " "die skyf uitgewis word?" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "Skuif na asblik" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "_Vertoon spelende snit" #: ../xlgui/widgets/filter.py:62 #: ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "Naam:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "Meet enige van die kriteria" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "Resultate in willekeurige volgorde" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "Beperk tot: " #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr " snitte" #: ../xlgui/widgets/playback.py:95 #: ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "Speel nie tans nie" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "Besig om te soek: %s" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "Skuif" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "Nuwe merker" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "Uitgedoof" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "%d%%" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "Maksimum volume" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" "$title\n" "van $artist\n" "van $album" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "Verskeie" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "%(track_count)d in totaal (%(total_duration)s)" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "%d in versameling" #: ../xlgui/widgets/info.py:624 #: ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "%d vertoon" #: ../xlgui/widgets/info.py:628 #: ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "%d geselekteer" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "Wagtou" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "Wagtou (%d)" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 #: ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "#" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "Snitnommer" #: ../xlgui/widgets/playlist_columns.py:225 #: ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 #: ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 #: ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "Titel" #: ../xlgui/widgets/playlist_columns.py:232 #: ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 #: ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 #: ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "Kunstenaar" #: ../xlgui/widgets/playlist_columns.py:239 #: ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 #: ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "Komponis" #: ../xlgui/widgets/playlist_columns.py:246 #: ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 #: ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 #: ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "Album" #: ../xlgui/widgets/playlist_columns.py:253 #: ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 #: ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "Tydsduur" #: ../xlgui/widgets/playlist_columns.py:260 #: ../xlgui/properties.py:75 msgid "Disc" msgstr "Skyf" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "Skyfnommer" #: ../xlgui/widgets/playlist_columns.py:268 #: ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 #: ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "Keuring" #: ../xlgui/widgets/playlist_columns.py:312 #: ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "Datum" #: ../xlgui/widgets/playlist_columns.py:318 #: ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 #: ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "Genre" #: ../xlgui/widgets/playlist_columns.py:325 #: ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "Bistempo" #: ../xlgui/widgets/playlist_columns.py:332 #: ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 #: ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "Ligging" #: ../xlgui/widgets/playlist_columns.py:339 #: ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "Lêernaam" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "Speeltelling" #: ../xlgui/widgets/playlist_columns.py:353 #: ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 #: ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "BPM (Slae per minuut)" #: ../xlgui/widgets/playlist_columns.py:360 #: ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 #: ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "Laas gespeel" #: ../xlgui/widgets/playlist_columns.py:366 #: ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "Datum toegevoegd" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "Skedule" #: ../xlgui/widgets/playlist_columns.py:491 #: ../xlgui/properties.py:77 msgid "Comment" msgstr "Kommentaar" #: ../xlgui/widgets/playlist_columns.py:500 #: ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "Groepering" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "He_rskaalbaar" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "_Outomaties skaleer" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "Keuring:" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "Willekeurig" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "Herhaal" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "Dinamies" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "Verwyder huidige snit vanaf die speellys" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "Skommel die speellys" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "Skommel die seleksie" #: ../xlgui/widgets/playlist.py:206 #: ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 #: ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "Nuwe speellys" #: ../xlgui/widgets/playlist.py:226 #: ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "Hernoem" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "Stop terugspeel na hierdie snit" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "Gaan voort met terugspeel na hierdie snit" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "Benodig uitbreidings vir dinamiese speellyste" #: ../xlgui/widgets/playlist.py:538 #: ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "Voeg soortgelyke snitte dinamies tot die speellys toe" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "Voer die URL om te open in" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "Open URL" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "Kies 'n lêer (volgens uitbreiding)" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "Kies die media om oop te maak" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "Ondersteunde lêers" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "Musieklêers" #: ../xlgui/widgets/dialogs.py:623 #: ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "Speellys lêers" #: ../xlgui/widgets/dialogs.py:625 #: ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "Alle Leêrs" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "Selekteer die gids om oop te maak" #: ../xlgui/widgets/dialogs.py:770 #: ../xlgui/menu.py:87 #: ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "Voer speellys in" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "Eksporteer die huidige speellys" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "Gebruik relatiewe paaie na snitte" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "Speellys gestoor as %s." #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "Sluit %s" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "Wysigings aan %s stoor voor gesluit word?" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "Die wysigings sal verlore gaan as hulle nie gestoor word nie" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "Sluit sonder om te stoor" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "Ja op alles" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "Nee op alles" #: ../xlgui/widgets/dialogs.py:1336 #: ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "%(count)s van %(total)s gestoor." #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "'n Fout het voorgekym tydens die kopieering van %s: %s" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "Lêer bestaan, oorskryf %s ?" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "Speellys naam:" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "Voeg nuwe speellys by..." #: ../xlgui/widgets/dialogs.py:1526 #: ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "U het nie 'n naam vir die nuwe speellys verskaf nie" #: ../xlgui/widgets/dialogs.py:1529 #: ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 #: ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "Die speellysnaam wat u verskaf het is reeds in gebruik" #: ../xlgui/widgets/notebook.py:146 #: ../xlgui/menu.py:115 msgid "Close Tab" msgstr "Sluit oortjie" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "$title (deur $artist)" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "Stop na gekose nommer" #: ../xlgui/main.py:569 #: ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "Fout tydens terugspeel voorgekom!" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "Buffer tans: %d%%..." #: ../xlgui/main.py:628 #: ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "Speel voort" #: ../xlgui/main.py:632 #: ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "Halt terugspeel" #: ../xlgui/main.py:774 #: ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "Eksporteer van speellys het gefaal" #: ../xlgui/main.py:832 #: ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "Begin speel" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "Exaile Musiekspeler" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "_Nuwe speellys" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "Open _URL" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "Open gidse" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "Eksporteer die huidige speellys" #: ../xlgui/menu.py:124 #: ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "Begin oor" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "Versameling" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "_Wagtou" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "_Omslae" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "S_peellys nutsbalk" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "_Kolomme" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "Maak speellys _skoon" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "Toestelbeheerder" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "Herlaai die versameling" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "Snit eienskappe" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "Kanselleer" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "Oorpsronklike album" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "Liedjieskrywer" #: ../xlgui/properties.py:54 msgid "Website" msgstr "Webwerf" #: ../xlgui/properties.py:55 #: ../xlgui/cover.py:793 msgid "Cover" msgstr "Omslag" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "Oorspronklike kunstenaar" #: ../xlgui/properties.py:57 msgid "Author" msgstr "Skrywer" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "Oorspronklike datum" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "Samesteller" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "Dirigent" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "Uitvoerende kunstenaar" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "Kopiereg" #: ../xlgui/properties.py:66 #: ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 #: ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "Lirieke" #: ../xlgui/properties.py:67 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "Snit" #: ../xlgui/properties.py:68 #: ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "Weergawe" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "ISRC" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "Geënkodeer deur" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "Organisasie" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "Aangepas" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "Kere gespeel" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "Die byvoeging van etikette het misluk" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" "Etikette kon nie op die volgende lêers bygevoeg word nie:\n" "{files}" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "Wysig tans snit %(current)d van %(total)d" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "Pas wysigings toe voordat u afsluit?" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "U wysisings sal verlore gaan indien u hulle nie toepas nie." #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "%s:" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "van:" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "JPEG-beeld" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "PNG-beeld" #: ../xlgui/properties.py:919 msgid "Image" msgstr "Beeld" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "Gekoppelde beeld" #: ../xlgui/properties.py:1036 #: ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "{width}x{height} beeldpunte" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "{format} ({width}x{height} beeldpunte" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "Kies 'n beeld om as omslag te dien" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "Ondersteunde beeldformate" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "Pas die huidige waarde op alle snitte toe" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "{uitstaande} omslae om te gaan haal" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "Alle omslae gekry" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "Versamel albums en omslae" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "Vertoon omslag" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "Haal Omslag" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "Verwyder omslag" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "Omslag vir %s" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "Omslag voorkeure vir %(artist)s - %(album)s" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "Laai tans..." #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "Geen omslae gevind." #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "Ikoon" #: ../xlgui/devices.py:81 msgid "Device" msgstr "Toestel" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "Drywer" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "Skandeer tans die versameling..." #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "Skandeer %s..." #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "Wagtou aan/afskakel" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "Plaas items in die wagtou" #: ../xlgui/oldmenu.py:121 #: ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "Eienskappe" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "Nuwe stasie" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "Nuwe slim speellys" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "Wysig" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "Eksporteer speellys" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "Eksporteer lêers" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "Afspeellijst verwijderen" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "Kies 'n gids om die lêers na te eksporteer" #: ../xlgui/oldmenu.py:278 #: ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "" "Is u seker dat die geselekteerde speellys permanent uitgewis moet word?" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "Verskaf die nuwe naam vir u speellys" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "Hernoem speellys" #: ../xlgui/oldmenu.py:331 #: ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "Verwyder" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "Sleep hierheen om 'n nuwe speellys te maak" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "Onlangs geslote oortjies" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "Speellys %d" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "Voeg 'n gids by" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "Gids nie bygevoeg nie" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" "Die gids is reeds in u versameling of is 'n subgids van 'n ander gids in die " "versameling." #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "Oorgeplaas na %s..." #: ../xlgui/panel/radio.py:126 #: ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "Laai strome" #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "Voeg radiostasie by" #: ../xlgui/panel/radio.py:201 #: ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "Web-adres:" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "Gestoorde stasies" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "Radio Strome" #: ../xlgui/panel/radio.py:304 #: ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "Verfris" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "Verskaf 'n naam vir die nuwe speellys" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "Genre - Kunstenaar" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "Genre - Album" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "Date - Kunstenaar" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "Datum - Album" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "Kunstenaar - (Datum - Album)" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "Herlaai versameling" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "Grootte" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "en" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "is" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "is nie" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "is gestel" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "is nie gestel nie" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "bevat" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "bevat nie" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "regex" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "not regex" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "ten minste" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "op die meeste" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "voor" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "ná" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "tussen" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "meer as" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "minder as" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "in die afgelope" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "nie in die afgelope" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "Aantal gespeel" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "Jaar" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 #: ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "%(first)s, %(second)s en andere" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 #: ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "%(first)s en %(second)s" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "Slim speellyste" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "Aangepaste speellyste" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "Voeg slim speellys by" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "Wysig Slim Speellys" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "Eksporteer %s" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "Terugspeel" #: ../xlgui/preferences/plugin.py:40 #: ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "Uitbreidings" #: ../xlgui/preferences/plugin.py:92 #: ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "Geen kategorie" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "Kon die uitbreiding nie laai nie!" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "Vermisde uitbreiding: %s" msgstr[1] "Vermisde uitbreidings: %s" #: ../xlgui/preferences/plugin.py:167 #: ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "Kon nie die uitbreiding uitskakel nie" #: ../xlgui/preferences/plugin.py:177 #: ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "Kon nie die uitbreiding inskakel nie" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "Kies 'n uitbreiding" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "Uitbreidingsargiewe" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "Installasie van uitbreiding het misluk!" #: ../xlgui/preferences/cover.py:38 #: ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 #: ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "Omslae" #: ../xlgui/preferences/appearance.py:34 #: ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "Voorkoms" #: ../xlgui/preferences/collection.py:23 #: ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "Versameling" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "the" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "Herstel na standaardwaardes" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "Exaile oorbegin?" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "Exaile moet oorbegin word vir hierdie verandering om in effek te kom" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "Aksie" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "Kortpad" #: ../xlgui/preferences/playlists.py:34 #: ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "Speellyste" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "Aangaande" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "© 2009-2012" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "Onbekende vertaler" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "Omslag Bestuurder" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "Gaan haal _omslae" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "Speel in willekeurige volgorde" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "Herhaal terugspeel" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "_Soek:" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "Omslagvinder" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "Die oorsprong van hierdie omslag" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "_Stel as omslag" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "_Lêer" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "_Wysig" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "_Aansig" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "_Gereedskap" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "_Hulp" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "Vorige snit" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" "Stop terugspeel\n" "\n" "Regskliek om na die huidige snit te stop" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "Volgende snit" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0:00 / 0:00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "Snit eienskappe" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "Voeg _etiket by" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "_Verwyder etiket" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "ab → A_b" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "Maak eerste letter van alle etikette 'n hoofletter" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "Vo_rige" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "_Volgende" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "Ander" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "32x32 beeldpunte 'lêer ikoon' (slegs PNG)" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "Ander lêer-ikoon" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "Omslag (voorkant)" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "Omslag (agterkant)" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "Insetsel" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "Kunstenaar/Optreder" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "Band/Orkes" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "Lirieke skrywer" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "Opname ligging" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "Gedurende opname" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "Gedurende optrede" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "'n Helder gekleurde vis" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "Illustrasie" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "Tipe:" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "Beskrywing:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "Versamelingsbeheerder" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "Gemonitor" #: ../data/ui/panel/flatplaylist.ui.h:1 #: ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "Radio" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "Voeg alle snitte by tot die speellys" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "Importeer CD" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "Voeg stasie by" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "Lêers" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "Vorige besoekte gids" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "Volgende besoekte gids" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "Een gids terug" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "Verfris gidslys" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "Tuisgids" #: ../data/ui/panel/files.ui.h:7 #: ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "Soek: " #: ../data/ui/panel/files.ui.h:8 #: ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "Maak soekveld skoon" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "Die versameling is leeg." #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "Voeg musiek by" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "Verfris die versamelingsaansig" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "Gebruik omslae wat in die etikette verberg is" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "Gebruik omslae vanuit lokale lêers" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "Gewenste lêername" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "Gaan haal omslae outomaties tydens terugspeel" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "Albumomslag soekvolgorde:" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "(sleep om te herorganiseer)" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "Open die laaste speellys by begin" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "Vra of doelgemaakte speellyste gestoor moet word by afsluit" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "Vervang inhoud in die speellys deur te dubbelkliek in die paneel" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" "In plaas van bygevoeg, sal snitte in die panele wat gedubbelkliek word, die " "inhoud van die huidige speellys vervang." #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "Terugspeel-enjin " #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "Gebruik klankoorvloei by aksies van die gebruiker" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "Uitvaag tydsduur (ms):" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "Gebruik oorvloei (EKSPERIMENTEEL)" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "Oorvloei tydsduur (ms):" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "Oudio stelsel: " #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "Toestel: " #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "Hervat terugspeel aan die begin" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "Hervat terugspeel in gepouseerde toestand" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "Normaal" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "Unified (onstabiel)" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "Uitbreiding" #: ../data/ui/preferences/plugin.ui.h:3 #: ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "In Gebruik" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "Geen uitbreiding gekies nie" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "Geïnstalleerde uitbreidings" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "Outeurs:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "Weergawe:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "Installeer" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "Geen uitbreding geselekteer" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "Beskikbare uitbreidings" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "Installeer Opdaterings" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "Vernuwings" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "Installeer uitbreidingslêer" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "Wys die infoskerm" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "Die info-venster bevat album omslae en snit informasie" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "Vertoon altyd die oortjiebalk" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "Oortjie posisionering" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "Speellys lettertipe:" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "Vertoon snitte se speeltal in versameling" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "Gebruik alfa-deursigbaarheid" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" "Waarskuwing: hierdie opsie kan beeldfoute veroorsaak, indien dit met 'n " "vensterbeheerder sonder komposisie-ondersteuning gebruik word." #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "Vertoon ikoon in stelselvak" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "Minimeer na stelselvak" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "Verskuil na stelselvak" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "Spring na die huidige liedjie by snitverandering" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "Vertoon openingsskerm aan die begin" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "Linkerkant" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "Regterkant" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "Bo" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "Onderkant" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "Voorkeure" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" "Woorde om weg te laat van die begin van kunstenaarsetikette tydens sortering " "(geskei deur 'n spasie):" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "(Regskliek om terug te gaan na standaardwaardes)" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "Gebruik lêergebaseerde versamelingsopsporing" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "Toestelbestuurder" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "Voeg toestel by" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "Tipe toestel:" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "Opgespoorde toestelle" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "Doelgemaak " #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "Wagtou Bestuurder" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "Soek na gemoed..." #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "Gemoed gevind" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "Kon die gemoedsbalk nie lees nie" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "" #: ../plugins/moodbar/moodbarprefs.py:23 #: ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "Gemoedsbalk" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "" #: ../plugins/streamripper/srprefs.py:22 #: ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "Streamripper" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "Gunsteling Last.fm snitte" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "Die API-sleutel is ongeldig." #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "Maak seker dat die data korrek ingevoer is" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "Kon nie die webblaaier laai nie" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "Gunstelinge" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "Last.fm Gunstelinge" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "Voeg by tot gunstelinge" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "Verwyder van gunstelinge" #: ../plugins/alarmclock/acprefs.py:22 #: ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "Wekker" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "Hoofkieslys" #: ../plugins/shoutcast/__init__.py:107 #: ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 #: ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "" #: ../plugins/shoutcast/__init__.py:120 #: ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 #: ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 #: ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "Voer die soekwoorde in" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "Shoutcast soek" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "Soekresultate" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "Soek" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "Geen lirieke gevind" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "Gaan na: " #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "Enige" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "Lirieke bekyker" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "AudioScrobbler" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "Verifikasie suksesvol" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "Verifikasie het misluk" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "Skakel audioscrobbling aan" #: ../plugins/equalizer/__init__.py:127 #: ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "Bandmenger" #: ../plugins/shutdown/__init__.py:38 #: ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "Sluit af na terugspeel" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "Afsluitbeplanning" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "Die rekenaar sal afgesluit word na die terugspeel" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "Afskakeling sal binnekort begin" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "Die rekenaar sal na %d sekondes afgeskakel word." #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "Afskakeling het misluk" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "Rekenaar kon nie deur middel van D-Bus afgesluit word nie" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "Toestel voorskou" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "Voorskou" #: ../plugins/notifyosd/notifyosdprefs.py:22 #: ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "%(title)s" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "deur %(artist)s" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "van %(album)s" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "IPython konsole - Exaile" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "Vertoon die IPython konsole" #: ../plugins/ipconsole/ipconsoleprefs.py:22 #: ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "IPython-konsole" #: ../plugins/notify/notifyprefs.py:22 #: ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "Melding" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" "deur %(artist)s\n" "van %(album)s" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "Besig om die CD te importeer..." #: ../plugins/cd/__init__.py:122 #: ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "Oudioskyf" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "CD" #: ../plugins/cd/cdprefs.py:105 #: ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "Snitnommer" #: ../plugins/cd/cdprefs.py:111 #: ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "Skyfnommer" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "Speeltelling" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "Kunstenaar: " #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" "Het u geweet…\n" "\n" "%s" #: ../plugins/wikipedia/__init__.py:134 #: ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "Wikipedia" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "Vertoon 'n Wikipedia-blad van die huidige kunstenaar." #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "Herhaal die segment" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "Herhaal die begin" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "Herhaal die einde" #: ../plugins/minimode/__init__.py:103 #: ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "Mini-modus" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 #: ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "$tracknumber - $title" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "$title deur $artist" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "$title ($__length)" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "Vorige" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "Gaan na vorige snit" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "Vorige snit" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "Volgende" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "Gaan na volgende snit" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "Volgende snit" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "Speel/Wag" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "Speel, pouse of hervat terugspeel" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "Begin speel" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "Gaan voort met terugspeel" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "Pouseer terugspeel" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "Stop" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "Stop die terugspeel" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "Gaan voort met terugspeel na die huidige snit" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "Volume" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "Verander die volume" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "Herstel" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "Herstel die hoofvenster" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "Herstel die hoofvenster" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "Kies die keuring vir die huidige snit" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "Snitkeuse" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "Eenvoudige snitlyskeuse" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "Terugspeel knoppie" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "Toegang tot die huidige speellys" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "$title ($current_time / $total_time)" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "Vooruitgangsknoppie" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "Terugspeelvoortuigang en toegang tot die huidige speellys" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "Vooruitgangsbalk" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "Terugspeelvooruitgang en soek" #: ../plugins/grouptagger/gt_prefs.py:21 #: ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "GroepEtikeerder" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "Kry alle etikette van 'n versameling" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "Vertoon snitte met alle etikette" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "Vertoon snitte met etikette (aangepas)" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "Vertoon snitte met geselekteerde" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "Vertoon snitte met etiket \"%s\"" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "Vertoon snitte met alle geselekteer" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "Groepeer" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "Voeg nuwe groep by" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "Verwyder groep" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "Voeg nuwe kategorie by" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "Verwyder kategorie" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "Nuwe etiket?" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "Nuwe kategorie?" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "Voeg groep by" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "Mag hierdie etiket hê [OF]" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "Moet nie hierdie etiket hê nie [NIE]" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "Geïgnoreer" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "Gekose Snitte" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "ReplayGain" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "Laat val om te kies" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "Voeg toe en speel" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "Voeg toe agter" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 #: ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "Geskiedenis" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "Speellysgeskiedenis" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "Stoor Geskiedenis" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "Vee geskiedenis uit" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "Gereed" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "Deursoek tans die Jamendo katalogus..." #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "Haal tans inligting oor die snit..." #: ../plugins/osd/osd_preferences.py:29 #: ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "Inligtingvenster" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "Amazon-albumomslae" #: ../plugins/podcasts/__init__.py:55 #: ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "Potgooie" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "Potgooi" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "Verfris potgooi" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "Skrap" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "Open potgooi" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "Aan die laai %s..." #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "Fout tydens laai van die potgooi" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "Laai tans die potgooie..." #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "Kon nie die potgooi stoor nie" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "Werksarea-omslag" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "Multi-Alarm Klok" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "Konteks" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "Konteks-info" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "Boekmerk hierdie snit" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "Verwyder Boekmerk" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "Wis boekmerke uit" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 #: ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "Boekmerke" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "Pouse tydens sluimerskerm" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "DAAP-bediener" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "BPM-teller" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "BPM instel van %d na %s?" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "DAAP-kliënt" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "Per hand..." #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "Verskaf die IP-adres en poort om te deel" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "Voer IP-adres en poort in." #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "Verfris die bedienerlys" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "Ontkoppel van die bediener" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "Selekteer 'n ligging om in te stoor" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "Verbind met DAAP..." #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "Donkerheidsvlak" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "Gebruik golfvormstyl" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "Vertoon slegs die golfvorm, nie die gemoed nie" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "Gebruik kleurtema " #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "Basiskleur:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "Basiskleur" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "Stoor ligging:" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "Wis onvolledige lêers uit" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "API-sleutel:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "Geheim:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "Versoek Toegangstoestemming" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "Alarm tyd" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "Maandag" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "Dinsdag" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "Woensdag" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "Donderdag" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "Vrydag" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "Saterdag" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "Sondag" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "Alarm dae" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "Gebruik uitdoof" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "Minimum volume:" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "Maksimum volume" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "Verhoog:" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "Tyd per verhoging:" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "Weergawe-oorleg" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "Vertoon albumomslae" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "Ronde aansig" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "Tekspersentasie" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "Geen" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "Lirieke lettertipe:" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "Verfris lirieke" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "Wagwoord:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "Gebruikersnaam:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "voorkeuse" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "+12 dB" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "0" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "-24 dB" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "29" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "59" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "119" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "237" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "474" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "947" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "1.9K" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "3.8K" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "7.5K" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "15K" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "As die snit verander" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "By terugspeel begin, pouse of stop." #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "As die hoofvenster gefokus is" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "Aansig" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "Gebruik albumomslae as ikone" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "Gebruik media-ikone vir pouse, stop en hervat" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "Ikone" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "Kunstenaarreël" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by " "\"Unknown\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "Opsomming:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "Albumreël" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "Inhoud" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "Linux" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "Lettertipe:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "Tekskleur:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "Agtergrondkleur:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "IPython-kleurtema:" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "Herskaleer vertoonde omslae" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "Slegs kunstenaar:" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "Slegs album:" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "Beide kunstenaar en album" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "Hoofteks" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "Ogg Vorbis" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "FLAC" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "AAC" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "MP3 (VBR)" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "MP3 (CBR)" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "WavPack" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "Importeerformaat: " #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "Importeerkwaliteit: " #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "Importeerpad: " #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "Kortkode van die Wikipedia taalweergawe (af, en, de, fr, ...)" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "Taal:" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "Tuis" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "Vorige" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "Volgende" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "Kontrole" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "Altyd op voorgrond" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "Vertoon in takelys" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "Vertoon vensterdekorasies" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "Vertoon op alle werksblaaie" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "Volledig" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "Eenvoudig" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "Verkies per-album korrigering" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "Beskerm teen geraas as gevolg van oorversterking" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "Sorteer volgens:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "Volgorde:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "Uitslae:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "Gevorderd" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "Dalend" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "Stygend" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "Vrysteldatum" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "Keuring hierdie maand" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "Keuring hierdie maand" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "Aantal kere toegevoeg tot die speellys" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "Aantal aflaaie" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "Aantal kere geluister" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "Met sterretjies" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "Datum van keuring" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "Genre/etikette" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango" " Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "Agtergrond:" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon.com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "Voeg Potgooi by" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "Anker:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "X-Verplasing" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "beeldpunte" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "Y-Verplasing" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "Oorskryf omslaggrootte" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "Grootte:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "Gebruik klankuitvaag" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "Vervaagduur:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "ms" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "Bo links" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "Bo regs" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "Links onder" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "Regs onder" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "Voeg by" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "Alarms" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "Aktiveer volume indoof" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "Doof beginvolume" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "Eindvolume uitdoof" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "Verhogingstoename" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "Uitdooftyd (s):" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "Begin speellys oor" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "Terugspeel" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "Teken aan op Last.fm" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "Hervat afspeel wanneer sluimerskerm beëindig word" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "Bediener naam:" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "Poort:" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "Bediener aangeskakel" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "Huidige snit" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 #: ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 #: ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 #: ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 #: ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 #: ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "GUI" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 #: ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "Snelsleutels" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 #: ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "Afvoer" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "MusicBrainz Omslae" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 #: ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "Etikering" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 #: ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 #: ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 #: ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 #: ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "Nutsprogram" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "Hoofkieslysknop" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "Last.fm omslae" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "Shoutcast Radio" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "Shoutcast Radio lys" #: ../plugins/shoutcast/PLUGININFO:5 #: ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 #: ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 #: ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "Media Bronne" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "XKeys" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "'n 10-band equalizer" #: ../plugins/equalizer/PLUGININFO:5 #: ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 #: ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "Effek" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "Lyrics Fly" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "Librivox" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 #: ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "Toestelle" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "Dinamiese Speellyste" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is " "played/resumed/stopped, with either the song cover or a media icon to " "indicate the latest action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 #: ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "Ontwikkeling" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "CD terugspeel" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 #: ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "Informasie" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "A-B herhaal" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "Groep etikeerder" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "Jamendo" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "iPod-ondersteuning" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "Karaoke" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "Verwyder stemme vanuit die oudio" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "Hallo Wêreld" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "Kontekstuele Info" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "Lirieke Wiki" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" #~ msgid "Start" #~ msgstr "Begin" #~ msgid "File Type" #~ msgstr "Lêertipe" #~ msgid "Extension" #~ msgstr "Uitbreiding" #~ msgid "Close tab" #~ msgstr "Sluit oortjie" #~ msgid "Clear" #~ msgstr "Maak skoon" #~ msgid "Close" #~ msgstr "Sluit" #~ msgid "No track" #~ msgstr "Geen snit" #, python-format #~ msgid "%d KB" #~ msgstr "%d KG" #~ msgid "Text Color" #~ msgstr "Teks Kleur" #~ msgid "Window Height:" #~ msgstr "Vensterhoogte:" #~ msgid "Window Width:" #~ msgstr "Vensterbreedte:" #~ msgid "ALSA" #~ msgstr "ALSA" #~ msgid "OSS" #~ msgstr "OSS" #~ msgid "PulseAudio" #~ msgstr "PulseAudio" #~ msgid "GNOME" #~ msgstr "GNOME" #~ msgid "JACK" #~ msgstr "JACK" #~ msgid "Popup" #~ msgstr "Pop-op" #~ msgid "AWN" #~ msgstr "AWN" #~ msgid "Export" #~ msgstr "Eksporteer" #~ msgid "Export as..." #~ msgstr "Eksporteer as" #, python-format #~ msgid "%d covers to fetch" #~ msgstr "%d omslae om te gaan haal" #~ msgid "Randomize the order of the current playlist" #~ msgstr "Verander die volgorde van die huidige speellys willekeurig" #~ msgid "New custom playlist name:" #~ msgstr "Naam vir nuwe doelgemaakte speellys:" #~ msgid "_Randomize Playlist" #~ msgstr "Maak speellys deu_rmekaar" #~ msgid "Opacity Level:" #~ msgstr "Deursigtigheidsvlak" #~ msgid "Text Font:" #~ msgstr "Teks se lettertipe" #~ msgid "Show OSD on track change" #~ msgstr "Vertoon infovenster by snitverandering" #~ msgid "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager" #~ msgstr "" #~ "Mathias Brodala\n" #~ " \n" #~ " Vertalingsbestuurder" #, python-format #~ msgid "%(minutes)d:%(seconds)02d" #~ msgstr "%(minutes)d:%(seconds)02d" #~ msgid "" #~ "OSD\n" #~ "Drag to the location you'd like the\n" #~ "OSD to appear" #~ msgstr "" #~ "infoskerm\n" #~ "Sleep die infoskerm na die \n" #~ "gewenste ligging" #~ msgid "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgstr "Sleep die infoskerm na die gewenste ligging" #~ msgid "Display a progressbar in the OSD" #~ msgstr "Vertoon vorderingsbalk in die infoskerm" #~ msgid "© 2009-2010" #~ msgstr "© 2009-2010" #~ msgid "Alarm:" #~ msgstr "Alarm:" #~ msgid "Name - Time" #~ msgstr "Naam - Tyd" #~ msgctxt "yes" #~ msgid "Increment:" #~ msgstr "Verhoog:" #~ msgctxt "yes" #~ msgid "Friday" #~ msgstr "Vrydag" #~ msgctxt "yes" #~ msgid "Minimum volume:" #~ msgstr "Minimum volume:" #~ msgctxt "yes" #~ msgid "Maximum volume:" #~ msgstr "Maksimum volume" #~ msgctxt "yes" #~ msgid "Time per increment:" #~ msgstr "Tyd per verhoging:" #~ msgctxt "yes" #~ msgid "Tuesday" #~ msgstr "Dinsdag" #~ msgctxt "yes" #~ msgid "Wednesday" #~ msgstr "Woensdag" #~ msgctxt "yes" #~ msgid "Monday" #~ msgstr "Maandag" #~ msgctxt "yes" #~ msgid "Saturday" #~ msgstr "Saterdag" #~ msgctxt "yes" #~ msgid "Sunday" #~ msgstr "Sondag" #~ msgctxt "yes" #~ msgid "Thursday" #~ msgstr "Donderdag" #~ msgid "Secret key:" #~ msgstr "Geheime sleutel:" #~ msgctxt "yes" #~ msgid "Use Fading" #~ msgstr "Gebruik uitvaag?" #~ msgid "Fading:" #~ msgstr "Uitvaag:" #~ msgid "Playback engine (requires restart): " #~ msgstr "Terugspeel-enjin (vereis oorbegin): " #~ msgid "Awn" #~ msgstr "Awn" #~ msgid "DirectSound" #~ msgstr "DirectSound" dist/copy/po/PaxHeaders.26361/si.po0000644000175000017500000000012412233027260015412 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.389046941 exaile-3.3.2/po/si.po0000644000000000000000000030732412233027260014363 0ustar00rootroot00000000000000# Sinhalese translation for exaile # Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2012. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-08-25 20:55+0200\n" "PO-Revision-Date: 2012-05-09 04:30+0000\n" "Last-Translator: පසිඳු කාවින්ද \n" "Language-Team: Sinhalese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-08-28 05:28+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "දින %d, " msgstr[1] "දින %d, " #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "පැය %d, " msgstr[1] "පැය %d, " #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "මිනිත්තු %d, " msgstr[1] "මිනිත්තු %d, " #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "තත්පර %d" msgstr[1] "තත්පර %d" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "%dd, " #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "%dh, " #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "%dm, " #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "%ds" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "%dd " #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "%d:%02d:%02d" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "%d:%02d" #: ../xl/formatter.py:690 ../xl/formatter.py:695 msgid "Never" msgstr "කිසිදා නැත" #: ../xl/formatter.py:701 msgid "Today" msgstr "අද දිනය" #: ../xl/formatter.py:703 msgid "Yesterday" msgstr "ඊයේ" #: ../xl/main.py:191 msgid "Failed to migrate from 0.2.14" msgstr "0.2.14 ගෙන් සංක්‍රමණය වීමට අපොහොසත් විය" #: ../xl/main.py:406 msgid "Usage: exaile [OPTION]... [URI]" msgstr "භාවිතය: exaile [OPTION]... [URI]" #: ../xl/main.py:407 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "විකල්ප" #: ../xl/main.py:411 msgid "Playback Options" msgstr "පිළිවැයිම් විකල්පයන්" #: ../xl/main.py:413 msgid "Play the next track" msgstr "මීළඟ පථය වයන්න" #: ../xl/main.py:415 msgid "Play the previous track" msgstr "පෙර පථය වයන්න" #: ../xl/main.py:417 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "පිළිවැයිම නවත්වන්න" #: ../xl/main.py:419 msgid "Play" msgstr "වයන්න" #: ../xl/main.py:421 msgid "Pause" msgstr "" #: ../xl/main.py:424 msgid "Pause or resume playback" msgstr "" #: ../xl/main.py:427 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "" #: ../xl/main.py:430 msgid "Collection Options" msgstr "" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:433 ../xl/main.py:440 msgid "LOCATION" msgstr "ස්ථානය" #: ../xl/main.py:433 msgid "Add tracks from LOCATION to the collection" msgstr "" #: ../xl/main.py:437 msgid "Playlist Options" msgstr "වාදන ලැයිස්තු විකල්පයන්" #: ../xl/main.py:441 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:444 msgid "Track Options" msgstr "පථ විකල්පයන්" #: ../xl/main.py:446 msgid "Query player" msgstr "" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:449 msgid "FORMAT" msgstr "" #: ../xl/main.py:450 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:453 msgid "TAGS" msgstr "" #: ../xl/main.py:454 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:457 msgid "Show a popup with data of the current track" msgstr "" #: ../xl/main.py:459 msgid "Print the title of current track" msgstr "" #: ../xl/main.py:461 msgid "Print the album of current track" msgstr "" #: ../xl/main.py:463 msgid "Print the artist of current track" msgstr "" #: ../xl/main.py:465 msgid "Print the length of current track" msgstr "" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:468 ../xl/main.py:483 ../xl/main.py:487 msgid "N" msgstr "N" #: ../xl/main.py:469 msgid "Set rating for current track to N%" msgstr "" #: ../xl/main.py:471 msgid "Get rating for current track" msgstr "" #: ../xl/main.py:474 msgid "Print the current playback position as time" msgstr "" #: ../xl/main.py:476 msgid "Print the current playback progress as percentage" msgstr "" #: ../xl/main.py:480 msgid "Volume Options" msgstr "ශබ්ද විකල්පයන්" #: ../xl/main.py:484 msgid "Increases the volume by N%" msgstr "ශබ්දය N% කින් වැඩි කරන්න" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:489 msgid "Decreases the volume by N%" msgstr "ශබ්දය N% කින් අඩු කරන්න" #: ../xl/main.py:492 msgid "Mutes or unmutes the volume" msgstr "" #: ../xl/main.py:494 msgid "Print the current volume percentage" msgstr "" #: ../xl/main.py:497 msgid "Other Options" msgstr "වෙනත් විකල්ප" #: ../xl/main.py:499 msgid "Start new instance" msgstr "" #: ../xl/main.py:501 msgid "Show this help message and exit" msgstr "" #: ../xl/main.py:503 msgid "Show program's version number and exit." msgstr "" #: ../xl/main.py:506 msgid "Start minimized (to tray, if possible)" msgstr "" #: ../xl/main.py:509 msgid "Toggle visibility of the GUI (if possible)" msgstr "" #: ../xl/main.py:511 msgid "" "Start in safe mode - sometimes useful when you're running into problems" msgstr "" #: ../xl/main.py:514 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" #: ../xl/main.py:517 msgid "Do not import old data from version 0.2.x" msgstr "" #: ../xl/main.py:520 msgid "Make control options like --play start Exaile if it is not running" msgstr "" #: ../xl/main.py:524 msgid "Development/Debug Options" msgstr "" #: ../xl/main.py:526 ../xl/main.py:528 msgid "DIRECTORY" msgstr "නාමාවලිය" #: ../xl/main.py:526 msgid "Set data directory" msgstr "" #: ../xl/main.py:528 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:530 msgid "MODULE" msgstr "මොඩියුලය" #: ../xl/main.py:531 msgid "Limit log output to MODULE" msgstr "" #: ../xl/main.py:533 msgid "LEVEL" msgstr "මට්ටම" #: ../xl/main.py:534 msgid "Limit log output to LEVEL" msgstr "" #: ../xl/main.py:537 msgid "Show debugging output" msgstr "" #: ../xl/main.py:539 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "" #: ../xl/main.py:542 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:545 msgid "TYPE" msgstr "වර්ගය" #: ../xl/main.py:546 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:548 msgid "Reduce level of output" msgstr "" #: ../xl/main.py:552 msgid "Disable D-Bus support" msgstr "D-Bus සහාය අක්‍රීය කරන්න" #: ../xl/main.py:554 msgid "Disable HAL support." msgstr "HAL සහාය අක්‍රීය කරන්න." #: ../xl/main.py:570 msgid "Entire Library" msgstr "සම්පූර්ණ පුස්තකාලය" #: ../xl/main.py:576 #, python-format msgid "Random %d" msgstr "අහඹු %d" #: ../xl/main.py:584 #, python-format msgid "Rating > %d" msgstr "" #: ../xl/main.py:685 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "\"%s\" නම සහිත ප්ලගිනයක් දැනටමත් ස්ථාපනය කර ඇත." #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "" #: ../xl/trax/trackdb.py:246 msgid "You did not specify a location to save the db" msgstr "" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "විවිධ ශිල්පීන්" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "නොදනී" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr " / " #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "%dk" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "" #: ../xl/player/pipe.py:309 ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Automatic" msgstr "ස්වයංක්‍රීය" #: ../xl/player/pipe.py:345 ../data/ui/preferences/playback.ui.h:21 #: ../plugins/previewdevice/previewprefs.ui.h:16 msgid "Custom" msgstr "ව්‍යවහාර" #: ../xl/player/pipe.py:400 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "වාදනය නොවේ." #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "" #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "" #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "" #: ../xl/playlist.py:173 msgid "Playlist" msgstr "වාදන ලැයිස්තුව" #: ../xl/playlist.py:279 ../xlgui/oldmenu.py:269 msgid "M3U Playlist" msgstr "M3U වාදන ලැයිස්තුව" #: ../xl/playlist.py:379 ../xlgui/oldmenu.py:270 msgid "PLS Playlist" msgstr "PLS වාදන ලැයිස්තුව" #: ../xl/playlist.py:472 ../xl/playlist.py:488 #, python-format msgid "Invalid format for %s." msgstr "" #: ../xl/playlist.py:483 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "" #: ../xl/playlist.py:543 ../xlgui/oldmenu.py:271 msgid "ASX Playlist" msgstr "ASX වාදන ලැයිස්තුව" #: ../xl/playlist.py:714 ../xlgui/oldmenu.py:272 msgid "XSPF Playlist" msgstr "XSPF වාදන ලැයිස්තුව" #: ../xl/playlist.py:829 msgid "Shuffle _Off" msgstr "" #: ../xl/playlist.py:830 msgid "Shuffle _Tracks" msgstr "" #: ../xl/playlist.py:830 msgid "Shuffle _Albums" msgstr "" #: ../xl/playlist.py:834 msgid "Repeat _Off" msgstr "" #: ../xl/playlist.py:834 msgid "Repeat _All" msgstr "" #: ../xl/playlist.py:834 msgid "Repeat O_ne" msgstr "" #: ../xl/playlist.py:838 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:838 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1779 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "තත්පර" #: ../xl/playlist.py:1780 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "මිනිත්තු" #: ../xl/playlist.py:1781 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "පැය" #: ../xl/playlist.py:1782 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "දින" #: ../xl/playlist.py:1783 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "සති" #: ../xl/lyrics.py:305 msgid "Local" msgstr "" #: ../xlgui/widgets/menuitems.py:93 msgid "Enqueue" msgstr "" #: ../xlgui/widgets/menuitems.py:115 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "" #: ../xlgui/widgets/menuitems.py:119 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "" #: ../xlgui/widgets/menuitems.py:129 ../xlgui/widgets/playlist.py:309 #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "" #: ../xlgui/widgets/menuitems.py:142 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "" #: ../xlgui/widgets/menuitems.py:164 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" #: ../xlgui/widgets/menuitems.py:179 msgid "Move to Trash" msgstr "ඉවතලන්න" #: ../xlgui/widgets/menuitems.py:190 msgid "_Show Playing Track" msgstr "" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "නම:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "" #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr "" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "ගෙනයන්න" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "නිහඬ" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "%d%%" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "උපරිම හඬ" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "විවිධ" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "" #: ../xlgui/widgets/queue.py:41 ../xlgui/widgets/playlist.py:208 #: ../xlgui/playlist.py:130 msgid "Clear" msgstr "" #: ../xlgui/widgets/queue.py:44 ../xlgui/widgets/playlist.py:211 #: ../plugins/history/__init__.py:239 msgid "Close" msgstr "වසන්න" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:204 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "#" #: ../xlgui/widgets/playlist_columns.py:205 msgid "Track Number" msgstr "" #: ../xlgui/widgets/playlist_columns.py:212 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "මාතෘකාව" #: ../xlgui/widgets/playlist_columns.py:219 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:171 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "ශිල්පියා" #: ../xlgui/widgets/playlist_columns.py:226 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "" #: ../xlgui/widgets/playlist_columns.py:233 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:174 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "ඇල්බමය" #: ../xlgui/widgets/playlist_columns.py:240 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "" #: ../xlgui/widgets/playlist_columns.py:247 ../xlgui/properties.py:75 msgid "Disc" msgstr "තැටිය" #: ../xlgui/widgets/playlist_columns.py:248 msgid "Disc Number" msgstr "තැටි අංකය" #: ../xlgui/widgets/playlist_columns.py:255 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "" #: ../xlgui/widgets/playlist_columns.py:299 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "දිනය" #: ../xlgui/widgets/playlist_columns.py:305 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "ශෛලිය" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "" #: ../xlgui/widgets/playlist_columns.py:319 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "" #: ../xlgui/widgets/playlist_columns.py:326 ../xlgui/panel/files.py:147 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "ගොනු නම" #: ../xlgui/widgets/playlist_columns.py:333 msgid "Playcount" msgstr "" #: ../xlgui/widgets/playlist_columns.py:340 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "BPM" #: ../xlgui/widgets/playlist_columns.py:347 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "එක්කල දිනය" #: ../xlgui/widgets/playlist_columns.py:359 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:478 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:487 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:606 msgid "_Resizable" msgstr "" #: ../xlgui/widgets/playlist_columns.py:611 msgid "_Autosize" msgstr "" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "" #: ../xlgui/widgets/playlist.py:126 msgid "Shuffle" msgstr "" #: ../xlgui/widgets/playlist.py:130 msgid "Repeat" msgstr "" #: ../xlgui/widgets/playlist.py:134 msgid "Dynamic" msgstr "" #: ../xlgui/widgets/playlist.py:149 msgid "Remove Current Track From Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:179 msgid "Randomize Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:203 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "නව වාදන ලැයිස්තුව" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "නම වෙනස් කරන්න" #: ../xlgui/widgets/playlist.py:246 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:253 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:302 ../xlgui/oldmenu.py:352 #: ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "ඉවත් කරන්න" #: ../xlgui/widgets/playlist.py:499 msgid "Requires plugins providing dynamic playlists" msgstr "" #: ../xlgui/widgets/playlist.py:503 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "විවෘත කලයුතු URL ඇතුලත් කරන්න" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "URL විවෘත කරන්න" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "සහය දක්වන ගොනු" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "ගීත ගොනු" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "වාදන ලැයිස්තු ගොනු" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "සියලු ගොනු" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "%s වසන්න" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "" #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/notebook.py:136 msgid "Close tab" msgstr "" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "" #: ../xlgui/main.py:463 msgid "Toggle: Stop after Selected Track" msgstr "" #: ../xlgui/main.py:566 ../plugins/previewdevice/__init__.py:354 msgid "Playback error encountered!" msgstr "" #: ../xlgui/main.py:573 #, python-format msgid "Buffering: %d%%..." msgstr "" #: ../xlgui/main.py:625 ../plugins/previewdevice/__init__.py:365 msgid "Continue Playback" msgstr "" #: ../xlgui/main.py:629 ../xlgui/main.py:817 #: ../plugins/previewdevice/__init__.py:336 #: ../plugins/previewdevice/__init__.py:369 msgid "Pause Playback" msgstr "" #: ../xlgui/main.py:771 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "වාදන ලැයිස්තුව අපනයනය අසාර්ථකයි!" #: ../xlgui/main.py:829 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:347 msgid "Start Playback" msgstr "" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "Exaile Music Player" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "නව වාදන ලැයිස්තුව (_N)" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "URL විවෘත කරන්න (_U)" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "වත්මන් වාදන ලැයිස්තුව අපනයනය කරන්න (_E)" #: ../xlgui/menu.py:115 msgid "Close Tab" msgstr "" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "නැවත අරඹන්න" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "එකතුව (_C)" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "පෝලිම (_Q)" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "තීරු (_C)" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "උපාංග කලමණාකරු (_D)" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "අවලංගු කරන්න" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "ගීත රචකයා" #: ../xlgui/properties.py:54 msgid "Website" msgstr "වෙබ් අඩවිය" #: ../xlgui/properties.py:55 ../xlgui/cover.py:777 msgid "Cover" msgstr "" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "" #: ../xlgui/properties.py:57 msgid "Author" msgstr "කර්තෘ" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "හිමිකම්" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "පද රචනය" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "අනුවාදය" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "ISRC" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "සංවිධානය" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1096 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "" #: ../xlgui/cover.py:111 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:112 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:137 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:477 msgid "Show Cover" msgstr "" #: ../xlgui/cover.py:478 msgid "Fetch Cover" msgstr "" #: ../xlgui/cover.py:479 msgid "Remove Cover" msgstr "" #: ../xlgui/cover.py:779 #, python-format msgid "Cover for %s" msgstr "" #: ../xlgui/cover.py:949 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "" #: ../xlgui/cover.py:982 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1054 msgid "No covers found." msgstr "" #: ../xlgui/cover.py:1055 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "" #: ../xlgui/devices.py:81 msgid "Device" msgstr "උපාංගය" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "ධාවකය" #: ../xlgui/__init__.py:289 msgid "Scanning collection..." msgstr "" #: ../xlgui/__init__.py:373 #, python-format msgid "Scanning %s..." msgstr "" #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "සංස්කරණය" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "වාදන ලැයිස්තුව මකන්න" #: ../xlgui/oldmenu.py:264 msgid "Export as..." msgstr "...ලෙස අපනයනය කරන්න" #: ../xlgui/oldmenu.py:289 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:299 ../xlgui/panel/playlists.py:1197 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "" #: ../xlgui/oldmenu.py:312 msgid "Enter the new name you want for your playlist" msgstr "ඔබගේ වාදන ලැයිස්තුවට නව නමක් ඇතුලත් කරන්න" #: ../xlgui/oldmenu.py:313 msgid "Rename Playlist" msgstr "වාදන ලැයිස්තුවේ නම වෙනස් කරන්න" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "%d වාදන ලැයිස්තුව" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "" #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "" #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "URL:" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "ඔබගේ නව වාදන ලැයිස්තුව සදහා නමක් ඇතුලත් කරන්න" #: ../xlgui/panel/collection.py:177 msgid "Genre - Artist" msgstr "" #: ../xlgui/panel/collection.py:180 msgid "Genre - Album" msgstr "" #: ../xlgui/panel/collection.py:183 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:186 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:189 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:312 msgid "Rescan Collection" msgstr "" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:171 msgid "Size" msgstr "විශාලත්වය" #: ../xlgui/panel/files.py:433 #, python-format msgid "%d KB" msgstr "%d KB" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "සහ" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "වනුයේ" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "නොවනුයේ" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "අඩංගු" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "අඩංගු නැත" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "පෙර" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "පසු" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "අතර" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "වඩා වැඩි" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "වඩා අඩු" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "වසර" #: ../xlgui/panel/playlists.py:276 msgid "Playlist name:" msgstr "" #: ../xlgui/panel/playlists.py:277 msgid "Add new playlist..." msgstr "" #: ../xlgui/panel/playlists.py:286 ../xlgui/panel/playlists.py:768 #: ../xlgui/panel/playlists.py:851 msgid "You did not enter a name for your playlist" msgstr "ඔබගේ වාදන ලැයිස්තුව සදහා නමක් ඇතුලත් කර නැත" #: ../xlgui/panel/playlists.py:289 ../xlgui/panel/playlists.py:349 #: ../xlgui/panel/playlists.py:774 ../xlgui/panel/playlists.py:858 msgid "The playlist name you entered is already in use." msgstr "" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:443 ../xlgui/panel/playlists.py:457 #: ../xlgui/panel/playlists.py:471 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:448 ../xlgui/panel/playlists.py:462 #: ../xlgui/panel/playlists.py:476 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:688 msgid "Smart Playlists" msgstr "" #: ../xlgui/panel/playlists.py:691 msgid "Custom Playlists" msgstr "" #: ../xlgui/panel/playlists.py:746 msgid "Add Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:821 msgid "Edit Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:1144 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "ප්ලගින" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "" msgstr[1] "" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "ප්ලගිනය අක්‍රීය කල නොහැක!" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "ප්ලගිනය ක්‍රියාත්මක කල නොහැක!" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "ප්ලගිනයක් තෝරන්න" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "ප්ලගින ගොනුව ස්ථාපනය අසාර්ථකයි!" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "මුහුණුවර" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "එකතුව" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "Exaile නැවත ආරම්භ කරන්න?" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "ක්‍රියාව" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "වාදන ලැයිස්තු" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "Exaile ගැන" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2010" msgstr "© 2009-2010" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "කවර කළමණාකරු" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "ගොනුව (_F)" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "සැකසුම් (_E)" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "දර්ශනය (_V)" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "මෙවලම් (_T)" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "උදව් (_H)" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0:00 / 0:00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "පෙර (_P)" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "මීළඟ (_N)" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "විස්තරය:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "ගුවන්විදුලිය" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "ගොනු" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "සොයන්න: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "" #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "" #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "GNOME" msgstr "GNOME" #: ../data/ui/preferences/playback.ui.h:16 #: ../plugins/previewdevice/previewprefs.ui.h:11 msgid "ALSA" msgstr "ALSA" #: ../data/ui/preferences/playback.ui.h:17 #: ../plugins/previewdevice/previewprefs.ui.h:12 msgid "OSS" msgstr "OSS" #: ../data/ui/preferences/playback.ui.h:18 #: ../plugins/previewdevice/previewprefs.ui.h:13 msgid "PulseAudio" msgstr "" #: ../data/ui/preferences/playback.ui.h:19 #: ../plugins/previewdevice/previewprefs.ui.h:14 msgid "JACK" msgstr "" #: ../data/ui/preferences/playback.ui.h:20 #: ../plugins/previewdevice/previewprefs.ui.h:15 msgid "DirectSound" msgstr "" #: ../data/ui/preferences/playback.ui.h:22 #: ../plugins/previewdevice/previewprefs.ui.h:17 msgid "Normal" msgstr "සාමාන්‍ය" #: ../data/ui/preferences/playback.ui.h:23 #: ../plugins/previewdevice/previewprefs.ui.h:18 msgid "Unified (unstable)" msgstr "" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "ප්ලගිනය" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "සක්‍රිය කර ඇත" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "ස්ථාපිත ප්ලගින" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "කර්තෘන්:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "අනුවාදය:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "ස්ථාපනය කරන්න" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Always show tab bar" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Tab placement:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:6 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:9 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "Show tray icon" msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Minimize to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:15 msgid "Jump to current song on track change" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Show splash screen on startup" msgstr "" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Left" msgstr "වම" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Right" msgstr "දකුණ" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Top" msgstr "ඉහළ" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Bottom" msgstr "පහළ" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "උපාංග කලමණාකරු" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "උපාංගය එක් කරන්න" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "උපාග වර්ගය" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "හදුනාගත් උපාංග:" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "" #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "" #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "" #: ../plugins/streamripper/__init__.py:64 msgid "Error executing streamripper" msgstr "" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:185 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:204 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "සංඳාකිරීමේ ඔරලෝසුව" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/awn/awn_prefs.py:32 msgid "AWN" msgstr "AWN" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "" #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "සෙවුම් ප්‍රථිපල" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "සොයන්න" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "" #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "ඕනෑම" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:155 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:161 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "දැනුම්දීම්" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "" #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "CD" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "තැටි අංකය" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:130 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "පෙර" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "මීළඟ" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "වාදනය/විරාමය" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "නවත්වන්න" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "ශබ්දය" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "ශබ්දය වෙනස්කරන්න" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:95 #: ../plugins/grouptagger/__init__.py:112 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:106 #: ../plugins/grouptagger/gt_widgets.py:688 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:117 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:121 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:652 #: ../plugins/grouptagger/gt_widgets.py:753 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:512 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:709 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:735 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:746 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:746 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:746 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:746 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:754 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "සූදානම්" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "" #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:356 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "පොඩ්කාස්ට්ස්" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "පොඩ්කාස්ට්" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "මකන්න" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "පොඩ්කාස්ට් විවෘත කරන්න" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "" #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "" #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "" #: ../plugins/contextinfo/__init__.py:1127 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "" #: ../plugins/bpm/__init__.py:78 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:238 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "" #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "" #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "DAAP වෙත සම්බන්ධවන්න..." #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "අසම්පූර්ණ ගොනු මකා දමන්න" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 msgid "API Key:" msgstr "API යතුර:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgctxt "yes" msgid "Monday" msgstr "සඳුදා" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgctxt "yes" msgid "Tuesday" msgstr "අඟහරුවාදා" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgctxt "yes" msgid "Wednesday" msgstr "බදාදා" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgctxt "yes" msgid "Thursday" msgstr "බ්‍රහස්පතින්දා" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgctxt "yes" msgid "Friday" msgstr "සිකුරාදා" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgctxt "yes" msgid "Saturday" msgstr "සෙනසුරාදා" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgctxt "yes" msgid "Sunday" msgstr "ඉරිදා" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgctxt "yes" msgid "Use Fading" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgctxt "yes" msgid "Minimum volume:" msgstr "අවම ශබ්දය:" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgctxt "yes" msgid "Maximum volume:" msgstr "උපරිම ශබ්දය:" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgctxt "yes" msgid "Increment:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgctxt "yes" msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "කිසිවක් නැත" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "මුරපදය:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "පරිශීලක නාමය:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "+12 dB" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "0" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "-24 dB" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "29" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "59" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "119" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "237" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "474" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "947" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "1.9K" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "3.8K" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "7.5K" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "15K" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by " "\"Unknown\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "සාරාංශය:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "පසුබිම් වර්ණය:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "Ogg Vorbis" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "FLAC" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "AAC" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "MP3 (VBR)" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "MP3 (CBR)" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "WavPack" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "සැමවිටම ඉහලින්ම පෙන්වන්න" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "සියලු වැඩතල මත පෙන්වන්න" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "සරල" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "පිළිවෙල:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "ප්රතිඵල:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "සංකීර්ණ‍" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "අවරෝහණ" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "ආරෝහණ" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "බාගතකිරීම් ගණන" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango" " Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "API යතුර:" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret key:" msgstr "රහස් යතුර:" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon.com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "පොඩ්කාස්ට් එක් කරන්න" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "පික්සල" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "විශාලත්වය:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "ms" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "එක් කරන්න" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "" #: ../plugins/awn/PLUGININFO:3 msgid "Awn" msgstr "Awn" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "Shoutcast රේඩියෝව" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "Shoutcast රේඩියෝ ලැයිස්තුව" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "Librivox" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is " "played/resumed/stopped, with either the song cover or a media icon to " "indicate the latest action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides contextual wikipedia information.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "Jamendo" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "iPod සහාය" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "කැරොකේ" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "Hello World" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" #~ msgid "Start" #~ msgstr "ආරම්භ කරන්න" #~ msgid "Search:" #~ msgstr "සොයන්න:" #~ msgid "File Type" #~ msgstr "ගොනු වර්ගය" #~ msgid "Export" #~ msgstr "අපනයනය" #, python-format #~ msgid "%(minutes)d:%(seconds)02d" #~ msgstr "%(minutes)d:%(seconds)02d" #~ msgid "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager" #~ msgstr "" #~ "Mathias Brodala\n" #~ " \n" #~ " පරිවර්තන කලමණාකරු" dist/copy/po/PaxHeaders.26361/zh_TW.po0000644000175000017500000000012312233027260016031 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 29 ctime=1382821553.05704693 exaile-3.3.2/po/zh_TW.po0000644000000000000000000035642512233027260015011 0ustar00rootroot00000000000000# Traditional Chinese translation for exaile # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2012-10-11 03:11+0000\n" "Last-Translator: Elmaz Yu \n" "Language-Team: Traditional Chinese \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Launchpad-Export-Date: 2012-10-12 04:38+0000\n" "X-Generator: Launchpad (build 16130)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "%d 天, " #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "%d 時, " #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "%d 分, " #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d 秒" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "%d 天, " #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "%d 時, " #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "%d 分, " #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "%d 秒" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "%d 天 " #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "%d:%02d:%02d" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "%d:%02d" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "從未" #: ../xl/formatter.py:702 msgid "Today" msgstr "今天" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "昨天" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "自 0.2.14 轉移失敗" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "用法: exaile [OPTION]... [URI]" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "選項" #: ../xl/main.py:421 msgid "Playback Options" msgstr "播放選項:" #: ../xl/main.py:423 msgid "Play the next track" msgstr "播放下一首歌曲" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "播放上一首歌曲" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "停止播放" #: ../xl/main.py:429 msgid "Play" msgstr "播放" #: ../xl/main.py:431 msgid "Pause" msgstr "暫停" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "暫停/回復播放" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "在目前歌曲之後,停止播放" #: ../xl/main.py:440 msgid "Collection Options" msgstr "音樂庫選項" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "LOCATION" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "從LOCATION增加音軌" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "播放清單選項" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "匯出目前播放清單到LOCATION" #: ../xl/main.py:454 msgid "Track Options" msgstr "歌曲選項" #: ../xl/main.py:456 msgid "Query player" msgstr "查詢表演者" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "以彈出訊息方式顯示目前歌曲資料" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "顯示目前歌曲的標題" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "顯示目前歌曲所屬的專輯名稱" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "顯示目前歌曲的演出者" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "顯示目前歌曲的長度" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "將目前歌曲評分為 N%" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "取得目前歌曲的評分" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "以時間顯示目前音軌的位置" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "以百分比顯示目前音軌的位置" #: ../xl/main.py:490 msgid "Volume Options" msgstr "音量選項" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "增加N%音量" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "減小N%音量" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "靜音/有聲" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "顯示目前音量%" #: ../xl/main.py:507 msgid "Other Options" msgstr "其他選項" #: ../xl/main.py:509 msgid "Start new instance" msgstr "啟動新副本" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "顯示這個幫助資訊並離開" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "顯示程式版本並離開" #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "開始時最小化(至系統列,若可能的話)" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "切換介面能見度(若可以的話)" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "在安全模式下啟動 - 當您發生麻煩時有時候很有用" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "強制遊0.2.x版匯入資料(將覆蓋當前資料)" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "不要由0.2.x版匯入資料" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "如果沒有執行,以像是 --play 的選項啟動 Exaile" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "開發/除錯選項" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "目錄" #: ../xl/main.py:536 msgid "Set data directory" msgstr "設定資料目錄" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "選擇資料與設定存放目錄" #: ../xl/main.py:540 msgid "MODULE" msgstr "模組" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "在MODULE中有限的紀錄" #: ../xl/main.py:543 msgid "LEVEL" msgstr "等級" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "在LEVEL中有限的紀錄" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "顯示除錯訊息" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "開啟 xl.event 除錯。產生「大量」訊息" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "新增標題到日誌訊息。" #: ../xl/main.py:555 msgid "TYPE" msgstr "類型" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "降低訊息輸出等級" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "關閉 D-Bus 支援" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "關閉 HAL 支援" #: ../xl/main.py:580 msgid "Entire Library" msgstr "全部音樂庫" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "隨機 %d" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "評價 > %d" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "Exaile 尚未載入完成。也許你應該監聽 exaile_loaded 訊息?" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "標籤" #: ../xl/covers.py:505 msgid "Local file" msgstr "本地檔案" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "插件檔案庫格式不正確。" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "插件\"%s\"已經安裝。" #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "插件檔案庫含有不安全的路徑。" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "您未提供一個載入資料庫的位置" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "您沒有指定資料庫的儲存位置" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "各類演出者" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "無標題" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr " / " #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "%dk" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" "Vorbis 是一個開放原始碼,相較 MP3 格式檔案容量小而有高輸出品質的失真音效壓縮" "編碼器。" #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" "開放無損音效編碼器 (Free Lossless Audio Codec, FLAC) 是一開放原始碼編碼器,壓" "縮容量的同時也不會降低音質。" #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" "蘋果的私有版權失真音效格式在位元編碼率低於 MP3 時,仍可得到較好的音質。" #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" "一個私有且老舊的版權,但仍很流行的失真音效格式。VBR 有比 CBR 更好的品質,但可" "能無法與某些播放器相容。" #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" "一個私有且老舊的版權,但仍很流行的失真音效格式。CBR 比起 VBR 音質較差,但能任" "何播放器相容。" #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "一個非常快速、具優秀壓縮率的開放式無失真音效格式。" #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "自動" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "自訂" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "自動" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "未播放。" #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" "狀態: %(status)s, 標題: %(title)s, 演出者: %(artist)s, 專輯: %(album)s, " "長度: %(length)s, 位置: %(progress)s%% [%(position)s]" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "設定版本比現有的更新。" #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "我們不知道如何儲存這種設定: " #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "找到一個未知型式的設定!" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "播放清單類型不正確。" #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "播放清單" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "M3U 播放清單" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "PLS 播放清單" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "%s的格式不正確。" #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "尚未支援 %(type)s 的 %(version)s 版本" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "ASX 播放清單" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "XSPF 播放清單" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "關閉隨機 (_O)" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "隨機播放歌曲(_T)" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "隨機播放專輯 (_A)" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "關閉重複 (_O)" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "重複全部 (_A)" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "秒" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "分鐘" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "小時" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "天" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "星期" #: ../xl/lyrics.py:305 msgid "Local" msgstr "在地" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "加入佇列" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "取代現有的" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "附加於目前之後" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "開啟目錄" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "檔案無法移到垃圾桶。要永久刪除嗎?" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "移至垃圾桶" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "顯示播放中歌曲(_S)" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "名稱:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "相符任何狀態" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "隨機化結果" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "限制至: " #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr " 歌曲" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "未播放" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "正在尋軌: %s" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "移至" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "新的標記" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "靜音" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "%d%%" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "最大音量" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" "$title\n" "由 $artist 演唱\n" "從專輯「$album」" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "多個演出者" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "總共 (%(total_duration)s) 中的 %(track_count)d" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "%d 在音樂庫中" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "%d 首陳列" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "已選擇 %d 個" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "佇列 (%d)" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "#" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "歌曲編號" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "標題" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "演出者" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "作曲者" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "專輯" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "長度" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "唱片" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "碟片編號" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "評價" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "日期" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "曲風" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "位元率" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "位置" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "檔名" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "播放次數" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "BPM" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "上一次播放" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "加入時間" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "排定時間" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "評論" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "分組" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "可變更大小 (_R)" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "自動縮放 (_A)" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "評價" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "隨機" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "循環播放" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "動態" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "將目前歌曲移出播放清單" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "隨機化播放清單" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "隨機化選取" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "新增播放清單" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "重新命名" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "這首歌曲之後,停止播放" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "本曲目播畢後繼續" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "需要提供動態播放清單的插件" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "動態加入相似歌曲至播放清單" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "輸入網址以開啟" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "開啟 URL" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "選擇檔案類型(從副檔名)" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "選擇欲開啟的媒體檔案" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "支援的檔案" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "音樂檔案" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "播放清單檔案" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "所有檔案" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "選擇欲開啟的目錄" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "匯入播放清單" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "匯出目前播放清單" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "曲目使用相對路徑" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "播放清單已儲存為 %s。" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "關閉 %s" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "在關閉前儲存變更至 %s?" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "若您不儲存,您的變更將會遺失" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "關閉但不儲存" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "全部皆是" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "全部皆否" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "儲存了 %(total)s 中的 %(count)s 個。" #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "複製 %s 時發生錯誤:%s" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "%s 已經存在, 要覆寫嗎?" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "播放清單名稱:" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "新增播放清單..." #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "您還未輸入您的播放清單名稱" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "您輸入的播放清單名稱已經在使用中。" #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "關閉標籤" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "$title (由 $artist 演唱)" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "切換:在選取的歌曲之後停止" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "播放發生錯誤!" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "緩衝中:%d%%..." #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "繼續播放" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "暫停播放" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "播放清單匯出失敗!" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "開始播放" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "Exaile 音樂播放器" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "新增播放清單(_N)" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "開啟 _URL" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "開啟目錄" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "匯出目前的播放清單(_E)" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "重新啟動" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "音樂庫(_C)" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "佇列 (_Q)" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "封面 (_O)" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "播放清單工具列(_P)" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "欄位 (_C)" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "清空播放清單(_L)" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "裝置管理員 (_D)" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "重新掃描音樂庫(_S)" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "歌曲屬性(_P)" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "取消" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "原始專輯" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "作詞者" #: ../xlgui/properties.py:54 msgid "Website" msgstr "網站" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "專輯封面" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "原始演出者" #: ../xlgui/properties.py:57 msgid "Author" msgstr "作者" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "原始日期" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "編排" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "指揮" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "演出者" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "著作權" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "歌詞" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "歌曲" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "版本" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "ISRC" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "編碼" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "組織" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "已修改" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "播放次數" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "標籤寫入失敗" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" "下列檔案的標籤無法寫入:\n" "{files}" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "正在編輯%(total)d中的第%(current)d個歌曲" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "關閉前套用變更?" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "如果不套用變更, 所有的變更將被取消." #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "%s:" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "在:" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "JPEG 圖片" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "PNG 圖片" #: ../xlgui/properties.py:919 msgid "Image" msgstr "圖片" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "連結的圖片" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "{width}x{height} 像素" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "{format} ({width}x{height} 像素)" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "選擇圖片成為封面" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "支援的圖片格式" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "將目前數值套用到所有歌曲" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "{outstanding} 個封面未取得" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "所有封面都已取得的" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "蒐集專輯與封面..." #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "顯示封面" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "取得封面" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "移除封面" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "%s的封面" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "%(artist)s - %(album)s 的封面設定" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "載入中…" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "找不到封面。" #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "圖示" #: ../xlgui/devices.py:81 msgid "Device" msgstr "裝置" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "磁碟" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "掃描音樂庫..." #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "掃描 %s..." #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "切換佇列" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "排入項目" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "屬性" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "新站台" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "新增智慧型播放清單" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "編輯" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "匯出播放清單" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "匯出檔案" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "刪除播放清單" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "選擇檔案匯出的存放目錄" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "您確定要永久刪除選定的播放清單?" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "輸入您想使用的新播放清單名稱" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "重新命名播放清單" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "移除" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "拖曳到此建立新播放清單" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "最近關閉的分頁" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "播放清單 %d" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "{playlist_name} ({track_count} 曲目, {minutes} 分鐘前關閉)" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "{playlist_name} ({track_count} 曲目, {seconds} 秒鐘前關閉)" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "新增一個目錄" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "目錄未新增。" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "這目錄已經在您的收藏庫中,或是包含在您收藏庫中其他目錄的一個子目錄。" #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "傳送至 %s..." #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "正在載入串流..." #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "新增廣播站台" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "網址:" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "已儲存站台" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "廣播串流" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "重新整理" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "輸入您的新播放清單名稱" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "曲風 - 演出者" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "曲風 - 專輯" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "日期 - 演出者" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "日期 - 專輯" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "演出者 - (日期 - 專輯)" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "重新掃描音樂庫" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "檔案大小" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s KB" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "及" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "是" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "不是" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "包含" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "不包含" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "最少" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "最多" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "早於" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "晚於" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "介於" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "大於" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "小於" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "最近" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "不是最近" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "播放" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "年" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "智慧型播放清單" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "自訂播放清單" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "加入新的智慧型播放清單" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "編輯智慧型播放清單" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "播放" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "插件" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "未歸類的" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "無法載入插件資訊!" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "無效的插件:%s" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "無法停用插件!" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "無法啟用插件!" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "選擇一插件" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "插件檔案庫" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "插件安裝失敗!" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "封面" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "外觀" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "音樂庫" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "重置為預設值" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "重新啟動Exaile?" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "必須重新啟動,變更才會生效。" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "動作" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "快捷鍵" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "播放清單" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "關於 Exaile" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "© 2009-2012" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "未知譯者" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "封面管理員" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "取得封面(_F)" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "混排播放順序" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "重覆播放" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "搜尋(_S):" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "封面搜羅器" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "原始封面" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "設為封面(_S)" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "檔案 (_F)" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "編輯 (_E)" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "檢視 (_V)" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "工具 (_T)" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "求助 (_H)" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "上一首" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" "停止播放\n" "\n" "按右鍵啟動音軌結束後停止功能" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "下一首" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0:00 / 0:00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "歌曲屬性" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "加入標籤(_D)" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "移除標籤(_R)" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "ab → A_b" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "標籤首字全部轉為大寫" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "上一步(_P)" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "下一步(_N)" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "其它" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "32x32 像素 '檔案圖示' (只限PNG)" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "其它檔案圖示" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "封面 (前)" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "封面 (後)" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "描述:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "音樂庫管理員" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "受監視的" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "廣播" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "添加所有歌曲至播放清單" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "匯入 CD" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "新增站台" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "檔案" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "前一個拜訪過的目錄" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "下一個拜訪過的目錄" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "向上一層目錄" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "重新整理目錄列表" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "家目錄" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "搜尋: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "清除搜尋區域" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "音樂庫是空的。" #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "加入音樂" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" "重新整理音樂庫的檢視\n" "(按住 Shift 鍵重新掃描音樂庫)" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "使用內嵌在標籤中的封面" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "使用本地端檔案的封面" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" "這個選項會在音樂檔的 同個\n" "資料夾下搜尋封面影像。" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "慣用檔名:" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "以逗號分隔的檔名清單(沒有檔案副檔名)" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "在播放開始時自動取得封面" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "封面搜尋順序:" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "(拖曳以重新排序)" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "啟動時開啟上一次的播放清單" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "關閉時提示儲存自訂播放清單" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "雙擊邊欄項目時取代內容" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "若雙擊項目,歌曲不會附加在現有播放清單末尾,而是直接取代掉現有內容。" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "通過選單項目添加或替換引發播放" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" "當使用一個選單項目添加或替換在播放清單中的歌曲時,開始播放,如果是目前正在播" "放的歌曲。這個選項是預設行為在Exaile 0.3.3 之前" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "預設佇列歌曲,而非播放它" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "當您雙擊或按下enter鍵以播放在播放清單中的歌曲時,佇列歌曲而非播放它" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "播放引擎: " #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "在使用者動作時使用淡出過渡" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "淡出時間(毫秒):" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "使用交互淡出(實驗性)" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "交互淡出時間(毫秒):" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "音效槽: " #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "裝置: " #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "自定槽管線:" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "啟動時恢復播放" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "從暫停狀態中恢復播放" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "將項目添加到一個空的佇列開始播放" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "一旦播放就從佇列中刪除歌曲" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "自動前進到下一首歌曲" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "一般" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "統合(不穩定)" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "插件" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "啟用" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "沒有已選取的插件" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "已安裝的插件" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "作者:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "版本:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "安裝" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "沒有已選取的插件" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "可用的插件" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "安裝更新" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "更新" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "安裝插件檔" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "顯示信息區" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "信息區包含封面和歌曲資訊" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "永遠顯示標籤列" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "標籤放置:" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "播放清單的字型:" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "重設為系統字型" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "顯示在音樂庫中的歌曲總數" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "使用半透明:" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" "警告:若使用不支援composite的視窗管理程式,這個設定可能會造成顯示不正常。" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "顯示系統列圖示" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "最小化至系統列" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "關閉至系統列" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "音軌改變時跳至目前歌曲" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "啟動時顯示特效畫面" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "左" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "右" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "上方" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "底部" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "偏好設定" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "排序時,對演出者剔除下列頭文字(用空白分隔):" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "(點選右鍵以恢復預設值)" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "使用基於檔案的選輯檢測" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "裝置管理員" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "加入裝置" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "裝置類型:" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "偵測到的裝置:" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "自訂: " #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "佇列管理員" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "情態搜尋..." #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "找到情態。" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "無法讀取情態列。" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "無可執行之情態列可用。" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "情態列" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "執行串流擷取時出現錯誤" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "串流擷取" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "鬧鐘" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "主選單" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "連接 Shoutcast 伺服器中..." #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "連接 Shoutcast 伺服器錯誤。" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "輸入搜尋關鍵字" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "Shoutcast 搜尋" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "搜尋結果" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "搜尋" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "沒有找到歌詞。" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "到: " #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "任何" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "歌詞檢視器" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "AudioScrobbler" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "啟用 audioscrobbling" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "等化器" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "預覽裝置" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "螢幕顯示通知" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "%(title)s" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "由 %(artist)s 演唱" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "從專輯「%(album)s」" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "IPython 控制台 - Exaile" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "顯示 IPython 控制台" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "IPython 控制台" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "通知" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" "由 %(artist)s 演唱\n" "從專輯 %(album)s" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "匯入光碟..." #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "音樂光碟" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "光碟" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "音軌編號" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "碟片編號" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "播放次數" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "演出者: " #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "迷你模式" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "$tracknumber - $title" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "$title 由 $artist 演唱" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "$title ($__length)" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "前一首" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "到前一首歌曲" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "上一首歌曲" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "下一首" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "到下一首歌曲" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "下一首歌曲" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "播放/暫停" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "開始,暫停,或繼續播放" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "開始播放" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "繼續播放" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "暫停播放" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "停止" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "停止播放" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "在目前音軌之後繼續播放" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "音量" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "更改音量" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "還原" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "還原主視窗" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "選擇目前音軌評等" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "歌曲選擇" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "播放清單按鈕" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "存取目前的播放清單" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "進度列" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "回放增益" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "拖放到此以選取" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "添加並播放" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "添加" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "就緒" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "接收歌曲資料..." #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "螢幕顯示" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" "$title\n" "由 $artist 演唱\n" "從專輯「$album」" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" "$title\n" "由 $artist 演唱\n" "從專輯「$album」" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "Amazon 封面" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "Podcasts" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "Podcast" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "重新整理 Podcast" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "刪除" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "輸入網址以新增 podcast" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "開啟 Podcast" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "載入%s 中..." #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "Podcast 載入錯誤。" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "載入 Podcast 中..." #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "無法儲存 podcast 檔案" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "桌面封面" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "多鬧鈴鬧鐘" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "內文" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "將這個音軌加入書籤" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "刪除書籤" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "清空書籤" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "書籤" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "螢幕保護程式啟動時暫停" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "DAAP伺服器" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "手動..." #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "輸入欲分享的IP位址和埠號" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "輸入IP位址和埠號。" #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" "此伺服器不支援多重連線。\n" "在下載前,您必須先停止播放。" #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "重整伺服器列表" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "從伺服器斷線" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "選擇一個儲存位置" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "連線到DAAP..." #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "以變暗已播放區域來代替使用游標" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "黑暗等級:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "使用波形風格" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "僅顯示波形,非情態" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "使用彩色主題 " #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "基底色:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "基底色" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "儲存位置:" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "删除不完整的檔案" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "星期一" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "星期二" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "星期三" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "星期四" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "星期五" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "星期六" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "星期日" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "使用淡出" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "增加量:" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "歌詞字型:" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "重新整理歌詞" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "使用 Audioscrobbler 遞交音軌" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "密碼:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "帳號:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "在歌曲變換時" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "在播放開始,暫停或停止時" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "在標籤變換時" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "當主視窗被聚焦" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "顯示" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "使用專輯封面為圖示" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "為暫停,停止和恢復使用媒體圖示" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "圖示" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "演出者行:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" "標籤 \"%(title)s\",\"%(artist)s\",和 \"%(album)s\" 取而代之的將是它們各" "自的值。標題將取代為“未知”,如果它是空的。" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "摘要:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "專輯行:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "內容" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "字型:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "背景顏色:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "調整封面顯示大小" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "只有演出者:" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "演出者與專輯兩者:" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "身體語言" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "Ogg Vorbis" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "FLAC" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "AAC" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "MP3 (VBR)" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "MP3 (CBR)" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "WavPack" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "匯入格式: " #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "匯入品質: " #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "匯入路徑: " #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "永遠在最上層" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "顯示在工作清單中" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "顯示在所有桌面上" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "分組/類別的字型:" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "偏好專輯校正" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "針對每個專輯而非每首歌曲執行回放增益校正。" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "使用截波失真保護" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "防止因過度放大而造成的噪音" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "額外放大分貝套用到所有檔案上" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "額外放大 (分貝):" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "對缺乏回放增益資訊的檔案使用備用校正" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "備用校正程度(分貝):" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "曲風/標籤" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "加入 Podcast" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "定位點:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "X 軸位移:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "像素" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "Y 軸位移:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "大小:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "左上" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "右上" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "左下" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "右下" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "重新啟動播放清單" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "在書籤選單中使用封面(下次啟動時生效)" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "目前歌曲" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "通知" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "圖形使用者介面" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "GNOME 多媒體鍵" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" "透過 GNOME 多媒體鍵系統對控制 Exaile 增加支援。相容於 GNOME 版本 >= 2.20.x" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "熱鍵" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" "允許您透過串流擷取器錄製串流。\n" "需求套件:streamripper" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "輸出" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "標籤" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "在特定的時間播放音樂。\n" "\n" "請注意當特定時間到達時,Exaile 動作將會類似於您按下播放按鈕,所以請確認您想聽" "的音樂有在播放清單中" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "工具" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "主選單按鈕" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "Last.fm 封面" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "搜尋 Last.fm 以取得封面" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "Shoutcast 廣播" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "Shoutcast 廣播列表" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "媒體來源" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "傳送正在聆聽的資訊至 Last.fm 和其它支援 AudioScrobbler 類似的服務" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "XKeys" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "全域熱鍵使用 xlib (mmkeys.so)" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "效果" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "Lyrics Fly" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "插件用於從 lyricsfly.com 取回歌詞" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "Librivox" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "瀏覽及聆聽來自 Librivox.org 的有聲書" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "USB 外接儲存式媒體播放器支援" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "支援透過 USB 外接儲存協定存取可攜式媒體播放器" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "裝置" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "Last.fm 動態播放清單" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "Last.fm 的動態播放清單後端" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "動態播放清單" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" "當歌曲播放/回復/停止時這個插件會顯示氣泡式通知圖示,與歌曲封面或是一個媒體圖" "示來指出最後的動作。\n" "\n" "需求套件:python-notify\n" "建議套件:notify-osd" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "提供 IPython 控制台用來操作 Exaile" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "開發" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "彈出通知訊息,當一首歌曲開始播放時" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "CD 播放" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "資訊" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "啟用回放增益支援" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "iPod 支援" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" "在 Amazon 搜尋封面\n" "\n" "為了能使用此插件,需要一個 AWS API 金鑰和私密金鑰。" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "加入簡易 Podcast 支援" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "在桌面上顯示目前專輯封面" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "Hello World" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "一個簡單的插件用於測試基本插件系統" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "在特定的時間和日期播放音樂。\n" "\n" "請注意當特定時間到達時,Exaile 動作將會類似於您按下播放按鈕,所以請確認您想聽" "的音樂有在播放清單中" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "內文資訊" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" "顯示各種關於目前播放音軌的資訊。\n" "需求套件:libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (又名 " "PIL)" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "允許在音樂檔案中儲存/回復書籤位置。" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "Lyrics Wiki" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" #~ msgid "Clear" #~ msgstr "清除" #~ msgid "Close" #~ msgstr "關閉" #~ msgid "Close tab" #~ msgstr "關閉分頁" #~ msgid "Export as..." #~ msgstr "匯出為..." #~ msgid "%d KB" #~ msgstr "%d KB" #~ msgid "© 2009-2010" #~ msgstr "© 2009-2010" #~ msgid "GNOME" #~ msgstr "GNOME" #~ msgid "ALSA" #~ msgstr "ALSA" #~ msgid "OSS" #~ msgstr "OSS" #~ msgid "PulseAudio" #~ msgstr "PulseAudio" #~ msgid "JACK" #~ msgstr "JACK" #~ msgid "AWN" #~ msgstr "AWN" #~ msgid "API Key:" #~ msgstr "API 金鑰:" #~ msgid "Opacity Level:" #~ msgstr "透明度:" #~ msgid "Playing %s" #~ msgstr "正在播放 %s" #~ msgid "Add a directory" #~ msgstr "新增資料夾" #~ msgid "%(title)s (by %(artist)s)" #~ msgstr "%(title)s (由 %(artist)s演出)" #~ msgid "Stopped" #~ msgstr "已停止" #~ msgid "No covers found" #~ msgstr "沒有找到封面圖像" #~ msgid "Enter the search text" #~ msgstr "輸入搜尋字串" #~ msgid "Toggle Play or Pause" #~ msgstr "切換播放或暫停" #~ msgid "Exaile" #~ msgstr "Exaile" #~ msgid "Show a popup of the currently playing track" #~ msgstr "顯示目前播放音軌的彈出式說明" #~ msgid "Print the position inside the current track as time" #~ msgstr "在目前音軌中以時間顯示現在位置" #~ msgid "Print the progress inside the current track as percentage" #~ msgstr "在目前音軌中以百分比顯示現在進度" #~ msgid "Set rating for current song" #~ msgstr "設定目前歌曲的評價" #~ msgid "Get rating for current song" #~ msgstr "取得目前歌曲的評價" #~ msgid "Decreases the volume by VOL%" #~ msgstr "降低音量 VOL%" #~ msgid "Increases the volume by VOL%" #~ msgstr "增加音量 VOL%" #~ msgid "Filter event debug output" #~ msgstr "過濾事件除錯訊息" #~ msgid "Plugin archive contains an unsafe path" #~ msgstr "擴充套件檔案包含一個不安全的路徑" #~ msgid "Device class does not support transfer." #~ msgstr "裝置類別不支援傳輸。" #~ msgid "Streaming..." #~ msgstr "串流中..." #~ msgid "%(minutes)d:%(seconds)02d" #~ msgstr "%(minutes)d:%(seconds)02d" #~ msgid "New playlist title:" #~ msgstr "新播放清單標題:" #~ msgid "0:00" #~ msgstr "0:00" #~ msgid "" #~ "Exaile Music Player\n" #~ "Not playing" #~ msgstr "" #~ "Exaile 音樂播放器\n" #~ "未播放" #~ msgid "Save As..." #~ msgstr "另存為..." #~ msgid "Custom playlist name:" #~ msgstr "自訂播放清單名稱:" #~ msgid "by %s" #~ msgstr "由 %s" #~ msgid "Add to custom playlist" #~ msgstr "加入至自訂播放清單" #~ msgid "In pause: %s" #~ msgstr "暫停中:%s" #~ msgid "from %s" #~ msgstr "從 %s" #~ msgid "_Save As..." #~ msgstr "另存新檔 (_S)..." #~ msgid "_Save Changes To Playlist" #~ msgstr "儲存修改至播放清單 (_S)" #~ msgid "_Close Playlist" #~ msgstr "關閉播放清單 (_C)" #~ msgid "C_lear All Tracks" #~ msgstr "清除全部音軌 (_L)" #~ msgid "_Save As Custom Playlist" #~ msgstr "另存為自訂播放清單 (_S)" #~ msgid "Delete track" #~ msgstr "刪除音軌" #~ msgid "Export" #~ msgstr "匯出" #~ msgid "Open" #~ msgstr "開啟" #~ msgid "Start" #~ msgstr "開始" #~ msgid "Choose a file to open" #~ msgstr "選擇要開啟的檔案" #~ msgid "Invalid file extension, file not saved" #~ msgstr "無效的副檔名,檔案未儲存" #~ msgid "Export current playlist..." #~ msgstr "匯出目前的播放清單..." #~ msgid "Extension" #~ msgstr "副檔名" #~ msgid " songs" #~ msgstr " 曲目" #~ msgid "%(year)d-%(month)02d-%(day)02d" #~ msgstr "%(year)d-%(month)02d-%(day)02d" #~ msgid "New custom playlist name:" #~ msgstr "新的自訂播放清單名稱:" #~ msgid "Add To New Playlist..." #~ msgstr "加入新播放清單..." #~ msgid "Idle." #~ msgstr "閒置" #~ msgid "" #~ "This will permanantly delete the selected tracks from your disk, are you " #~ "sure you wish to continue?" #~ msgstr "這將會永遠地從您的磁碟中刪除選取的音軌,您確要繼續?" #~ msgid "Choose a plugin" #~ msgstr "選擇一個擴充套件" #~ msgid "Could not enable plugin: %s" #~ msgstr "無法啟用擴充套件:%s" #~ msgid "Could not disable plugin: %s" #~ msgstr "無法停用擴充套件:%s" #~ msgid "Remove current track from playlist" #~ msgstr "從播放清單中移除目前音軌" #~ msgid "Move selected item up" #~ msgstr "將所選取的項目上移" #~ msgid "Move selected item down" #~ msgstr "將所選取的項目下移" #~ msgid "Remove item" #~ msgstr "移除項目" #~ msgid "Repeat playlist" #~ msgstr "重複播放清單" #~ msgid "Dynamically add similar tracks" #~ msgstr "動態加入相似音軌" #~ msgid "Add device" #~ msgstr "新增裝置" #~ msgid "..." #~ msgstr "..." #~ msgid "New Search" #~ msgstr "新搜尋" #~ msgid "Album:" #~ msgstr "專輯:" #~ msgid "File Size:" #~ msgstr "檔案大小:" #~ msgid "Length:" #~ msgstr "長度:" #~ msgid "Basic" #~ msgstr "基本" #~ msgid "Date:" #~ msgstr "日期:" #~ msgid "Details" #~ msgstr "詳細資料" #~ msgid "Play Count:" #~ msgstr "播放次數:" #~ msgid "Bitrate:" #~ msgstr "位元率:" #~ msgid "Genre:" #~ msgstr "類型:" #~ msgid "Location:" #~ msgstr "位置:" #~ msgid "© 2009" #~ msgstr "© 2009" #~ msgid "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager" #~ msgstr "" #~ "Mathias Brodala\n" #~ " \n" #~ " 翻譯經理" #~ msgid "Track Number:" #~ msgstr "音軌號碼:" #~ msgid "Title:" #~ msgstr "標題:" #~ msgid "Popup" #~ msgstr "彈出視窗" #~ msgid "_Close" #~ msgstr "關閉 (_C)" #~ msgid "Display a progressbar in the OSD" #~ msgstr "在螢幕訊息中顯示進度列" #~ msgid "Display OSD when hovering over tray icon" #~ msgstr "游標移到系統列圖示時顯示螢幕訊息" #~ msgid "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgstr "移動螢幕訊息視窗至您想要出現的位置。" #~ msgid "" #~ "OSD\n" #~ "Drag to the location you'd like the\n" #~ "OSD to appear" #~ msgstr "" #~ "螢幕訊息\n" #~ "拖放螢幕訊息至您\n" #~ "喜歡的位置" #~ msgid "Remove All" #~ msgstr "全部移除" #~ msgid "Window Height:" #~ msgstr "視窗高度:" #~ msgid "Window Width:" #~ msgstr "視窗寬度:" #~ msgid "Close this dialog" #~ msgstr "關閉對話框" #~ msgid "Text Font:" #~ msgstr "文字字型:" #~ msgid "Text Color" #~ msgstr "文字顏色" #~ msgid "Playback engine (requires restart): " #~ msgstr "播放引擎(需要重新啟動): " #~ msgid "Install a third party plugin from a file" #~ msgstr "從檔案安裝第三方擴充套件" #~ msgid "Install plugin file" #~ msgstr "安裝擴充套件檔案" #~ msgid "0/0 tracks" #~ msgstr "0/0 音軌" #~ msgid "Clear Playlist" #~ msgstr "清除播放清單" #~ msgid "Track _properties" #~ msgstr "音軌屬性 (_P)" #~ msgid "Randomize the order of the current playlist" #~ msgstr "隨機排列目前的播放清單順序" #~ msgid "Page 1" #~ msgstr "第 1 頁" #~ msgid "Start/Pause Playback" #~ msgstr "開始/暫停播放" #~ msgid "_Go to Playing Track" #~ msgstr "前往至播放中音軌 (_G)" #~ msgid "_Export current playlist" #~ msgstr "匯出目前播放清單 (_E)" #~ msgid "_Randomize Playlist" #~ msgstr "隨機排列播放清單 (_R)" #~ msgid "Clear bookmarks" #~ msgstr "清除書籤" #~ msgid "Delete bookmark" #~ msgstr "刪除書籤" #~ msgid "Restore Main Window" #~ msgstr "恢復主視窗" #~ msgid "Stop Playback" #~ msgstr "停止播放" #~ msgid "Available controls" #~ msgstr "可用控制" #~ msgid "$title ($length)" #~ msgstr "$title ($length)" #~ msgid " & " #~ msgstr " & " #~ msgid "Seeking: " #~ msgstr "搜尋: " #~ msgid "Alarm Days:" #~ msgstr "警報日:" #~ msgid "Streamripper can only record streams." #~ msgstr "串流擷取只能錄製串流。" #~ msgid "Name - Time" #~ msgstr "名稱 - 時間" #~ msgid "Minimum Volume:" #~ msgstr "最小音量:" #~ msgid "Enable Fading" #~ msgstr "啟用淡出" #~ msgid "Fading:" #~ msgstr "淡出:" #~ msgid "Maximum Volume:" #~ msgstr "最大音量:" #~ msgid "Restart Playlist" #~ msgstr "重新啟動播放清單" #~ msgid "Artist Line:" #~ msgstr "表演者列:" #~ msgid "Album Line:" #~ msgstr "專輯列:" #~ msgid "On Track Change" #~ msgstr "在音軌變換時" #~ msgid "On Playback Start, Pause or Stop" #~ msgstr "在播放開始、暫停或停止時" #~ msgid "" #~ "To sign up for an Amazon AWS account and get \n" #~ "this information visit http://aws.amazon.com/" #~ msgstr "" #~ "註冊一個 Amazon AWS 帳號並取得 \n" #~ "此資訊請參閱 http://aws.amazon.com/" #~ msgid "Secret Key:" #~ msgstr "私密金鑰:" #~ msgid "Use Album Covers As Icons" #~ msgstr "使用專輯封面作為圖示" #~ msgid "Use Media Icons For Pause, Stop and Resume" #~ msgstr "使用媒體圖示作為暫停、停止和回復" #~ msgid "Only artist" #~ msgstr "只有表演者" #~ msgid "Summary" #~ msgstr "總結" #~ msgid "Both artist and album" #~ msgstr "表演者與專輯兩者" #~ msgid "Only album" #~ msgstr "只有專輯" #~ msgid "Save Location:" #~ msgstr "儲存位置:" #~ msgid "Relay Port:" #~ msgstr "中繼連接埠:" #~ msgid "Track title format:" #~ msgstr "音軌標題格式:" #~ msgid "Terminal Opacity:" #~ msgstr "終端機不透明度:" #~ msgid "Display window decorations" #~ msgstr "顯示視窗裝飾" #~ msgid "Last.fm Dynamic Search" #~ msgstr "Last.fm 動態搜尋" #~ msgid "iPod support" #~ msgstr "iPod 支援" #~ msgid "A plugin for iPod support" #~ msgstr "iPod 支援擴充套件" #~ msgid "Tag Covers" #~ msgstr "標籤封面" #~ msgid "Searches track tags for covers" #~ msgstr "搜尋音軌標籤封面" #~ msgid "%d covers to fetch" #~ msgstr "%d 封面待取回" #~ msgid "Date Added" #~ msgstr "加入時間" #~ msgid "Buffering: 100%..." #~ msgstr "緩衝中:100%..." #~ msgid "Toggle: Stop after selected track" #~ msgstr "切換:在選定的音軌後停止" #~ msgid "File Type" #~ msgstr "檔案類型" #~ msgid "Search:" #~ msgstr "搜尋:" #~ msgid "Creates an MPRIS D-Bus object to control Exaile" #~ msgstr "建立一個 MPRIS D-Bus 物件以控制 Exaile" #~ msgid "No track" #~ msgstr "無歌曲" #~ msgid "Show OSD on track change" #~ msgstr "當歌曲改變時顯示螢幕訊息" #~ msgid "Plugin archive is not in the correct format" #~ msgstr "擴充套件檔案的格式錯誤" #~ msgid "Select File Type (By Extension)" #~ msgstr "選擇檔案型式(由副檔名)" #~ msgid "Add item" #~ msgstr "新增項目" #~ msgid "A plugin with the name \"%s\" is already installed" #~ msgstr "擴充套件「%s」已安裝" #~ msgid "%(playlist_count)d showing, %(collection_count)d in collection" #~ msgstr "%(playlist_count)d 顯示, %(collection_count)d 在收藏" #~ msgid "Use alpha transparency (if supported)" #~ msgstr "使用 alpha 透明度(若有提供支援)" #~ msgid "Bookmark this track" #~ msgstr "將此音軌加入書籤" #~ msgid "_Rename Playlist" #~ msgstr "重新命名播放清單 (_R)" #~ msgid " New song, fetching cover." #~ msgstr " 新曲目,讀取封面中。" #~ msgid "" #~ "Path is already in your collection, or is a subdirectory of another path " #~ "in your collection" #~ msgstr "路徑已經存在於您的收藏中,或是您收藏中其它路徑的子目錄" #~ msgid "" #~ "Left\n" #~ "Right\n" #~ "Top\n" #~ "Bottom" #~ msgstr "" #~ "左\n" #~ "右\n" #~ "上\n" #~ "下" #~ msgid " (%(queue_count)d queued)" #~ msgstr " (%(queue_count)d queued)" #~ msgid " + " #~ msgstr " + " #~ msgid " - " #~ msgstr " - " #~ msgid "" #~ "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " #~ "replaced by their respective values. The title will be replaced by " #~ "\"Unknown\" if it is empty." #~ msgstr "" #~ "標籤 「%(title)s」、「%(artist)s」和 「%(album)s」 將會被各自的值所取代。" #~ "標題若是空白則會被「未知的」取代。" #~ msgid "Center vertically" #~ msgstr "垂直置中" #~ msgid "Horizontal:" #~ msgstr "水平:" #~ msgid "Center horizontally" #~ msgstr "水平置中" #~ msgid "Position" #~ msgstr "位置" #~ msgid "MPRIS" #~ msgstr "MPRIS" #~ msgid "Vertical:" #~ msgstr "垂直:" #~ msgid "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgstr "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgid "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "Year - Artist\n" #~ "Year - Album\n" #~ "Artist - Year - Album" #~ msgstr "" #~ "演出者\n" #~ "專輯\n" #~ "類型 - 演出者\n" #~ "類型 - 專輯\n" #~ "年份 - 演出者\n" #~ "年份 - 專輯\n" #~ "演出者 - 年份 - 專輯" #~ msgid "Artist:" #~ msgstr "演出者:" #~ msgid "Original Artist" #~ msgstr "原演出者" dist/copy/po/PaxHeaders.26361/sl.po0000644000175000017500000000012412233027260015415 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.013046929 exaile-3.3.2/po/sl.po0000644000000000000000000040506112233027260014363 0ustar00rootroot00000000000000# Slovenian translation for exaile # Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2012. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2013-09-25 13:15+0000\n" "Last-Translator: Sasa Batistic \n" "Language-Team: Slovenian \n" "Language: sl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n" "%100==4 ? 3 : 0);\n" "X-Launchpad-Export-Date: 2013-10-22 05:13+0000\n" "X-Generator: Launchpad (build 16807)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "%d dni, " msgstr[1] "%d dan, " msgstr[2] "%d dni, " msgstr[3] "%d dni, " #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "%d ur, " msgstr[1] "%d ura, " msgstr[2] "%d uri, " msgstr[3] "%d ure, " #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "%d minut, " msgstr[1] "%d minuta, " msgstr[2] "%d minuti, " msgstr[3] "%d minute, " #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d sekund" msgstr[1] "%d sekunda" msgstr[2] "%d sekundi" msgstr[3] "%d sekunde" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "%dd, " #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "%dh, " #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "%dm, " #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "%ds" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "%dd " #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "%d:%02d:%02d" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "%d:%02d" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "Nikoli" #: ../xl/formatter.py:702 msgid "Today" msgstr "Danes" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "Včeraj" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "Napaka med prehodom iz 0.2.14" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "Uporaba: exaile [možnost] ... [naslov URI]" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "Možnosti" #: ../xl/main.py:421 msgid "Playback Options" msgstr "Možnosti predvajanja" #: ../xl/main.py:423 msgid "Play the next track" msgstr "Predvajaj naslednjo skladbo" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "Predvajaj predhodno skladbo" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "Zaustavi predvajanje" #: ../xl/main.py:429 msgid "Play" msgstr "Predvajaj" #: ../xl/main.py:431 msgid "Pause" msgstr "Premor" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "Premor ali nadaljevanje predvajanja" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "Zaustavi predvajanje po koncu trenutne skladbe" #: ../xl/main.py:440 msgid "Collection Options" msgstr "Možnosti zbirke" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "MESTO" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "Dodaj skladbe iz MESTA v zbirko" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "Možnosti seznama predvajanja" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "Izvoz trenutnega seznama predvajanja na MESTO" #: ../xl/main.py:454 msgid "Track Options" msgstr "Možnosti skladbe" #: ../xl/main.py:456 msgid "Query player" msgstr "Poizvedba predvajalnika" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "OBLIKA" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "Izpis stanja in informacij trenutno predvajane skladbe kot OBLIKA" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "ZNAČKE" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "ZNAČKE, ki jih pridobim iz trenutne skladbe v uporabi z --format-query" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "Pokaži pojavno okno s podatki trenutno predvajane skladbe" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "Natisni naslov trenutne skladbe" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "Natisni album trenutne skladbe" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "Natisni izvajalca trenutne skladbe" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "Natisni dolžino trenutne skladbe" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "N" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "Nastavi oceno trenutno predvajanje skladbe na N%" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "Pridobi oceno trenutne skladbe" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "Izpiši napredek predvajanja trenutne skladbe kot čas" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "Izpiši napredek predvajanja trenutne skladbe kot odstotek" #: ../xl/main.py:490 msgid "Volume Options" msgstr "Možnosti glasnosti" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "Poveča glasnost za N%" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "Zmanjša glasnost za N%" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "Preklopi med nemim stanjem in glasnostjo" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "Natisni trenutno glasnost predvajanja" #: ../xl/main.py:507 msgid "Other Options" msgstr "Druge možnosti" #: ../xl/main.py:509 msgid "Start new instance" msgstr "Zaženi še eno okno programa" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "Pokaži to sporočilo pomoči in končaj" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "Pokaži različico nameščenega programa in končaj" #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "Zaženi pomanjšano (v opravilno vrstico)" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "Preklop vidnosti grafičnega vmesnika (če je mogoče)" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "Zaženi varni način - uporabno, kadar nastopijo težave" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" "Vsili uvoz starih podatkov iz različice 0.2.x (prepisani bodo trenutni " "podatki)." #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "Ne uvozi starih podatkov različice 0.2.x." #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" "Omogoči možnosti kot je --play za začetek programa, v kolikor ta še ni začet" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "Možnosti razvoja/razhroščevanja" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "MAPA" #: ../xl/main.py:536 msgid "Set data directory" msgstr "Določi mapo podatkov" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "Nastavi podatke in mapo konfiguracije" #: ../xl/main.py:540 msgid "MODULE" msgstr "MODUL" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "Omeji odvod dnevnika na MODUL" #: ../xl/main.py:543 msgid "LEVEL" msgstr "RAVEN" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "Omeji odvod dnevnika na RAVEN" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "Pokaži izpis razhroščevanja" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "Omogoči razhroščevanje xl.event. Ustvari VELIKO izpisa." #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "Dodaj ime niti za shranjevanje sporočil." #: ../xl/main.py:555 msgid "TYPE" msgstr "VRSTA" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "Določi omejitev razhroščevanja xl.event za odvod vrste" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "Zmanjšaj raven odvoda" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "Onemogoči D-Bus podporo." #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "Onemogoči HAL podporo." #: ../xl/main.py:580 msgid "Entire Library" msgstr "Celotna zbirka" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "Naključno %d" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "Ocena > %d" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" "Program Exaile še ni končal z nalaganjem. Ali je treba počakati na " "exaile_loaded signal?" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "Oznake" #: ../xl/covers.py:505 msgid "Local file" msgstr "Krajevna datoteka" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "Arhiv vstavka ni v pravilnem zapisu." #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "Vstavek z imenom \"%s\" je že nameščen." #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "Arhiv vstavka vsebuje pot, ki ni varna." #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "Mesto db ni določeno" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "Ni določenega mesta za shranjevanje db" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "Različni izvajalci" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "Neznan" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr " / " #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "%dk" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" "Kodek Vorbis je odprtokodni kodek za kodiranje z izgubami, z visoko " "kakovostnim odvodom pri manjši velikosti datoteke kot MP3." #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" "Brezplačni kodek FLAC za kodiranje brez zvočnih izgub je odprtokodni kodek, " "ki zvok stisne, vendar ne poslabša njegove kakovosti." #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" "Apple-ov lastniški zvočni zapis z izgubami, ki doseže boljo kvaliteto zvoka " "kot MP3 pri nižjih bitnih hitrostih." #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" "Lastniški in starejši, a priljubljen zvočni zapis z izgubami. VBR ima slabšo " "kvaliteto kot CBR, toda morda ni združljiv z nekaterimi predvajalniki." #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" "Lastniški in starejši, a priljubljen zvočni zapis z izgubami. CBR ima slabšo " "kvaliteto kot VBR, toda je združljiv z vsemi predvajalniki." #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "Zelo hiter brezplačen zvočni zapis brez izgub z dobrim stiskanjem." #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "Samodejno" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "Po meri" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "Samodejno" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "Ni predvajanja." #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" "stanje: %(status)s, naslov: %(title)s, izvajalec: %(artist)s, album: " "%(album)s, dolžina: %(length)s, položaj: %(progress)s%% [%(position)s]" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "Različica nastavitev je novejša kot trenutna." #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "Ni mogoče shraniti te vrste nastavitev: " #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "Najdena je bila neznana vrsta nastavitve!" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "Neveljavna vrsta seznama predvajanja." #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "Seznam predvajanja" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "M3U seznam predvajanja" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "PLS seznam predvajanja" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "Neveljavna vrsta za %s." #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "Nepodprta različica %(version)s za %(type)s" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "ASX seznam predvajanja" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "XSPF seznam predvajanja" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "Brez _mešanja" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "Mešanje _skladb" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "Mešanje _albumov" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "_Brez ponavljanja" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "Ponovi _vse" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "Ponovi e_no" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "Dinamično _izključeno" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "Dinamično s podobnimi i_zvajalci" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "sekund" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "minut" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "ur" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "dni" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "tednov" #: ../xl/lyrics.py:305 msgid "Local" msgstr "Krajevno" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "Daj v vrsto" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "Zamenjaj trenutno" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "Pripni k seznamu" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "Odpri mapo" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" "Datoteke ne morejo biti premaknjene v smeti. Ali naj bodo trajno izbrisane z " "diska?" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "Premakni v smeti" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "Prikaž_i predvajajočo skladbo" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "Naziv:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "Ustreza kateremukoli kriteriju" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "Naključno razvrsti zadetke" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "Omeji na: " #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr " skladbe" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "Ni predvajanja" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "Iskanje: %s" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "Premakni" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "Nov označevalnik" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "Nemo" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "%d%%" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "Polna glasnost" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" "$title\n" "od $artist\n" "iz $album" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "Različno" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "%(track_count)d skupaj (%(total_duration)s)" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "%d v zbirki" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "%d prikazanih" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "%d izbranih" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "Vrsta" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "Vrsta (%d)" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "#" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "Številka skladbe" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "Naslov" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "Izvajalec" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "Skladatelj" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "Album" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "Dolžina" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "Disk" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "Številka nosilca" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "Ocena" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "Datum" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "Zvrst" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "Bitna hitrost" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "Mesto" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "Ime datoteke" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "Števec predvajanj" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "UNM" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "Zadnjič predvajano" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "Datum dodajanja" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "Urnik" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "Komentar" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "Združevanje" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "Spremenljive velikosti" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "_Samodejna velikost" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "Ocena:" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "Premešaj" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "Ponavljanje" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "Dinamično" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "Odstrani trenutno pesem s seznama predvajanja" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "Naključno predvajanje seznama" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "Naključno predvajanje izbora" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "Nov seznam predvajanja" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "Preimenuj" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "Zaustavi predvajanje po tem posnteku" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "Nadaljuj preajanje po tem posntekudvajanje po tem posnetku" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "Zahteva vstavke, ki zagotovijo dinamične sezname predvajanja" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "Dodaj podobne skladbe na seznam predvajanja" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "Vnos naslova URL za odpiranje" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "Odpri naslov URL" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "Izberi vrsto datoteke (po priponi)" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "Izberite večpredstavnostno datoteko za odpiranje" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "Podprte datoteke" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "Glasbene datoteke" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "Datoteke seznamov predvajanja" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "Vse datoteke" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "Izberite mapo za odpiranje" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "Uvozi seznam predvajanja" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "Izvozi trenutni seznama predvajanja" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "Uporabi relativne poti posnetkov" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "Seznam predvajanja je bil shranjen kot %s." #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "Zapri %s" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "Ali naj se shranijo spremembe slike %s pred zapiranjem?" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "V primeru, da sprememb na shranite, bodo te trajno izgubljene." #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "Zapri brez shranjevanja" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "Da za vse" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "Ne za vse" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "Shranjenih %(count)s od skupaj %(total)s." #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "Napaka pri kopiranju %s: %s" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "Datoteka obstaja. Prepišem %s ?" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "Ime predvajalnega seznama:" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "Dodaj nov predvajalni seznam..." #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "Ni določeno ime seznama predvajanja" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "Ime seznama predvajanja, ki ste ga vnesli je že v uporabi." #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "Zapri zavihek" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "$title ($artist)" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "Preklop: zaustavi po izbrani skladbi" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "Napaka predvajanja zvoka!" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "polnjenje medpomnilnika: %d%% ..." #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "Nadaljevanje predvajanja" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "Premor predvajanja" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "Izvoz seznama predvajanja ni uspel!" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "Začni predvajanje" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "Predvajalnik glasbe Exaile" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "_Nov seznam predvajanja" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "Odpri _URL" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "Odprte mape" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "_Izvozi trenutni seznam predvajanja" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "Ponoven zagon" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "_Zbirka" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "_Daj v vrsto" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "_Ovitki" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "_Vrstica pripomočkov seznama predvajanja" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "_Stolpci" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "P_očisti seznam predvajanja" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "_Upravljalnik naprav" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "Ponovno _preišči zbirko" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "Lastnosti _skladbe" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "Prekliči" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "Izvirni album" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "Pisec besedila" #: ../xlgui/properties.py:54 msgid "Website" msgstr "Spletišče" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "Ovitek" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "Izvirni izvajalec" #: ../xlgui/properties.py:57 msgid "Author" msgstr "Avtor" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "Izvorni datum" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "Urejevalnik" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "Dirigent" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "Izvajalec" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "Avtorske pravice" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "Besedilo" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "Sled" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "Različica" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "ISRC" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "Kodirali" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "Organizacija" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "Spremenjeno" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "Število predvajanj" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "Napaka pri zapisu značk" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" "Značke niso bile zapisane v naslednje datoteke:\n" "{files}" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "Urejanje skladbe %(current)d od %(total)d" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "Zapiši spremembe pred zapiranjem?" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "Nepotrjene spremembe bodo izgubljene." #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "%s:" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "od:" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "Slika JPEG" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "Slika PNG" #: ../xlgui/properties.py:919 msgid "Image" msgstr "Slika" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "Povezana slika" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "{width}x{height} točk" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "{format} ({width}x{height} točk)" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "Izbor slike za ovitek" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "Podprti slikovni zapisi" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "Uporabi trenutno vrednost za vse skladbe" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "{outstanding} preostalih ovitkov za prenos" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "Vsi ovitki so preneseni" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "Zbiranje albumov in ovitkov..." #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "Pokaži ovitek" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "Pridobi ovitek" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "Odstrani ovitek" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "Ovitek za %s" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "Možnosti ovitkov za %(artist)s - %(album)s" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "Nalaganje..." #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "Ni mogoče najti ovitkov." #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" "Nobeden od omogočenih virov nima ovitka za to skladbo. Omogočite več virov." #: ../xlgui/devices.py:76 msgid "Icon" msgstr "Ikona" #: ../xlgui/devices.py:81 msgid "Device" msgstr "Naprava" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "Gonilnik" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "Preiskovanje zbirke ..." #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "Preiskovanje %s ..." #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "Preklopi vrsto" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "Določi zaporedje skladb" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "Lastnosti" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "Nova postaja" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "Nov pameten seznam prevajanja" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "Uredi" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "Izvozi predvajalni seznam" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "Izvoz datotek" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "Izbriši seznam predvajanja" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "Izbor mape za izvoz" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "" "Ali ste prepričani, da želite trajno izbrisati izbran seznam predvajanja?" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "Vpišite ime za nov seznam predvajanja" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "Preimenuj seznam predvajanja" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "Odstrani" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "Spust sem bo ustvaril nov predvajalni seznam" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "Nedavno zaprti zavihki" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "Seznam predvajanja %d" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "Dodaj mapo" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "Mapa ni dodana." #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" "Mapa je že določena v zbirki ali pa je del podrejene mape, ki je prav tako " "vključena." #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "Prenašanje na %s ..." #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "Nalaganje pretokov ..." #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "Dodaj novo radijsko postajo" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "URL:" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "Shranjene postaje" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "Radijske postaje" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "Osveži" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "Vpišite ime za nov seznam predvajanja" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "Zvrst - Izvajalec" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "Zvrst - Album" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "Datum - Izvajalec" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "Datum - Album" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "Izvajalec - (Datum - Album)" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "Ponovno preišči zbirko" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "Velikost" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s KB" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "in" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "je" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "ni" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "je določeno" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "ni določeno" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "vsebuje" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "ne vsebuje" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "vsaj" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "v glavnem" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "pred" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "po" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "med" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "je večje" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "manj kot" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "v zadnjih" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "ne v zadnjih" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "Predvajanja" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "Leto" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "%(first)s, %(second)s in ostalo" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "%(first)s in %(second)s" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "Pametni seznam predvajanja" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "Seznam predvajanja po meri" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "Dodaj pametni seznam predvajanja" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "Uredi pametni seznam predvajanja" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "Izvoz %s" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "Predvajanje" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "Vstavki" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "Nekategorizirano" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "Ni mogoče naložiti podrobnosti vstavka!" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "Spodleteli vstavki: %s" msgstr[1] "Spodletel vstavek: %s" msgstr[2] "Spodletela vstavka: %s" msgstr[3] "Spodleteli vstavki: %s" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "Ni mogoče onemogočiti vstavka!" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "Ni mogoče omogočiti vstavka!" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "Izbor vstavka" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "Arhivi vstavkov" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "Namestitev manjkajočega vstavka je spodletela!" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "Ovitki" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "Videz" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "Zbirka" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "Ponastavi na privzeto" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "Ali naj se program Exaile ponovno začne?" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "Program je treba ponovno zagnati, da se spremembe uveljavijo." #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "Dejanje" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "Bližnjica" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "Seznami predvajanja" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "O programu" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "© 2009-2012" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" "Avtorske pravice (C) 2008-2010 Adam Olsen \n" "\n" "Ta program je prosta programska oprema; program lahko razširjate in/ali\n" "spreminjate pod pogoji Splošnega dovoljenja GNU(GNU General PublicLicense),\n" "kot ga je objavila ustanova Free Software Foundation; bodisi različice 2\n" "ali (po vaši izbiri) katerekoli poznejše različice.\n" "\n" "Ta program se razširja v upanju, da bo uporaben, vendar BREZ VSAKRŠNEGA " "JAMSTVA;\n" "tudi brez posredne zagotovitve CENOVNE VREDNOSTI ali PRIMERNOSTI ZA\n" "DOLOČEN NAMEN. Za podrobnosti glejte besedilo GNU General Public License.\n" "\n" "Skupaj s programom bi morali dobiti tudi kopijo GNU splošne javne licence.\n" "V primeru, da je niste, pišite na Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "Neznan prevajalec" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "Upravljalnik ovitkov" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "_Pridobi ovitke" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "Premešaj vrstni red predvajanja" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "Ponavljanja predvajanja" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "_Najdi:" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "Iskalnik ovitkov" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "_Nastavi kot ovitek" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "_Datoteka" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "_Uredi" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "P_ogled" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "_Orodja" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "Pomo_č" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "Predhodna skladba" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" "Zaustavitev predvajanja\n" "\n" "Desni klik za zaustavitev po zmožnosti skladbe" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "Naslednja skladba" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0:00 / 0:00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "Lastnosti skladbe" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "Dodaj oznako" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "_Odstrani oznako" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "ab → A_b" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "Velike prve črke vseh oznak" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "_Predhodna" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "_Naslednja" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "Ostali" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "Ovitek (prednja stran)" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "Ovitek (zadnja stran)" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "Izvajalec" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "Skupina/Orkester" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "Besedilo/tekstopisec" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "Ilustracija" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "Logotip skupine/izvajalca" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "Logotip založnika/studia" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "Vrsta:" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "Opis:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "Upravljalnik zbirke" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "Nadzorovano" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "Radio" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "Pripni vse skadbe na seznam predvajanja" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "Uvozi CD" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "Dodaj postajo" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "Datoteke" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "Predhodna obiskana mapa" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "Naslednja obiskana mapa" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "Mapo višje" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "Osveži seznama map" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "Domača mapa" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "Poišči: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "Počisti iskalno polje" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "Zbirka je prazna." #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "Dodaj glasbo" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" "Osvežitev pogleda zbirke\n" "(Držanje dvigalke ponovno pregleda zbirko)" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "Uporabi naslovnice iz oznak v datoteki" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "Uporabi naslovnice iz krajevnih datotek" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" "Možnost omogoča iskanje slikovnih datotek ovitkov v\n" "isti mapi kot je datoteka glasbe." #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "Želena imena datotek:" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "Seznam imen datotek brez končnice, ločenih z vejico" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "Samodejno pridobi naslovnice ob začetku predvajanja" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "Iskalni red naslovnic:" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "(razvrsti s potegom)" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "Ob zagonu odpri zadnji seznam predvajanja" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "Vprašaj za shranjevanje seznama predvajanja ob končanju" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "Zamenjaj vsebino z dvojnim klikom na bočno okno" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" "Za razliko od pripenjanja, skladbe dodane z dvojnim klikom na bočno okno, " "zamenjajo vsebino trenutnega seznama predvajanja." #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "Privzeto dodajanje skladb namesto predvajanja" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "Programnik predvanjanja " #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "Uporaba prehodov pojemanja ob dejanjih uporabnika" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "Trajanje pojemanja (ms):" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "Uporabi postopni prehod (POSKUSNO)" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "Trajanje postopnega prehoda (ms):" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "Zvočni odtok: " #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "Naprava: " #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "Cevovod ponora po meri:" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "Samodejno predvajaj ob zgonu" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "Ob premoru nadaljuj s predvajanjem" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "Samodejno napreduj na naslednjo skladbo" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "Običajno" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "Združeni (nestabilno)" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "Vstavek" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "Omogočeno" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "Ni izbranih vstavkov" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "Nameščeni vstavki" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "Avtorji:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "Različica:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "Namesti" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "Ni izbranih vstavkov" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "Razpoložljivi vstavki" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "Namesti posodobitve" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "Posodobitve" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "Namesti vstavek" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "Pokaži podatkovno področje" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "Polje informacij vsebuje naslovnico in informacije posnetka" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "Vedno prikaži vrstico zavihkov" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "Postavitev zavihkov:" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "Pisava predvajalnega seznama:" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "Ponastavi na sistemsko pisavo" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "Prikaži števec skladb v zbirki" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "Uporabi alfa prozornost:" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" "Opozorilo: možnost lahko vpliva na napake prikazovanja, v kolikor je " "uporabljena z upravljalnikom oken brez podpore skladanja." #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "Pokaži ikono v pladnju" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "Pomanjšaj v sistemsko vrstico" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "Zapri v sistemsko vrstico" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "Skoči na trenutno skladbo, ko se le ta spremeni" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "Ob zagonu pokaži pozdravni zaslon" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "Levo" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "Desno" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "Zgoraj" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "Spodaj" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "Možnosti" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" "Besede za odstranitev iz začetka oznak izvajalca za razvrščanje (ločeno s " "presledki):" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "(Desni klik za povrnitev na privzete vrednosti)" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "Uporaba zaznave prevajanja osnovanega na datoteki" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "Upravljalnik naprav" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "Dodaj napravo" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "Vrsta naprave:" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "Zaznane naprave:" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "Po meri: " #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "Vrstilnik" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "Iskanje razpoloženja ..." #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "Najdeno razpoloženje." #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "Vrstice razpoloženja ni mogoče prebrati." #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "Izvedljiva datoteka vrstice razpoloženja ni na voljo." #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "Vrstica razpoloženja" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "Napaka med izvajanje streamripper-ja" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "Streamripper" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "Priljubljena skladba Last.fm" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "Ključ API ni veljaven." #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "Prepričajte se, da so vneseni podatki pravilni." #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "Ni mogoče začeti spletnega brskalnika." #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" "Kopirajte naveden naslov URL in ga odprite v spletnem brskalniku:\n" "{url}" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "Priljubljena" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "Priljubljena Last.fm" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "Označi kot priljubljeno glasbo" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "Označi kot nepriljubljeno glasbo" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "Budilka" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "Ta vtičnik potrebuje vsaj PyGTK 2.22 in GTK 2.20." #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "Glavni menu" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "Vzpostavljanje stika s strežnikom Shoutcast ..." #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "Napaka med povezovanjem s strežnikom Shoutcast." #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "Vnesite iskalne ključne besede" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "Iskanje Shoutcast" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "Rezultati iskanja" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "Poišči" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "Ni mogoče najti besedil." #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "Pojdi na: " #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "Katerakoli" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "Pregledovalnik besedil skladb" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "AudioScrobbler" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "Uspešno overjanje" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "Neuspešno overjanje" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "Omogoči audioscrobbling" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "Uravnalnik zvoka" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "Izklopi računalnik po predvajanju" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "Izklop po urniku" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "Računalnik se bo izklopil po koncu predvajanja." #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "Takojšnji izklop" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "Računalnik bo izklopljen v %d sekundah." #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "Izklop je spodletel." #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "Računalnika z vodilom D-Bus ni mogoče izklopiti." #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "Naprava za predogled" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "Predvajalnik za predogled" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "Predogled" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "Obvestila notify-osd" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "%(title)s" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "izvajalec: %(artist)s" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "album: %(album)s" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "IPython konzola - Exaile" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "Pokaži IPython konsolo" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "IPython konzola" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "Obveščanje" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" "od %(artist)s\n" "iz %(album)s" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "Uvažanje CD nosilca ..." #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "Zvočni disk" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "CD" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "Številka sledi" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "Številka diska" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "Števec predvajanj" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "Izvajalec: " #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" "Ste vedeli...\n" "\n" "%s" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "Wikipedia" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "Prikaz podatkov z Wikipedie trenutnega izvajalca." #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "Ponovi odsek" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "Ponovi začetek" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "Ponovi konec" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "Enostavni način" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "$tracknumber - $title" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "$title od $artist" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "$title ($__length)" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "Predhodna" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "Skoči na predhodno skladbo" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "Predhodna skladba" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "Naslednja" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "Skoči na naslednjo skladbo" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "Naslednja skladba" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "Predvajanje/Premor" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "Začni, naredi premor ali pa nadaljuj s predvajanjem" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "Začni predvajanje" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "Nadaljuj predvajanje" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "Premor predvajanja" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "Zaustavi" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "Zaustavi predvajanje" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "Nadaljuj predvajanje za trenutno skladbo" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "Glasnost" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "Spremeni glasnost" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "Povrni" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "Obnovi glavno okno" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "Obnovi glavno okno" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "Izbor ocene trenutne skladbe" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "Izbirnik skladb" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "Enostavni izbirnik seznama skladb" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "Gumb seznama predvajanj" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "Dostop do trenutnega seznama predvajanja" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "$title ($current_time / $total_time)" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "Gumb napredka" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "Napredek predvajanja in dostop do trenutnega seznama predvajanja" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "Vrstica napredka" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "Napredek predvajanja in iskanje" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "Skupina" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "Dodaj novo skupino" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "Izbriši skupino" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "Dodaj kategorijo" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "Odstrani kategorijo" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "Izbrane skladbe" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "ReplayGain" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "Spustite za izbiro" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "Pripni in predvajaj" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "Pripni" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "Zgodovina" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "Zgodovina predvajanja" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "Izbriši shranjeno zgodovino?" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "Shrani zgodovino" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "Počisti zgodovino" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "Pripravljeno" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "Iskanje po Jamendo katalogu ..." #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "Pridobivanje podrobnosti skladbe ..." #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "Prikaz na zaslonu (OSD)" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" "$title\n" "izvajalca $artist\n" "z albuma $album" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" "$title\n" "izvajalca $artist\n" "z albuma $album" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "Amazon naslovnice" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "Podcasti" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "Podcast" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "Osveži podcast" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "Izbriši" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "Vnesite URL podcasta za dodajanje" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "Odpri podcast" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "Nalaganje %s ..." #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "Napaka med nalaganjem podcasta." #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "Nalaganje podcastov ..." #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "Datoteke podcast ni mogoče shraniti" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "Naslovnica namizja" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "Več alarmna ura" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "Vsebina" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "Vsebina" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "Ustvari zaznamek skladbe" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "Izbriši zaznamek" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "Počisti zaznamke" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "Zaznamki" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "Naredi premor ob zagonu ohranjevalnika zaslona" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "Strežnik DAAP" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "DAAP odjemalec" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "Ročno ..." #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "Vnos IP naslova in vrat za souporabo" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "Vnos IP naslova in vrat." #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" "Ta strežnik ne podpira več povezav.\n" "Pred prejemanjem skladb morate zaustaviti predvajanje." #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "Osveži seznam strežnikov" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "Prekinitev povezave s strežnikom" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "Izbor mesta za shranjevanje" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "Povezava z DAAP ..." #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "Potemni predvajani odsek namesto uporabe kazalca" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "Raven potemnitve:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "Uporabi slog valovne oblike" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "Pokaži le valovno obliko, ne razpoloženja" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "Uporabi barvo teme " #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "Osnovna barva:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "Osnovna barva" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "Shrani mesto:" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "Relejska vrata:" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "Zajemi v eno datoteko" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "Izbriši nepopolne datoteke" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "Ključ API:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "Tajno:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "Dovoljenje za dostopanje" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" "Pojdite na stran svojega " "računa API, da dobite ključ API in Tajno in jih " "vpišite tukaj. Ko set jih vnesli, pritisnite Dovoljenje za dostop in " "potrdite za zaključitev nastavitev." #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "Čas alarma" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "Ponedeljek" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "Torek" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "Sreda" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "Četrtek" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "Petek" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "Sobota" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "Nedelja" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "Dnevi budilke" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "Uporabi pojemanje" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "Najnižja glasnost:" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "Najvišja glasnost:" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "Povečevanje:" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "Čas za povečanje:" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "Prikaži prekrivanje:" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "Pokaži ovitke" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "Krožni prikaz" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "Besedilo odstotka" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "Brez" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "Pisava besedil:" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "Osveži besedilo" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "Pošiljanje skladb z Audioscrobbler" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "Pokaži predmet menija za preklop pošiljanja" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "Geslo:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "Uporabniško ime:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "Preverjanje prijavnih podatkov" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "pred" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "+12 dB" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "0" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "-24 dB" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "29" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "59" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "119" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "237" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "474" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "947" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "1.9K" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "3.8K" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "7.5K" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "15K" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "Ob spremembi skladbe" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "Ob začetku, premoru ali zaustavitvi predvajanja" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "Ob spremembi oznake" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "Ob prehodu miške preko ikone na pladnju" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "Ob postavitvi glavnega okna v žarišče" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "Zaslon" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "Uporabi ovitek albuma kot ikono" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" "Uporabi večpredstavne ikone za premor, zaustavitev in ponovno predvajanje" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "Ikone" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "Vrstica izvajalca:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" "Oznake \"%(title)s\", \"%(artist)s\" in \"%(album)s\" bodo zamenjane z " "ustreznimi vrednostmi. Naslov bo zamenjan z opisom \"Neznano\", v kolikor " "polje ostane prazno." #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "Povzetek:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "Vrstica albuma:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "Vsebina" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "Linux" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "Prosojnost terminala:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "Pisava:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "Barva ozadja:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "Spremeni velikost prikazanih naslovnic" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "Le izvajalec:" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "Le album:" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" "Sporočilo za prikaz v telesu obvestila. V vsakem primeru bodo \"%(title)s\", " "\"%(artist)s\" in \"%(album)s\" zamenjani z ustreznimi vrednostmi. V kolikor " "oznaka ni znana, bo na njenem mestu izpisana beseda \"Neznano\"" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "Oba, album in izvajalec:" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "Sporočilo telesa" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "Ogg Vorbis" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "FLAC" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "AAC" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "MP3 (VBR)" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "MP3 (CBR)" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "WavPack" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "Uvozi zapis: " #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "Uvozi kakovost: " #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "Uvozi pot: " #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" "Vsaka oznaka je lahko uporabljena z $tag ali ${tag}. Notranje " "oznake kot je $__length morajo biti določene z dvema podčrtajema." #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "Kratka koda jezikovne različice Wikipedije (sl, en, de, ...)" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "Jezik:" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "Domov" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "Nazaj" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "Naprej" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" "Gradnike lahko urejate s premikanjem gor in dol. (Ali pritisnite Alt+Gor/" "Dol.)" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "Tipke" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "Oblika naslova skladbe" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "Vedno na vrhu" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "Pokaži v seznamu nalog" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "Prikaži okraske oken:" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "Pokaži na vseh delovnih površinah" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "Pokaži gumb v glavnem oknu" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "Polno" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "Enostavno" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "Prednost popravkov na ravni albuma" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" "Prednost popravka ReplayGain-a na ravni albuma namesto na ravni skladb." #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "Uporabi zaščito odrezanosti" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "Zaščita pred šumom, ki je posledica premočnega ojačanja zvoka" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "Dodatno ojačanje za vse datoteke" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "Dodatno ojačanje (dB):" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "Zasilno popravljanje napak za datoteke brez podatkov ReplayGain" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "Zasilna raven popravljanja (dB):" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "Razvrsti po:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "Smer razvrščevanja:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "Rezultati:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "Napredno" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "Padajoče" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "Naraščujoče" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "Datum izida" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "Ocena na teden" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "Ocena ta mesec" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "Število dodatkov seznama predvajanj" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "Število prejemanj" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "Število poslušanj" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "Zvezdica" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "Datum izbire zvezdice:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "Zvrst/oznake" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" "Za vpis za račun Amazon AWS in za pridobivanje\n" "podrobnosti, obiščite http://aws.amazon." "com/" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "Dodaj podcast" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "Sidro:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "Zamik X:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "točk" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "Zamik Y:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "Prepiši velikost ovitka" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "Velikost:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "Uporabi pojemanje" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "Trajanje pojemanja" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "ms" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "Levo zgoraj" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "Desno zgoraj" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "Levo spodaj" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "Desno spodaj" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "Dodaj" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "Opozorila" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "Omogoči učinek naraščanja zvoka" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "Glasnost glasbe ob začetku postopnega spreminjanja glasnosti:" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "Glasnost glasbe ob koncu postopnega spreminjanja glasnosti:" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "Povečevanje pojemanja:" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "Čas pojemanja(s):" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "Ponovno začni seznam predvajanja" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "Predvajanje" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "Vnesite uporabniške podatke računa Last.fm:" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "Vpis v Last.fm" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "Uporaba naslovnic v meniju zaznamkov (ima učinek ob naslednjem zagonu)" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "Ime strežnika:" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "Gostitelj strežnika:" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "Vrata:" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "Strežnik je omogočen" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "Trenutna skladba" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" "Nastavi trenutno stanje predvajanja v Pidgin za storitve, ki ga podpirajo." #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" "Zamenja običajno vrstico napredka z moodbar.\n" "Zahteva: moodbar" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "Večpredstavnostne tipke GNOME" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" "Doda podporo za nadzor Exaile preko GNOME-ovega sistema multimedijskih tipk. " "Združljivo z GNOME >= 2.20.x" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" "Omogoča snemanje pretokov s streamripper-jem.\n" "Zahteva: streamripper" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "Predvaja glasbo ob določenem času.\n" "\n" "Ob izbranem času se bo Exaile obnašal kot da je bil pritisnjen gumb " "predvajanja, zato mora biti glasba za predvajanje na sezamu predvajanja" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "Last.fm naslovnice" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "Iskanje Last.fm za naslovnicami" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "Nastavi naslovnico in doda nekaj predmetov Exaile v AWN" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "Shoutcast radio" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "Seznam shoutcast radijskih postaj" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "Ex Falso urejevalnik oznak" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" "V program vključi urejevalnik oznak Ex Falso.\n" "Zahteva: Ex Falso." #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" "Doda bočni zavihek za prikazovanje besedila trenutno predvajane skladbe" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" "Pošlje podatke poslušanja na Last.fm in podobne storitve, ki podpirajo " "AudioScrobbler" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "Xtipke" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "Splošne tipkovne bližnjice z uporabo xlib (mmkeys.so)" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "Uravnalnik z 10 trakovi" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "Besedilo sledi" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "Vstavek za pridobivanje besedila z lyricsfly.com" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "Librivox" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "Brskanje in poslušanje zvočnih knjig z Librivox.org." #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "Dovoli izklop računalnika po koncu predvajanja." #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "Podpora napravam preko USB protokol" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" "Podpora za dostop do prenosnih medijskih predvajalnikov z uporabo podpore " "napravam preko USB protokola" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "Last.fm dejavni seznam predvajanja" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "Ozadnji program Last.fm za dinamični seznam predvajanja" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" "Ta vstavek prikazuje XXX ob predvajanju/nadaljevanju/zaustavitvi skladbe z " "naslovnico skladbe ali medijsko ikono ki XXX zadnje dejanje.\n" "\n" "Zahteva: python-notify\n" "Priporočeno: notify-osd" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "Zagotovi konzolo IPython, s katero je mogoče upravljati z Exaile." #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "Pojav obvestila ob začetku predvajanja skladbe" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "CD predvajanje" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "A-B Ponovitev" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "Neprenehno ponavljanje odseka skladbe." #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "Skrčen način za Exaile z nastavljivim vmesnikom" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "Omogoči podporo ReplayGain" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "Spusti ikono" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" "Zagotovi dodatno ikono sistemske vrstice, ki sprejema spuščene datoteke.\n" "\n" "Zahteva: python-eggtrayicon" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "Jamendo" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "Omogoči dostop do Jamendo kataloga glasbe." #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "Podpora iPod" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" "Vstavek za podporo iPod. Trenutno le za branje, brez prenosa.\n" "\n" "Odvisen od programa python-gpod." #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" "Išče Amazon za naslovnice\n" "\n" "Za uporabo tega vstavka sta zahtevana ključ AWS API in skrivnostni ključ." #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "Karaoke" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "Odstrani vokal" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "Doda enostavno podporo za podcast" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "Prikaz naslovnice trenutnega albuma na namizju" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "Pozdravljen svet" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "Enostaven vstavek za preizkus osnovnega sistema vstavkov." #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "Predvaja glasbo ob določenih urah in dnevih.\n" "\n" "Ob izbranem času se bo Exaile obnašal kot da je bil pritisnjen gumb " "predvajanja, zato mora biti glasba za predvajanje na sezamu predvajanja" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "Vsebinske podrobnosti" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" "Prikaz različnih podrobnosti predvajane skladbe.\n" "Program zahteva namestitev paketov: libwebkit >= 1.0.1, python-webkit >= " "1.1.2, python-imaging (PIL)" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "Dovoli shranjevanje/nadaljevanje položajev v zvočnih datotekah." #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "Wiki besedila" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" "Vstavek vključi možnost spydaap (http://launchpad.net/spydaap) v program " "Exaile in omogoča izmenjavo zbirke preko protokola DAAP." #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "Dovoli predvajanje DAAP souporabo glasbe." #~ msgid "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgstr "" #~ "Premaknite okno zaslonskega prikaza tja, kjer želite, da se prikaže" #~ msgid "New Search" #~ msgstr "Novo iskanje" #~ msgid "Popup" #~ msgstr "Pojavno okno" #~ msgid "Show OSD on track change" #~ msgstr "Pokaži zaslonski prikaz pri zamenjavi skladbe" #~ msgid "Enter the search text" #~ msgstr "Vnesite iskalni niz" #~ msgid "Add a directory" #~ msgstr "Dodaj v mapo" #~ msgid "Start" #~ msgstr "Začni" #~ msgid "Stop Playback" #~ msgstr "Ustavi predvajanje" #~ msgid "_Close" #~ msgstr "_Zapri" #~ msgid "from %s" #~ msgstr "z albuma %s" #~ msgid "by %s" #~ msgstr "%s" #~ msgid "Open" #~ msgstr "Odpri" #~ msgid "%(title)s (by %(artist)s)" #~ msgstr "%(title)s - %(artist)s" #~ msgid "Window Width:" #~ msgstr "Širina okna:" #~ msgid "Text Font:" #~ msgstr "Pisava besedila:" #~ msgid "Text Color" #~ msgstr "Barva besedila" #~ msgid " songs" #~ msgstr " skladb" #~ msgid "Alarm Days:" #~ msgstr "Dnevi budilke:" #~ msgid "Get rating for current song" #~ msgstr "Pridobi oceno trenutne skladbe" #~ msgid "Close tab" #~ msgstr "Zapri zavihek" #~ msgid "0:00" #~ msgstr "0:00" #~ msgid "No track" #~ msgstr "Ni skladb" #~ msgid "File Type" #~ msgstr "Vrsta datoteke" #~ msgid "Remove item" #~ msgstr "Odstrani element" #~ msgid "..." #~ msgstr "..." #~ msgid "Add device" #~ msgstr "Dodaj napravo" #~ msgid "Date:" #~ msgstr "Datum:" #~ msgid "Basic" #~ msgstr "Osnovno" #~ msgid "Bitrate:" #~ msgstr "Bitna hitrost:" #~ msgid "Album:" #~ msgstr "Album:" #~ msgid "Artist:" #~ msgstr "Izvajalec:" #~ msgid "Length:" #~ msgstr "Dolžina:" #~ msgid "Details" #~ msgstr "Podrobnosti" #~ msgid "© 2009" #~ msgstr "© 2009" #~ msgid "Play Count:" #~ msgstr "Število predvajanj:" #~ msgid "File Size:" #~ msgstr "Velikost datoteke:" #~ msgid "Track Number:" #~ msgstr "Številka skladbe:" #~ msgid "Title:" #~ msgstr "Naslov:" #~ msgid "Genre:" #~ msgstr "Zvrst:" #~ msgid "Remove All" #~ msgstr "Odstrani vse" #~ msgid "0/0 tracks" #~ msgstr "0/0 skladb" #~ msgid "Page 1" #~ msgstr "Stran 1" #~ msgid "OSS" #~ msgstr "OSS" #~ msgid "GNOME" #~ msgstr "GNOME" #~ msgid "JACK" #~ msgstr "JACK" #~ msgid "PulseAudio" #~ msgstr "PulseAudio" #~ msgid "Bookmark this track" #~ msgstr "Ustvari zaznamek skladbe" #~ msgid "Clear bookmarks" #~ msgstr "Počisti zaznamke" #~ msgid "Delete bookmark" #~ msgstr "Izbriši zaznamek" #~ msgid "Restore Main Window" #~ msgstr "Obnovi glavno okno" #~ msgid " & " #~ msgstr " & " #~ msgid "Seeking: " #~ msgstr "Iskanje: " #~ msgid "Enable Fading" #~ msgstr "Omogoči pojemanje" #~ msgid "Fading:" #~ msgstr "Pojemanje:" #~ msgid "Artist Line:" #~ msgstr "Vrstica izvajalca:" #~ msgid "Album Line:" #~ msgstr "Vrstica albuma:" #~ msgid "On Track Change" #~ msgstr "Ob spremembi skladbe" #~ msgid "Summary" #~ msgstr "Povzetek" #~ msgid "Terminal Opacity:" #~ msgstr "Prosojnost terminala:" #~ msgid "Last.fm Dynamic Search" #~ msgstr "Dinamično iskanje po Last.fm" #~ msgid "Toggle Play or Pause" #~ msgstr "Preklop predvajanja in premora" #~ msgid "Show a popup of the currently playing track" #~ msgstr "Pokaži pojavno okno trenutno predvajane skladbe" #~ msgid "Set rating for current song" #~ msgstr "Določi oceno trenutne pesmi" #~ msgid "Print the position inside the current track as time" #~ msgstr "Izpiši mesto znotraj trenutne skladbe kot čas" #~ msgid "Print the progress inside the current track as percentage" #~ msgstr "Izpiši napredek znotraj trenutne skladbe kot odstotek" #~ msgid "Increases the volume by VOL%" #~ msgstr "Poveča glasnost za VOL%" #~ msgid "Decreases the volume by VOL%" #~ msgstr "Zmanjša glasnost za VOL%" #~ msgid "Filter event debug output" #~ msgstr "Filtriraj odvod razhroščevanja dogodkov" #~ msgid "order must be a list or tuple" #~ msgstr "razvrstitev mora biti seznam ali n-terica" #~ msgid " New song, fetching cover." #~ msgstr " Pridobivanje naslovnice nove skladbe." #~ msgid "Device class does not support transfer." #~ msgstr "Naprava ne podpira prenosa." #~ msgid "%(year)d-%(month)02d-%(day)02d" #~ msgstr "%(day)02d-%(month)02d.%(year)d" #~ msgid "Plugin archive is not in the correct format" #~ msgstr "Arhiv vstavka ni v pravilnem zapisu" #~ msgid "A plugin with the name \"%s\" is already installed" #~ msgstr "Vstavek z imenom \"%s\" ne že nameščen" #~ msgid "Plugin archive contains an unsafe path" #~ msgstr "Pot, ki jo vsebuje arhiv vstavka, ni varna" #~ msgid "Streaming..." #~ msgstr "Pretakanje ..." #~ msgid "New playlist title:" #~ msgstr "Nov naslov seznama predvajanja:" #~ msgid "Custom playlist name:" #~ msgstr "Ime seznama predvajanja po meri:" #~ msgid "Save As..." #~ msgstr "Shrani Kot ..." #~ msgid "Toggle: Stop after selected track" #~ msgstr "Preklop: Zaustavi po izbrani skladbi" #~ msgid "Buffering: 100%..." #~ msgstr "polnjenje medpomnilnika: 100% ..." #~ msgid "Stopped" #~ msgstr "Zaustavljeno" #~ msgid "" #~ "Exaile Music Player\n" #~ "Not playing" #~ msgstr "" #~ "Exaile predvajalnik glasbe\n" #~ "Ni predvajanja" #~ msgid "In pause: %s" #~ msgstr "V premoru: %s" #~ msgid "Playing %s" #~ msgstr "Predvajanje %s" #~ msgid "Add to custom playlist" #~ msgstr "Dodaj skladbe na seznam po meri" #~ msgid "_Rename Playlist" #~ msgstr "_Preimenuj seznam predvajanja" #~ msgid "_Save As Custom Playlist" #~ msgstr "_Shrani kot seznam po meri" #~ msgid "_Save Changes To Playlist" #~ msgstr "_Shrani spremembe v seznam" #~ msgid "_Save As..." #~ msgstr "Shrani _kot ..." #~ msgid "C_lear All Tracks" #~ msgstr "_Počisti vse skladbe" #~ msgid "_Close Playlist" #~ msgstr "_Zapri seznama predvajanja" #~ msgid "Delete track" #~ msgstr "Izbriši skladbo" #~ msgid "Export" #~ msgstr "Izvozi" #~ msgid "Export as..." #~ msgstr "Izvozi kot ..." #~ msgid "%d covers to fetch" #~ msgstr "%d ovitkov za prenos" #~ msgid "No covers found" #~ msgstr "Ni najdenih ovitkov" #~ msgid "%(minutes)d:%(seconds)02d" #~ msgstr "%(minutes)d:%(seconds)02d" #~ msgid "Export current playlist..." #~ msgstr "Izvozi trenutni seznam predvajanja" #~ msgid "Invalid file extension, file not saved" #~ msgstr "Neveljavna pripona datoteke; datoteka ni shranjena." #~ msgid "Choose a file to open" #~ msgstr "Izbor datoteke za odpiranje" #~ msgid "%(playlist_count)d showing, %(collection_count)d in collection" #~ msgstr "%(playlist_count)d prikazanih, %(collection_count)d v zbirki" #~ msgid "Select File Type (By Extension)" #~ msgstr "Izbor vrste datotek (po priponi)" #~ msgid "Extension" #~ msgstr "Pripona" #~ msgid "" #~ "Path is already in your collection, or is a subdirectory of another path " #~ "in your collection" #~ msgstr "" #~ "Pot je že določena v zbirki ali pa je del podmape, ki je prav tako " #~ "vključena." #~ msgid "New custom playlist name:" #~ msgstr "Novo ime seznama predvajanja:" #~ msgid "Add To New Playlist..." #~ msgstr "Dodaj na nov seznama predvajanja ..." #~ msgid "%d KB" #~ msgstr "%d KB" #~ msgid "" #~ "This will permanantly delete the selected tracks from your disk, are you " #~ "sure you wish to continue?" #~ msgstr "" #~ "To bo trajno izbrisalo izbrane skladbe z vašega diska, ali ste prepričani " #~ "da želite nadaljevati?" #~ msgid "Choose a plugin" #~ msgstr "Izbor vstavka" #~ msgid "Add item" #~ msgstr "Dodaj predmet" #~ msgid "Move selected item up" #~ msgstr "Premakni izbrani predmet gor" #~ msgid "Move selected item down" #~ msgstr "Premakni izbrani predmet dol" #~ msgid "Repeat playlist" #~ msgstr "Ponovi predvajanje seznama predvajanja" #~ msgid "Dynamically add similar tracks" #~ msgstr "Dodaj podobne skladbe" #~ msgid "Remove current track from playlist" #~ msgstr "Odstrani izbrane skladbe iz seznama" #~ msgid "Clear Playlist" #~ msgstr "Počisti seznam predvajanja" #~ msgid "Randomize the order of the current playlist" #~ msgstr "Naključno razvrsti trenutni seznama predvajanja" #~ msgid "Start/Pause Playback" #~ msgstr "Začetek/Premor predvajanja" #~ msgid "Track _properties" #~ msgstr "_Lastnosti skladbe" #~ msgid "_Export current playlist" #~ msgstr "_Izvozi trenutni seznam predvajanja" #~ msgid "_Go to Playing Track" #~ msgstr "_Pojdi na predvajan predmet" #~ msgid "_Randomize Playlist" #~ msgstr "_Naključno razvrsti seznam predvajanja" #~ msgid "Install a third party plugin from a file" #~ msgstr "Namesti zunanji vstavek iz datoteke" #~ msgid "Install plugin file" #~ msgstr "Namesti vstavek" #~ msgid "Display OSD when hovering over tray icon" #~ msgstr "Prikaži na zaslonu, ko gre miška čez ikono na pladnju" #~ msgid "Display a progressbar in the OSD" #~ msgstr "Pokaži v vrstico napredka prikaza na zaslonu" #~ msgid "Opacity Level:" #~ msgstr "Raven prosojnosti:" #~ msgid "Window Height:" #~ msgstr "Višina okna:" #~ msgid "Close this dialog" #~ msgstr "Zapri pogovorno okno" #~ msgid "" #~ "Copyright (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "This program is free software; you can redistribute it and/or modify\n" #~ "it under the terms of the GNU General Public License as published by\n" #~ "the Free Software Foundation; either version 2 of the License, or\n" #~ "(at your option) any later version.\n" #~ "\n" #~ "This program is distributed in the hope that it will be useful,\n" #~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" #~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" #~ "GNU General Public License for more details.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along\n" #~ "with this program; if not, write to the Free Software Foundation, Inc.,\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ msgstr "" #~ "Avtorske pravice (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "Ta program je prosta programska oprema; program lahko razširjate in/ali\n" #~ "spreminjate pod pogoji Splošnega dovoljenja GNU(GNU General " #~ "PublicLicense),\n" #~ "kot ga je objavila ustanova Free Software Foundation; bodisi različice 2\n" #~ "ali (po vaši izbiri) katerekoli poznejše različice.\n" #~ "\n" #~ "Ta program se razširja v upanju, da bo uporaben, vendar BREZ VSAKRŠNEGA " #~ "JAMSTVA;\n" #~ "tudi brez posredne zagotovitve CENOVNE VREDNOSTI ali PRIMERNOSTI ZA\n" #~ "DOLOČEN NAMEN. Za podrobnosti glejte besedilo GNU General Public " #~ "License.\n" #~ "\n" #~ "Skupaj s programom bi morali dobiti tudi kopijo GNU splošne javne " #~ "licence.\n" #~ "V primeru, da je niste, pišite na Free Software Foundation, Inc.,\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ msgid "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager" #~ msgstr "" #~ "Mathias Brodala\n" #~ " \n" #~ " Vzdrževalec prevodov" #~ msgid "ALSA" #~ msgstr "Alsa" #~ msgid "Playback engine (requires restart): " #~ msgstr "Pogon predvajanja (zahteva ponoven zagon): " #~ msgid "These options only affect the unified engine." #~ msgstr "Ta možnosti vplivajo le na združeni pogon." #~ msgid "" #~ "OSD\n" #~ "Drag to the location you'd like the\n" #~ "OSD to appear" #~ msgstr "" #~ "Zaslonski prikaz (OSD)\n" #~ "Potegnite na mesto, kjer želite, da se pojavnik\n" #~ "prikaže na zaslonu." #~ msgid "Use alpha transparency (if supported)" #~ msgstr "Uporabi alfa prozornost (če je podprta)" #~ msgid "AWN" #~ msgstr "AWN" #~ msgid "Available controls" #~ msgstr "Razpoložljivi nadzori" #~ msgid "Selected controls" #~ msgstr "Izbrani nadzori" #~ msgid "$title ($length)" #~ msgstr "$title ($length)" #~ msgid "Streamripper can only record streams." #~ msgstr "Streamripper lahko le snema pretok v datoteko." #~ msgid "Alarm Name:" #~ msgstr "Ime alarma:" #~ msgid "Alarm Time:" #~ msgstr "Čas alarma:" #~ msgid "Alarm:" #~ msgstr "Alarm:" #~ msgid "Maximum Volume:" #~ msgstr "Največja glasnost:" #~ msgid "Minimum Volume:" #~ msgstr "Najmanjša glasnost:" #~ msgid "Name - Time" #~ msgstr "Ime - čas" #~ msgid "Restart Playlist" #~ msgstr "Ponovno zaženi seznam predvajanja" #~ msgid "Time per Increment:" #~ msgstr "Čas na prirastek:" #~ msgid "Timer per Increment:" #~ msgstr "Čas na korak:" #~ msgid "Show Menuitem to toggle Submission" #~ msgstr "Pokaži predmet menija za preklop oddaje" #~ msgid "On Playback Start, Pause or Stop" #~ msgstr "Ob začetku, premoru ali zaustavitvi predvajanja" #~ msgid "On Tray Icon Hover" #~ msgstr "Ob prehodu miške preko ikone" #~ msgid "" #~ "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " #~ "replaced by their respective values. The title will be replaced by " #~ "\"Unknown\" if it is empty." #~ msgstr "" #~ "Oznake \"%(title)s\", \"%(artist)s\" in \"%(album)s\" bodo zamenjane z " #~ "ustreznimi vrednostmi. Naslov bo zamenjan z opisom \"Neznano\", v " #~ "kolikor polje ostane prazno." #~ msgid "Use Album Covers As Icons" #~ msgstr "Uporaba naslovnic albuma kot ikone" #~ msgid "Use Media Icons For Pause, Stop and Resume" #~ msgstr "" #~ "Uporabi večpredstavne ikone za premor, zaustavitev in ponovno predvajanje" # focus ? #~ msgid "When GUI is Focused" #~ msgstr "Kadar je grafični vmesnik v ospredju" #~ msgid "API Key:" #~ msgstr "API ključ:" #~ msgid "Secret Key:" #~ msgstr "Šifrirni ključ:" #~ msgid "" #~ "To sign up for an Amazon AWS account and get \n" #~ "this information visit http://aws.amazon.com/" #~ msgstr "" #~ "Za vpis za račun Amazon AWS in te podatke \n" #~ "obiščite http://aws.amazon.com/" #~ msgid "Both artist and album" #~ msgstr "Oba, album in izvajalec" #~ msgid "" #~ "Message that should be displayed in the body of the notification. In each " #~ "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced " #~ "by their respective values. If the tag is not known, \"Unknown\" will be " #~ "filled in its place" #~ msgstr "" #~ "Sporočilo za prikaz v telesu obvestila. V vsakem primeru bodo \"%(title)s" #~ "\", \"%(artist)s\" in \"%(album)s\" zamenjani z ustreznimi vrednostmi. V " #~ "primeru da oznaka ni znana, bo na njenem mestu vnesena beseda \"Neznano\"" #~ msgid "Only album" #~ msgstr "Le album" #~ msgid "Only artist" #~ msgstr "Le izvajalec" #~ msgid "Display window decorations" #~ msgstr "Prikaz okraskov okna" #~ msgid "Track title format:" #~ msgstr "Oblika naslova skladbe:" #~ msgid "Relay Port:" #~ msgstr "Oddajna vrata:" #~ msgid "Save Location:" #~ msgstr "Shrani mesto:" #~ msgid "Awn" #~ msgstr "Awn" #~ msgid "" #~ "Adds support for playing audio CDs.\n" #~ "Requires python-cddb to look up tags." #~ msgstr "" #~ "Doda podporo za predvajanje zvočnih CD-jev.\n" #~ "Zahteva python-cddb za iskanje oznak." #~ msgid "Creates an MPRIS D-Bus object to control Exaile" #~ msgstr "ustvari MPRIS D-Bus predmet za nadzor programa Exaile" #~ msgid "iPod support" #~ msgstr "Podpora za iPod" #~ msgid "A plugin for iPod support" #~ msgstr "Vstavek za iPod podporo." #~ msgid "Pauses/resumes playback on screensaver start/stop" #~ msgstr "" #~ "Naredi premor/nadaljuje predvajanje ob zagonu/zaustavitvi ohranjevalnika " #~ "zaslona" #~ msgid "Tag Covers" #~ msgstr "Oznaka naslovnice" #~ msgid "Searches track tags for covers" #~ msgstr "Preiskava oznak skladb za naslovnice" #~ msgid "Plugin to fetch lyrics from lyricwiki.org" #~ msgstr "Vstavek za pridobivanje besedil z lyricwiki.org" #~ msgid "Idle." #~ msgstr "Nedejavno." #~ msgid "Could not enable plugin: %s" #~ msgstr "Ni mogoče omogočiti vstavka: %s" #~ msgid "Could not disable plugin: %s" #~ msgstr "Ni mogoče onemogočiti vstavka: %s" #~ msgid "Location:" #~ msgstr "Mesto:" #~ msgid "© 2009-2010" #~ msgstr "© 2009-2010" #~ msgid "Clear" #~ msgstr "Počisti" #~ msgid "Close" #~ msgstr "Zapri" #~ msgctxt "yes" #~ msgid "Friday" #~ msgstr "petek" #~ msgctxt "yes" #~ msgid "Increment:" #~ msgstr "Povečevanje:" #~ msgctxt "yes" #~ msgid "Maximum volume:" #~ msgstr "Največja glasnost:" #~ msgctxt "yes" #~ msgid "Minimum volume:" #~ msgstr "Najmanjša glasnost:" #~ msgctxt "yes" #~ msgid "Monday" #~ msgstr "ponedeljek" #~ msgctxt "yes" #~ msgid "Saturday" #~ msgstr "sobota" #~ msgctxt "yes" #~ msgid "Sunday" #~ msgstr "nedelja" #~ msgctxt "yes" #~ msgid "Thursday" #~ msgstr "četrtek" #~ msgctxt "yes" #~ msgid "Time per increment:" #~ msgstr "Čas za povečanje:" #~ msgctxt "yes" #~ msgid "Tuesday" #~ msgstr "torek" #~ msgctxt "yes" #~ msgid "Use Fading" #~ msgstr "Uporabi pojemanje" #~ msgctxt "yes" #~ msgid "Wednesday" #~ msgstr "sreda" #~ msgid "Secret key:" #~ msgstr "Skrivni ključ:" dist/copy/po/PaxHeaders.26361/pt_BR.po0000644000175000017500000000012312233027260016004 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 29 ctime=1382821553.04504693 exaile-3.3.2/po/pt_BR.po0000644000000000000000000041622012233027260014752 0ustar00rootroot00000000000000# Brazilian Portuguese translation for exaile # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2013-07-02 23:53+0000\n" "Last-Translator: Evertton de Lima \n" "Language-Team: Brazilian Portuguese \n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Launchpad-Export-Date: 2013-07-04 05:11+0000\n" "X-Generator: Launchpad (build 16692)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "%d dia, " msgstr[1] "%d dias, " #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "%d hora, " msgstr[1] "%d horas, " #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "%d minuto, " msgstr[1] "%d minutos, " #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d segundo" msgstr[1] "%d segundos" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "%dd, " #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "%dh, " #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "%dm, " #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "%ds" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "%dd " #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "%d:%02d:%02d" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "%d:%02d" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "Nunca" #: ../xl/formatter.py:702 msgid "Today" msgstr "Hoje" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "Ontem" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "Falha ao migrar da versão 0.2.14" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "Uso: exaile [OPÇÃO]... [URI]" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "Opções" #: ../xl/main.py:421 msgid "Playback Options" msgstr "Opções de Reprodução" #: ../xl/main.py:423 msgid "Play the next track" msgstr "Reproduzir a próxima faixa" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "Reproduzir a faixa anterior" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "Parar a reprodução" #: ../xl/main.py:429 msgid "Play" msgstr "Reproduzir" #: ../xl/main.py:431 msgid "Pause" msgstr "Pausar" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "Pausar ou retomar a reprodução" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "Parar a reprodução após a faixa atual" #: ../xl/main.py:440 msgid "Collection Options" msgstr "Opções de coleção" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "LOCAL" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "Adicionar faixas de Local para a coleção" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "Opções da lista de reprodução" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "Exportar a lista de reprodução atual para LOCALIZAÇÂO" #: ../xl/main.py:454 msgid "Track Options" msgstr "Opções de Faixa" #: ../xl/main.py:456 msgid "Query player" msgstr "Enfileirar tocador" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "FORMATO" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" "Recupera o atual estado de reprodução e as informações da faixa no seguinte " "FORMATO" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "ETIQUETAS" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" "ETIQUETAS para recuperar a partir da faixa atual, use com --format-query" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "Mostrar uma janela de aviso com os dados da faixa atual" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "Imprime o título da faixa atual" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "Imprime o album da faixa atual" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "Imprime o artista da faixa atual" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "Imprime a duração da faixa atual" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "N" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "Atribuir classificação para a faixa atual em N%" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "Obter classificação para a faixa atual" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "Marcar a posição de reprodução atual como tempo" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "Marcar a posição de reprodução atual como porcentagem" #: ../xl/main.py:490 msgid "Volume Options" msgstr "Opções de Volume" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "Volume aumentado em N%" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "Diminuir volume em N%" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "Deixa o volume mudo ou não" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "Exibir o volume atual em percentual" #: ../xl/main.py:507 msgid "Other Options" msgstr "Outras opções" #: ../xl/main.py:509 msgid "Start new instance" msgstr "Iniciar nova instância" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "Mostrar esta mensagem de ajuda e sair" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "Mostrar número de versão do programa e sair." #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "Iniciar minimizado (na bandeja, se possível)" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "Alterna a visibilidade da interface gráfica (se possível)" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "Iniciar em modo seguro - útil para quando você estiver com problemas" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" "Forçar importação de dados antigos da versão 0.2.x (Substitui os dados " "atuais)" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "Não importar os dados antigos da versão 0.2.x" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" "Fazer as opções de controle como --play iniciar o Exaile se ele não estiver " "funcionando" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "Desenvolvimento / Opções de depuração" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "DIRETÓRIO" #: ../xl/main.py:536 msgid "Set data directory" msgstr "Definir diretório de dados" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "Conjunto de dados e diretórios de configuração" #: ../xl/main.py:540 msgid "MODULE" msgstr "MÓDULO" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "Limitar a saída do log para o MÓDULO" #: ../xl/main.py:543 msgid "LEVEL" msgstr "NÍVEL" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "Limitar a saída do log para o NÍVEL" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "Mostrar saída de depuração" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "Ativa debugging de xl.event. Produz MUITAS mensagens de saída" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "Adicionar o nome da Thread as mensagens de log" #: ../xl/main.py:555 msgid "TYPE" msgstr "TIPO" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "Limitar depuração xl.event para saída d" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "Reduzir nível de saída" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "Desabilitar suporte ao D-Bus" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "Disabilitar suporte ao HAL" #: ../xl/main.py:580 msgid "Entire Library" msgstr "Toda a Biblioteca" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "Aleatório %d" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "Classificação > %d" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" "Exaile ainda não terminou de carregar. Talvez você deva aguardar pelo sinal " "exaile_loaded?" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "Etiquetas" #: ../xl/covers.py:505 msgid "Local file" msgstr "Arquivo local" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "Plugin arquivo não está no formato correto." #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "Um plugin com o nome \"%s\" já está instalado." #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "Plugin arquivo contém um caminho perigoso." #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "Não especificou uma localização da qual carregar a base de dados" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "Você não especificou um local para salvar o bd" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "Vários Artistas" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "Desconhecido" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr " / " #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "%dk" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" "Vorbis é um codec de audio com perda e de código aberto, com saída de áudio " "de alta qualidade e com tamanhos de arquivos menores aos do formato MP3." #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" "Free Lossless Audio Codec (FLAC - Codec de Audio Livre com Perda) é um codec " "de código aberto que comprime mas não reduz a qualidade do audio" #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" "Formato de audio com perdas de propriedade da Apple que alcança melhor " "qualidade de som que MP3 às taxas de bits menores." #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" "Um formato de audio proprietário, antigo e com perdas, mas ainda polular. " "VBR oferece melhor qualidade que CBR, mas pode ser incompatível com alguns " "tocadores." #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" "Um formato de audio proprietário, antigo e com perdas, mas ainda popular. " "CBR oferece menor qualidade que VBR, mas é compatível com qualquer tocador." #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "Um formato de audio, sem perdas, muito rápido e com boa compressão." #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "Automático" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "Personalizado" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "Automático" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "Sem reprodução." #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" "estado: %(status)s, título: %(title)s, artista: %(artist)s, álbum: " "%(album)s, duração: %(length)s, posição: %(progress)s%% [%(position)s]" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "A versão das configurações é mais nova que a atual." #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "Nós não sabemos a forma de armazenar esse tipo de configuração: " #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "Um tipo desconhecido de opção foi encontrado!" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "Tipo de lista inválido" #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "Lista de Reprodução" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "Lista de reprodução M3U" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "Lista de reprodução PLS" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "Formato inválido para %s" #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "Versão %(version)s não suportada por %(type)s" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "Lista de reprodução ASX" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "Lista de reprodução XSPF" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "Misturar _Desligado" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "Misturar _Faixas" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "Misturar _Álbuns" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "Repetição_Desligada" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "Repetir _Todos" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "Repetir U_m" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "Dinâmico _Desligado" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "Dinâmico por _Artistas Similares" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "segundos" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "minutos" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "horas" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "dias" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "semanas" #: ../xl/lyrics.py:305 msgid "Local" msgstr "Local" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "Enfileirar" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "Substituir Atual" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "Adicionar à Lista atual" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "Abrir Diretório" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" "Os arquivos não puderam ser movidos para a Lixeira. Remover eles " "permanentemente do disco?" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "Mover para Lixeira" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "_Exibir Faixa Tocando" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "Nome:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "Obedecer qualquer critério" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "Embaralhar resultados" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "Limitar em: " #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr " faixas" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "Parado" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "Rastreando: %s" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "Mover" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "Novo Marcador" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "Sem Áudio" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "%d%%" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "Volume Máximo" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" "$title\n" "por $artist\n" "em $album" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "Variados" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "%(track_count)d num total de (%(total_duration)s)" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "%d na coleção" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "exibindo %d" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "%d selecionado" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "Fila" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "Enfileirar (%d)" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "Nº" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "Número da faixa" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "Título" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "Artista" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "Compositor" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "Álbum" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "Duração" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "Disco" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "Número do Disco" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "Avaliação" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "Data" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "Gênero" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "Taxa de bits" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "Local" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "Nome do Arquivo" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "Reproduções" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "BPM" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "Última reprodução" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "Dados Adicionados" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "Programação" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "Comentário" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "Agrupamento" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "_Redimensionável" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "Redimensionar _Automaticamente" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "Avaliação:" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "Reprodução Aleatória" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "Repetir" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "Dinâmico" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "Remover a Atual Faixa da Lista de Reprodução" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "Embaralhar Lista de Reprodução" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "Seleção Aleatória" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "Nova Lista de Reprodução" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "Renomear" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "Para a reprodução após esta faixa" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "Continuar reproduzindo após esta faixa" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "Requer plugins que forneçam listas de reprodução dinâmicas" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "Adicionar faixas similares à lista de reprodução dinamicamente" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "Insira a URL a ser aberta" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "Abrir URL" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "Selecione Tipo de Arquivo (por Extensão)" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "Escolher Mídia para Abrir" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "Arquivos Suportados" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "Arquivos de Música" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "Arquivos da Lista de Reprodução" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "Todos os Arquivos" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "Escolher Diretório para Abrir" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "Importar Lista de Reprodução" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "Exportar Lista de Reprodução Atual" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "Usar caminhos relativos a faixas" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "Lista salva como %s." #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "Fechar %s" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "Salvar modificações em %s antes de fechar?" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "Suas alterações serão perdidas, caso não salve-as" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "Fechar sem salvar" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "Sim para todos" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "Não para todos" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "Salvo %(count)s de %(total)s." #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "Um erro ocorreu enquanto %s:%s são copiados." #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "Arquivo já existe, substituir %s ?" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "Nome da lista:" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "Adicionar nova lista ..." #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "Não foi especificado um nome para sua lista de reprodução" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "Já existe uma lista de reprodução com esse nome." #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "Fechar aba" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "$título (pelo $artista)" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "Alternância: Parar após Faixa Selecionada" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "Erro encontrado na reprodução!" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "Carregando: %d%%..." #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "Continuar Reprodução" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "Pausar Reprodução" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "Exportação da lista de reprodução falhou!" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "Iniciar Reprodução" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "Reprodutor de Música Exaile" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "_Nova lista de reprodução" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "Abrir _URL" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "Abrir diretórios" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "_Exportar Lista de Reprodução Atual" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "Reiniciar" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "_Coleção" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "_Fila" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "C_apas" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "Barra Utilitária da Lista de Re_produção" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "_Colunas" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "Limpar _lista de reprodução" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "Gerenciador de _Dispositivos" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "Re_escanear Coleção" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "Propriedades_da_Faixa" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "Cancelar" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "Álbum original" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "Compositor Lírico" #: ../xlgui/properties.py:54 msgid "Website" msgstr "Website" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "Capa" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "Artista original" #: ../xlgui/properties.py:57 msgid "Author" msgstr "Autores" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "Data original" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "Arranjador" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "Regente" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "Intérprete" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "Copirraite" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "Letras" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "Faixa" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "Versão" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "ISRC" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "Codificado por" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "Organização" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "Modificado" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "Vezes tocada" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "Falha ao escrever as etiquetas" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" "Etiquetas não poderão ser escritas para os seguintes arquivos:\n" "{files}" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "Editando faixa %(current)d de %(total)d" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "Aplicar as alterações antes de fechar?" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "As alterações serão perdidas se você não aplicá-las agora." #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "%s:" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "de:" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "imagem JPEG" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "imagem PNG" #: ../xlgui/properties.py:919 msgid "Image" msgstr "Imagem" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "Imagem vinculada" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "Selecione uma imagem para definir como capa" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "Formatos de imagem suportados" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "Aplicar valor atual para todas as faixas" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "Todas as capas foram buscadas" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "Coletando álbuns e capas..." #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "Exibir capa" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "Obter capa" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "Remover Capa" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "Capa do %s" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "Opções de capa para %(artist)s - %(album)s" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "Carregando ..." #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "Nenhuma capa encontrada." #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" "Nenhuma das fontes habilitadas tem uma capa para esta faixa, tente ativar " "mais fontes." #: ../xlgui/devices.py:76 msgid "Icon" msgstr "Ícone" #: ../xlgui/devices.py:81 msgid "Device" msgstr "Dispositivo" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "Controlador" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "Escaneando coleção..." #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "Verificando %s..." #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "Alterna fila" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "Ítens na Fila" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "Propriedades" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "Nova Estação" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "Nova lista de reprodução inteligente" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "Editar" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "Exportar Lista de Reprodução" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "Exportar Arquivos" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "Apagar Lista de Reprodução" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "" "Tem certeza que você quer apagar permanentemente a Lista de Reprodução " "selecionada?" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "Digite o novo nome que você quer para sua lista de reprodução" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "Renomear Lista de Reprodução" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "Remover" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "Solte aqui para criar uma nova lista de reprodução" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "Abas fechadas recentemente" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "Lista de reprodução %d" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "Adicionar um diretório" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "Pasta não adicionada." #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" "A pasta já está em sua coleção ou é uma subpasta de outra pasta de sua " "coleção." #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "Transferindo para %s..." #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "Carregando fluxos..." #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "Adicionar Estação de Rádio" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "URL:" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "Estações salvas" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "Streams de Rádio" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "Atualizar" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "Informe o nome desejado para sua nova lista de reprodução" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "Gênero - Artista" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "Gênero - Álbum" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "Data - Artista" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "Data - Álbum" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "Artista - (Data - Álbum)" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "Reescanear Coleção" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "Tamanho" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s KB" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "e" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "verdade" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "não é" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "está definido" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "não está definido" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "contém" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "não contém" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "expressão regular" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "no mínimo" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "no máximo" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "antes" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "depois" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "entre" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "maior que" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "menor que" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "nos últimos" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "não nos últimos" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "Reproduções" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "Ano" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "%(first)s, %(second)s e outros" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "%(first)s e %(second)s" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "Listas Inteligentes de Músicas" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "Listas de Reprodução Personalizadas" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "Adicionar Lista de Reprodução Inteligente" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "Editar Lista Inteligente de Músicas" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "Exportando %s" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "Reprodução" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "Plugins" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "Sem categoria" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "Não foi possível carregar informações do plugin!" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "Falha no plugin: %s" msgstr[1] "Falha nos plugins: %s" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "Não foi possível desativar o plugin !" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "Não foi possível ativar o plugin!" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "Escolha um Plugin" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "Arquivos de plugins" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "Plugin arquivo de instalação falhou!" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "Capas" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "Aparência" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "Coleção" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "o/a(s)" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "Restaurar Padrões" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "Reiniciar o Exaile?" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "É preciso reiniciar para esta mudança ter efeito." #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "Ação" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "Atalho" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "Listas de Reprodução" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "Sobre o Exaile" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "© 2009-2012" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "Este programa é um software livre; você pode redistribui-lo e/ou modifica-" "lo\n" "sob os termos da GNU General Public License como publicado pela\n" "Free Software Foundation; seja a versão 2 da Licença, ou\n" "(à sua escolha) qualquer versão posterior.\n" "\n" "Este programa é distribuído na esperança que será útil,\n" "mas SEM QUALQUER GARANTIA; sem mesmo a garantia implícita de\n" "COMERCIABILIDADE ou APTIDÃO PARA UM PROPÓSITO PARTICULAR. Veja a\n" "GNU General Public License para mais detalhes.\n" "\n" "Você deve ter recebido uma cópia da GNU General Public License junto\n" "com este programa; se não, escreva para a Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "Tradutor desconhecido" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "Gerenciador de Capas" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "_Recuperar Capas" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "Embaralhar ordem de reprodução" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "Repetir reprodução" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "_Pesquisar" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "Buscador de Capas" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "A origem desta capa" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "_Definir como Capa" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "_Arquivo" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "_Editar" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "_Visualizar" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "Ferramen_tas" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "A_juda" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "Faixa Anterior" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" "Parar Reprodução\n" "\n" "Clique com o Botão Direito para Parar Depois da Reprodução da Faixa Atual." #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "Próxima Faixa" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0:00 / 0:00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "Propriedades da Faixa" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "A_dicionar etiquetas" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "_Remover etiquetas" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "ab → A_b" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "Define como maiúscula a primeira letra de todas as etiquetas" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "_Anterior" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "_Próxima" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "Outro" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "Outro arquivo de ícone" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "Capa (frente)" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "Capa (fundo)" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "Gravando Localização" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "Durante a gravação" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "Ilustração" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "Tipo:" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "Descrição:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "Gerenciador de Coleção" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "Monitorado" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "Rádio" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "Acrescentar Todas as Faixas à Lista de Reprodução" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "Importar CD" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "Adicionar Estação" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "Arquivos" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "Último diretório visitado" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "Próximo diretório visitado" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "Para cima um diretório" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "Atualizar lista de diretórios" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "Diretório Home" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "Procurar: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "Limpar campo de busca" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "A coleção está vazia." #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "Adicionar Música" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" "Atualizar a exibição da coleção\n" "(segure a tecla Shift para reescanear a coleção)" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "Usar capas junto às etiquetas" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "Usar capas de arquivos locais" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" "Esta opção irá buscar por imagens para a capa no \n" "mesmo diretório do arquivo de música." #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "Buscar capas automaticamente ao iniciar a lista" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "Ordenador de Busca de Capa" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "(mover para reordenador)" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "Abrir última lista de reprodução na inicialização" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "" "Perguntar se as listas de reprodução personalizadas serão salvas ao sair" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "Substituir o conteúdo do painel lateral com duplo clique" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" "Ao invés de acrescentar, as faixas adicionadas via duplo clique nos painéis " "irá substituir o conteúdo da lista atual." #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "Motor de reprodução: " #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "Usar transições suaves nas ações dos usuários" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "Duração do fade (ms):" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "Usar crossfading (EXPERIMENTAL)" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "Duração do crossfade (ms):" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "Redução do Áudio: " #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "Dispositivo: " #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "Personalizar encanamento" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "Continuar reprodução ao iniciar" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "Continuar reprodução em pausa" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "Avançar automaticamente para a próxima faixa" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "Normal" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "Unificado (instável)" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "Módulo" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "Habilitado" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "Nenhum Plugin Selecionado" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "Módulos Instalados" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "Autores:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "Versão:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "Instalar" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "Nenhum Módulo Selecionado" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "Módulos Disponíveis" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "Instalar atualizações" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "Atualizações" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "Instalar Plugin" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "Mostrar área de informações" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" "A área de informações contém a capa do álbum e informações sobre a faixa" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "Sempre mostrar a barra de abas" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "Posição das abas:" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "Fonte da lista de reprodução:" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "Redefinir para a fonte do sistema" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "Mostrar contagens de faixa na coleção" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "Usar transparência alfa" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" "Atenção: esta opção pode causar erros de exibição se usada com um " "gerenciador de janelas sem suporte a composição." #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "Mostrar ícone na bandeja" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "Minimizar para a área de notificação" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "Fechar para a bandeja" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "Pular para música atual ao mudar faixa" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "Mostrar \"splash screen\" na inicialização" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "Esquerda" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "Direita" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "Topo" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "Inferior" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "Preferências" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" "Palavras para tirar do começo das tags dos artistas quando classificados " "(separado por espaço):" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "(Clique com o botão direito para voltar ao padrão)" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "Usar detecção de compilação baseado em arquivo" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "Gerenciador de dispositivos" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "Adicionar Dispositivo" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "Tipo do dispositivo:" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "Dispositivos Detectados:" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "Personalizar: " #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "Gerenciador de Lista" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "Buscando mood..." #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "Mood encontrado" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "Não foi possível ler moodbar" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "O executável do moodbar não está disponível" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "Moodbar" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "Erro ao executar streamripper" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "Gravador de fluxo" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "Faixas preferidas Last.fm" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "A chave da API é inválida." #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "Por favor, verifique se os dados estão corretos." #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "Não foi possível iniciar o navegador" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" "Por favor, copie o seguinte URL e abra com o seu navegador:\n" "{url}" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "Preferido" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "Faixas preferidas Last.fm" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "Marcar como favorita" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "Retirar favorita" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "Alarme" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "Menu principal" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "Contactando o servidor Shoutcast..." #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "Erro ao conectar com o servidor Shoutcast." #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "Digite as palavras de busca" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "Busca de Shoutcast" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "Resultados de busca" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "Procurar" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "Nenhuma letra encontrada." #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "Ir para: " #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "Qualquer" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "Visualizar letra" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "AudioScrobbler" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "Verificação realizada com sucesso" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "Falha na verificação" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "Habilitar audioscrobbling" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "Equalizador" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "Desligar após a reprodução" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "Desligamento programado" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "O computador será desligado após o fim da reprodução." #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "Desligamento eminente" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "O computador será desligado em %d segundos." #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "Falha ao desligar" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "O computador não pode ser desligado utilizando D-Bus" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "Notificações pelo notify-osd" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "%(title)s" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "de %(artist)s" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "em %(album)s" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "Console do IPython - Exaile" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "Exibir o Console do IPython" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "Console do IPython" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "Notificação" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" "de %(artist)s\n" "em %(album)s" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "Importando CD..." #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "Disco de Áudio" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "CD" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "Número da faixa" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "Número do disco" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "Reproduções" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "Artista: " #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" "Você sabia...\n" "\n" "%s" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "Wikipédia" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "Exibir a página da Wikipédia sobre o cantor atual." #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "Repetir segmento" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "Repetir o início" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "Repetir o final" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "Mini Mode" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "$tracknumber - $title" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "$title por $artist" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "$title ($__length)" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "Anterior" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "Voltar para a ultima música" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "Faixa anterior" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "Avançar" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "Ir para a próxima faixa" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "Próxima faixa" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "Reproduzir/Parar" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "Começar, pausar ou continuar a reprodução" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "Iniciar a reprodução" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "Continuar reprodução" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "Pausar reprodução" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "Parar" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "Parar a reprodução" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "Continuar reprodução após faixa atual" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "Volume" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "Alterar o volume" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "Restaurar" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "Restaurar a janela principal" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "Restaurar janela principal" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "Selecione a taxa de popularidade da faixa atual" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "Seletor de faixa" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "Selecionador de faixa simples" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "Botão da lista de reprodução" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "Acessar a lista de reprodução atual" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "$título ($current_time / $total_time)" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "Botão de Progresso" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "Progresso da reprodução e acesso à lista de reprodução atual" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "Barra de progresso" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "Progresso e busca na reprodução" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "Pegar todas as etiquetas da coleção" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "Adicionar novo grupo" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "Excluir grupo" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "Adicionar nova categoria" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "Remover categoria" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "ReplayGain" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "Arraste para escolher" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "Adicionar e Tocar" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "Adicionar" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "Pronto" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "Procurando catálogo do Jamendo..." #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "Recebendo dados da canção..." #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "Mensagem na Tela (OSD)" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "Capas da Amazon" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "Podcasts" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "Podcast" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "Atualizar Podcast" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "Remover" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "Digite a URL do podcast a ser adicionado" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "Abrir Podcast" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "Carregando %s..." #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "Erro ao carregar podcast." #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "Carregando Podcasts..." #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "Não foi possível salvar o arquivo do podcast" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "Desktop Cover" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "Relógio Multi-Alarme" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "Contexto" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "Informação de contexto" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "Marcar esta faixa como favorita" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "Apagar Favorito" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "Limpar Favoritos" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "Favoritos" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "Pausar na Proteção de Tela" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "Servidor DAAP" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "Cliente DAAP" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "Manualmente..." #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "Entre o IP e a porta para o compartilhamento" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "Entre o IP e a porta" #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" "Este servidor não suporta múltiplas conexões.\n" "Você deve parar a reprodução antes de baixar músicas." #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "Atualizar a Lista de Servidores" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "Desconectar do Servidor" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "Selecione um Local para Salvar" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "Conectar ao DAAP..." #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "Escurecer seção tocada ao invés de usar o cursor" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "Nível de escurecimento:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "Usar estilo de forma de onda" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "Mostrar somente a forma de onda, não a atmosfera" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "Usar cores do tema " #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "Cor base:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "Cor base" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "Local salvo:" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "Porta relé:" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "Extrair para um único arquivo" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "Deletar arquivos incompletos" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "Chave API:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "Senha:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "Solicitar permissão de acesso:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" "Vá para Sua conta API " "para obter uma chave API e uma senha e coloque-as aqui. Depois " "de colocá-las, solicite permissão de acesso e confirme para completar " "a configuração." #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "Hora do alarme" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "Segunda-Feira" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "Terça-Feira" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "Quarta-Feira" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "Quinta-Feira" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "Sexta-Feira" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "Sábado" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "Domingo" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "Dias do alarme" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "Usar Transição" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "Incremendo:" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "Envolvimento do display" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "Capas do display" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "Mostrar círculo" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "Porcentagem de texto" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "Nenhum" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "Atualizar Letras" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "Enviar faixas usando Audioscrobbler" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "Mostrar o item do menu para alternar a apresentação" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "Senha:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "Nome de usuário:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "pre" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "+12 dB" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "0" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "-24 dB" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "29" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "59" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "119" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "237" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "474" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "947" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "1.9K" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "3.8K" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "7.5K" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "15K" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "Ao mudar de faixa" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "Ao iniciar a reprodução, pausar ou parar" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "Na mudança da tag" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "No ícone da bandeja flutuante" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "Quando a janela principal está focalizada" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "Exibição" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "Usar as capas do álbuns como ícones" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "Usar ícones de mídia para pausar, parar e retomar" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "Ícones" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "Linha do artista" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" "As tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" serão " "substituídas por seus respectivos valores. O titulo será subtituido por " "\"Desconhecido\" se estiver vazio." #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "Resumo:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "Linha de álbum" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "Conteúdo" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "Opacidade do terminal" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "Fonte:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "Cor de fundo:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "Redimensionar as capas exibidas" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "Apenas Artista:" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "Apenas álbum:" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" "Mensagem que deve ser mostrada no corpo da notificação. Em cada caso, " "\"%(title)s\", \"%(artist)s\", e \"%(album)s\" serão substituídos por seus " "respectivos valores. Se a tag é desconhecida, \"Unknown\" será preenchido em " "seu lugar." #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "Ambos artista e album:" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "Corpo da Mensagem" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "Ogg Vorbis" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "FLAC" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "AAC" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "MP3 (VBR)" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "MP3 (CBR)" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "WavPack" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "Importar formato: " #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "Importar qualidade: " #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "Importar caminho: " #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" "Cada tag pode ser usada com $tag ou ${tag}. Tags internas como " "$__length precisam ser especificadas com dois underlines no início." #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" "A ordem dos controles podem ser alteradas simplesmente arrastando-as para " "cima ou para baixo. (Ou pressione Alt + Up / Down)." #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "Controles" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "Formato do título da faixa" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "Sempre no topo" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "Exibir na tasklist" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "Exibir decorações da janela" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "Exibir em todas as áreas de trabalho" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "Mostrar botão na janela principal" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "Completo" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "Simples" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "Preferir a correção por álbum" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "Preferir a correção do ReplayGain por album ao invés de por faixa." #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "Utilizar a proteção de corte" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "Proteger contra ruído causado pelo excesso de amplificação" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "Amplificação adicional a ser utilizada em todos os arquivos" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "Amplificação adicional (dB):" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" "Correção de queda para arquivos que não tenham informação do ReplayGain" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "Nível da correção de queda (dB):" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "Ordenar por:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "Direção de ordem:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "Resultados:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "Avançado" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "Descendente" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "Ascendente" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "Data de lançamento" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "Avaliação nesta semana" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "Avaliação neste mês" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "Número de adições à lista de reprodução" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "Número de downloads" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "Número de Execuções" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "Marcados com estrela" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "Data de estréia" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "Gênero/Etiquetas" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" "Para cadastrar uma conta Amazon AWS e obter\n" " esta informação, visite http://aws." "amazon.com/" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "Adicionar Podcast" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "Âncora:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "Deslocamento no eixo X:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "pixels" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "Deslocamento no eixo Y:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "Substituir tamanho da capa" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "Tamanho:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "Usar desaparecimento gradual" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "Duração do desaparecimento gradual:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "ms" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "Superior esquerdo" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "Superior direito" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "Inferior esquerdo" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "Inferior direito" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "Adicionar" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "Alarmes" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "Habilitar desvanecimento de volume" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "Volume do desvanecimento inicial:" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "Volume do desvanecimento final:" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "Incrementar desvaneciento" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "Tempo de Desvanecimento (s):" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "Reiniciar a Lista de Reprodução" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "Reprodução" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "Por favor entre com sua autenticação do Last.fm" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "Registre-se no Last.fm" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "Utilizar capas no menu de favoritos (terá efeito após reinício)" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "Nome do Servidor:" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "Servidor" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "Porta:" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "Servidor habilitado" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "Faixa atual" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" "Define o status atual da reprodução no Pidgin. Verifique a FAQ do Pidgin " "para encontrar os serviços suportados." #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" "Substitui a barra de progresso padrão por uma moodbar.\n" "Dependência: moodbar" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "Teclas Multimídia do GNOME" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" "Adiciona suporte para controlar o Exaile via sistema de teclas multimídias " "do GNOME. Compatível com GNOME >= 2.20.x" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" "Permite que você grave stream com o streamripper.Dependência: streamripper" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" "Mostra quais faixas foram marcadas como favoritas e permite que você marque " "faixas como favoritas.\n" "\n" "Tenha certeza que colocou uma chave API e senha válidas nas preferências do " "plug-in.\n" "\n" "Depende do plugin \"AudioScrobbler\" para usuário e senha." #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "Reproduz música em uma hora específica.\n" "\n" "Note que quando chegar a hora especificada, Exaile irá apenas agir como se " "você tivesse pressionado o botão reproduzir, então esteja certo que tenha a " "música que queira ouvir na sua lista de reprodução" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "Capas da Last.fm" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "Busca capas no Last.fm" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "Define a capa e adiciona alguns itens de menu ao AWN para o Exaile" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "Radio do Shoutcast" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "Lista de Rádio da Shoutcast" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "Editor de etiqueta Ex Falso" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" "Integra o editor de etiqueta Ex Falso com o Exaile.\n" "Depende de: Ex Falso" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" "Adiciona uma aba lateral que indica a letra de Lyrics para a trilha " "atualmente tocando." #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" "Envia a informação do que está ouvindo para o Last.fm e serviços similares " "que suportem AudioScrobbler" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "TeclasX" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "Teclas de atalhos globais utilizando xlib (mmkeys.so)" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "Teclas multimídia para Windows" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" "Adiciona suporte para teclas multimídia (presentes na maioria dos teclados " "novos) quando executando Exaile no Microsoft Windows\n" "Requer: pyHook " #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "Um equalizador de 10 canais" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "Lyrics Fly" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "Plugin para obter letras do lyricsfly.com" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "Librivox" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "Navegar e ouvir audiobooks do Librivox.org." #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "Desligar o computador ao terminar a reprodução" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "Suporte a dispositivos de mídia USB Mass Storage" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" "Suporte para acessar dispositivos portáteis utilizando o protocolo USB Mass " "Storage" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "Dispositivos" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "Listas de reprodução dinâmicas do Last.fm" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "O mecanismo da Last.fm para listas de reprodução dinâmicas" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" "Este plugin exibe bolhas de notificação quando uma música é reproduzida/" "retomada/parada, quer com a capa da música ou ícone de mídia para indicar a " "última ação.\n" "\n" "Dependência: python-notify\n" "Recomendação: notify-osd" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" "Fornece um console IPython que pode ser utilizado para manipular o Exaile." #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "Exibe uma notificação quando a reprodução de uma faixa começa" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "Reprodução de CD" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "Informações" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "Repetir A-B" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "Repetir continuamente um segmento de uma faixa." #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "Modo compacto do Exaile com uma interface configurável" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "Habilita o suporte ao ReplayGain" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "Remover ícone da bandeja" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" "Provê um ícone da bandeja alternativo que aceita arrastar e soltar arquivos " "sobre este para adicionar à lista de reprodução.\n" "\n" "Depende de: python-eggtrayicon" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "Jamendo" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "Habilita acesso ao catálogo de músicas do Jamendo" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "Suporte para iPod" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" "Um plugin para suporte a iPod. Somente leitura até o momento, sem " "transferência.\n" "\n" "Depende de python-gpod." #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" "Busca capas na Amazon\n" "\n" "Para poder utilizar este plugin, uma chave AWS API e uma chave secreta são " "necessárias." #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "Karaokê" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "Remover vozes do áudio" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "Adiciona um Suporte Simples ao Podcast" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "Mostra a capa do álbum atual na área de trabalho" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "Olá Mundo" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "Um plugin simples para testar o sistema básico de plugin" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "Reproduz música nas horas e dias específicados.\n" "Note que quando chegar a hora especificada, o Exaile irá agir como se você " "tivesse pressionado o botão reproduzir. Então tenha certeza de que a música " "que quer ouvir está na sua lista de reprodução." #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "Informação Contextual" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" "Mostra várias informações sobre a faixa atual.\n" "Dependência: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k." "a. PIL)" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" "Permite salvar/continuar nas posições dos marcadores nos arquivos de áudio." #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "Lyrics Wiki" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" "Este de plugin integra o spydaap (http://launchpad.net/spydaap) no Exaile " "assim que em uma coleção pode ser compartilhado sobre DAAP." #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "Permite reprodução de compartilhamento de músicas DAAP." #~ msgid "Clear" #~ msgstr "Limpar" #~ msgid "Close" #~ msgstr "Fechar" #~ msgid "Close tab" #~ msgstr "Fechar aba" #~ msgid "Export as..." #~ msgstr "Exportar como..." #~ msgid "%d KB" #~ msgstr "%d KB" #~ msgid "© 2009-2010" #~ msgstr "© 2009-2010" #~ msgid "GNOME" #~ msgstr "GNOME" #~ msgid "ALSA" #~ msgstr "ALSA" #~ msgid "OSS" #~ msgstr "OSS" #~ msgid "PulseAudio" #~ msgstr "PulseAudio" #~ msgid "JACK" #~ msgstr "JACK" #~ msgid "AWN" #~ msgstr "AWN" #~ msgid "API Key:" #~ msgstr "Chave da API:" #~ msgctxt "yes" #~ msgid "Monday" #~ msgstr "Segunda-Feira" #~ msgctxt "yes" #~ msgid "Tuesday" #~ msgstr "Terça-Feira" #~ msgctxt "yes" #~ msgid "Wednesday" #~ msgstr "Quarta-Feira" #~ msgctxt "yes" #~ msgid "Thursday" #~ msgstr "Quinta-feira" #~ msgctxt "yes" #~ msgid "Friday" #~ msgstr "Sexta-Feira" #~ msgctxt "yes" #~ msgid "Saturday" #~ msgstr "Sabado" #~ msgctxt "yes" #~ msgid "Sunday" #~ msgstr "Domigo" #~ msgctxt "yes" #~ msgid "Use Fading" #~ msgstr "Usar Transição" #~ msgctxt "yes" #~ msgid "Minimum volume:" #~ msgstr "Volume mínimo:" #~ msgctxt "yes" #~ msgid "Maximum volume:" #~ msgstr "Volume máximo:" #~ msgctxt "yes" #~ msgid "Increment:" #~ msgstr "Incremento:" #~ msgctxt "yes" #~ msgid "Time per increment:" #~ msgstr "Tempo por incremento:" #~ msgid "Secret key:" #~ msgstr "Chave secreta" #~ msgid "Awn" #~ msgstr "Aresta" #~ msgid "General" #~ msgstr "Geral" #~ msgid "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgstr "" #~ "{title}\n" #~ "{artist}\n" #~ "em {album} - {length}" #~ msgid "New Search" #~ msgstr "Nova busca" #~ msgid "Popup" #~ msgstr "Popup" #~ msgid "Resizable" #~ msgstr "Redimensionável" #~ msgid "Start" #~ msgstr "Iniciar" #~ msgid "Show OSD on track change" #~ msgstr "Exibir Janela de Notificação ao mudar de faixas" #~ msgid "Stopped" #~ msgstr "Parado" #~ msgid "Stop Playback" #~ msgstr "Parar" #~ msgid "Text Font:" #~ msgstr "Fonte do texto:" #~ msgid "Text Color" #~ msgstr "Cor do texto" #~ msgid "Vol:" #~ msgstr "Volume" #~ msgid "_Close" #~ msgstr "Fe_char" #~ msgid "Window Height:" #~ msgstr "Altura da janela:" #~ msgid "Window Width:" #~ msgstr "Largura da janela:" #~ msgid "Open" #~ msgstr "Abrir" #~ msgid "Add Playlist" #~ msgstr "Adicionar Lista de Reprodução" #~ msgid "Enter the search text" #~ msgstr "Insira o texto para pesquisa" #~ msgid "Add a directory" #~ msgstr "Adicionar um diretório" #~ msgid "Choose a file" #~ msgstr "Escolha um arquivo" #~ msgid "Quit" #~ msgstr "Sair" #~ msgid "Autosize" #~ msgstr "Ajustar largura automaticamente" #~ msgid "Clear Playlist" #~ msgstr "Limpar Lista de Reprodução" #~ msgid "Display OSD when hovering over tray icon" #~ msgstr "Mostrar OSD ao passar cursor pelo ícone da bandeja" #~ msgid "Exaile" #~ msgstr "Exaile" #~ msgid "Location:" #~ msgstr "Localização:" #~ msgid "Search:" #~ msgstr "Procurar:" #~ msgid "Select a save location" #~ msgstr "Selecione o destino para salvar" #~ msgid "Relay Port:" #~ msgstr "Porta de Relay:" #~ msgid "Part" #~ msgstr "Compositor da Partitura" #~ msgid "Original Date" #~ msgstr "Data Original" #~ msgid "Original Album" #~ msgstr "Álbum Original" #~ msgid "Original Artist" #~ msgstr "Artista Original" #~ msgid "Encoded By" #~ msgstr "Encodado por" #~ msgid "Title:" #~ msgstr "Título:" #~ msgid "Artist:" #~ msgstr "Artista:" #~ msgid "Album:" #~ msgstr "Álbum:" #~ msgid "Track Number:" #~ msgstr "Número da Faixa:" #~ msgid "Genre:" #~ msgstr "Gênero:" #~ msgid "Bitrate:" #~ msgstr "Bitrate:" #~ msgid "%(title)s (by %(artist)s)" #~ msgstr "%(title)s (por %(artist)s)" #~ msgid "by %s" #~ msgstr "por %s" #~ msgid "from %s" #~ msgstr "de %s" #~ msgid "Playing %s" #~ msgstr "Reproduzindo %s" #~ msgid "Import" #~ msgstr "Importar" #~ msgid "Number of Plays" #~ msgstr "Número de Reproduções" #~ msgid "Date Added" #~ msgstr "Data de inclusão na biblioteca" #~ msgid "Last Played" #~ msgstr "Última Reprodução" #~ msgid "Plugin Manager" #~ msgstr "Gerenciador de Plugins" #~ msgid "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "Year - Artist\n" #~ "Year - Album\n" #~ "Artist - Year - Album" #~ msgstr "" #~ "Artista\n" #~ "Álbum\n" #~ "Gênero - Artista\n" #~ "Gênero - Álbum\n" #~ "Ano - Artista\n" #~ "Ano - Álbum\n" #~ "Artista - Ano - Álbum" #~ msgid "Alarm Days:" #~ msgstr "Dias de Alarme:" #~ msgid " songs" #~ msgstr " músicas" #~ msgid "Opacity Level:" #~ msgstr "Nível de Opacidade:" #~ msgid "LastFM Radio" #~ msgstr "Rádio do Last.FM" #~ msgid "Personal" #~ msgstr "Pessoal" #~ msgid "Neighbourhood" #~ msgstr "Vizinhança" #~ msgid "Loved Tracks" #~ msgstr "Faixas preferidas" #~ msgid "Recommended" #~ msgstr "Recomendados" #~ msgid "No covers found" #~ msgstr "Nenhuma capa encontrada" #~ msgid "Select File Type (By Extension)" #~ msgstr "Selecione tipo de arquivo (por extensão)" #~ msgid "File Type" #~ msgstr "Tipo de Arquivo" #~ msgid "Extension" #~ msgstr "Extensão" #~ msgid "Export" #~ msgstr "Exportar" #~ msgid "Invalid file extension, file not saved" #~ msgstr "Extensão de arquivo inválida, arquivo não salvo" #~ msgid "0:00" #~ msgstr "0:00" #~ msgid " - " #~ msgstr " - " #~ msgid " + " #~ msgstr " + " #~ msgid "Page 1" #~ msgstr "Página 1" #~ msgid "..." #~ msgstr "..." #~ msgid "0/0 tracks" #~ msgstr "Faixas 0/0" #~ msgid "Add device" #~ msgstr "Adicionar dispositivo" #~ msgid "" #~ "OSD\n" #~ "Drag to the location you'd like the\n" #~ "OSD to appear" #~ msgstr "" #~ "OSD\n" #~ "Mova para o local onde você quer que o OSD apareça" #~ msgid "Display a progressbar in the OSD" #~ msgstr "Mostar o processo no OSD" #~ msgid "Show a popup of the currently playing track" #~ msgstr "Mostrar notificação da faixa atual em reprodução" #~ msgid "Get rating for current song" #~ msgstr "Obter classificação para a faixa atual" #~ msgid "Set rating for current song" #~ msgstr "Escolher classificação para a faixa atual" #~ msgid "A plugin with the name \"%s\" is already installed" #~ msgstr "Já foi instalado um plugin com o nome \"%s\"" #~ msgid "Plugin archive is not in the correct format" #~ msgstr "O arquivo do plugin não está no formato correto" #~ msgid "Choose a plugin" #~ msgstr "Escolha um plugin" #~ msgid "Close this dialog" #~ msgstr "Fechar esse diálogo" #~ msgid "Minimum Volume:" #~ msgstr "Volume Mínimo:" #~ msgid "Maximum Volume:" #~ msgstr "Volume Máximo:" #~ msgid " New song, fetching cover." #~ msgstr " Nova música, adquirindo capa." #~ msgid "" #~ "Exaile now uses absolute URI's, please delete/rename your %s directory" #~ msgstr "" #~ "Exaile agora usa URI absolutas, por favor delete/renomeie seu diretório %s" #~ msgid "Streamripper can only record streams." #~ msgstr "Streamripper só pode gravar streams." #~ msgid "Name - Time" #~ msgstr "Nome - Duração" #~ msgid "Alarm:" #~ msgstr "Alarme:" #~ msgid "Plugin archive contains an unsafe path" #~ msgstr "Pasta de plugins contem um caminho não seguro" #~ msgid "%d covers to fetch" #~ msgstr "%d capas a obter" #~ msgid "Fading:" #~ msgstr "Fading:" #~ msgid "Enable Fading" #~ msgstr "Ativar Fading" #~ msgid "Alarm Name:" #~ msgstr "Nome do Alarme:" #~ msgid "Alarm Time:" #~ msgstr "Hora do Alarme:" #~ msgid "New playlist title:" #~ msgstr "Novo título de playlist:" #~ msgid "Buffering: 100%..." #~ msgstr "Carregando: 100%..." #~ msgid "Streaming..." #~ msgstr "Transmitindo..." #~ msgid "order must be a list or tuple" #~ msgstr "a ordem deve ser uma lista ou tupla" #~ msgid "Toggle Play or Pause" #~ msgstr "Alternar para Reproduzir ou Pausar" #~ msgid "Restart Playlist" #~ msgstr "Reiniciar lista de reprodução" #~ msgid "Toggle: Stop after selected track" #~ msgstr "Ativar: Parar após a faixa selecionada" #~ msgid "" #~ "Exaile Music Player\n" #~ "Not playing" #~ msgstr "" #~ "Exaile Music Player\n" #~ "Nada tocando" #~ msgid "In pause: %s" #~ msgstr "Pausado: %s" #~ msgid " (%(queue_count)d queued)" #~ msgstr " (%(queue_count)d enfileiradas)" #~ msgid "Choose a file to open" #~ msgstr "Escolha um arquivo para abrir" #~ msgid "%(minutes)d:%(seconds)02d" #~ msgstr "%(minutes)d:%(seconds)02d" #~ msgid "Remove current track from playlist" #~ msgstr "Remover faixa atual da lista de reprodução" #~ msgid "Repeat playlist" #~ msgstr "Repetir lista de reprodução" #~ msgid "Dynamically add similar tracks" #~ msgstr "Adicionar faixas similares dinamicamente" #~ msgid "Device class does not support transfer." #~ msgstr "Classe de dispositivo não suporta transferência." #~ msgid "Filter event debug output" #~ msgstr "Filtra a saída de depuração de eventos" #~ msgid "_Save As..." #~ msgstr "_Salvar como..." #~ msgid "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgstr "" #~ "Mova a janela OSD para a posição que você deseja que ela apareça" #~ msgid "Add to Playlist" #~ msgstr "Adicionar à Lista de Reprodução" #~ msgid "" #~ "Path is already in your collection, or is a subdirectory of another path " #~ "in your collection" #~ msgstr "" #~ "O caminho já se encontra em sua coleção ou é um subdiretório de outro " #~ "caminho de sua coleção" #~ msgid "Decreases the volume by VOL%" #~ msgstr "Diminui o volume em VOL%" #~ msgid "Increases the volume by VOL%" #~ msgstr "Aumenta o volume em VOL%" #~ msgid "Save As..." #~ msgstr "Salvar Como..." #~ msgid "Custom playlist name:" #~ msgstr "Nome da lista de reprodução personalizada:" #~ msgid "Add to custom playlist" #~ msgstr "Adicionar à lista de reprodução personalizada" #~ msgid "_Rename Playlist" #~ msgstr "_Renomear Lista de Reprodução" #~ msgid "_Save Changes To Playlist" #~ msgstr "_Salvar Alterações na Lista de Reprodução" #~ msgid "Export current playlist..." #~ msgstr "Exportar lista de reprodução atual..." #~ msgid "Delete track" #~ msgstr "Remover faixa" #~ msgid "_Close Playlist" #~ msgstr "Fe_char Lista de Reprodução" #~ msgid "%(year)d-%(month)02d-%(day)02d" #~ msgstr "%(day)02d-%(month)02d-%(year)d" #~ msgid "New custom playlist name:" #~ msgstr "Nome da nova lista de reprodução personalizada:" #~ msgid "Idle." #~ msgstr "Ocioso." #~ msgid "Add To New Playlist..." #~ msgstr "Adicionar à Nova Lista de Reprodução..." #~ msgid "" #~ "This will permanantly delete the selected tracks from your disk, are you " #~ "sure you wish to continue?" #~ msgstr "" #~ "Isto irá excluir permanentemente as faixas selecionadas de seu disco, " #~ "você tem certeza que quer continuar?" #~ msgid "Could not enable plugin: %s" #~ msgstr "Não foi possível habilitar o plugin: %s" #~ msgid "Remove item" #~ msgstr "Remover item" #~ msgid "Could not disable plugin: %s" #~ msgstr "Não foi possível desabilitar o plugin: %s" #~ msgid "Add item" #~ msgstr "Adicionar item" #~ msgid "File Size:" #~ msgstr "Tamanho do Arquivo:" #~ msgid "Length:" #~ msgstr "Duração:" #~ msgid "Basic" #~ msgstr "Básico" #~ msgid "Date:" #~ msgstr "Data:" #~ msgid "Details" #~ msgstr "Detalhes" #~ msgid "Play Count:" #~ msgstr "Número de Reproduções:" #~ msgid "" #~ "Copyright (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "This program is free software; you can redistribute it and/or modify\n" #~ "it under the terms of the GNU General Public License as published by\n" #~ "the Free Software Foundation; either version 2 of the License, or\n" #~ "(at your option) any later version.\n" #~ "\n" #~ "This program is distributed in the hope that it will be useful,\n" #~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" #~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" #~ "GNU General Public License for more details.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along\n" #~ "with this program; if not, write to the Free Software Foundation, Inc.,\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ msgstr "" #~ "Copyright (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "Este programa é um software livre; você pode redistribui-lo e/ou modifica-" #~ "lo\n" #~ "sob os termos da GNU General Public License como publicado pela\n" #~ "Free Software Foundation; seja a versão 2 da Licença, ou\n" #~ "(à sua escolha) qualquer versão posterior.\n" #~ "\n" #~ "Este programa é distribuído na esperança que será útil,\n" #~ "mas SEM QUALQUER GARANTIA; sem mesmo a garantia implícita de\n" #~ "COMERCIABILIDADE ou APTIDÃO PARA UM PROPÓSITO PARTICULAR. Veja a\n" #~ "GNU General Public License para mais detalhes.\n" #~ "\n" #~ "Você deve ter recebido uma cópia da GNU General Public License junto\n" #~ "com este programa; se não, escreva para a Free Software Foundation, " #~ "Inc.,\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ msgid "© 2009" #~ msgstr "© 2009" #~ msgid "" #~ "Automatic\n" #~ "GNOME\n" #~ "ALSA\n" #~ "OSS\n" #~ "PulseAudio\n" #~ "JACK" #~ msgstr "" #~ "Automático\n" #~ "GNOME\n" #~ "ALSA\n" #~ "OSS\n" #~ "PulseAudio\n" #~ "JACK" #~ msgid "" #~ "Normal\n" #~ "Unified (unstable)" #~ msgstr "" #~ "Normal\n" #~ "Unificado (instável)" #~ msgid "These options only affect the unified engine." #~ msgstr "Estas opções apenas afetarão o mecanismo unificado." #~ msgid "Playback engine (requires restart): " #~ msgstr "Mecanismo de reprodução (requer reinício): " #~ msgid "Install plugin file" #~ msgstr "Instalar um arquivo de plugin" #~ msgid "Start/Pause Playback" #~ msgstr "Iniciar/Pausar Reprodução" #~ msgid "_Randomize Playlist" #~ msgstr "Emba_ralhar Lista de Reprodução" #~ msgid "_Go to Playing Track" #~ msgstr "_Ir Para a Faixa Atual" #~ msgid "_Export current playlist" #~ msgstr "_Exportar a lista de reprodução atual" #~ msgid "Restore Main Window" #~ msgstr "Restaurar Janela Principal" #~ msgid "Available controls" #~ msgstr "Controles disponíveis" #~ msgid "Selected controls" #~ msgstr "Controles selecionados" #~ msgid " & " #~ msgstr " & " #~ msgid "Seeking: " #~ msgstr "Buscando: " #~ msgid "$title ($length)" #~ msgstr "$title ($length)" #~ msgid "Time per Increment:" #~ msgstr "Tempo por Incremento:" #~ msgid "Use Album Covers As Icons" #~ msgstr "Utilizar Capas dos Álbuns como Ícones" #~ msgid "Artist Line:" #~ msgstr "Linha do Artista:" #~ msgid "Album Line:" #~ msgstr "Linha do Álbum:" #~ msgid "On Track Change" #~ msgstr "Na Mudança de Faixa" #~ msgid "On Playback Start, Pause or Stop" #~ msgstr "No Início, Pausa ou Fim da Reprodução" #~ msgid "" #~ "To sign up for an Amazon AWS account and get \n" #~ "this information visit http://aws.amazon.com/" #~ msgstr "" #~ "Para se inscrever para uma conta na Amazon AWS e obter\n" #~ "esta informação visite http://aws.amazon.com/" #~ msgid "Secret Key:" #~ msgstr "Chave Secreta:" #~ msgid "Only artist" #~ msgstr "Apenas artista" #~ msgid "Only album" #~ msgstr "Apenas álbum" #~ msgid "Summary" #~ msgstr "Resumo" #~ msgid "Terminal Opacity:" #~ msgstr "Opacidade do Terminal" #~ msgid "Display window decorations" #~ msgstr "Exibir decorações das janelas" #~ msgid "Track title format:" #~ msgstr "Formato do título da faixa:" #~ msgid "Creates an MPRIS D-Bus object to control Exaile" #~ msgstr "Cria um objeto D-Bus MPRIS para controlar o Exaile" #~ msgid "iPod support" #~ msgstr "Suporte a iPod" #~ msgid "A plugin for iPod support" #~ msgstr "Um plugin para suporte a iPod" #~ msgid "Pauses/resumes playback on screensaver start/stop" #~ msgstr "Pausar/retomar reprodução quando a proteção de tela iniciar/parar" #~ msgid "Searches track tags for covers" #~ msgstr "Busca capas pelos rótulos das faixas" #~ msgid "No track" #~ msgstr "Nenhuma faixa" #~ msgid "C_lear All Tracks" #~ msgstr "_Limpar todas as faixas" #~ msgid "Move selected item down" #~ msgstr "Mover para baixo o item selecionado" #~ msgid "Move selected item up" #~ msgstr "Mover para cima o item selecionado" #~ msgid "Randomize the order of the current playlist" #~ msgstr "Embaralhar a ordem da lista de reprodução atual" #~ msgid "_Save As Custom Playlist" #~ msgstr "_Salvar como Lista de Reprodução Personalizada" #~ msgid "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager" #~ msgstr "" #~ "Mathias Brodala\n" #~ " \n" #~ " Gestor de Traduções" #~ msgid "Remove All" #~ msgstr "Remover tudo" #~ msgid "Use alpha transparency (if supported)" #~ msgstr "Usar transparência alfa (se suportado)" #~ msgid "Install a third party plugin from a file" #~ msgstr "Instalar um plugin de terceiros a partir de um arquivo" #~ msgid "Track _properties" #~ msgstr "_Propriedades da faixa" #~ msgid "Clear bookmarks" #~ msgstr "Limpar favoritos" #~ msgid "Bookmark this track" #~ msgstr "Marcar esta faixa como favorita" #~ msgid "Delete bookmark" #~ msgstr "Apagar favorito" #~ msgid "On Tray Icon Hover" #~ msgstr "Ao Passar o Mouse no Ícone da Área de Notificações" #~ msgid "Both artist and album" #~ msgstr "Tanto artista como álbum" #~ msgid "Save Location:" #~ msgstr "Local onde salvar:" #~ msgid "Last.fm Dynamic Search" #~ msgstr "Busca Dinâmica no Last.fm" #~ msgid "Plugin to fetch lyrics from lyricwiki.org" #~ msgstr "Plugin para obter letras do lyricwiki.org" #~ msgid "When GUI is Focused" #~ msgstr "Quando o player estiver com o foco" #~ msgid "Show Menuitem to toggle Submission" #~ msgstr "Mostrar o item de menu para alterar a apresentação" #~ msgid "Print the position inside the current track as time" #~ msgstr "Exibe a posição da faixa atual em tempo" #~ msgid "Print the progress inside the current track as percentage" #~ msgstr "Exibe a posição da faixa atual em porcentagem" #~ msgid "%(playlist_count)d showing, %(collection_count)d in collection" #~ msgstr "Exibindo %(playlist_count)d, na coleção %(collection_count)d" #~ msgid "Position" #~ msgstr "Posição" #~ msgid "Vertical:" #~ msgstr "Vertical:" #~ msgid "Center vertically" #~ msgstr "Centralizar verticalmente" #~ msgid "Center horizontally" #~ msgstr "Centralizar horizontalmente" #~ msgid "Tag Covers" #~ msgstr "Etiquetar Capas" #~ msgid "Use Media Icons For Pause, Stop and Resume" #~ msgstr "Utilizar Ícones das Mídias para Pausar, Parar e Reproduzir" #~ msgid "Timer per Increment:" #~ msgstr "Tempo por Incremento:" #~ msgid "" #~ "Left\n" #~ "Right\n" #~ "Top\n" #~ "Bottom" #~ msgstr "" #~ "Esquerda\n" #~ "Direita\n" #~ "Topo\n" #~ "Rodapé" #~ msgid "" #~ "Show various informations about the track currently playing.\n" #~ "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2" #~ msgstr "" #~ "Exibe várias informações sobre a faixa atual em reprodução.\n" #~ "Dependência: libwebkit >= 1.0.1, python-webkit >= 1.1.2" #~ msgid "Horizontal:" #~ msgstr "Horizontal:" #~ msgid "" #~ "Message that should be displayed in the body of the notification. In each " #~ "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced " #~ "by their respective values. If the tag is not known, \"Unknown\" will be " #~ "filled in its place" #~ msgstr "" #~ "Mensagem que deverá ser exibida no corpo da notificação. Em cada caso, " #~ "\"%(title)s\", \"%(artist)s\", e \"%(album)s\" serão substituídos pelos " #~ "seus respectivos valores. Se a etiqueta não for conhecida, \"Desconhecido" #~ "\" será preenchido em seu lugar" #~ msgid "" #~ "Adds support for playing audio CDs.\n" #~ "Requires python-cddb to look up tags." #~ msgstr "" #~ "Adiciona suporte para reprodução de CDs de áudio.\n" #~ "Requer python-cddb para procurar as etiquetas." #~ msgid "" #~ "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " #~ "replaced by their respective values. The title will be replaced by " #~ "\"Unknown\" if it is empty." #~ msgstr "" #~ "As etiquetas \"%(title)s\", \"%(artist)s\", e \"%(album)s\" serão " #~ "substituídas pelos seus respectivos valores. O título será substituído " #~ "por \"Desconhecido\" se estiver vazio." #~ msgid "MPRIS" #~ msgstr "MPRIS" dist/copy/po/PaxHeaders.26361/sw.po0000644000175000017500000000012412233027260015430 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.061046931 exaile-3.3.2/po/sw.po0000644000000000000000000026673312233027260014411 0ustar00rootroot00000000000000# Swahili translation for exaile # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2010-06-03 04:46+0000\n" "Last-Translator: Emanuel Feruzi \n" "Language-Team: Swahili \n" "Language: sw\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-08-28 05:28+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "" #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "" #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "" #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "" #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "" #: ../xl/formatter.py:702 msgid "Today" msgstr "" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "" #: ../xl/main.py:421 msgid "Playback Options" msgstr "" #: ../xl/main.py:423 msgid "Play the next track" msgstr "Cheza wimbo unaofuata" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "Cheza wimbo uliopita" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "Komesha Nyimbo" #: ../xl/main.py:429 msgid "Play" msgstr "Cheza" #: ../xl/main.py:431 msgid "Pause" msgstr "" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "" #: ../xl/main.py:440 msgid "Collection Options" msgstr "" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:454 msgid "Track Options" msgstr "" #: ../xl/main.py:456 msgid "Query player" msgstr "" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "Chapisha jina la wimbo inayocheza" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "Chapisha picha ya wimbo inayocheza" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "Chapisha picha ya mwimbaji wa muziki inayocheza" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "Chapisha urefu wa wimbo inayocheza" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "" #: ../xl/main.py:490 msgid "Volume Options" msgstr "" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "" #: ../xl/main.py:507 msgid "Other Options" msgstr "" #: ../xl/main.py:509 msgid "Start new instance" msgstr "" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "" #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "" #: ../xl/main.py:536 msgid "Set data directory" msgstr "" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "" #: ../xl/main.py:543 msgid "LEVEL" msgstr "" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:555 msgid "TYPE" msgstr "" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "" #: ../xl/main.py:580 msgid "Entire Library" msgstr "" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "" #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr "" #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "" #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "" #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "" #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "Hatujui jinsi ya kuhifadhi naina hii ya vipimo: " #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "Aina ya vipimo isiyojulikana imepatikana!" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "" #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "" #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "" #: ../xl/lyrics.py:305 msgid "Local" msgstr "" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "" #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr "" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "" #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "" #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "" #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "" #: ../xlgui/properties.py:54 msgid "Website" msgstr "" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "" #: ../xlgui/properties.py:57 msgid "Author" msgstr "" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "" #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "" #: ../xlgui/devices.py:81 msgid "Device" msgstr "" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "" #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "" #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "" #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "" #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "" msgstr[1] "" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "" #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "" #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "" #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "" #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "" #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "" #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "" #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "" #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "" #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "" #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "" #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "" #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "" #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" dist/copy/po/PaxHeaders.26361/fr.po0000644000175000017500000000012412233027260015406 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.021046929 exaile-3.3.2/po/fr.po0000644000000000000000000041150012233027260014347 0ustar00rootroot00000000000000# French translation for exaile # Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2012. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2013-09-10 00:29+0000\n" "Last-Translator: Erwan Bousse \n" "Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Launchpad-Export-Date: 2013-10-22 05:13+0000\n" "X-Generator: Launchpad (build 16807)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "%d jour, " msgstr[1] "%d jours, " #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "%d heure, " msgstr[1] "%d heures, " #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "%d minute, " msgstr[1] "%d minutes, " #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d seconde" msgstr[1] "%d secondes" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "%dj, " #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "%dh, " #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "%dm, " #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "%ds" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "%dd " #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "%d:%02d:%02d" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "%d:%02d" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "Jamais" #: ../xl/formatter.py:702 msgid "Today" msgstr "Aujourd'hui" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "Hier" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "La migration depuis 0.2.14 a échoué" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "Usage : exaile [OPTION]... [URI]" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "Options" #: ../xl/main.py:421 msgid "Playback Options" msgstr "Options de lecture" #: ../xl/main.py:423 msgid "Play the next track" msgstr "Lire la piste suivante" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "Revenir à la piste précédente" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "Arrêter la lecture" #: ../xl/main.py:429 msgid "Play" msgstr "Lire" #: ../xl/main.py:431 msgid "Pause" msgstr "Pause" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "Mettre en pause ou reprendre la lecture" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "Arrêter la lecture après la piste actuelle" #: ../xl/main.py:440 msgid "Collection Options" msgstr "Options de la médiathèque" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "EMPLACEMENT" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "Ajoute les pistes à la médiathèque depuis EMPLACEMENT" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "Options de la liste de lecture" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "Exporte la liste de lecture courante vers LOCATION" #: ../xl/main.py:454 msgid "Track Options" msgstr "Options de la piste" #: ../xl/main.py:456 msgid "Query player" msgstr "Vérifier si le lecteur est lancé" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "Afficher une fenêtre avec les informations de la piste courante" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "Afficher le titre de la piste en cours de lecture" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "Afficher l'album de la piste en cours" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "Afficher l'artiste de la piste en cours" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "Afficher la durée de la piste en cours" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "N" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "Définir la note pour la piste actuelle à N%" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "Obtenir la note de la piste actuelle" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "Afficher la position de lecture en temps" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "Afficher la progression de lecture en pourcentage" #: ../xl/main.py:490 msgid "Volume Options" msgstr "Options du volume" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "Augmente le volume de %N" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "Diminue le volume de %N" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "Rend le volume muet ou non muet" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "Afficher le pourcentage actuel du volume" #: ../xl/main.py:507 msgid "Other Options" msgstr "Autres options" #: ../xl/main.py:509 msgid "Start new instance" msgstr "Démarrer une nouvelle instance" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "Afficher ce message d'aide et quitter" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "Afficher le numéro de version de l'application et quitter." #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "Démarrer minimisé (si possible dans la zone de notification)" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "Afficher ou cacher l'interface graphique (si possible)" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "" "Démarrer en mode sans échec - utile quand vous rencontrez des problèmes" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" "Forcer la récupération des données des versions 0.2.x (Écrase les données " "actuelles)" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "Ne pas importer les données des versions 0.2.x" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" "Faire que les options de contrôle telles que --play lancent Exaile s'il ne " "l'est pas" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "Options de Développement/Debuggage" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "RÉPERTOIRE" #: ../xl/main.py:536 msgid "Set data directory" msgstr "Définir le répertoire de données" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "MODULE" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "Limiter les logs à MODULE" #: ../xl/main.py:543 msgid "LEVEL" msgstr "NIVEAU" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "Limiter les logs à NIVEAU" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "Afficher la sortie de débogage" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "" "Activer le débogage de xl.event. Génére une grande quantité de sortie écran" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "Ajouter le nom du thread aux messages de journalisation." #: ../xl/main.py:555 msgid "TYPE" msgstr "TYPE" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "Limiter la sortie de débogage de xl . event au TYPE" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "Diminuer la quantité de sortie écran" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "Désactiver la prise en charge de D-Bus" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "Désactiver la prise en charge de HAL" #: ../xl/main.py:580 msgid "Entire Library" msgstr "Bibliothèque entière" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "%d aléatoirement" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "Note > %d" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" "Exaile n'a pas encore fini de se charger. Peut-être devriez-vous vous " "connecter au signal exaile_loaded ?" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "Tags" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "L'archive du greffon n'est pas dans le bon format." #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "Un greffon du nom de « %s » est déjà installé." #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "L'archive du greffon contient un chemin non sûr." #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "" "Vous navez pas spécifié d'emplacement depuis lequel charger la base de " "données" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "" "Vous n'avez pas précisé d'emplacement pour sauvegarder la base de données" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "Artistes variés" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "Inconnu" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr " / " #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "%dk" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" "Vorbis est un codec audio open-source avec perte, offrant une grande qualité " "d'écoute pour des fichiers de taille inférieure à des MP3." #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" "Free Lossless Audio Codec (FLAC) est un codec audio open-source qui " "compresse sans perte de qualité audio." #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" "Format audio propriétaire d'Apple avec perte de données, qui fournit une " "meilleure qualité de son que le MP3 à des débits inférieurs." #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" "Un format audio avec perte plus ancien, propriétaire mais toujours " "populaire. Un débit variable (VBR) donne une meilleure qualité qu'un débit " "constant (CBR) mais peut être incompatible avec certains lecteurs." #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" "Un format audio avec perte plus ancien, propriétaire mais toujours " "populaire. Un débit constant (CBR) donne une moins bonne qualité qu'un débit " "variable (VBR) mais est compatible avec tous les lecteurs." #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "" "Un format audio libre sans perte très rapide avec un bon taux de compression." #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "Automatique" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "Personnalisé" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "Pas de lecture en cours." #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" "status : %(status)s, titre : %(title)s, artiste : %(artist)s, album : " "%(album)s, durée : %(length)s, position : %(progress)s%% [%(position)s]" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "" "La version des paramètres est plus récente que la version actuelle d'Exaile." #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "Nous ne savons pas stocker ce genre de paramètre : " #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "Un paramètre de type inconnu a été trouvé !" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "Type de liste de lecture invalide ." #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "Liste de lecture" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "Liste de lecture M3U" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "Liste de lecture PLS" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "Format invalide pour %s." #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "Version %(version)s non prise en charge pour %(type)s" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "Liste de lecture ASX" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "Liste de lecture XSPF" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "_Non Aléatoire" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "Aléatoire par _Piste" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "Aléatoire par _Album" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "Lecture en boucle _Désactivée" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "_Tout Répéter" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "Répéter U_ne" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "Lecture dynamique _désactivée" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "Lecture dynamique par _artistes similaires" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "secondes" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "minutes" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "heures" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "jour(s)" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "semaines" #: ../xl/lyrics.py:305 msgid "Local" msgstr "Local" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "Mettre en attente" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "Remplacer l'actuel" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "Ajouter à la liste de lecture en cours" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "Ouvrir le répertoire" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" "Ces fichiers ne peuvent pas être mis à la corbeille. Voulez-vous les " "supprimer définitivement ?" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "Mettre à la corbeille" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "Montrer la piste en cour_s de lecture" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "Nom :" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "Correspondance avec n'importe lequel des critères" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "Trier les résultats aléatoirement" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "Limiter à : " #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr " pistes" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "Pas de lecture en cours" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "Recherche de : %s" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "Déplacer" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "Nouveau marqueur" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "Muet" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "%d%%" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "Volume maximum" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" "$title\n" "par $artist\n" "de $album" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "Divers" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "%(track_count)d sur un total de (%(total_duration)s)" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "%d dans la collection" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "%d affiché" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "%d sélectionné(s)" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "Mettre en file d'attente" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "File d'attente (%d)" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "N°" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "Numéro de piste" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "Titre" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "Artiste" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "Compositeur" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "Album" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "Durée" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "Disque" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "Numéro de disque" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "Note" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "Date" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "Genre" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "Débit" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "Emplacement" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "Nom du fichier" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "Nombre de lectures" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "BPM" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "Dernière écoute" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "Date d'ajout" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "_Redimensionnable" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "Taille _automatique" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "Note :" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "Lecture aléatoire" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "Répéter" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "Dynamique" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "Supprimer la piste en cours de la liste de lecture" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "Rendre la liste de lecture aléatoire" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "Nouvelle liste de lecture" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "Renommer" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "Arrêter la lecture après ce titre" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "Continuer la lecture après cette piste" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "Nécessite des plugins fournissant des listes de lecture dynamiques" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "Ajouter dynamiquement des pistes similaires à la liste de lecture" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "Entrez l'URL à ouvrir" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "Ouvrir une URL" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "Sélectionnez le type de fichier (par son extension)" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "Choisissez un fichier à ouvrir" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "Formats pris en charge" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "Fichiers musicaux" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "Fichiers de listes de lecture" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "Tous les fichiers" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "Choisissez un répertoire à ouvrir" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "Exporter la liste de lecture courante" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "Liste de lecture enregistrée en tant que %s." #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "Fermer %s" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "Enregistrer les modifications apportées à %s avant de fermer ?" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "Les modifications non sauvegardées seront perdues" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "Fermer sans enregistrer" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "%(count)s sauvegardé(s) sur %(total)s." #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "Vous n'avez pas entré de nom pour votre liste de lecture" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "Le nom de liste de lecture que vous avez entré est déjà utilisé." #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "Fermer l'onglet" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "$title (par $artist)" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "Action : arrêter après la piste sélectionnée." #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "Une erreur de lecture à été rencontrée !" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "Mise en tampon : %d%%..." #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "Continuer la Lecture" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "Mettre En Pause" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "L'export de la liste de lecture à échoué !" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "Commencer la Lecture" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "Lecteur de musique Exaile" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "_Nouvelle liste de lecture" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "Ouvrir une _URL" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "Ouvrir un dossier" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "_Exporter la liste de lecture courante" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "Redémarrer" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "_Bibliothèque" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "_File d'attente" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "_Jaquettes" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "Barre d'utilitaire de la _liste de lecture" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "_Colonnes" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "Effacer la _liste de lecture" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "_Gestionnaire de Périphériques" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "_Analyser la bibliothèque à nouveau" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "_Propriétés de la piste" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "Annuler" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "Album originel" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "Parolier" #: ../xlgui/properties.py:54 msgid "Website" msgstr "Site Web" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "Jaquette" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "Artiste originel" #: ../xlgui/properties.py:57 msgid "Author" msgstr "Auteur" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "date originelle" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "Arrangeur" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "Chef d'orchestre" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "Interprète" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "Droit d'auteur" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "Paroles" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "Piste" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "Version" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "ISRC" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "Encodé par" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "Organisation" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "Modifié le" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "fois lu" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "Édition de la piste %(current)d sur %(total)d" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "sur :" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "Appliquer la valeur courante à toutes les pistes" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "Montrer la jaquette" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "Télécharger une jaquette" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "Enlever la jaquette" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "Jaquette pour %s" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "Options de la jaquette pour for %(artist)s - %(album)s" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "Aucune couverture trouvée." #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "Icône" #: ../xlgui/devices.py:81 msgid "Device" msgstr "Périphérique" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "Pilote" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "Analyse de la bibliothèque..." #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "Analyse en cours de %s..." #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "Ajouter à / Retirer de la file d'attente" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "Ajouter à / Retirer de la file d'attente" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "Propriétés" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "Nouvelle Station" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "Nouvelle liste de lecture intelligente" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "Éditer" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "Exporter la liste de lecture" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "Supprimer la liste de lecture" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "" "Voulez-vous vraiment supprimer définitivement la liste de lecture " "sélectionnée ?" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "Saisissez le nouveau nom de votre liste de lecture" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "Renommer la liste de lecture" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "Enlever" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "Liste de lecture %d" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "Ajouter un répertoire" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "Répertoire non ajouté." #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" "Ce répertoire est déjà dans votre collection ou est un sous-répertoire d'un " "autre répertoire dans votre collection." #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "Transfert en cours vers %s..." #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "Chargement des flux..." #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "Ajouter une Station de Radio" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "URL :" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "Stations enregistrées" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "Flux radio" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "Actualiser" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "Entrez le nom de votre nouvelle liste de lecture" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "Genre - Artiste" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "Genre - Album" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "Analyser la bibliothèque à nouveau" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "Taille" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s Ko" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "et" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "est" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "n'est pas" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "contient" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "ne contient pas" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "au moins" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "au plus" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "avant" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "après" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "entre" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "supérieure à" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "inférieure à" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "dans les derniers" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "pas dans les derniers" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "Lectures" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "Année" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "%(first)s, %(second)s et autres" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "%(first)s et %(second)s" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "Listes de lecture intelligentes" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "Listes de lecture personnalisées" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "Ajouter une liste de lecture intelligente" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "Édition de la liste de lecture intelligente" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "Lecture" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "Greffons" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "Impossible de charger les informations du greffon !" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "Échec greffon : %s" msgstr[1] "Échec greffons : %s" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "Impossible de désactiver le greffon !" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "Impossible d'activer le greffon !" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "Choisissez un greffon" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "Archives de greffons" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "L'installation du fichier du greffon a échoué !" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "Jaquettes" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "Apparence" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "Bibliothèque" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "l' la le les" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "Rétablir les paramètres par défaut" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "Redémarrer Exaile ?" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "Un redémarrage est nécessaire pour que ces changements prennent effet." #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "Action" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "Raccourci" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "Listes de lecture" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "À propos d'Exaile" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "© 2009-2012" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "Gestionnaire de jaquettes" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "Mélanger l'ordre de lecture des pistes" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "Répéter la lecture" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "Recherche de jaquettes" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "_Définir comme jaquette" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "_Fichier" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "_Éditer" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "_Affichage" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "_Outils" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "_Aide" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "Piste précedente" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" "Stopper la lecture\n" "\n" "Clic droit pour la fonctionnalité \"Stopper après cette piste\"" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "Piste suivante" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0:00 / 0:00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "Propriétés de la Piste" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "A_jouter un tag" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "_Supprimer le tag" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "ab → A_b" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "Mettre en majuscule la première lettre de tous les tags" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "_Précédent" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "Suiva_nt" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "Description :" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "Gestionnaire de bibliothèque" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "Surveillé" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "Radio" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "Ajouter Toutes les Pistes à la Liste de Lecture" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "Importer un CD" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "Ajouter une station" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "Fichiers" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "Dernier répertoire visité" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "Prochain répertoire visité" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "Monter d'un répertoire" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "Rafraîchir la liste des répertoires" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "Dossier personnel" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "Rechercher : " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "Effacer le champs de recherche" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "La bibliothèque est vide." #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "Ajouter de la Musique" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" "Rafraichir le panneau de la bibliothèque\n" "(Maintenir la touche Shift enfoncée pour ré-analyser la bibliothèque)" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "Utiliser les jaquettes inclues dans les tags" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "Utiliser les jaquettes des fichiers locaux" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" "Cette option va rechercher les jaquettes dans\n" "le même dossier que le fichier de musique." #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "Récupérer automatiquement la pochette au début de la lecture" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "Ordre de recherche des jaquettes :" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "(glisser pour réorganiser)" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "Ouvrir les dernières listes de lecture au démarrage" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "" "Demander si les listes de lecture personnalisées doivent être enregistrées à " "la fermeture" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "Remplacer le contenu lors d'un double-clic sur le panneau latéral." #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" "Les pistes ajoutées avec un double clic dans le panneau vont remplacer le " "contenu de la liste de lecture ." #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "Moteur de rendu audio : " #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "Utiliser des transitions fondues pour les actions de l'utilisateur" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "Durée du fondu (en ms) :" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "Utiliser le fondu enchaîné (expérimental)" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "Durée du fondu enchaîné (en ms) :" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "Flux audio : " #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "Pipeline personnalisée :" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "Reprendre la lecture au démarrage" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "Reprendre la lecture en mode pause" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "Normal" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "Unifié (instable)" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "Greffon" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "Activé" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "Aucun module enfichable sélectionné" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "Greffons installés" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "Auteurs :" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "Version :" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "Installer" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "Aucun greffon sélectionné" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "Greffons disponibles" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "Installer les mises à jour" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "Mises à jour" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "Installer le fichier de greffon" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "Afficher la zone d'information" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" "La zone d'information contient la jaquette et les informations sur la piste" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "Toujours montrer la barre d'onglets" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "Position de la barre d'onglets :" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "Afficher le nombre de pistes de la collection" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "Utiliser la transparence alpha :" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" "Attention : cette option peut provoquer des erreurs d'affichage si utilisée " "avec un gestionnaire de fenêtre ne supportant pas la composition." #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "Afficher l'icône dans la zone de notification" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "Réduire dans la zone de notification" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "Minimiser" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "Aller à la piste actuelle au changement de piste" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "Afficher l'écran d'accueil au démarrage" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "Gauche" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "Droite" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "Haut" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "Bas" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "Préférences" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" "Mots à enlever du début des tags d'artistes lors du tri (séparés par des " "espaces) :" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "(Clic droit pour remettre par défaut)" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "Détecter les compilations en se basant sur les fichiers" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "Gestionnaire de périphériques" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "Ajouter un périphérique" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "Type de périphérique :" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "Périphériques détectés :" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "Personnalisé : " #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "Gestionnaire de file d'attente" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "Recherche d'un état d'esprit..." #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "État d'esprit trouvé." #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "Impossible de lire la barre d'état d'esprit." #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "L'exécutable de la barre d'état d'esprit n'est pas disponible." #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "Barre d'état d'esprit" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "Erreur d'exécution de Streamripper" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "Enregistreur de flux" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "Pistes aimées sur Last.fm" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "La clef d'API est invalide." #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "Merci de vérifier que les données entrées sont correctes." #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "Impossible de démarrer le navigateur web" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" "Merci de copier l'URL suivante et de l'ouvrir dans votre navigateur web :\n" "{url}" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "Aimé" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "Aimée sur Last.fm" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "J'aime cette piste" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "Je n'aime plus cette piste" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "Réveil" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "Contact du serveur Shoutcast en cours..." #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "Erreur lors de la connection au serveur Shoutcast." #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "Entrez les mots-clés de la recherche" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "Recherche Shoutcast" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "Résultats de la recherche" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "Rechercher" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "Aucune parole n'a été trouvées." #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "Aller à : " #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "N'importe lequel" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "Visualiseur de paroles" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "AudioScrobbler" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "Activer Audioscrobbler" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "Égaliseur" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "Éteindre après la lecture" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "Extinction programmée" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "L'ordinateur s'éteindra à la fin de la lecture." #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "Extinction imminente" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "L'ordinateur sera éteint dans %d secondes." #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "L'extinction a échoué" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "L'ordinateur n'a pas pu être éteint en utilisant D-Bus" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "Notifications Notify-osd" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "%(title)s" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "par %(artist)s" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "sur %(album)s" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "Terminal iPython - Exaile" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "Montrer le terminal iPython" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "Console IPython" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "Notifications" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" "par %(artist)s\n" "sur %(album)s" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "CD en cours d'importation..." #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "Disque Audio" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "CD" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "Numéro de piste" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "Numéro de disque" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "Nombre de lectures" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "Artiste : " #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" "Saviez-vous que...\n" "\n" "%s" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "Répéter cette partie" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "Répéter le début" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "Répéter la fin" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "Mode Mini" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "$tracknumber - $title" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "$title par $artist" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "$title ($__length)" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "Précédent" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "Retourner à la piste précédente" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "Piste précédente" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "Suivant" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "Aller à la piste suivante" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "Piste suivante" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "Lecture/Pause" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "Commencer, mettre en pause ou continuer la lecture" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "Démarrer la lecture" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "Continuer la lecture" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "Mettre la lecture en pause" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "Stop" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "Arrêter la lecture" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "Continuer la lecture après la piste actuelle." #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "Volume" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "Modifier le volume" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "Restaurer" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "Restaurer la fenêtre principale" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "Restaurer la fenêtre principal" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "Sélectionner la note de la piste actuelle" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "Sélecteur de piste" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "Sélecteur de piste simple" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "Bouton de liste de lecture" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "Accéder à la liste de lecture en cours" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "$titre ($temps_actuel / $temps_total)" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "Bouton de progression" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "Avancement de la lecture et accès à la liste de lecture actuelle" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "Barre de progression" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "Avancement de la lecture et recherche" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "Groupe" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "ReplayGain" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "Déplacer pour choisir" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "Ajouter et Lire" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "Ajouter" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "Prêt" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "Recherche dans le catalogue Jamendo..." #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "Récupération des données de la chanson..." #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "Fenêtre OSD" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "Jaquettes Amazon" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "Balados" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "Balado" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "Rafraichir le balado" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "Effacer" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "Entrez l'adresse URL du balado à ajouter" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "Ouvrir le balado" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "Chargement de %s..." #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "Erreur lors du chargement du balado." #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "Chargement des Balados..." #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "Impossible d'enregistrer le fichier balado" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "Jaquettes sur le bureau" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "Multi-réveil" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "Contexte" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "Informations contextuelles" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "Mettre cette piste en signet" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "Supprimer un signet" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "Effacer les signets" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "Signets" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "Pause en Économiseur d'Écran" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "Serveur DAAP" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "Client DAAP" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "Manuellement..." #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "Entrez l'adresse IP et le port du partage" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "Entrez l'adresse IP et le port." #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" "Ce serveur ne permet pas les connexions multiples.\n" "Vous devez arrêter la lecture avant de télécharger des chansons." #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "Actualiser la liste des serveurs" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "Se déconnecter du serveur" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "Sélectionnez un répertoire de sauvegarde" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "Connexion au serveur DAAP..." #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "Assombrir la section déjà jouée plutôt que d'utiliser un curseur" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "Niveau d'obscurité :" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "Utiliser une forme d'onde" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "Afficher uniquement la forme d'onde, pas l'humeur" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "Utiliser un thème de couleurs " #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "Couleur de base :" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "Couleur de base" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "Emplacement de sauvegarde :" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "Port de relai :" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "Copier en fichier simple" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "Supprimer les fichiers incomplets" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "Clé de l'API :" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "Mot de passe :" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "Demander le droit d'accès" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" "Allez sur La page API " "de votre compte pour obtenir une clef API et un mot de passe " "puis entrez les ici. Après les avoir entrés, demandez une autorisation " "d'accès et confirmez pour terminer les réglages." #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "Heure de l'alarme" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "Lundi" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "Mardi" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "Mercredi" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "Jeudi" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "Vendredi" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "Samedi" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "Dimanche" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "Jours d'alarme" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "Utiliser le fondu" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "Incrémenter :" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "Afficher la jaquette :" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "Afficher les jaquettes" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "Affichage du cercle" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "Pourcentage de texte" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "Aucun" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "Actualiser les paroles" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "Soumettre les pistes avec Audioscrobbler" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "Afficher l'élément de menu pour les soumissions" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "Mot de passe :" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "Nom d'utilisateur :" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "pré" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "+12 dB" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "0" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "-24 dB" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "29" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "59" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "119" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "237" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "474" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "947" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "1.9K" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "3.8K" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "7.5K" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "15K" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "Au changement de piste" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" "Lors du début de la lecture, lors de la mise en pause ou lors de l'arrêt" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "Au changement d'étiquette" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "Au-dessus de l'icône de la Zone de notification" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "Quand la fenêtre principale a le focus" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "Affichage" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "Utiliser les jaquettes en tant qu'icônes" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "Utiliser les icônes média pour mettre en pause, arrêter ou reprendre" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "Icônes" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "Ligne de l'artiste :" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" "Les tags « %(title)s », « %(artist)s », et « %(album)s » seront remplacés " "par leurs valeurs respectives. Le titre sera remplacé par « Inconnu » si " "vide." #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "Résumé :" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "Ligne de l'album :" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "Contenu" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "Opacité du terminal :" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "Police :" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "Couleur de fond :" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "Redimensionner les jaquettes affichées" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "Uniquement l'artiste :" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "Uniquement l'album :" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" "Message qui devrait être affiché dans le corps de la notification. Dans " "chaque cas, « %(title)s », « %(artist)s », et « %(album)s » seront remplacés " "par leurs valeurs respectives. Si le tag n'est pas connu, « Inconnu » les " "remplacera." #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "Artiste et album :" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "Corps du message" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "Ogg Vorbis" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "FLAC" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "AAC" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "MP3 à débit variable (VBR)" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "MP3 à débit constant (CBR)" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "WavPack" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "Format d'importation : " #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "Qualité d'importation : " #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "Chemin d'importation : " #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" "Toute étiquette peut être utilisée avec $tag ou ${tag}. Les " "étiquettes internes comme $__length doivent être indiquées précédées " "par deux tirets bas." #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" "L'ordre des contrôles peut être changé simplement par glisser/déposer (ou en " "appuyant sur Alt+Haut/Bas)." #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "Contrôles" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "Format du titre de la piste" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "Toujours au premier plan" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "Afficher dans la liste des tâches" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "Afficher les décorations de la fenêtre" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "Afficher sur tous les bureaux" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "Afficher le bouton dans la fenêtre principale" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "Complet" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "Simple" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "Préférer la correction par album" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" "Préférer la correction par album de Replaygain à la correction par piste." #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "Protéger contre les coupures causées par l'amplification" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "Protéger contre le bruit causé par une sur-amplification" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "Amplification additionnelle à appliquer à tous les fichiers" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "Amplification additionnelle (dB) :" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "Correction pour les fichiers qui n'ont pas d'information ReplayGain" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "Niveau de correction (dB):" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "Trier par :" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "Direction du classement :" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "Résultats :" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "Avancé" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "Décroissant" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "Croissant" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "Date de sortie" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "Note sur la semaine" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "Note sur le mois" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "Nombre d'ajouts à la liste de lecture" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "Nombre de téléchargements" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "Nombre de lectures" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "Favoris" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "Date de notation" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "Genre/Tags" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" "Pour sourscrire à un compte Amazone AWS et obtenir \n" "cette information visitez http://aws." "amazon.com/" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "Ajouter un balado" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "Ancre :" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "Décalage sur X :" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "pixels" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "Décalage sur Y :" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "Ne pas tenir compte des dimensions de la jaquette" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "Taille :" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "Utiliser le fondu enchainé" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "Durée du fondu :" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "ms" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "En haut à gauche" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "En haut à droite" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "En bas à gauche" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "En bas à droite" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "Ajouter" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "Alertes" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "Activer le fondu du volume" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "Volume de début de transition :" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "Volume de fin de transition :" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "Incrément du fondu :" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "Durée de transition (s) :" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "Recommencer la liste de lecture" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "Lecture" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "Veuillez entrer vos identifiants Last.fm :" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "Inscription à Last.fm" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" "Utiliser les jaquettes dans le menu des signets (prendra effet au prochain " "démarrage)" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "Nom du serveur :" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "Serveur hôte :" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "Port :" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "Serveur activé" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "Piste Actuelle" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" "Affiche la piste courante dans votre statut Pidgin. Visitez la FAQ de Pidgin " "pour y trouver les services supportés." #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" "Remplace la barre de progrès normale par une barre d'état d'esprit.\n" "Requiert : moodbar" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "Touches Multimédia GNOME" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" "Permet de contrôler Exaile via le système de touches multimédia de GNOME. " "Compatible avec GNOME >= 2.20.x" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" "Permet d'enregistrer des flux avec streamripper.\n" "Requiert : streamripper" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" "Affiche les pistes aimées et active la possibilité de pouvoir « aimer » des " "pistes.\n" "\n" "Assurez vous d'entrer une clef d’API et un mot de passe valide dans les " "préférences du greffon.\n" "\n" "Nécessite le greffon « AudioScrobbler » pour le nom d’utilisateur et le mot " "de passe." #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "Joue de la musique à une heure spécifiée par l'utilisateur.\n" "\n" "Notez qu'Exaile agira alors exactement comme si vous aviez pressé le bouton " "de lecture, assurez-vous donc que la musique que vous désirez écouter est " "dans votre liste de lecture." #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "Jaquettes Last.fm" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "Recherche des jaquettes via Last.fm" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" "Assigne la jaquette et ajoute quelques entrées de menu à AWN pour Exaile" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "Radio Shoutcast" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "Liste de Radios Shoutcast" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "Éditeur de tags Ex Falso" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" "Intègre l'éditeur de tags Ex Falso dans Exaile.\n" "Requiert : Ex Falso" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" "Ajoute un onglet latéral affichant les paroles de la piste en cours de " "lecture." #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" "Soumet les statistiques d'écoute à Last.fm et aux services similaires " "prenant AudioScrobbler en charge" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "XKeys" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "Raccourcis globaux utilisant xlib (mmkeys.so)" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "Touches multimédia pour Windows" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" "Ajoute le support des touches multimédia (présentes sur la plupart des " "nouveaux claviers) lors de l'utilisation d'Exaile sous Microsoft Windows.\n" "\n" "Requiert : pyHook " #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "Un égaliseur 10 bandes" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "Lyrics Fly" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "Greffon récupérant les paroles depuis lyricsfly.com" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "Librivox" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "Parcourir et écouter des livres audio depuis Librivox.org." #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "Autorise l'arrêt de l'ordinateur à la fin de la lecture ." #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "Prise en charge des lecteurs USB Mass Storage" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" "Prise en charge des lecteurs portables de musique utilisant le protocole USB " "Mass Storage" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "Périphériques" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "Listes de Lecture Dynamiques Last.fm" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "Le système de listes de lecture dynamiques de Last.fm" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" "Ce greffon affiche des notifications lorsqu'une piste est lue, mise en pause " "ou stoppée, avec soit la jaquette de la piste, soit une icône indiquant la " "dernière action effectuée.\n" "\n" "Requiert : python-notify\n" "Recommande : notify-osd" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" "Fournit une console IPython qui peut être utilisée pour manipuler Exaile." #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "Affiche une notification lorsque la lecture d'une piste commence" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "Lecture de CD" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "Informations" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "Répétition A-B" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "Répète en boucle une partie de piste." #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "Mode compact pour Exaile avec une interface configurable" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "Permet la prise en charge de ReplayGain" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "Icône de zone de notification supportant le glissé/déposé" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" "Fournit une icône de zone de notification alternative supportant le glissé/" "déposé de fichiers.\n" "\n" "Dépend de python-eggtrayicon" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "Jamendo" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "Activer l'accès au catalogue de musique Jamendo." #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "Support de l'iPod" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" "Un greffon pour la prise en charge de l'iPod. Seul la lecture est prise en " "charge pour le moment.\n" "\n" "Requiert le paquet python-gpod." #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" "Recherche des jaquettes avec Amazon\n" "\n" "Pour utiliser ce greffon, une clé d'API et une clé secrète AWS sont " "nécessaires." #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "Karaoké" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "Supprime la voix de l'audio" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "Ajoute une prise en charge minimaliste des balados" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "Affiche la couverture de l'album courant sur le bureau" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "Hello World" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "Un greffon simple pour tester les bases du système de greffon" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "Joue de la musique à des dates et heures spécifiées par l'utilisateur.\n" "\n" "Notez qu'Exaile agira alors exactement comme si vous aviez pressé le bouton " "de lecture, assurez-vous donc que la musique que vous désirez écouter est " "dans votre liste de lecture." #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "Informations contextuelles" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" "Montre de nombreuses informations sur la piste actuellement en lecture.\n" "Dépend de : libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" "Autorise l'enregistrement et la lecture de signets de position dans les " "fichiers audio." #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "Lyrics Wiki" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" "Ce greffon intègre spydaap (http://launchpad.net/spydaap) dans Exaile pour " "qu'une collection puisse être partagée via DAAP." #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "Autoriser la lecture de musiques partagées." #~ msgid "New Search" #~ msgstr "Nouvelle recherche" #~ msgid "Popup" #~ msgstr "Popup" #~ msgid "Start" #~ msgstr "Démarrer" #~ msgid "Stopped" #~ msgstr "Arrêté" #~ msgid "_Close" #~ msgstr "_Fermer" #~ msgid "Window Height:" #~ msgstr "Hauteur de la fenêtre :" #~ msgid "Window Width:" #~ msgstr "Largeur de la fenêtre :" #~ msgid "Add a directory" #~ msgstr "Ajouter un répertoire" #~ msgid "Open" #~ msgstr "Ouvrir" #~ msgid "%(title)s (by %(artist)s)" #~ msgstr "%(title)s (par %(artist)s)" #~ msgid "by %s" #~ msgstr "par %s" #~ msgid "AWN" #~ msgstr "AWN" #~ msgid "Close" #~ msgstr "Fermer" #~ msgid " songs" #~ msgstr " chansons" #~ msgid "Show OSD on track change" #~ msgstr "Afficher l'OSD au changement de piste" #~ msgid "Text Font:" #~ msgstr "Police du texte :" #~ msgid "Opacity Level:" #~ msgstr "Niveau d'opacité :" #~ msgid "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgstr "" #~ "Déplacer la fenêtre de notification (OSD) à l'emplacement désiré" #~ msgid "Toggle: Stop after selected track" #~ msgstr "Arrêt après la piste sélectionnée" #~ msgid "Export" #~ msgstr "Exporter" #~ msgid "Invalid file extension, file not saved" #~ msgstr "Extension de fichier non valide, fichier non enregisté" #~ msgid "File Type" #~ msgstr "Type de fichier" #~ msgid "Extension" #~ msgstr "Extension" #~ msgid "Display a progressbar in the OSD" #~ msgstr "Afficher une barre de progression dans l'OSD" #~ msgid "Add device" #~ msgstr "Ajouter un périphérique" #~ msgid "..." #~ msgstr "..." #~ msgid "Page 1" #~ msgstr "Page 1" #~ msgid "0/0 tracks" #~ msgstr "0/0 pistes" #~ msgid "Playing %s" #~ msgstr "Lecture en cours de %s" #~ msgid "0:00" #~ msgstr "0:00" #~ msgid "Choose a file to open" #~ msgstr "Choisissez un fichier à ouvrir" #~ msgid "from %s" #~ msgstr "sur %s" #~ msgid "Enable Fading" #~ msgstr "Activer le fondu" #~ msgid "Restart Playlist" #~ msgstr "Redémarrer la liste de lecture" #~ msgid "Set rating for current song" #~ msgstr "Noter la piste en cours" #~ msgid "Alarm:" #~ msgstr "Alarme:" #~ msgid "Get rating for current song" #~ msgstr "Affiche la note de la piste en cours" #~ msgid "Name - Time" #~ msgstr "Nom - Temps" #~ msgid "Alarm Name:" #~ msgstr "Nom de l'alarme:" #~ msgid "Alarm Time:" #~ msgstr "Heure de l'Alarme:" #~ msgid "order must be a list or tuple" #~ msgstr "l'ordre doit être une liste ou un tuple" #~ msgid "Streamripper can only record streams." #~ msgstr "Streamripper peut seulement enregistrer des flux;" #~ msgid "A plugin with the name \"%s\" is already installed" #~ msgstr "Un greffon nommé \"%s\" est déjà installé" #~ msgid "Plugin archive is not in the correct format" #~ msgstr "L'archive du greffon n'est pas au bon format" #~ msgid "Close tab" #~ msgstr "Fermer l'onglet" #~ msgid "Close this dialog" #~ msgstr "Fermer cette boîte de dialogue" #~ msgid "New playlist title:" #~ msgstr "Titre de la nouvelle liste de lecture :" #~ msgid "Choose a plugin" #~ msgstr "Choisissez un greffon" #~ msgid "GNOME" #~ msgstr "GNOME" #~ msgid "OSS" #~ msgstr "OSS" #~ msgid "ALSA" #~ msgstr "ALSA" #~ msgid "JACK" #~ msgstr "JACK" #~ msgid "PulseAudio" #~ msgstr "PulseAudio" #~ msgid "Toggle Play or Pause" #~ msgstr "Mettre en pause ou relancer la lecture" #~ msgid "Show a popup of the currently playing track" #~ msgstr "Afficher une notification de la piste en cours" #~ msgid "Decreases the volume by VOL%" #~ msgstr "Diminuer le volume de VOL%" #~ msgid "Increases the volume by VOL%" #~ msgstr "Augmenter le volume de VOL%" #~ msgid "Randomize the order of the current playlist" #~ msgstr "Rendre l'ordre des chansons dans la liste de lecture aléatoire" #~ msgid "Repeat playlist" #~ msgstr "Répéter la liste de lecture" #~ msgid " New song, fetching cover." #~ msgstr " Nouvelle chanson, recherche de la jaquette." #~ msgid "Plugin archive contains an unsafe path" #~ msgstr "L'archive du greffon contient un chemin dangereux" #~ msgid "%d covers to fetch" #~ msgstr "%d jaquettes à récupérer" #~ msgid "%(minutes)d:%(seconds)02d" #~ msgstr "%(minutes)d:%(seconds)02d" #~ msgid "Enter the search text" #~ msgstr "Entrer le texte à rechercher" #~ msgid "Streaming..." #~ msgstr "Lecture depuis un flux..." #~ msgid "© 2009" #~ msgstr "© 2009" #~ msgid "Remove All" #~ msgstr "Tout retirer" #~ msgid "Playback engine (requires restart): " #~ msgstr "Modeur de rendu audio (nécessite un redémarrage) : " #~ msgid "These options only affect the unified engine." #~ msgstr "Ces options affectent uniquement le moteur unifié." #~ msgid "" #~ "Path is already in your collection, or is a subdirectory of another path " #~ "in your collection" #~ msgstr "" #~ "Ce répertoire est déjà dans votre bibliothèque, ou est un sous-chemin " #~ "d'un autre répertoire de votre bibliothèque" #~ msgid "%(playlist_count)d showing, %(collection_count)d in collection" #~ msgstr "" #~ "%(playlist_count)d affichées, %(collection_count)d dans la bibliothèque" #~ msgid "Buffering: 100%..." #~ msgstr "Mise en tampon : 100%..." #~ msgid "No covers found" #~ msgstr "Aucune jaquette trouvée" #~ msgid "Select File Type (By Extension)" #~ msgstr "Sélectionner le type de fichier (selon l'extension)" #~ msgid "" #~ "OSD\n" #~ "Drag to the location you'd like the\n" #~ "OSD to appear" #~ msgstr "" #~ "OSD\n" #~ "Faites glisser à l'emplacement où\n" #~ "apparaitra l'OSD" #~ msgid "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager" #~ msgstr "" #~ "Mathias Brodala\n" #~ " \n" #~ " Responsable des traductions" #~ msgid "" #~ "Copyright (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "This program is free software; you can redistribute it and/or modify\n" #~ "it under the terms of the GNU General Public License as published by\n" #~ "the Free Software Foundation; either version 2 of the License, or\n" #~ "(at your option) any later version.\n" #~ "\n" #~ "This program is distributed in the hope that it will be useful,\n" #~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" #~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" #~ "GNU General Public License for more details.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along\n" #~ "with this program; if not, write to the Free Software Foundation, Inc.,\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ msgstr "" #~ "Copyright (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "This program is free software; you can redistribute it and/or modify\n" #~ "it under the terms of the GNU General Public License as published by\n" #~ "the Free Software Foundation; either version 2 of the License, or\n" #~ "(at your option) any later version.\n" #~ "\n" #~ "This program is distributed in the hope that it will be useful,\n" #~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" #~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" #~ "GNU General Public License for more details.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along\n" #~ "with this program; if not, write to the Free Software Foundation, Inc.,\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ msgid "Display OSD when hovering over tray icon" #~ msgstr "" #~ "Afficher l'OSD quand la souris passe sur l'icône de la zone de " #~ "notification" #~ msgid "Text Color" #~ msgstr "Couleur du texte :" #~ msgid "Stop Playback" #~ msgstr "Stopper la lecture" #~ msgid "Fading:" #~ msgstr "Fondu :" #~ msgid "Alarm Days:" #~ msgstr "Jours pour l'alarme :" #~ msgid "Maximum Volume:" #~ msgstr "Volume maximal :" #~ msgid "Minimum Volume:" #~ msgstr "Volume minimal :" #~ msgid "Timer per Increment:" #~ msgstr "Temps entre chaque incrémentation (en secondes) :" #~ msgid "Time per Increment:" #~ msgstr "Temps entre chaque incrémentation (en secondes) :" #~ msgid "Only artist" #~ msgstr "Artiste uniquement" #~ msgid "Both artist and album" #~ msgstr "Artiste et album" #~ msgid "" #~ "Message that should be displayed in the body of the notification. In each " #~ "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced " #~ "by their respective values. If the tag is not known, \"Unknown\" will be " #~ "filled in its place" #~ msgstr "" #~ "Le message qui sera affiché dans le corps de la notification. Dans chaque " #~ "cas, \"%(title)s\", \"%(artist)s\", et \"%(album)s\" seront remplacés par " #~ "leurs valeurs respectives. Si un tag n'a pas de valeur, le mot \"Inconnu" #~ "(e)\" sera utilisé à la place." #~ msgid "Only album" #~ msgstr "Album uniquement" #~ msgid "Summary" #~ msgstr "Titre" #~ msgid "Relay Port:" #~ msgstr "Port relais :" #~ msgid "Save Location:" #~ msgstr "Emplacement d'enregistrement :" #~ msgid "_Rename Playlist" #~ msgstr "_Renomer la liste de lecture" #~ msgid "Remove current track from playlist" #~ msgstr "Supprimer la piste courant de la liste de lecture" #~ msgid "_Go to Playing Track" #~ msgstr "Aller à la piste en cours de lecture" #~ msgid "Export current playlist..." #~ msgstr "Exporter la liste de lecture courante" #~ msgid "Dynamically add similar tracks" #~ msgstr "Ajouter dynamiquement les pistes similaires" #~ msgid "Restore Main Window" #~ msgstr "Restaurer la fenêtre principale" #~ msgid "Available controls" #~ msgstr "Contrôles disponibles" #~ msgid "On Track Change" #~ msgstr "Au changement de piste" #~ msgid "_Export current playlist" #~ msgstr "Exporter la liste de lecture courante" #~ msgid " & " #~ msgstr " & " #~ msgid "Clear bookmarks" #~ msgstr "Supprimer les signets" #~ msgid "" #~ "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " #~ "replaced by their respective values. The title will be replaced by " #~ "\"Unknown\" if it is empty." #~ msgstr "" #~ "Les tags \"%(title)s\", \"%(artist)s\", et \"%(album)s\" seront remplacés " #~ "par leurs valeurs respectives. Le titre sera remplacé par \"Inconnu\" " #~ "s'il était vide." #~ msgid "Use Album Covers As Icons" #~ msgstr "Utiliser les jaquettes d'albums en tant qu'icônes" #~ msgid "Add to custom playlist" #~ msgstr "Ajouter à une liste de lecture personnalisée" #~ msgid "_Close Playlist" #~ msgstr "_Fermer la liste de lecture" #~ msgid "Artist Line:" #~ msgstr "Ligne Artiste :" #~ msgid "Album Line:" #~ msgstr "Ligne Album :" #~ msgid "" #~ "Exaile Music Player\n" #~ "Not playing" #~ msgstr "" #~ "Lecteur de Musique Exaile\n" #~ "Aucune lecture en cours" #~ msgid "C_lear All Tracks" #~ msgstr "Effa_cer toutes les pistes" #~ msgid "_Save As Custom Playlist" #~ msgstr "_Enregistrer en tant que liste de lecture personnalisée" #~ msgid "Bookmark this track" #~ msgstr "Ajouter cette piste aux signets" #~ msgid "Export as..." #~ msgstr "Exporter en tant que..." #~ msgid "Selected controls" #~ msgstr "Boutons sélectionnés" #~ msgid "Delete bookmark" #~ msgstr "Supprimer un signet" #~ msgid "On Tray Icon Hover" #~ msgstr "Au survol de l'icône de la zone de notification" #~ msgid "On Playback Start, Pause or Stop" #~ msgstr "En début et en fin de lecture, et lors d'une mise en pause" #~ msgid "Use Media Icons For Pause, Stop and Resume" #~ msgstr "" #~ "Utiliser les icônes multimédia pour les pauses, reprises et fins de " #~ "lecture" #~ msgid "Display window decorations" #~ msgstr "Afficher les décorations du gestionnaire de fenêtres" #~ msgid "Track title format:" #~ msgstr "Format du titre de la piste :" #~ msgid "Terminal Opacity:" #~ msgstr "Opacité du Terminal :" #~ msgid "When GUI is Focused" #~ msgstr "Lorsque l'interface graphique est au premier plan" #~ msgid "Show Menuitem to toggle Submission" #~ msgstr "" #~ "Afficher une entrée de menu pour activer ou désactiver la submission" #~ msgid "Seeking: " #~ msgstr "Progression : " #~ msgid "$title ($length)" #~ msgstr "$title ($length)" #~ msgid "Track _properties" #~ msgstr "_Propriétés de la piste" #~ msgid "Install plugin file" #~ msgstr "Installer un fichier greffon" #~ msgid "Start/Pause Playback" #~ msgstr "Démarrer / Mettre en pause la lecture" #~ msgid "Clear Playlist" #~ msgstr "Effacer la liste de lecture" #~ msgid "_Randomize Playlist" #~ msgstr "_Mélanger les pistes dans la liste de lecture actuelle" #~ msgid "Title:" #~ msgstr "Titre :" #~ msgid "Install a third party plugin from a file" #~ msgstr "Installer un greffon d'une tierce partie depuis un fichier" #~ msgid "Use alpha transparency (if supported)" #~ msgstr "Utiliser la transparence alpha (si pris en charge)" #~ msgid "Play Count:" #~ msgstr "Nombre de Lectures :" #~ msgid "Track Number:" #~ msgstr "Numéro de Piste :" #~ msgid "Location:" #~ msgstr "Emplacement :" #~ msgid "File Size:" #~ msgstr "Taille du Fichier :" #~ msgid "Length:" #~ msgstr "Durée :" #~ msgid "Basic" #~ msgstr "Général" #~ msgid "Date:" #~ msgstr "Date :" #~ msgid "Details" #~ msgstr "Détails" #~ msgid "Bitrate:" #~ msgstr "Débit :" #~ msgid "Artist:" #~ msgstr "Artiste :" #~ msgid "Genre:" #~ msgstr "Genre :" #~ msgid "Could not disable plugin: %s" #~ msgstr "Impossible de désactiver le greffon : %s" #~ msgid "Album:" #~ msgstr "Album :" #~ msgid "Delete track" #~ msgstr "Supprimer la piste" #~ msgid "_Save Changes To Playlist" #~ msgstr "_Enregistrer les changements de la liste de lecture" #~ msgid "No track" #~ msgstr "Aucune piste" #~ msgid "_Save As..." #~ msgstr "Enregistrer _Sous…" #~ msgid "Save As..." #~ msgstr "Enregistrer Sous..." #~ msgid "Custom playlist name:" #~ msgstr "Nom de la liste de lecture personnalisée :" #~ msgid "Filter event debug output" #~ msgstr "Filtrer la sortie de débogage des évènements" #~ msgid "%(year)d-%(month)02d-%(day)02d" #~ msgstr "%(day)02d/%(month)02d/%(year)d" #~ msgid "New custom playlist name:" #~ msgstr "Nouveau nom de liste de lecture personnalisée :" #~ msgid "Add To New Playlist..." #~ msgstr "Ajouter à une Nouvelle Liste de Lecture..." #~ msgid "Idle." #~ msgstr "Inactif." #~ msgid "Could not enable plugin: %s" #~ msgstr "Impossible d'activer le greffon : %s" #~ msgid "" #~ "This will permanantly delete the selected tracks from your disk, are you " #~ "sure you wish to continue?" #~ msgstr "" #~ "Ceci va supprimer définitivement les pistes sélectionnées de votre " #~ "disque, désirez-vous vraiment continuer ?" #~ msgid "Move selected item up" #~ msgstr "Déplacer l'élément sélectionné vers le haut" #~ msgid "Move selected item down" #~ msgstr "Déplacer l'élément sélectionné vers le bas" #~ msgid "API Key:" #~ msgstr "Clé d'API :" #~ msgid "" #~ "To sign up for an Amazon AWS account and get \n" #~ "this information visit http://aws.amazon.com/" #~ msgstr "" #~ "Pour s'inscrire au service Amazon AWS et obtenir\n" #~ "cette information, visitez http://aws.amazon.com/" #~ msgid "Secret Key:" #~ msgstr "Clé secrète :" #~ msgid "iPod support" #~ msgstr "Prise en charge des iPod" #~ msgid "A plugin for iPod support" #~ msgstr "Un greffon pour la prise en charge des iPod" #~ msgid "Searches track tags for covers" #~ msgstr "Recherche des jaquettes dans les tags des pistes" #~ msgid "Add item" #~ msgstr "Ajouter cet élément" #~ msgid "Remove item" #~ msgstr "Retirer cet élément" #~ msgid "Print the position inside the current track as time" #~ msgstr "Afficher la position dans la piste actuelle au format horaire" #~ msgid "Print the progress inside the current track as percentage" #~ msgstr "" #~ "Afficher la progression dans la piste actuelle sous forme de pourcentage" #~ msgid "" #~ "Adds support for playing audio CDs.\n" #~ "Requires python-cddb to look up tags." #~ msgstr "" #~ "Ajoute la prise en charge de la lecture de CD audio.\n" #~ "Requiert python-cddb pour rechercher les tags." #~ msgid "Creates an MPRIS D-Bus object to control Exaile" #~ msgstr "Crée un objet D-Bus MPRIS pour contrôler Exaile" #~ msgid "Last.fm Dynamic Search" #~ msgstr "Recherche Dynamique Last.fm" #~ msgid "Pauses/resumes playback on screensaver start/stop" #~ msgstr "" #~ "Met la lecture en pause au démarrage de l'économiseur d'écran et la " #~ "relance lorsqu'il est stoppé" #~ msgid "Tag Covers" #~ msgstr "Jaquettes de tags" #~ msgid "Plugin to fetch lyrics from lyricwiki.org" #~ msgstr "Greffon récupérant les paroles depuis lyricwiki.org" #~ msgid "%d KB" #~ msgstr "%d Ko" #~ msgid "Device class does not support transfer." #~ msgstr "La classe « Device » ne prend pas le transfert en charge." #~ msgid "In pause: %s" #~ msgstr "En pause : %s" #~ msgid "Awn" #~ msgstr "Awn" #~ msgid "© 2009-2010" #~ msgstr "© 2009-2010" #~ msgctxt "yes" #~ msgid "Time per increment:" #~ msgstr "Temps par incrémentation :" #~ msgctxt "yes" #~ msgid "Tuesday" #~ msgstr "Mardi" #~ msgctxt "yes" #~ msgid "Monday" #~ msgstr "Lundi" #~ msgctxt "yes" #~ msgid "Saturday" #~ msgstr "Samedi" #~ msgctxt "yes" #~ msgid "Sunday" #~ msgstr "Dimanche" #~ msgctxt "yes" #~ msgid "Thursday" #~ msgstr "Jeudi" #~ msgctxt "yes" #~ msgid "Friday" #~ msgstr "Vendredi" #~ msgctxt "yes" #~ msgid "Use Fading" #~ msgstr "Utiliser le fondu" #~ msgctxt "yes" #~ msgid "Wednesday" #~ msgstr "Mercredi" #~ msgctxt "yes" #~ msgid "Increment:" #~ msgstr "Incrémenter :" #~ msgctxt "yes" #~ msgid "Minimum volume:" #~ msgstr "Volume minimal :" #~ msgctxt "yes" #~ msgid "Maximum volume:" #~ msgstr "Volume maximal :" #~ msgid "Secret key:" #~ msgstr "Clé secrète :" #~ msgid "Clear" #~ msgstr "Effacer" dist/copy/po/PaxHeaders.26361/sr.po0000644000175000017500000000012312233027260015422 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 29 ctime=1382821553.04904693 exaile-3.3.2/po/sr.po0000644000000000000000000030521012233027260014364 0ustar00rootroot00000000000000# Serbian translation for exaile # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2011-05-06 09:11+0000\n" "Last-Translator: Данило Шеган \n" "Language-Team: Serbian \n" "Language: sr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" "X-Launchpad-Export-Date: 2012-08-28 05:28+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "" #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "" #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "" #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "" #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "" #: ../xl/formatter.py:702 msgid "Today" msgstr "" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "" #: ../xl/main.py:421 msgid "Playback Options" msgstr "" #: ../xl/main.py:423 msgid "Play the next track" msgstr "Пусти следећу песму" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "Пусти претходну песму" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "Заустави извођење" #: ../xl/main.py:429 msgid "Play" msgstr "Пусти" #: ../xl/main.py:431 msgid "Pause" msgstr "Паузирај" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "Заустави извођење после тренутне нумере" #: ../xl/main.py:440 msgid "Collection Options" msgstr "" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:454 msgid "Track Options" msgstr "" #: ../xl/main.py:456 msgid "Query player" msgstr "" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "" #: ../xl/main.py:490 msgid "Volume Options" msgstr "" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "" #: ../xl/main.py:507 msgid "Other Options" msgstr "" #: ../xl/main.py:509 msgid "Start new instance" msgstr "" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "" #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "" #: ../xl/main.py:536 msgid "Set data directory" msgstr "" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "" #: ../xl/main.py:543 msgid "LEVEL" msgstr "" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:555 msgid "TYPE" msgstr "" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "" #: ../xl/main.py:580 msgid "Entire Library" msgstr "Менаџер збирке" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "" #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "Нисте одредили место за чување базе" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "Непознато" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr "" #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" "Ворбис је слободни звучни кодек који постиже квалитетан звук уз мању " "величину датотеке у односу на MP3." #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" "FLAC је слободни звучни кодек који смањује величину датотеке без икаквог " "утицаја на квалитет звука." #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" "Apple-ов власнички звучни кодек, који постиже бољи квалитет звука од MP3 " "кодека при нижим битским токовима." #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" "Власнички, старији, популаран звучни формат са губитком квалитета. VBR " "постиже већи квалитет у односу на CBR, али га не подржавају сви програми." #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" "Власнички, старији, популаран звучни формат са губитком квалитета. CBR даје " "лошији квалитет у односу на VBR, али га подржавају сви програми." #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "Јако брз, слободан звучни формат уз висок ниво паковања." #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "Не пуштам." #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "" #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "" #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "" #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "" #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "секунди" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "минута" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "сати" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "дана" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "недеља" #: ../xl/lyrics.py:305 msgid "Local" msgstr "" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "Додај у тренутну листу нумера" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "Име:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "Поклопи бар један критеријум" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "Ограничи на " #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr "" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "Заустављено извођење" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "#" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "Број нумере" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "Наслов" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "Извођач" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "Композитор" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "Албум" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "Дужина" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "Диск" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "Број диска" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "Оцена" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "Датум" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "Жанр" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "Битски проток" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "Путања" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "Име датотеке" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "Број пуштања" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "BPM" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "Нова листа нумера" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "Преименуј" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "Подржане датотеке" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "Звучне датотеке" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "Датотеке листе нумера" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "Све датотеке" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "" #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "Није унесено име листе нумера" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "" #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "" #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "Exaile музички програм" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "Отвори _урл" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "_Колоне" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "Одустани" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "" #: ../xlgui/properties.py:54 msgid "Website" msgstr "" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "" #: ../xlgui/properties.py:57 msgid "Author" msgstr "" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "Уклони омот" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "" #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "" #: ../xlgui/devices.py:81 msgid "Device" msgstr "" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "Претражујем збирку..." #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "" #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "Закажи пуштање" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "Закажи пуштање" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "Уреди" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "Обриши листу нумера" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "Да ли сте сигурани да желиште да обришеште изабрану листу нумера?" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "Преименуј листу нумера" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "Уклони" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "Листа нумера %d" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "" #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "Учитавам токове..." #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "Сачуване станице" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "Радио станице" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "Освежи" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "Унеси име нове листе нумера" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "Величина" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s KB" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "и" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "је" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "није" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "садржи" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "не садржи" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "бар" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "највише" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "пре" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "након" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "између" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "Година" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "Динамичке листе нумера" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "Произвољне листе" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "Додај динамичку листу нумера" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "Проширења" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "" msgstr[1] "" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "Збирка" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "Листе нумера" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "Добављач омота" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "_Датотека" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "_Уређивање" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "_Преглед" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "_Алати" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "_Помоћ" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "Претходна нумера" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "Следећа нумера" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "Опис:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "Радио" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "Додај станицу" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "Датотеке" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "Тражи: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "" #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "" #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "Проширење" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "Омогућено" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "Инсталирана проширења" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "Аутори:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "Верзија:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "Инсталацоја" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "Ниједно проширење није изабрано" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "Доступна проширења" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "Надоградња" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "Прикажи у обавештајној зони панела" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "Пребаци се на тренутну нумеру након промене нумере" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "Прикажи уводни екран при покретању" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "Поставке" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "" #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "" #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "" #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "Претрага" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "" #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "" #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "Предходна" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "Следећа" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "" #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "" #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "" #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "" #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "" #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "понедељак" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "уторак" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "среда" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "четвртак" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "петак" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "субота" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "недеља" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "Постепено појачај" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "Лозинка:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "Корисничко име:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "Позадинска боја:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" #~ msgid "General" #~ msgstr "Опште" #~ msgid "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgstr "" #~ "{title}\n" #~ "{artist}\n" #~ "са албума {album} - {length}" #~ msgid "Autosize" #~ msgstr "Аутоматско мењање величине" #~ msgid "Display OSD when hovering over tray icon" #~ msgstr "Прикажи при преласку преко иконице у обавештајној зони панела" #~ msgid "New Search" #~ msgstr "Нова претрага" #~ msgid "Popup" #~ msgstr "Искачући прозор" #~ msgid "Resizable" #~ msgstr "Ручно мењање величине" #~ msgid "Start" #~ msgstr "Покрени" #~ msgid "Show OSD on track change" #~ msgstr "Прикажи при промени песме" #~ msgid "Stopped" #~ msgstr "Заустављено" #~ msgid "Stop Playback" #~ msgstr "Заустави извођење" #~ msgid "Text Color" #~ msgstr "Боја текста" #~ msgid "_Close" #~ msgstr "_Затвори" #~ msgid "Window Height:" #~ msgstr "Висина прозора:" #~ msgid "Window Width:" #~ msgstr "Ширина прозора:" #~ msgid "Open" #~ msgstr "Отвори" #~ msgid "Enter the search text" #~ msgstr "Унесите текст за претрагу" #~ msgid "Add a directory" #~ msgstr "Додај директоријум" #~ msgid "from %s" #~ msgstr "са %s" #~ msgid "Playing %s" #~ msgstr "Пуштам %s" #~ msgid "by %s" #~ msgstr "од %s" #~ msgid "Number of Plays" #~ msgstr "Број пуштања" #~ msgid "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "Year - Artist\n" #~ "Year - Album\n" #~ "Artist - Year - Album" #~ msgstr "" #~ "Извођач\n" #~ "Албум\n" #~ "Жанр - Извођач\n" #~ "Жанр - Албум\n" #~ "Година - Извођач\n" #~ "Година - Албум\n" #~ "Извођач - Година - Албум" #~ msgid "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgstr "Постави обавештење (OSD) на место где желите да се појави" #~ msgid "Text Font:" #~ msgstr "Словни лик:" #~ msgid "Vol:" #~ msgstr "Јачина звука:" #~ msgid "Alarm Days:" #~ msgstr "Дани активирања аларма:" #~ msgid "Add Playlist" #~ msgstr "Додај листу нумера" #~ msgid "Relay Port:" #~ msgstr "Порт за прослеђивање:" #~ msgid " songs" #~ msgstr " нумере" #~ msgid "Choose a file" #~ msgstr "Изаберите датотеку" #~ msgid "Quit" #~ msgstr "Изађи" #~ msgid "" #~ "Path is already in your collection, or is a subdirectory of another path " #~ "in your collection" #~ msgstr "" #~ "Путања је већ у збирци, или је поддиректоријум неке од путања из збирке" #~ msgid "%(title)s (by %(artist)s)" #~ msgstr "%(title)s (изводи %(artist)s)" #~ msgid "Add to Playlist" #~ msgstr "Додај у листу нумера" #~ msgid "Opacity Level:" #~ msgstr "Ниво непровидности:" #~ msgid "LastFM Radio" #~ msgstr "LastFM радио" #~ msgid " New song, fetching cover." #~ msgstr " Нова нумера, преузимам омот." #~ msgid "Device class does not support transfer." #~ msgstr "Овакви уређаји не подржавају пренос." dist/copy/po/PaxHeaders.26361/csb.po0000644000175000017500000000012412233027260015546 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.069046931 exaile-3.3.2/po/csb.po0000644000000000000000000035301512233027260014515 0ustar00rootroot00000000000000# Kashubian translation for exaile # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2012-07-29 07:12+0000\n" "Last-Translator: Mark Kwidzińsczi \n" "Language-Team: Kashubian \n" "Language: csb\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2;\n" "X-Launchpad-Export-Date: 2012-08-28 05:24+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "" #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "" #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "" #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "" #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "Nigdë" #: ../xl/formatter.py:702 msgid "Today" msgstr "Dzysô" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "Wczora" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "Felejë mòżnota migracëji z wersëji 0.2.14" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "" #: ../xl/main.py:421 msgid "Playback Options" msgstr "Òptacëjô graniô" #: ../xl/main.py:423 msgid "Play the next track" msgstr "Grôj nôslédny titel" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "Grôj pòprzédny titel" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "Zakùńczë granié" #: ../xl/main.py:429 msgid "Play" msgstr "Grôj" #: ../xl/main.py:431 msgid "Pause" msgstr "" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "Pauza abò zrëszënié graniô znowa" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "Zatrzëmôj granie na biéżnym titlu" #: ../xl/main.py:440 msgid "Collection Options" msgstr "" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:454 msgid "Track Options" msgstr "Òptacëjô titla" #: ../xl/main.py:456 msgid "Query player" msgstr "Lësta graniô" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "Wëskrzëni miono aktualnégò titla" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "Wëskrzëni albùm aktualnegò titla" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "Wëskrzëni artistã aktualnegò titla" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "Wëskrzëni długòtã aktualnegò titla" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "" #: ../xl/main.py:490 msgid "Volume Options" msgstr "Òptacëjô głosnotë" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "Wëskrzëni aktualną głosnotã procentowò" #: ../xl/main.py:507 msgid "Other Options" msgstr "Jinsze òptacëje" #: ../xl/main.py:509 msgid "Start new instance" msgstr "Zrëszë nową instancëjã" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "Wëskrzëni no wiadło pòmòcë ë wińdze" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "Wëskrzëni wersëjã programë ë wińdze" #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "Zrëszë zminimalizowóno (do zabiérnika, jeżlë mòżlëwé)" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "Nastôwi widzawnotã GUI (jeżlë mòżlëwé)" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "Zrëszë w bezpiecznym tribie - brëkòwané jak dô problemë z programą" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "Nie impòrtëjë stôrich pòdôwków z wersëji 0.2.x" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "" #: ../xl/main.py:536 msgid "Set data directory" msgstr "Nastôwi katalog pòdôwków" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "" #: ../xl/main.py:543 msgid "LEVEL" msgstr "" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "Wëskrzëni wińdzenia debùgòwaniô" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "Włączë debùgòwanié xl.event. Generëje WIELE wëdowiédzë" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:555 msgid "TYPE" msgstr "" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "Redukùjë równiã wińdzenia" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "Włączë wspiarcé D-Bus" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "Włączë wspiarcé HAL" #: ../xl/main.py:580 msgid "Entire Library" msgstr "Całownô bibloteka" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "Przëtrôfkòwé %d" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "Òbsąd > %d" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" "Exaile jesz ni zakùńczëł sã ladowac. Mòże nót je ce pòżdac na sygnał " "exaile_loaded?" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "Znakòwniczi" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "" #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "Ni môsz pòdóny lokalizacëji zladowaniô bazë pòdôwków" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "Ni môsz pòdónegò placu bazë pòdôwków" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "Rozmajiti artisce" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "Nieznóny" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr " / " #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" "Vorbis je stratnym kòdekã audio na licencëji open source ò wësoczim " "kwalitece zwãkù przë mniszi wiôlgòscë jakno lopk MP3" #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" "Free Lossless Audio Codec (FLAC) je kòdekã na licencëji open source, chtëren " "przë kòmpresëji ni òbniżô kwalitetu zwãkù." #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" "Swój stratny fòrmat audio firmë Apple, chtëren dobiwô wikszy kwalitet zwãkù " "jakno MP3 przë niższim próbkòwaniu." #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" "Swój ë stôrszi, równak dali pòpùlarny, fòrmat audio. VBR dôwô wëszi kwalitet " "jakno CBR, mòże ni bëc równak kòmpatibilny z niejednyma grôczama." #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" "Swój ë stôrszi, równak dali pòpùlarny, fòrmat audio. CBR dôwô mniszi " "kwalitet jakno VBR, je równak kòmpatibilny z kòżdim grôczã." #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "" "Baro chùtczi, wòlno rozprowôdzóny ë bezstratny fòrmat audio z dobrą " "kòmpresëja." #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "Aùtomatno" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "Swòjé" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "Nie grô." #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" "status: %(status)s, titel %(title)s, artista: %(artist)s, albùm: %(album)s, " "długòta: %(length)s, pòłożenié: %(progress)s%% [%(position)s]" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "Wersëjô nastôwów je nowszô jakno aktualnô." #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "Nie wiemë jakno trzëmac taczi ôrt nastôwów: " #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "Nalazłi nieznóny ôrt nastôwów!" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "" #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "Lësta graniô" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "Lësta graniô M3U" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "Lësta graniô PLS" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "" #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "Lësta graniô ASX" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "Lësta graniô XSPF" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "sek." #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "min." #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "gòdz." #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "dni" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "tidz." #: ../xl/lyrics.py:305 msgid "Local" msgstr "" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "Dodôj do aktualny" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "Miono:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "Dopasëjë do jednegò z kriterëjów" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "Przëtrôfòwé skùtczi" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "Ògrańczë do: " #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr "" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "Nie grô" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "Wëcëszony" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "%d%%" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "Fùl głosnota" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "#" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "Numer sztëczka" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "Titel" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "Artista" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "Kòmpòzytor" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "Albùm" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "Długòta" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "Disk" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "Numer diskù" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "Òbsąd" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "Datum" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "Zort" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "Chùtkòsc transmisëji" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "Lokalizacëjô" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "Miono lopka" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "Rechòwnik graniô" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "BPM" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "Slédno gróné" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "_Skalowalny" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "_Aùtomatnô miara" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "Òbsąd:" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "Nowô lësta graniô" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "Zmieni miono" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "Dodôj dinamiczno zblëżoné title do lëstë graniô" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "Wpiszë URL do graniô" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "Òtemkni URL" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "Wspieróné lopczi" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "Mùzyczné lopczi." #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "Lopczi lëstë graniô" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "Wszëtczé lopczi" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "Zamkni %s" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "Zapisac zjinaczi w %s przed zamkniãcem?" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "Pòcësniesz swòjé zjinaczi jeżlë jich nie zapiszesz" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "Zamkni bez zapisëwaniô" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "" #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "Ni môsz wpisóné nowégò miona lëstë graniô." #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "To miono lëstë graniô ju je w brëkùnkù." #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "Bùfòrowanié: %d%%..." #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "Biéj dali z graniém" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "Wstrzëmôj granié" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "Naczni granié" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "Grôcz mùzyczi Exaile" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "_Nowô lësta graniô" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "Òtemkni _URL" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "Òtemkni katalodżi" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "_Kòlekcëjô" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "_Pòsobnica" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "Ò_bkłôdczi" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "_Kòlumnë" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "_Menedżera urządzeniów" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "_Skanëjë kòlekcëjã znowa" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "Ùsôdzca tekstów" #: ../xlgui/properties.py:54 msgid "Website" msgstr "Internetowô starna" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "Óbkłôdka" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "" #: ../xlgui/properties.py:57 msgid "Author" msgstr "Ùsôdzca" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "Aranżacëjô" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "Dirigent" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "Wëkònôwôcz" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "Ùsôdzkòwé prawa" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "Tekstë" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "Titel" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "Wersëjô" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "ISRC" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "Òrganizacëjô" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "Zmòdifikòwóny" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "Editëjë titel %(current)d z %(total)d" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "Wëskrzëni òbkłôdkã" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "Zladëjë òbkłôdkã" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "Rëmôj òbkłôdkã" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "" #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "Ikòna" #: ../xlgui/devices.py:81 msgid "Device" msgstr "Ùrządzenié" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "Czérownik" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "Skanowanié kòlekcëji..." #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "Skanowanié %s..." #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "Przełaczë pòsobnicã" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "Dodôj do pòsobnicë" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "Swòjizna" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "Nowô stacëjô" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "Nowô inteligentnô lësta graniô" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "Edicëjô" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "Rëmôj lëstã graniô" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "Na gwës chcesz rëmnąc całowną wëbróną lësta graniô?" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "Wpiszë nowé miono lëstë graniô" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "Zmieni miono lëstë graniô" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "Rëmôj" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "Lësta graniô %d" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "Dodôj katalog" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "Sélanié do %s..." #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "Ladëjë strëdżi..." #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "Dodôj radiową stacëjã" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "Adresa URL:" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "Zapisóné stacëje" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "Radiowé strëdżi" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "Zladëjë znowa" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "Wpiszë miono nowi lëstë graniô" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "Zort - Artista" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "Zort - Albùm" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "Przeskanëjë kòlekcëjã znowa" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "Miara" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s KB" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "ë" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "je" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "nie je" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "zamëkô w se" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "nie zamëkô w se" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "przënômni" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "nôwëżi" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "przed" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "pò" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "midzy" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "wkiszy jak" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "mniszi jak" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "Grô" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "Rok" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "Inteligentnô lësta graniô" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "Swòjé lëstë graniô" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "Dodôj inteligentną lëstã graniô" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "Editëjë inteligentną lëstã graniô" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "Granié" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "Wtëkôcze" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "" msgstr[1] "" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "Wëbierzë wtëkôcza" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "Archiwa wtëkôczów" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "Òbkłôdczi" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "Wëzdrzatk" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "Kòlekcëjô" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "Doprowôdzë domëszlny nastôw nazôd" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "Dzejanié" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "Skrodzëna" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "Lësta graniô" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "Ò Exaile" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "Menadżera òbkłôdków" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "Tasëjë pòsobnicã graniô" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "Szëkba òbkłôdków" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "_Lopk" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "_Edicëjô" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "_Wëzdrzatk" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "_Nôrzãdza" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "_Pòmòc" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "Pòprzédny titel" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" "Zatrzëmôj granié\n" "\n" "Klëkni prawą knąpą abë zatrzëmac pò kùńcu titla" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "Pòstãpny titel" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0:00 / 0:00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "Swòjizna titla" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "_Dodôj znakòwnik" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "_Remôj znakòwnik" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "ab → A_b" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "_Poprzédny" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "_Nôslédny" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "Òpisënk:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "Menadżera kòlekcëji" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "Radio" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "Dodôj wszëtczé title do lëstë graniô" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "Impòrtëjë CD" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "Dodôj stacëjã" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "Lopczi" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "Pòprzédny òdwiedzóny katalog" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "Nôslédny òdwiedzóny katalog" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "Jeden katalog wëżi" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "Zladëjë lëstã kataloga znowa" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "Domôcy katalog" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "Szëkba: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "Kòlekcëjô je pùstô" #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "Dodôj mùzykã" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" "Zladëjë wëzdrzatk kòlekcëji znowa\n" "(trzëmôj klawisz shift, abë przeskanowac znowa kòlejkcëjã)" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "Pòsobnica szëkbë òbkłôdków:" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "(przecygni abë zmienic pòsobnicą)" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "Grôj slédné lëstë graniô przë zrëszaniô" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "Pëtôj ò zapisëwanié swòji lëstë graniô przë zamkniãcô" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "Brëkùjë przenikaniô/wëcëszaniô w dzejaniach brëkòwnika" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "Czas wëcëszaniô (ms)" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "Brëkùjë przenikaniô (EKSPERIMENTNÉ)" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "Czas przenkaniô (ms):" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "Wińdzenié Audio: " #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "Naczni granié òd zôczątkù" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "Znowi granié w stónie pùzë" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "Zwëczajno" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "Ùnifikòwóny (niestabilny)" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "Wtëkôcz" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "Włączoné" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "Winstalowóné wtëkôcze" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "Ùsôdzcë:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "Wersëjô:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "Instalëjë" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "Ni wëbróné wtëkôcze" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "Przëstãpné wtëkôcze" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "Winstalëjë aktualizacëje" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "Zaktualnienia" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "Wiedno wëskrzëniôj listwã kôrtów" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "Pòłożenié kôrtów:" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "Wëskrzëni ikònã w zabiérnikù" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "Minimalizëjë do systemòwegò zabiérnika" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "Biéj do aktualnegò titla pò zmianie stegnë" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "Wëskrzëni przë zrëszeniu przëwitólny ekran" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "Lewò" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "Prawò" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "Góra" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "Dół" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "Preferencëje" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "Menedżera urządzeniów" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "Dodôj ùrządzenié" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "Ôrt urządzenia:" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "Wëkrëté ùrządzenié:" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "Swòje: " #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "Menedżera pòsobnicë" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "Szëkba czëcô..." #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "Òdnalazłé czëce." #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "Ni mòże òdczëtac listwë czëcô." #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "Wëkònëwólny lopk listwé czëcô nie je przëstãpny." #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "Listwa czëców" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "Fela zrëszaniô zgrëwôcza strëgów" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "Zgrëwanié strëgów" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "Bùdzëk" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "Parłãczenié z serwerã Shoutcast ..." #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "Fela parłãczenia z serwerã Shoutcastów" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "Wpiszë szëkóné kluczowé słowò" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "Szëkba w Shoutcast" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "Skùtczi szëkbë" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "Szëkba" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "" #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "AudioScrobbler" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "Włączë audioscrobbling" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "Kòrektora" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "Dôwanié wiedzë Notify-osd" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "%(title)s" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "grô %(artist)s" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "z %(album)s" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "Kònsola IPython - Exaile" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "Wëskrzëni kònsolã IPython" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "Kònsola IPython" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "Dôwanié wiédzë" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" "grô %(artist)s\n" "z %(album)s" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "Impòrtowanié CD..." #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "Platka aùdio" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "CD" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "Numer titla" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "Numer diskù" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "Rechòwnik graniô" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "Trib Mini" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "$tracknumber - $title" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "$title grô $artist" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "Pòprzédny" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "Nôslédny" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "Granié/Paùza" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "Zatrzëmôj" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "Głosnota" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "Doprowôdzë nazôd" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "Wëbierôcz titla" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "Knąpa lëstë graniô" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "Listew pòkrokù" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "ReplayGain" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "Parôt" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "Szëkba w katalogù Jamendo..." #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "" #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "Wëskrzëniwanié na ekranie (OSD)" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "Òbkłôdczi z Amazon" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "Podcastë" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "Podcast" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "Zladëjë podcastë znowa" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "Rëmôj" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "Wpiszë URL podcastu do dodaniô" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "Òtemkni podcast" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "Ladowanié %s..." #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "Fela czëtaniô podcasta" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "Ladowanié podcastów" #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "Ni mòże zapisac lopka podcasta" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "Òbkłôdka na pùlce" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "Zédżer czilu alarmów" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "Kòntekst" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "Załóżczi" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "Pùza zrëszanô przez wëgaszôcz ekranu" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "Klient DAAP" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "" #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "Wpiszë adresã IP ë pòrt ùprzëstãpnianiô" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "Wpiszë adresã IP ë pòrt." #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "Sparłãczë z DAAP..." #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "Brëkùjë farwny témë " #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "Spòdlowô farwa:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "Spòdlowô farwa" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "Pòniedzôłk" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "Wtórk" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "Strzoda" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "Czwiôrtk" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "Piątk" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "Sobòta" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "Niedzela" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "Brëkùjë przenikaniô" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "Zwikszenié" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "Felënk" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "Dodôj title z pòmòcą Audioscrobblera" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "Parola:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "Miono brëkòwnika:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "+12 dB" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "0" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "-24 dB" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "29" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "59" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "119" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "474" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "947" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "1.9K" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "3.8K" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "7.5K" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "15K" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "Wëskrzëni" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "Ikònë" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "Pòdrechòwanié:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "Zamkłosc" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "Fònt:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "Farwa spòdlégò:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "Zmieni miarã òbkłôdków" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "Zamkłosc wiadła" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "Ogg Vorbis" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "FLAC" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "AAC" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "MP3 (VBR)" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "MP3 (CBR)" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "WavPack" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "Impòrtëjë fòrmat: " #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "Kwalitet impòrtu: " #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "Impòrtëjë stegnã: " #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "Wiedno na wiérzkù" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "Wëskrzëni w lësce dzejaniów" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "Wëskrzëni na wszëtczich pùltach" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "Preferëjë kòrekcjã albùmù" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "Brëkùjë zabezpieczenia przed sprzãżeniama" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "Zabezpieczenié przed szumã sparłãczonym za wiôldżim wzmòcnieniém" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "Dodôwné wzmòcnienié do brëkùnkù we wszëtczich lopkach" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "Dodôwné wzmòcnienié (dB):" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "Skùtczi:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "Awansowóné" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "Malejąco" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "Roscąco" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "Datum wëdôwka" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "Wielëna zladënków" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "Dodôj Podcast" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "Przesëniãcé X:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "pikslów" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "Przesëniãcé Y:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "Miara:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "Góra z lewi" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "Góra z prawi" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "Knąpa z lewi" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "Knąpa z prawi" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "Brëkùjë òbkłôdków z menu załóżków (robi przë zrëszeniu znowa)" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "Aktualny titel" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" "Zmieniô standardową listwą pòkrokù na listwã czëców.\n" "Zanóléżnota: moodbar" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "Mùltimedialné klawisze GNOME" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" "Kòntrola Exaile z pòmòcą mùltimedialnych klawiszów GNOME. Kòmpatibilné z " "GNOME w wersëji wëżi 2.20.x" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" "Zezwôlô na nagrëwanié strëgòwi transmisëji brëkùjąc stremripper.\n" "Nót je: streamripper" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "Òbkłôdczi Last.fm" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "Szëkba w Last.fm za òbkłôdkama" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "Radio Shoutcast" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "Lësta radiowich stacëjów Shoutcast" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" "Sélô wëdowiédzã ò słëchóny mùzyce do Last.fm ë jinszëch serwisów brëkùjących " "AudioScrobblera." #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "XKeys" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "Globalné klawiszowé skrodzënë przë ùżëcô xlib (mmkeys.so)" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "Lyrics Fly" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "Wtëkôcz do ladowaniô tesktów z lyricsfly.com" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "Librivox" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "Przezérôj ë słëchôj gôdónych knéżków z Librivox.org." #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "Wspiarcé mùltimedialnych grôczów USB" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "Mòtór z Last.fm do dinamicznych lëstów graniô" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "Dôwô kònsolã IPython chtërną mòże brëkòwac do manipùlacëji Exaile." #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "Wëskrzëniô wiadło na zôczątkù graniô sztëczka" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "Granié CD" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "Kòmpaktowi trib dlô Exaile z kònfigùrowólnym interfejsã" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "Włączoné wspiarcé dlô ReplayGain" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "Jamendo" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "Szëkba za òbkłôdką na Amazon" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "Dodôj prosté wspiatcé Podcastów" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "Wëskrzëniô òbkłôdkã grónegò albùmù na pùlce." #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "Witôj swiece" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "Prosti wtëkôcz do testowaniô spòdlowi systemë wtëkôczów" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "Kòntekstowô wëdowiédzô" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" "Wëskrzrni dodôwną wëdowiédzã ò terô grónym titlu.\n" "Nót je: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "Lyrics Wiki" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" #~ msgid "Text Color" #~ msgstr "Farwa tekstu" #~ msgid "Close tab" #~ msgstr "Zamkni kôrtã" #~ msgid "Export as..." #~ msgstr "Ekspòrtëjë jakno..." #~ msgid "%d KB" #~ msgstr "%d KB" #~ msgid "GNOME" #~ msgstr "GNOME" #~ msgid "ALSA" #~ msgstr "ALSA" #~ msgid "OSS" #~ msgstr "OSS" #~ msgid "PulseAudio" #~ msgstr "PulseAudio" #~ msgid "JACK" #~ msgstr "JACK" #~ msgid "AWN" #~ msgstr "AWN" #~ msgid "API Key:" #~ msgstr "Klucz API:" #~ msgid "Awn" #~ msgstr "Awn" #~ msgid "Stopped" #~ msgstr "Zatrzëmanié" #~ msgid "Export" #~ msgstr "Ekspòrt" #~ msgid "Open" #~ msgstr "Òtemkni" #~ msgid "Start" #~ msgstr "Zrëszë" #~ msgid "File Type" #~ msgstr "Ôrt lopka" #~ msgid "Choose a plugin" #~ msgstr "Wëbierzë wtëkôczã" #~ msgid "..." #~ msgstr "..." #~ msgid "Album:" #~ msgstr "Albùm:" #~ msgid "File Size:" #~ msgstr "Miara lopka:" #~ msgid "Length:" #~ msgstr "Długòta:" #~ msgid "Basic" #~ msgstr "Spòdlowé" #~ msgid "Date:" #~ msgstr "Datum:" #~ msgid "Details" #~ msgstr "Detale" #~ msgid "Genre:" #~ msgstr "Zort:" #~ msgid "Artist:" #~ msgstr "Artista:" #~ msgid "© 2009" #~ msgstr "© 2009" #~ msgid "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager" #~ msgstr "" #~ "Mathias Brodala\n" #~ " \n" #~ " Menadżera dolmaczënkù" #~ msgid "Title:" #~ msgstr "Titel:" #~ msgid "_Close" #~ msgstr "Za_mkni" #~ msgid "Remove All" #~ msgstr "Rëmôj wszëtkò" #~ msgid "Window Height:" #~ msgstr "Wiżô òkna:" #~ msgid "Window Width:" #~ msgstr "Szérzô òkna:" #~ msgid "Text Font:" #~ msgstr "Fònt tekstu:" #~ msgid "Install plugin file" #~ msgstr "Instalëjë lopk wtëkôcza" #~ msgid "Clear Playlist" #~ msgstr "Wëczëszczë lëstã graniô" #~ msgid "Page 1" #~ msgstr "Starna 1" #~ msgid "Delete bookmark" #~ msgstr "Rëmôj załóżkã" #~ msgid "Clear bookmarks" #~ msgstr "Wëczëszczë załóżczi" #~ msgid " & " #~ msgstr " & " #~ msgid "Name - Time" #~ msgstr "Miono - Czas" #~ msgid "Secret Key:" #~ msgstr "Ztacony klucz:" #~ msgid "Summary" #~ msgstr "Pòdrëchòwanié" #~ msgid "iPod support" #~ msgstr "Wspiarcé dlô iPoda" #~ msgid "A plugin for iPod support" #~ msgstr "Wtëkôcz wspiarcô dlô iPoda" #~ msgid "Tag Covers" #~ msgstr "Znakòwniczi òbkłôdków" #~ msgid "Plugin to fetch lyrics from lyricwiki.org" #~ msgstr "Wtëkôcz do ladowaniô tekstów z lyricwiki.org" #~ msgid "Toggle Play or Pause" #~ msgstr "Granié abò pùza" #~ msgid "Decreases the volume by VOL%" #~ msgstr "Zmniszi głosnotã ò VOL%" #~ msgid "Increases the volume by VOL%" #~ msgstr "Zwikszi głosnotã ò VOL%" #~ msgid "Plugin archive contains an unsafe path" #~ msgstr "Archiwùm wtëkôcza zamëkô w se lëchą stegną" #~ msgid "A plugin with the name \"%s\" is already installed" #~ msgstr "Wtëkôcz \"%s\" ju je winstalowóny" #~ msgid "Plugin archive is not in the correct format" #~ msgstr "Archiwùm wtëkôczów je w lëchim fòrmace" #~ msgid "Streaming..." #~ msgstr "Granie strëdżi..." #~ msgid "%(minutes)d:%(seconds)02d" #~ msgstr "%(minutes)d:%(seconds)02d" #~ msgid "0:00" #~ msgstr "0:00" #~ msgid "Buffering: 100%..." #~ msgstr "Bùfòrowanié: 100%..." #~ msgid "" #~ "Exaile Music Player\n" #~ "Not playing" #~ msgstr "" #~ "Grôcz mùzyczi Exaie\n" #~ "Nie grô" #~ msgid "Save As..." #~ msgstr "Zapiszë jakno..." #~ msgid "Custom playlist name:" #~ msgstr "Niestandardowé miono lëstë graniô:" #~ msgid "%(title)s (by %(artist)s)" #~ msgstr "%(title)s (grô %(artist)s)" #~ msgid "by %s" #~ msgstr "grô %s" #~ msgid "Add to custom playlist" #~ msgstr "Dodôj do swòji lëstë graniô" #~ msgid "In pause: %s" #~ msgstr "Paùza: %s" #~ msgid "from %s" #~ msgstr "z albùmù %s" #~ msgid "Playing %s" #~ msgstr "Granié %s" #~ msgid "_Save As..." #~ msgstr "Zapi_szë jakno..." #~ msgid "_Rename Playlist" #~ msgstr "Zmieni miono lëstë g_raniô" #~ msgid "_Save Changes To Playlist" #~ msgstr "Zapi_szë zjinaczi w lësce graniô" #~ msgid "_Close Playlist" #~ msgstr "_Zamkni lëstã graniô" #~ msgid "_Save As Custom Playlist" #~ msgstr "Zapi_szë jakno swòją lëstã graniô" #~ msgid "%d covers to fetch" #~ msgstr "%d òbkłôdków do zladënkù" #~ msgid "No covers found" #~ msgstr "Felëją òbkłôdczi" #~ msgid "Enter the search text" #~ msgstr "Wpiszë tekst szëkbë" #~ msgid "Choose a file to open" #~ msgstr "Wëbierzë lopk do òtemkniãcô" #~ msgid "Export current playlist..." #~ msgstr "Ekspòrtëjë aktualną lëstã graniô..." #~ msgid "Invalid file extension, file not saved" #~ msgstr "Lëché rozszerzenié lopka, lopk ni òstôł zapisóny" #~ msgid "Select File Type (By Extension)" #~ msgstr "Wëbierzë ôrt lopka (przez rozszerzenié)" #~ msgid "Extension" #~ msgstr "Rozszerzenié" #~ msgid "%(playlist_count)d showing, %(collection_count)d in collection" #~ msgstr "%(playlist_count)d wëskrzëniwô %(collection_count)d w kòlekcëji" #~ msgid "" #~ "Path is already in your collection, or is a subdirectory of another path " #~ "in your collection" #~ msgstr "" #~ "Stegna ju je w twòji kòlekcëji, abò je pòdkatalogã jinszi stegnë w twòji " #~ "kòlekcëji." #~ msgid "Add a directory" #~ msgstr "Dodôj katalog" #~ msgid "%(year)d-%(month)02d-%(day)02d" #~ msgstr "%(year)d-%(month)02d-%(day)02d" #~ msgid "New custom playlist name:" #~ msgstr "Nowé miono lëstë graniô:" #~ msgid "Add To New Playlist..." #~ msgstr "Dodôj do nowi lëstë graniô..." #~ msgid "Idle." #~ msgstr "Idle." #~ msgid "Could not enable plugin: %s" #~ msgstr "Ni mòże włączëc wtëkôcza: %s" #~ msgid "Could not disable plugin: %s" #~ msgstr "Ni mòże wëłączëc wtëkôcza: %s" #~ msgid "Add item" #~ msgstr "Dodôj element" #~ msgid "Move selected item up" #~ msgstr "Przniesë wëbróny element wëżi" #~ msgid "Move selected item down" #~ msgstr "Przniesë wëbróny element niżi" #~ msgid "Remove item" #~ msgstr "Rëmôj element" #~ msgid "Repeat playlist" #~ msgstr "Grôj lëstã graniô znowa" #~ msgid "Dynamically add similar tracks" #~ msgstr "Dodôwôj dinamiczno zblëżoné sztëczczi" #~ msgid "Add device" #~ msgstr "Dodôj urządzenié" #~ msgid "New Search" #~ msgstr "Nowô szëkba" #~ msgid "Play Count:" #~ msgstr "Rechòwnik graniô:" #~ msgid "Bitrate:" #~ msgstr "Chùtkòsc transmisëji:" #~ msgid "" #~ "OSD\n" #~ "Drag to the location you'd like the\n" #~ "OSD to appear" #~ msgstr "" #~ "OSD\n" #~ "Przeniesë do placu w jaczim chcesz,\n" #~ "abë OSD bëło wëskrzëniwóné." #~ msgid "Use alpha transparency (if supported)" #~ msgstr "Brëkùjë przezérnotë (jeżlë wspieróné)" #~ msgid "Popup" #~ msgstr "Popup" #~ msgid "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgstr "Przesënie òkno OSD do placu w chtërnym mô bëc wëskrzënióné" #~ msgid "Opacity Level:" #~ msgstr "Równiô przezérnotë:" #~ msgid "Close this dialog" #~ msgstr "Zamkni to òkno" #~ msgid "Playback engine (requires restart): " #~ msgstr "Mòtór graniô (je nót zrëszenie znowa) " #~ msgid "Install a third party plugin from a file" #~ msgstr "Winstalëjë wtëkôcz jinszegò zdroju z lopka" #~ msgid "Start/Pause Playback" #~ msgstr "Zrëszë/wstrzëmôj granié" #~ msgid "_Export current playlist" #~ msgstr "_Ekspòrtëjë aktualną lëstã graniô" #~ msgid "Restore Main Window" #~ msgstr "Doprowôdzë przédné òkno nazôd" #~ msgid "Stop Playback" #~ msgstr "Zatrzëmôj granié" #~ msgid "Selected controls" #~ msgstr "Wëbróné kòntrolczi" #~ msgid "Available controls" #~ msgstr "Przëstãpné kòntrolczi" #~ msgid "$title ($length)" #~ msgstr "$title ($length)" #~ msgid "Seeking: " #~ msgstr "Przewijanié: " #~ msgid "Alarm Days:" #~ msgstr "Dni alarmù:" #~ msgid "Streamripper can only record streams." #~ msgstr "Zgrëwôcz strëgów mòże blós nagrëwac strëdżi." #~ msgid "Alarm Name:" #~ msgstr "Miono alarmù:" #~ msgid "Alarm Time:" #~ msgstr "Czas alarmù:" #~ msgid "Restart Playlist" #~ msgstr "Zrëszë znowa lëstã graniô" #~ msgid "Minimum Volume:" #~ msgstr "Minimalnô głosnota" #~ msgid "Enable Fading" #~ msgstr "Włączë znowa wëcëszanié" #~ msgid "Fading:" #~ msgstr "Wëcëszanié:" #~ msgid "Alarm:" #~ msgstr "Alarm:" #~ msgid "Maximum Volume:" #~ msgstr "Maksymalnô głosnota" #~ msgid "On Tray Icon Hover" #~ msgstr "Przë nastôwieniu kùrsora na ikònie w zabiérnikù" #~ msgid "Artist Line:" #~ msgstr "Linijô artistë:" #~ msgid "Album Line:" #~ msgstr "Linijô albùmù:" #~ msgid "On Playback Start, Pause or Stop" #~ msgstr "Przë zrëszaniu/zatrzëmaniu/paùze graniô" #~ msgid "Use Album Covers As Icons" #~ msgstr "Brëkùjë òbkłôdków albùmów jakno ikònów" #~ msgid "" #~ "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " #~ "replaced by their respective values. The title will be replaced by " #~ "\"Unknown\" if it is empty." #~ msgstr "" #~ "Znakòwniczi \"%(title)s\", \"%(artist)s\" ë \"%(album)s\" bãdą zastãpioné " #~ "przez ich wôrtnotë. Titel bãdze zastãpiony przez \"Nieznóny\" jeżlë je " #~ "pùsti." #~ msgid "Only artist" #~ msgstr "Blós artista" #~ msgid "Both artist and album" #~ msgstr "Artista ë albùm" #~ msgid "Only album" #~ msgstr "Blós albùm" #~ msgid "Save Location:" #~ msgstr "Zapiszë lokalizacëjã:" #~ msgid "Relay Port:" #~ msgstr "Pòrt:" #~ msgid "Terminal Opacity:" #~ msgstr "Przezérnota terminala:" #~ msgid "Display window decorations" #~ msgstr "Wëskrzëni dekòracëjã òkna" #~ msgid "" #~ "Adds support for playing audio CDs.\n" #~ "Requires python-cddb to look up tags." #~ msgstr "" #~ "Dodôj wspiarcé dlô graniô audio CD.\n" #~ "Nót je python-cddb do szëkbë znakòwników." #~ msgid "Last.fm Dynamic Search" #~ msgstr "Dinamicznô szëkba w Last.fm" #~ msgid "Display a progressbar in the OSD" #~ msgstr "Wëskrzëni listwã pòkrokù w OSD" #~ msgid "_Randomize Playlist" #~ msgstr "Mieszô lëstã g_raniô" #~ msgid "Randomize the order of the current playlist" #~ msgstr "Wëmieszô zamkłosc aktualny lëstë graniô" #~ msgid "These options only affect the unified engine." #~ msgstr "Ne òptacëje tikają sã blós zunifikòwónegò mòtóra" #~ msgid "Display OSD when hovering over tray icon" #~ msgstr "Wëskrzëni OSD jak kùrsor bãdze nad ikòną systemòwégò zabiérnika" #~ msgid "Pauses/resumes playback on screensaver start/stop" #~ msgstr "" #~ "Zatrzëmôj/biéj dali z graniém przë włączaniu/wëłączaniu wëgaszôcza ekranu" #~ msgid "Show a popup of the currently playing track" #~ msgstr "Wëskrzëni aktualno gróny titel" #~ msgid "Print the position inside the current track as time" #~ msgstr "Wëskrzëni pòłożenié w aktualnym titlu jakno czas" #~ msgid "Print the progress inside the current track as percentage" #~ msgstr "Wëskrzëni pòłożenié w aktualnym titlu jakno procentë" #~ msgid "Set rating for current song" #~ msgstr "Òbsãdzë aktualny titel" #~ msgid "Get rating for current song" #~ msgstr "Dobëjë òbsądu aktualnegò titla" #~ msgid " New song, fetching cover." #~ msgstr " Nowi titel, ladëjã òbkłôdkã." #~ msgid "New playlist title:" #~ msgstr "Titel nowi lëstë graniô:" #~ msgid "Toggle: Stop after selected track" #~ msgstr "Włączë/wëłączë: Zatrzëmôj pò wëbrónym titlu" #~ msgid "C_lear All Tracks" #~ msgstr "_Wëczëszczë wszëtczé title" #~ msgid "Delete track" #~ msgstr "Rëmôj titel" #~ msgid "No track" #~ msgstr "Felënk titla" #~ msgid " songs" #~ msgstr " title" #~ msgid "" #~ "This will permanantly delete the selected tracks from your disk, are you " #~ "sure you wish to continue?" #~ msgstr "To je rëmanié na wiedno titla z twòjegò diskù. Jisc dali?" #~ msgid "Remove current track from playlist" #~ msgstr "Rëmôj aktualny titel z lëstë graniô" #~ msgid "Location:" #~ msgstr "Lokalizacëjô:" #~ msgid "Track Number:" #~ msgstr "Numer titla:" #~ msgid "Show OSD on track change" #~ msgstr "Wëskrzëni OSD przë zmianie titla" #~ msgid "0/0 tracks" #~ msgstr "0/0 titlów" #~ msgid "Track _properties" #~ msgstr "Swòjizna titla" #~ msgid "_Go to Playing Track" #~ msgstr "Biéj do _grónegò titla" #~ msgid "Bookmark this track" #~ msgstr "Dodôj titel do załóżków" #~ msgid "On Track Change" #~ msgstr "Przë zmianie titla" #~ msgid "" #~ "Message that should be displayed in the body of the notification. In each " #~ "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced " #~ "by their respective values. If the tag is not known, \"Unknown\" will be " #~ "filled in its place" #~ msgstr "" #~ "Wiadło, chtërné mia bëc wëskrzënionô w zamkłoscë nowinë. Za kòżdim razã " #~ "\"%(title)s\", \"%(artist)s\", ë \"%(album)s\" bãdą zamienioné na pasowné " #~ "wôrtnotë. Jeżlë jaczis ze znakòwników bãdze pùsti, to w jegò placu bãdze " #~ "wstôwioné \"Nieznóny\"" #~ msgid "Track title format:" #~ msgstr "Fòrmat miona titla:" #~ msgid "" #~ "Left\n" #~ "Right\n" #~ "Top\n" #~ "Bottom" #~ msgstr "" #~ "Lewò\n" #~ "Prawò\n" #~ "Góra\n" #~ "Dół" #~ msgid "" #~ "Exaile now uses absolute URI's, please delete/rename your %s directory" #~ msgstr "" #~ "Exaile brëkùjë terô absolutnych URI, proszã rëmnąc/zmienic miono kataloga " #~ "%s" #~ msgid "" #~ "Automatic\n" #~ "GNOME\n" #~ "ALSA\n" #~ "OSS\n" #~ "PulseAudio\n" #~ "JACK" #~ msgstr "" #~ "Automatno\n" #~ "GNOME\n" #~ "ALSA\n" #~ "OSS\n" #~ "PulseAudio\n" #~ "JACK" #~ msgid "" #~ "Normal\n" #~ "Unified (unstable)" #~ msgstr "" #~ "Zwëczajny\n" #~ "Zùnifikòwóny (niestabilny)" #~ msgid "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgstr "" #~ "{title}\n" #~ "{artist}\n" #~ "z {album} - {length}" #~ msgid " (%(queue_count)d queued)" #~ msgstr " (%(queue_count)d w pòsobnicë)" #~ msgid "General" #~ msgstr "Òglowé" #~ msgid " + " #~ msgstr " + " #~ msgid "Vol:" #~ msgstr "Głosnota:" #~ msgid "Timer per Increment:" #~ msgstr "Czas na przërost:" #~ msgid "Time per Increment:" #~ msgstr "Czas na przërost:" #~ msgid " - " #~ msgstr " - " #~ msgid "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "Year - Artist\n" #~ "Year - Album\n" #~ "Artist - Year - Album" #~ msgstr "" #~ "Artista\n" #~ "Albùm\n" #~ "Zort - Artista\n" #~ "Zort - Albùm\n" #~ "Rok - Artista\n" #~ "Rok - Albùm\n" #~ "Artista - Rok - Albùm" #~ msgid "Vertical:" #~ msgstr "Wertikalno:" #~ msgid "Center vertically" #~ msgstr "Wertikalno na westrzódkù" #~ msgid "Horizontal:" #~ msgstr "Hòrizontalno:" #~ msgid "Center horizontally" #~ msgstr "Hòrizonatlno na westrzódkù" #~ msgid "Position" #~ msgstr "Pòłożenié" #~ msgid "" #~ "Show various informations about the track currently playing.\n" #~ "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2" #~ msgstr "" #~ "Wëskrzëniô wszelejaką wëdowiédzã ò aktualnym titlu.\n" #~ "Nót je: libwebkit >= 1.0.1, python-webkit >= 1.1.2" #~ msgid "Searches track tags for covers" #~ msgstr "Szëkba pòdle znakòwników titlów za òbkłôdkama" #~ msgid "" #~ "To sign up for an Amazon AWS account and get \n" #~ "this information visit http://aws.amazon.com/" #~ msgstr "" #~ "Do dobëcô ti wëdowiédzë je ce nót kònto \n" #~ "Amazon AWS przë http://aws.amazon.com/" #~ msgid "Device class does not support transfer." #~ msgstr "Klasa ùrządzeniô nie wspiérô transferów." #~ msgid "Use Media Icons For Pause, Stop and Resume" #~ msgstr "Brëkùjë ikònë mediów dlô Pùzë, Zatrzëmaniô ë Znowieniô" #~ msgid "Creates an MPRIS D-Bus object to control Exaile" #~ msgstr "Ùsôdzô òbjekt MPRIS Dbus dlô kòntrolë Exaile" #~ msgid "MPRIS" #~ msgstr "MPRIS" #~ msgid "Last Played" #~ msgstr "Slédno gróné" #~ msgid "Part" #~ msgstr "Dzél" #~ msgid "Original Date" #~ msgstr "Òridżinalny datum" #~ msgid "Original Artist" #~ msgstr "Òridżinalny artista" #~ msgid "Original Album" #~ msgstr "Òridżinalny albùm" #~ msgid "Date Added" #~ msgstr "Datum dodaniô" #~ msgid "Encoded By" #~ msgstr "Kòdowóny przez" #~ msgid "Select a save location" #~ msgstr "Wëbierzë pòłożenié zapisëwaniô" dist/copy/po/PaxHeaders.26361/lv.po0000644000175000017500000000012312233027260015417 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 29 ctime=1382821553.02904693 exaile-3.3.2/po/lv.po0000644000000000000000000031376712233027260014401 0ustar00rootroot00000000000000# Latvian translation for exaile # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2012-07-29 07:16+0000\n" "Last-Translator: dExIT \n" "Language-Team: Latvian \n" "Language: lv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2;\n" "X-Launchpad-Export-Date: 2012-08-28 05:27+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "" #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "" #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "" #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "" #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "Nekad" #: ../xl/formatter.py:702 msgid "Today" msgstr "Šodien" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "Vakar" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "Migrācija no 0.2.14 versijas nav izdevusies" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "" #: ../xl/main.py:421 msgid "Playback Options" msgstr "" #: ../xl/main.py:423 msgid "Play the next track" msgstr "Atskaņot nākamo dziesmu" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "Atskaņot iepriekšējo dziesmu" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "Apturēt" #: ../xl/main.py:429 msgid "Play" msgstr "Atskaņot" #: ../xl/main.py:431 msgid "Pause" msgstr "Pauze" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "Beigt atskaņošanu pēc tekošās dziesmas" #: ../xl/main.py:440 msgid "Collection Options" msgstr "" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:454 msgid "Track Options" msgstr "" #: ../xl/main.py:456 msgid "Query player" msgstr "" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "Kopēt esošā celiņa titula nosaukumu" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "Kopēt esošā celiņa albuma nosaukumu" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "Kopēt esošā celiņa izpildītāja vārdu" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "Kopēt esošā celiņa garumu" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "" #: ../xl/main.py:490 msgid "Volume Options" msgstr "" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "Iegūt esošo skaļuma daudzumu" #: ../xl/main.py:507 msgid "Other Options" msgstr "" #: ../xl/main.py:509 msgid "Start new instance" msgstr "Sākt jaunu instanci" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "" #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "Sākt minimizēti" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "Ieslēgt Grafiskā Interfeisa(GUI) redzamību (ja iespējams)" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "" "Sākt Drošajā Režīmā (safe mode) - domāts ja esi saskāries ar problēmām " "iepriekšējā reizē." #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "" #: ../xl/main.py:536 msgid "Set data directory" msgstr "Uzlikt datu direktoriju" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "" #: ../xl/main.py:543 msgid "LEVEL" msgstr "" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "Rādīt Kļūdu Labojuma izvadi" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "Ieslēgt xl.eveny Kļūdu Labojumu. Uzģenerē ĻOTI daudz datu." #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:555 msgid "TYPE" msgstr "" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "Samazināt izvades daudzumu" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "Atslēgt D-Bus atbalstu" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "Atslēgt HAL atbalstu" #: ../xl/main.py:580 msgid "Entire Library" msgstr "Visa Bibliotēka" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "Randomā %d" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "Vērtējums > %d" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" "Exaile vēl nav pabeidzis ielādi. Varbūt vēlieties paklausīties exaile_loaded " "signālu ?" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "" #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "Nav norādīta datubāzes atrašanās vieta" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "Jūs nēesat norādījuši/-usi datubāzes saglabāšanas vietu" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "Dažādi izpildītāji" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "Nezināms Izpildītājs/Nosaukums" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr "" #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" "Vorbis ir atvērtā koda audio formāts, ar augstu izejošo kvalitāti, un mazāku " "izmēru par MP3." #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" "Brīvais bezzaudējuma audio kodeks (FLAC) ir atvērtā koda audio formāts, kas " "kompresē mūziku bez kvalitātes degradācijas." #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" "Firmas Apple audio formāts, kas var panākt augstāku kvalitāti nekā MP3 ar " "tādu pašu lielumu. (Fomāts nav atvērtajā kodā)" #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" "Novecojis brīvais audio kodeks. VBR ir augstākas kvalitātes par CBR, bet nav " "savienojams ar dažiem atskaņotājiem." #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" "Novecojis brīvais audio kodeks, bet arī populārs. CBR ir zemākas kvalitātes " "par VBR, bet ir savienojams ar visiem atskaņotājiem." #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "Ļoti ātrs, brīvais bezzaudējumu audio formāts, ar labu kompresiju." #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "Nespēlē" #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "Iestatījumu versija ir jaunāka nekā programmas tagadējā." #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "Mēs nezinam kā saglabat šādu iestatījumu: " #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "Nezināma tipa iestatījums/-i atrasts/-i !" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "" #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "Dziesmu saraksts" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "M3U Dziesmu Saraksts" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "PLS Dziesmu Saraksts" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "" #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "ASX Dziesmu Saraksts" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "XSPF Dziesmu Saraksts" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "Jauktā secība _Izslēgta" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "Jaukt _Dziesmas" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "Jaukt _Albūmus" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "sekundes" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "minūtes" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "stundas" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "dienas" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "nedēļas" #: ../xl/lyrics.py:305 msgid "Local" msgstr "" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "Pievienot aktīvajam" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "Nosaukums:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "Atrast atbilstības jebkuram kritērijam" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "Sajaukt rezultātus" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "Ierobežot līdz: " #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr "" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "Neatskaņo" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "Apklusināts" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "Pilns skaļums" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "#" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "Dziesmas numurs" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "Nosaukums" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "Izpildītājs" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "Komponists" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "Albūms" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "Ilgums" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "Disks" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "Diska numurs" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "Vērtējums" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "Datums" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "Žanrs" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "Bitu ātrums" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "Atrašanās vieta" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "Faila nosaukums" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "Reizes atskaņots" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "BPM" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "Atskaņots pēdējais" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "Vērtējums:" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "Sajaukt" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "Atkārtot" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "Dinamiska" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "Jauns dziesmu saraksts" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "Pārdēvēt" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "Vajadzīgs spraudnis dinamisko dziesmu saraksta atbalstam" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "Dinamiski pievienot līdzīgos celiņus dziesmu sarakstam" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "Ievadi saiti ko atvērt" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "Atvērt saiti" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "Atbalstītie faili" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "Audio Faili" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "Saraksta faili" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "Visi faili" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "Aizvērt %s" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "Saglabāt izmaiņas %s pirms aizvērt?" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "Jūsu veiktās izmaiņas būs zaudētas, ja nesaglabāsiet tās" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "Aizvērt Bez Saglabāšanas" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "" #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "Jūs neievadījāt nosaukumu dziesmu sarakstam" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "Dziesmu saraksta ievadītais nosaukums jau eksistē." #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "Aizvērt Cilni" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "Buffero: %d%%..." #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "Exaile Mūzikas Atskaņotājs" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "_Jauns Dziesmu saraksts" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "Atvērt _adresi" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "_Kolonnas" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "Dziesminieks" #: ../xlgui/properties.py:54 msgid "Website" msgstr "Mājas lapas" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "" #: ../xlgui/properties.py:57 msgid "Author" msgstr "Autors" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "Sastādītājs" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "Vadītājs" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "Izpildītājs" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "Autortiesības" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "Dziesmu vārdi" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "Dziesma" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "Versija" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "IESK" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "Organizācija" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "Mainīts" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "Pielikt esošo vērtību visiem celiņiem" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "Pārādīt Vāciņu" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "Lejuplādēt Vāciņu" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "Aizvākt Vāciņu" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "" #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "Ikona" #: ../xlgui/devices.py:81 msgid "Device" msgstr "Iekārta" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "Draivers" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "Skenē kolekciju..." #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "Skenē %s" #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "Sarindot ieraktus" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "Parametri" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "Jauna stacija" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "Jauns \"Smart\" Dziesmu saraksts" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "Rediģēt" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "Dzēst dziesmu sarakstu" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "" "Vai esat pārliecināts, ka vēlaties neatgriezeniski dzēst izvēlēto dziesmu " "sarakstu?" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "Ievadiet jaunu nosaukumu dziesmu sarakstam" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "Pārdēvēt Dziesmu Sarakstu" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "Noņemt" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "Dziesmu saraksts %d" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "" #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "Ielādē plūsmu..." #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "Pievienot Radio staciju" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "Saite:" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "Saglabātās Stacijas" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "Radio strīmi" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "Atjaunot" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "Ievadit nosaukumu jaunajam dziesmu sarakstam" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "Izmērs" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s KB" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "un" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "ir" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "nav" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "satur" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "nesatur" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "vismaz" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "ne vairāk kā" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "pirms" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "pēc" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "starp" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "lielāks par" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "mazāks par" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "Atskaņojumi" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "Gads" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "Automātiskie saraksti" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "Paša saraksti" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "Pievienot automātisko sarakstu" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "Labot automātisko sarakstu" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "Papildinājumi" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "" msgstr[1] "" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "Kolekcija" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "Dziesmu saraksti" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "Par Exaile" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "Vāciņa Meklētājs" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "_Fails" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "R_ediģēt" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "_Skatīt" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "_Rīki" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "_Palīdzība" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "Iepriekšējā dziesma" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "Nākamā dziesma" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0:00 / 0:00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "Apraksts:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "Kolekcijas Menedžeris" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "Radio" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "Pievienot Staciju" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "Faili" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "Meklēt: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "" #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "Vāciņu meklēšanas kārtība:" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "(vilkt lai pārkārtotu)" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "Atvērt pēdējos dziesmu sarakstus palaižot programmu" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "" #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "Papildinājums" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "Ieslēgts" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "Instalētie papildinājumi" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "Autori:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "Versija:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "Instalēt" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "Neviens papildinājums nav iezīmēts" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "Pieejamaie Papildinājumi" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "Instalēt jauninājumus" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "Jauninājumi" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "Rādīt šļaksta logu palaižot programmu" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "Uzstādījumi" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "Ierīces Pārvaldnieks" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "Ierīces tips:" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "Atrastās ierīces:" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "" #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "" #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "" #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "" #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "" #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "Iepriekšējā" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "Nākamā" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "Apturēt" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "" #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "" #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "" #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "" #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "" #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "Pirmdiena" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "Otrdiena" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "Trešdiena" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "Ceturtdiena" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "Piektdiena" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "Sestdiena" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "Svētdiena" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "Parole:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "Lietotājvārds:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "Fona krāsa:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "Pievienot" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" #~ msgid "Close tab" #~ msgstr "Aizvērt cilni" #~ msgid "Export as..." #~ msgstr "Eksportēt kā..." #~ msgid "General" #~ msgstr "Vispārīgi" #~ msgid "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "Year - Artist\n" #~ "Year - Album\n" #~ "Artist - Year - Album" #~ msgstr "" #~ "Izpildītājs\n" #~ "Albūms\n" #~ "Žanrs - Izpildītājs\n" #~ "Žanrs - Albūms\n" #~ "Gads - Izpildītājs\n" #~ "Gads - Albūms\n" #~ "Izpildītājs - Gads - Albūms" #~ msgid "Resizable" #~ msgstr "Maināma izmēra" #~ msgid "Start" #~ msgstr "Sākt" #~ msgid "Stopped" #~ msgstr "Apturēts" #~ msgid "Text Color" #~ msgstr "Teksta krāsa" #~ msgid "Window Height:" #~ msgstr "Loga augstums:" #~ msgid "Window Width:" #~ msgstr "Loga platums:" #~ msgid "Vol:" #~ msgstr "Izlaidums:" #~ msgid "_Close" #~ msgstr "_Aizvērt" #~ msgid "Alarm Days:" #~ msgstr "Brīdināšanas diena:" #~ msgid "New Search" #~ msgstr "Jauna Meklēšana" #~ msgid "Add a directory" #~ msgstr "Pievienot mapi" #~ msgid "File Type" #~ msgstr "Faila Tips" #~ msgid "Extension" #~ msgstr "Paplašinājums" #~ msgid "Open" #~ msgstr "Atvērt" #~ msgid "Add Playlist" #~ msgstr "Pievienot dziesmu sarakstu" #~ msgid "Choose a file" #~ msgstr "Izvēlieties failu" #~ msgid "Export" #~ msgstr "Eksportēt" #~ msgid "Quit" #~ msgstr "Iziet" #~ msgid "" #~ "OSD\n" #~ "Drag to the location you'd like the\n" #~ "OSD to appear" #~ msgstr "" #~ "OSD\n" #~ "Ievadiet atrasanas vietu, kur Jums patiktu\n" #~ "redzēt OSD" #~ msgid "Popup" #~ msgstr "Izlecošais logs" #~ msgid " - " #~ msgstr " - " #~ msgid " + " #~ msgstr " + " #~ msgid "Page 1" #~ msgstr "Lapa 1" #~ msgid "0/0 tracks" #~ msgstr "0/0 dziesmas" #~ msgid "Add device" #~ msgstr "Pievienot ierīci" #~ msgid "..." #~ msgstr "..." #~ msgid "Playing %s" #~ msgstr "Atskaņo %s" #~ msgid "Number of Plays" #~ msgstr "Atskaņošanas reizes" #~ msgid "" #~ "Path is already in your collection, or is a subdirectory of another path " #~ "in your collection" #~ msgstr "" #~ "Jūsu pievienotā mape jau ir kolekcijā (vai ir kāda no tās apakš-mapēm)." #~ msgid " songs" #~ msgstr " dziesmas" #~ msgid "Toggle: Stop after selected track" #~ msgstr "Apstādināt pēc iezīmētā ieraksta" #~ msgid "%(title)s (by %(artist)s)" #~ msgstr "%(title)s (izpilda %(artist)s)" #~ msgid "from %s" #~ msgstr "no albūma %s" #~ msgid "by %s" #~ msgstr "izpilda %s" #~ msgid "Enter the search text" #~ msgstr "Ievadiet meklējamo tekstu" #~ msgid "Select File Type (By Extension)" #~ msgstr "Faila tips (pēc paplašinājuma)" #~ msgid "Add to Playlist" #~ msgstr "Pievienot saraktam" #~ msgid "Autosize" #~ msgstr "Auto-izmērs" #~ msgid "Stop Playback" #~ msgstr "Pārtraukt atskaņošanu" #~ msgid "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgstr "" #~ "{title}\n" #~ "{artist}\n" #~ "no {album} - {length}" #~ msgid "Opacity Level:" #~ msgstr "Caurspīdīgums:" #~ msgid "Display a progressbar in the OSD" #~ msgstr "Rādīt progresa joslu OSD logā" #~ msgid "Text Font:" #~ msgstr "Teksta šrifts:" #~ msgid "Show OSD on track change" #~ msgstr "Parādīt OSD logu mainoties dziesmai" #~ msgid "Toggle Play or Pause" #~ msgstr "Ieslēgt Atskaņošanu vai Pauzēt" #~ msgid "Show a popup of the currently playing track" #~ msgstr "Rādīt uznirstošo ziņu par skanošo audio/video celiņu" #~ msgid "Print the position inside the current track as time" #~ msgstr "Iegūt precīzu laiku iekš celiņa" #~ msgid "Print the progress inside the current track as percentage" #~ msgstr "Procentuāli iegūt noskanējušā celiņa ilgumu" #~ msgid "Set rating for current song" #~ msgstr "Novērtēt tagad skanošo celiņu" #~ msgid "Get rating for current song" #~ msgstr "Iegūt skanošā celiņa vērtējumu" #~ msgid "Decreases the volume by VOL%" #~ msgstr "Samazināt skaļumu par VOL%" #~ msgid "Increases the volume by VOL%" #~ msgstr "Palielināt skaļumu par VOL%" #~ msgid " New song, fetching cover." #~ msgstr " Jauna dziesma, ķeru pēc kovera." #~ msgid " & " #~ msgstr " & " #~ msgid "Device class does not support transfer." #~ msgstr "ierīces klase neatbalsta pārraidi." #~ msgid "Plugin archive contains an unsafe path" #~ msgstr "Spraudņa arhīvs ietver sevī nedrošu ceļu" #~ msgid "A plugin with the name \"%s\" is already installed" #~ msgstr "Šis spraudnis \"%s\" ir jau uzstādīts" #~ msgid "Plugin archive is not in the correct format" #~ msgstr "Spraudņa arhīvs ir nesaprotamā formātā" #~ msgid "Original Date" #~ msgstr "Oriģinālais datums" #~ msgid "Original Artist" #~ msgstr "Oriģinālais Azpildītājs" #~ msgid "Original Album" #~ msgstr "Orģinālais Albūms" #~ msgid "Encoded By" #~ msgstr "Apstrādāja" #~ msgid "Date Added" #~ msgstr "Pievienošanas datums" #~ msgid "Streaming..." #~ msgstr "Plūsmo..." #~ msgid "New playlist title:" #~ msgstr "Jaunā Dziesmu saraksta nosaukums:" #~ msgid "Last Played" #~ msgstr "Pēdējoreiz atskaņots" #~ msgid "Buffering: 100%..." #~ msgstr "Buffero: 100%..." #~ msgid "Save As..." #~ msgstr "Saglabāt kā..." #~ msgid "" #~ "Exaile Music Player\n" #~ "Not playing" #~ msgstr "" #~ "Exaile Mūzikas Atskaņotājs\n" #~ "Neatskaņo" #~ msgid "In pause: %s" #~ msgstr "Nopauzēts: %s" #~ msgid "_Save As..." #~ msgstr "_Saglabāt kā..." #~ msgid "_Rename Playlist" #~ msgstr "_Pārsaukt Dziesmu sarakstu" #~ msgid "_Save Changes To Playlist" #~ msgstr "_Saglabāt izmaiņas Dziesmu sarakstā" #~ msgid "_Close Playlist" #~ msgstr "_Aizvērt sarakstu" #~ msgid "C_lear All Tracks" #~ msgstr "N_otīrīt sarakstu" #~ msgid "Delete track" #~ msgstr "Dzēst celiņu" #~ msgid "%d covers to fetch" #~ msgstr "%d vāciņi ko izzvejot" #~ msgid "Export current playlist..." #~ msgstr "Eksportēt aktīvo dziesmu sarakstu..." #~ msgid "No track" #~ msgstr "Nav celiņa/-u" #~ msgid "No covers found" #~ msgstr "Vāciņš nav atrasts" #~ msgid "Invalid file extension, file not saved" #~ msgstr "Nederīgs faila tips, nav sagalbāts EJ MĀJĀS ĀPSI :)" #~ msgid "Choose a file to open" #~ msgstr "Izvlēlieties atveramo failu" #~ msgid "0:00" #~ msgstr "0:00" #~ msgid "Add To New Playlist..." #~ msgstr "Pievienot jaunajam Dziesmu sarakstam" dist/copy/po/PaxHeaders.26361/ml.po0000644000175000017500000000012312233027260015406 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 29 ctime=1382821553.05704693 exaile-3.3.2/po/ml.po0000644000000000000000000027342012233027260014357 0ustar00rootroot00000000000000# Malayalam translation for exaile # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2011-06-29 04:29+0000\n" "Last-Translator: ABOOBACKER \n" "Language-Team: Malayalam \n" "Language: ml\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-08-28 05:27+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "" #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "" #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "" #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "" #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "" #: ../xl/formatter.py:702 msgid "Today" msgstr "" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "0.2.14 -ല്‍ നിന്നുള്ള പരിണാമത്തില്‍ പ്രശ്നം ഭവിച്ചിരിക്കുന്നു" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "Usage: exaile [OPTION]... [URI]" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "ഐച്ഛികങ്ങള്‍‌" #: ../xl/main.py:421 msgid "Playback Options" msgstr "പ്ലേബാക്കിനുള്ള ഐശ്ചികങ്ങള്‍" #: ../xl/main.py:423 msgid "Play the next track" msgstr "അടുത്ത ചരണപഥം കളിക്കുക" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "മുന്പുള്ള ചരണപഥം കളിക്കുക" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "പ്ലേബാക്ക് നിര്‍ത്തുക" #: ../xl/main.py:429 msgid "Play" msgstr "പ്രവര്‍ത്തിപ്പിക്കുക" #: ../xl/main.py:431 msgid "Pause" msgstr "" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "തല്കാലം നിറ്റ്ര്തുക" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "ഇപ്പോള്‍ ഉള്ള പാട്ടിനു ശേഷം പ്ലേബാക്ക് നിര്‍ത്തുക" #: ../xl/main.py:440 msgid "Collection Options" msgstr "" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "സ്തലം" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:454 msgid "Track Options" msgstr "പാട്ടിന്റെ ഐശ്ചികങ്ങള്‍" #: ../xl/main.py:456 msgid "Query player" msgstr "" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "ഇപ്പോള്‍ ഉള്ള പാട്ടിന്റെ തലക്കെട്ട് അച്ചടിക്കുക" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "ഇപ്പോള്‍ ഉള്ള പാട്ടിന്റെ കലാകാരനെ അച്ചടിക്കുക" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "ഇപ്പോള്‍ ഉള്ള പാട്ടിന്റെ ദൈര്‍ഘ്യം അച്ചടിക്കുക" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "വടക്ക്" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "ഇപ്പോള്‍ ഉള്ള പാട്ടിന്റെ നിലവാരം നേടുക" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "" #: ../xl/main.py:490 msgid "Volume Options" msgstr "ശബ്ദത്തിനുള്ള ഐശ്ചികങ്ങള്‍" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "ഇപ്പോള്‍ ഉള്ള ശബ്ദ ശതമാനം അച്ചടിക്കുക" #: ../xl/main.py:507 msgid "Other Options" msgstr "മറ്റ് 'ഓപ്ഷനുകള്'" #: ../xl/main.py:509 msgid "Start new instance" msgstr "" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "ഈ സഹായ സന്ദേശം കാണിച്ച ശേഷം പുറത്തു കടക്കുക" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "പ്രോഗ്രാമിന്റെ വകഭേതം കാണിച്ച ശേഷം പുറത്തു കടക്കുക" #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "ചെറുതാക്കി വച്ചു തുടങ്ങുക (കഴിയുമെന്കില്‍ ട്രേയില്‍ )" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "ഡയറക്‌റ്ററി" #: ../xl/main.py:536 msgid "Set data directory" msgstr "" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "" #: ../xl/main.py:543 msgid "LEVEL" msgstr "നില" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "പിഴവ് തിരുത്തുന്നതിന് സഹായകമായ ഔട്ട്പുട്ട് കാണിയ്ക്കുക" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:555 msgid "TYPE" msgstr "" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "" #: ../xl/main.py:580 msgid "Entire Library" msgstr "ശേഖരം മുഴുവന്‍" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "ക്രമമില്ലാത്ത %d" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "" #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr "" #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "" #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "യാന്ത്രികം" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "ഇഷ്ടാനുസൃതം" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "" #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "" #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "" #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "" #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "" #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "" #: ../xl/lyrics.py:305 msgid "Local" msgstr "" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "" #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr "" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "" #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "" #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "" #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "" #: ../xlgui/properties.py:54 msgid "Website" msgstr "" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "" #: ../xlgui/properties.py:57 msgid "Author" msgstr "" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "" #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "" #: ../xlgui/devices.py:81 msgid "Device" msgstr "" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "" #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "" #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "" #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "" #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "" msgstr[1] "" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "" #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "" #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "" #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "" #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "" #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "" #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "" #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "" #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "" #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "" #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "" #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "" #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "" #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" #~ msgid "Toggle Play or Pause" #~ msgstr "കളിയും നിര്ത്തലും ഇവിടെ മാറ്റിമറിക്കുക" #~ msgid "Decreases the volume by VOL%" #~ msgstr "VOL% ശബ്ദം കുറയ്ക്കുക" #~ msgid "Increases the volume by VOL%" #~ msgstr "VOL% ശബ്ദം കൂട്ടുക" dist/copy/po/PaxHeaders.26361/da.po0000644000175000017500000000012312233027260015362 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 29 ctime=1382821553.03304693 exaile-3.3.2/po/da.po0000644000000000000000000036172312233027260014337 0ustar00rootroot00000000000000# Danish translation for exaile # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2012-07-29 07:12+0000\n" "Last-Translator: TLE \n" "Language-Team: Danish \n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-08-28 05:25+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "%d dag, " msgstr[1] "%d dage, " #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "%d time, " msgstr[1] "%d timer, " #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "%d minut, " msgstr[1] "%d minutter, " #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d sekund" msgstr[1] "%d sekunder" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "%dd, " #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "%dt, " #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "%dm, " #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "%ds" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "%dd " #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "%d:%02d:%02d" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "%d:%02d" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "Aldrig" #: ../xl/formatter.py:702 msgid "Today" msgstr "I dag" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "I går" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "Kunne ikke migrere fra 0.2.14" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "Brug: exaile [TILVALG]... [URI]" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "Tilvalg" #: ../xl/main.py:421 msgid "Playback Options" msgstr "Afspilningsindstillinger" #: ../xl/main.py:423 msgid "Play the next track" msgstr "Spil det næste nummer" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "Spil det forrige nummer" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "Stop afspilning" #: ../xl/main.py:429 msgid "Play" msgstr "Afspil" #: ../xl/main.py:431 msgid "Pause" msgstr "Pause" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "Sæt afspilning på pause eller genoptag" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "Stop afspilning efter nuværende nummer" #: ../xl/main.py:440 msgid "Collection Options" msgstr "Indstillinger for samlinger" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "STED" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "Tilføj nummer fra STED til samling" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:454 msgid "Track Options" msgstr "Nummertilvalg" #: ../xl/main.py:456 msgid "Query player" msgstr "Forespørg afspiller" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "Vis en pop op med data for det aktuelle nummer" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "Udskriv titlen på det nuværende nummer" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "Udskriv albumtitlen på det nuværende nummer" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "Udskriv kunstnernavn for det nuværende nummer" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "Udskriv længden af det nuværende nummer" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "N" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "Sæt vurderingen af det aktuelle spor til N%" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "Hent bedømmelse af det aktuelle nummer" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "Udskriv den aktuelle afspilningsposition som tidspunkt" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "Udskriv den aktuelle afspilningsposition i procent" #: ../xl/main.py:490 msgid "Volume Options" msgstr "Tilvalg for lydstyrke" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "Forøger lydstyrken med N%" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "Formindsker lydstyrken med N%" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "Slår lyden til eller fra" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "Udskriv den aktuelle procentvise lydstyrke" #: ../xl/main.py:507 msgid "Other Options" msgstr "Andre tilvalg" #: ../xl/main.py:509 msgid "Start new instance" msgstr "Start ny instans" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "Vis denne hjælpebesked og afslut" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "Vis programmets versionsnummer og afslut." #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "Start minimeret (i statusfeltet hvis muligt)" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "" "Slå synligheden af den grafiske brugerflade til eller fra (hvis muligt)" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "" "Start i sikker tilstand - dette kan være nyttigt hvis du har problemer med " "programmet" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" "Tving import af gamle data fra version 0.2.x (overskriver aktuelle data)" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "Importér ikke gamle data fra version 0.2.x" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" "Få kontroltilvalg såsom --play til at starte Exaile, hvis det ikke kører" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "Udviklings- og fejlsøgningstilvalg" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "KATALOG" #: ../xl/main.py:536 msgid "Set data directory" msgstr "Sæt datakatalog" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "MODUL" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "Begræns logudskrift til MODUL" #: ../xl/main.py:543 msgid "LEVEL" msgstr "NIVEAU" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "Begræns logudskrift til NIVEAU" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "Vis fejlfindingsuddata" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "Aktivér fejlsøgning af xl.event. Genererer MASSER af uddata" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:555 msgid "TYPE" msgstr "TYPE" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "Begræns xl.event-fejlsøgning til udskrift af TYPE" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "Reducér udskriftsniveauet" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "Deaktivér D-Bus-understøttelse" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "Deaktivér understøttelse af HAL." #: ../xl/main.py:580 msgid "Entire Library" msgstr "Hele biblioteket" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "Tilfældig %d" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "Bedømmelse > %d" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" "Exaile er ikke færdig med at indlæse. Måske bør du lytte efter signalet " "exaile_loaded?" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "Mærker" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "Udvidelsesmodularkivet er ikke i det rigtige format." #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "Et plugin med navnet \"%s\" er allerede installeret." #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "Plugin arkivet indeholder en usikker sti." #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "Du angav intet sted at indlæse db'en fra" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "Du angav intet sted at gemme db'en" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "Diverse kunstnere" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "Ukendt" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr " / " #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" "Vorbis er et open source, tabsbehæftet lydcodec med høj lydkvalitet, som " "fylder mindre end MP3." #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" "Free Lossless Audio Codec (FLAC) er et open source codec, der komprimerer " "uden at forringe lydkvaliteten." #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" "Apples proprietære lydformat opnår en bedre lydkvalitet end MP3 ved lavere " "bitrater." #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" "VBR er et ældre proprietært men populært lydformat, som giver bedre kvalitet " "end CBR, men som ikke er kompatibelt med visse afspillere." #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" "CBR er et ældre men også populært, proprietært lydformat. CBR giver " "dårligere kvalitet end VBR, men er til gengæld kompatibelt med alle " "afspillere." #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "Et meget hurtigt, frit og tabsfrit lydformat med god komprimering." #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "Automatisk" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "Brugertilpasset" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "Afspiller ikke." #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" "status: %(status)s, titel: %(title)s, kunstner: %(artist)s, album: " "%(album)s, længde: %(length)s, position: %(progress)s%% [%(position)s]" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "Indstillingsversionen er nyere end den nuværende." #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "Vi ved ikke, hvordan den type indstilling gemmes: " #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "Der blev fundet en ukendt indstillingstype!" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "Ugyldig type af afspilningsliste." #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "Afspilningsliste" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "M3U-afspilningsliste" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "PLS-afspilningsliste" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "Ugyldigt format for %s." #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "Uunderstøttet version %(version)s af %(type)s" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "ASX-afspilningsliste" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "XSPF-afspilningsliste" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "_Ikke tilfældig" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "Tilfældige _numre" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "Tilfældige _album" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "Gentagelse _fra" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "Gentag _alle" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "Gentag _en" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "Dynamisk _fra" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "Dynamisk efter lignende _kunstnere" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "sekunder" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "minutter" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "timer" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "dage" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "uger" #: ../xl/lyrics.py:305 msgid "Local" msgstr "Lokalt" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "Sæt i kø" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "Erstat nuværende" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "Tilføj til nuværende" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "Åbn mappe" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" "Filerne kan ikke flyttes til papirkurven. Slet dem fra disken permanent?" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "Flyt til papirkurv" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "_Vis spor, der afspilles" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "Navn:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "Match ethvert af kriterierne" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "Bland resultater" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "Begræns til: " #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr " numre" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "Afspiller ikke" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "Søger: %s" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "Flyt" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "Ny markør" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "Lydløs" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "%d%%" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "Fuld lydstyrke" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" "$title\n" "af $artist\n" "fra $album" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "Diverse" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "%(track_count)d i alt (%(total_duration)s)" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "%d i samling" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "%d bliver vist" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "%d valgt" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "Kø" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "Sæt i kø (%d)" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "#" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "Spornummer" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "Titel" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "Kunstner" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "Komponist" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "Album" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "Længde" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "Disk" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "Disknummer" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "Vurdering" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "Dato" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "Genre" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "Bitrate" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "Placering" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "Filnavn" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "Antal gange afspillet" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "Taktslag/min" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "Sidst afspillet" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "Dato for tilføjelse" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "_Kan ændre størrelse" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "_Autostørrelse" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "Vurdering:" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "Vælg tilfældigt" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "Gentag" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "Dynamisk" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "Fjern aktuelt nummer fra afspilningslisten" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "Bland rækkefølge på spilleliste" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "Ny afspilningsliste" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "Omdøb" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "Kræver udvidelsesmoduler, som muliggør dynamiske afspilningslister" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "Tilføj lignende numre til afspilningslisten dynamisk" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "Indtast URL der skal åbnes" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "Åbn URL" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "Vælg filtype (efter filendelse)" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "Vælg medie der skal åbnes" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "Understøttede filer" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "Musikfiler" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "Afspilningslistefiler" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "Alle filer" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "Vælg katalog der skal åbnes" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "Eksportér den aktuelle afspilningsliste" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "Afspilningliste gemt som %s." #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "Luk %s" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "Gem ændringer til %s før lukning?" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "Du mister dine ændringer, hvis du ikke gemmer dem." #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "Luk uden at gemme" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "Gemte %(count)s ud af %(total)s." #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "Du angav ikke et navn til din afspilningsliste" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "Navnet du indtastede til afspilningslisten bruges allerede." #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "Luk faneblad" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "$title (af $artist)" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "Slå til/fra: Stop efter valgte nummer" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "Der opstod en afspilningsfejl!" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "Bufrer: %d%%..." #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "Fortsæt afspilning" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "Sæt afspilning på pause" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "Eksport af afspilningslisten mislykkedes!" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "Start afspilning" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "Exaile - Musikafspiller" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "_Ny afpilningsliste" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "Åbn _URL" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "Åbn mapper" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "_Eksportér den nuværende afspilningsliste" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "Genstart" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "_Samling" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "_Kø" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "_Omslag" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "Værktøjslinje til _afspilningsliste" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "_Kolonner" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "_Ryd afspilningsliste" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "_Enhedshåndtering" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "Gen_skan samling" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "_Egenskaber for nummer" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "Afbryd" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "Oprindeligt album" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "Tekstforfatter" #: ../xlgui/properties.py:54 msgid "Website" msgstr "Webside" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "Omslag" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "Oprindelig kunstner" #: ../xlgui/properties.py:57 msgid "Author" msgstr "Forfatter" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "Oprindelig dato" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "Arrangør" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "Dirigent" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "Optræder" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "Ophavsret" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "Sangtekster" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "Nummer" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "Version" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "ISRC" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "Kodet af" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "Organisation" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "Ændret" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "Antal gange afspillet" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "Redigerer nummer %(current)d af %(total)d" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "i" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "Anvend den aktuelle værdi for alle numre" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "Vis omslag" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "Hent omslag" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "Fjern omslag" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "Omslag til %s" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "Omslagsindstillinger for %(artist)s - %(album)s" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "Der blev ikke fundet nogle omslag." #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "Ikon" #: ../xlgui/devices.py:81 msgid "Device" msgstr "Enhed" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "Driver" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "Søger i samling..." #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "Skanner %s..." #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "Slå kø til eller fra" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "Læg elementer i kø" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "Egenskaber" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "Ny station" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "Ny smart-afspilningsliste" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "Redigér" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "Eksporter spilleliste" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "Slet afspilningsliste" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "" "Er du sikker på, at du permanent vil slette den valgte afspilningsliste?" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "Indtast det ønskede navn for afspilningslisten" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "Omdøb afspilningsliste" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "Fjern" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "Afspilningsliste %d" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "Tilføj en mappe" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "Mappe ikke tilføjet." #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" "Mappen er allerede tilføjet din samling eller ligger i en undermappe i " "samlingen." #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "Overfører til %s..." #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "Indlæser streams..." #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "Tilføj radiostation" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "URL:" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "Gemte stationer" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "Radiostreams" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "Opdatér" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "Angiv navnet du ønsker på din nye afspilningsliste" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "Genre - kunstner" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "Genre - Album" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "Genskan samling" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "Størrelse" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s Kb" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "og" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "er" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "er ikke" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "indeholder" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "indeholder ikke" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "mindst" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "højst" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "før" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "efter" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "mellem" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "større end" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "mindre end" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "i de sidste" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "ikke i de sidste" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "Afspiller" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "År" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "%(first)s, %(second)s og andre" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "%(first)s og %(second)s" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "Smart-afspilningslister" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "Tilpassede afspilningslister" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "Tilføj Smart-afspilningsliste" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "Redigér smart-afspilningsliste" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "Afspilning" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "Udvidelsesmoduler" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "Kunne ikke indlæse info for udvidelsesmodul!" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "Fejl for udvidelsesmodul: %s" msgstr[1] "Fejl for udvidelsesmoduler: %s" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "Kunne ikke deaktivere plugin!" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "Kunne ikke aktivere udvidelsesmodul!" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "Vælg et udvidelsesmodul" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "Udvidelsesmodul-arkiverne" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "Installationen af udvidelsesmodulfil fejlede!" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "Omslag" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "Udseende" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "Samling" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "den det en et" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "Gendan standardværdier" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "Genstart Exaile?" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "Der kræves en genstart for denne ændring træder i kraft." #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "Handling" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "Genvej" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "Afspilningslister" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "Om Exaile" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "© 2009-2012" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" "Ophavsret (C) 2008-2010 Adam Olsen \n" "\n" "Dette program er fri software. Du kan redistribuere og/eller modificere det " "under de betingelserne som er angivet i GNU General Public License, som er " "udgivet af Free Software Foundation. Enten version 2 af licensen eller " "(efter eget valg) enhver senere version.\n" "\n" "Dette program distribueres i håb om at det vil vise sig nyttigt, men UDEN " "NOGEN FORM FOR GARANTI, uden selv de underforståede garantier omkring " "SALGBARHED eller EGNETHED TIL ET BESTEMT FORMÅL. Yderligere detaljer kan " "læses i GNU General Public License.\n" "\n" "Du bør have modtaget en kopi af GNU General Public License sammen med dette " "program. Hvis ikke, så skriv til Free software Foundation, Inc., 51 Franklin " "Street, Fifth Floor, Boston, MA 02110-1301, USA.\n" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "Omslagshåndtering" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "Afspil i tilfældig rækkefølge" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "Gentag afspilning" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "Omslagssøgning" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "_Brug som omslag" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "_Fil" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "_Redigér" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "_Vis" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "Værk_tøjer" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "_Hjælp" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "Forrige spor" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" "Stop afspilning\n" "\n" "Højreklik for at stoppe efter nummeret" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "Næste nummer" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0:00 / 0:00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "Egenskaber for nummer" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "_Tilføj mærke" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "_Fjern mærke" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "ab → A_b" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "Skriv første bogstav i alle mærker med stort" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "_Foregående" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "_Næste" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "Beskrivelse:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "Samlingshåndtering" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "Overvåget" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "Radio" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "Føj alle numre til afspilningslisten" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "Importér cd" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "Tilføj station" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "Filer" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "Forrige besøgte mappe" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "Næste besøgte mappe" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "En mappe op" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "Opdatér mappevisning" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "Hjemmemappe" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "Søg: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "Ryd søgefelt" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "Samlingen er tom." #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "Tilføj musik" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" "Opdatér vinduet med samlingen\n" "(Hold Skift-tasten nede for at genskanne samlingen)" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "Brug omslag, der er indlejret i mærker" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "Brug omslag fra lokale filer" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" "Denne indstilling vil søge for billedfiler med omslag i \n" "samme mappe som musikfilen." #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "Hent automatisk omslag når afspilning starter" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "Rækkefølger for søgning i omslag:" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "(træk for at ændre rækkefølge)" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "Åbn sidste afspilningslister ved opstart" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "Spørg om at gemme brugertilpassede afspilningslister ved afslutning" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "Erstat indhold ved dobbeltklik på siderude" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" "Numre der tilføjes ved at dobbeltklikke i ruderne vil erstatte indholdet af " "den aktuelle afspilningsliste, frem for at blive tilføjet." #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "Brug gradvise overgange ved brugerhandlinger" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "Varighed af fade (ms):" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "Brug crossfading (EKSPERIMENTEL)" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "Varighed af crossfade (ms):" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "Destination for lyduddata: " #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "Brugertilpasset rørledning til uddata:" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "Genoptag afspilning ved start" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "Genoptag afspilning i pausetilstand" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "Normal" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "Unified (ustabil)" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "Udvidelsesmodul" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "Aktiveret" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "Ingen plugin valgt" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "Installerede udvidelsesmoduler" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "Forfattere:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "Version:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "Installér" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "Ingen udvidelsesmoduler valgt" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "Tilgængelige udvidelsesmoduler" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "Installér opdateringer" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "Opdateringer" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "Installér udvidelsesmodulfil" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "Vis altid fanebladsbjælke" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "Placering af faneblad:" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "Vis antal numre i samling" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "Brug alpha-gennemsigtighed:" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" "Advarsel: Denne indstilling kan forsage grafikfejl, hvis den bruges i en " "vindueshåndtering, som ikke understøtter komposition." #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "Vis statusikon" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "Minimér til statusfelt" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "Luk til systembakke" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "Spring til den nuværende sang ved næste skift" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "Vis splash ved opstart" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "Venstre" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "Højre" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "Øverst" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "Nederst" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "Indstillinger" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" "Ord der skal fjernes fra begyndelsen af kunstnermærker ved sortering " "(adskilt af mellemrum):" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "(Højreklik for at gendanne standarder)" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "Brug filbaseret detektering af samlinger" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "Enhedshåndtering" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "Tilføj enhed" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "Type af enhed:" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "Fundne enheder:" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "Brugertilpasset: " #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "Køhåndtering" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "Søger efter stemning..." #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "Stemning fundet." #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "Kunne ikke læse stemningslinje." #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "Programfilen for stemningslinjen er ikke tilgængelig." #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "Stemningslinje" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "Fejl ved kørsel af streamripper" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "Streamripper" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "Vækkeur" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "Kontakter Shoutcast-server..." #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "Fejl ved oprettelse af forbindelse til Shoutcast-server." #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "Indtast søgenøgleordene" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "Shoutcast-søgning" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "Søgeresultater" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "Søgning" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "Ingen sangtekster fundet." #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "Spring til: " #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "Enhver" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "Sangtekstfremviser" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "AudioScrobbler" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "Slå audioscrobbling til" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "Equalizer" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "Luk ned efter afspilning" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "Computeren vil blive lukket ned når afspilningen er færdig." #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "Computeren kunne ikke lukkes ned ved hjælp af D-Bus." #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "Notify-osd-påmindelser" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "%(title)s" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "af %(artist)s" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "fra %(album)s" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "IPython-konsol - Exaile" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "Vis IPython-konsol" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "IPython-konsol" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "Underret" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" "af %(artist)s\n" "fra %(album)s" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "Importerer cd..." #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "Lyddisk" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "Cd" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "Spornummer" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "Disknummer" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "Antal afspilninger" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "Gentag segment" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "Gentag begyndelse" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "Gentag slutning" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "Minitilstand" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "$tracknumber - $title" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "$title af $artist" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "$title ($__length)" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "Forrige" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "Gå til forrige spor" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "Forrige nummer" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "Næste" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "Gå til næste spor" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "Næste nummer" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "Afspil/Pause" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "Start, stands eller genoptag afspilning" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "Start afspilning" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "Fortsæt afspilning" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "Pause" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "Stop" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "Stop afspilningen" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "Fortsæt afspilning efter nuværende nummer" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "Lydstyrke" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "Ændr lydstyrken" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "Gendan" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "Gendan hovedvindue" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "Gendan hovedvindue" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "Vælg bedømmelse af nuværende nummer" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "Nummervælger" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "Simpel nummerliste-vælger" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "Knap til afspilningsliste" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "Tilgå den nuværende afspilningsliste" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "$title ($current_time / $total_time)" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "Statusknap" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "Afspilningsposition og adgang til den nuværende afspilningsliste" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "Statuslinje" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "Afspilningsposition og søgning" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "ReplayGain" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "Slip for at vælge" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "Tilføj og afspil" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "Tilføj" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "Klar" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "Søger i Jamendo-katalog..." #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "Henter sangdata..." #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "On-screen-display" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "Omslag fra Amazon" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "Podcasts" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "Podcast" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "Opdatér podcast" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "Slet" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "Indtast URL på den podcast, der skal tilføjes" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "Åbn Podcast" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "Indlæser %s..." #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "Fejl ved indlæsning af Podcast." #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "Indlæser Podcast..." #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "Kunne ikke gemme podcastfil" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "Skrivebordsomslag" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "Multi-vækkeur" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "Kontekst" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "Kontekstinfo" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "Bogmærk dette nummer" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "Slet bogmærke" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "Ryd bogmærker" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "Bogmærker" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "Pause ved pauseskærm" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "DAAP-server" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "DAAP-klient" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "Manuelt..." #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "Indtast IP-adresse og port til delingen" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "Indtast IP-adresse og port." #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" "Denne server understøtter ikke flere forbindelser.\n" "Du skal stoppe afspilning før du henter sange." #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "Opdater serverliste" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "Afbryd forbindelse til server" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "Vælg et sted at gemme" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "Forbind til DAAP..." #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "Gør den afspillede del mørkere, frem for at bruge en markør" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "Mørkeniveau:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "Brug signalstil" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "Vis kun signalet, ikke stemning" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "Brug farvetema " #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "Basisfarve:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "Basisfarve" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "Gemmeplacering:" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "Relay-port:" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "Rip til en enkelt fil" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "Slet ufuldstændige filer" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "API-nøgle:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "Alarmtidspunkt" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "Mandag" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "Tirsdag" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "Onsdag" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "Torsdag" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "Fredag" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "Lørdag" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "Søndag" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "Alarmdage" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "Brug fading" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "Forøgelse:" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "Vis overlay:" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "Vis omslag" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "Cirkelvisning" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "Tekstprocentdel" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "Ingen" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "Opdatér sangtekster" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "Indsend numre ved hjælp af Audioscrobbler" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "Vis menupunkt for at slå indsending til/fra" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "Adgangskode:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "Brugernavn:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "før" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "+12 dB" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "0" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "-24 dB" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "29" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "59" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "119" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "237" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "474" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "947" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "1.9K" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "3.8K" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "7.5K" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "15K" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "Ved skift af nummer" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "Ved start, pause eller stop af afspilning" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "Når musemarkøren holdes over statusfeltikonet" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "Når hovedvinduet har fokus" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "Visning" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "Brug albumomslag som ikoner" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "Brug medieikoner for pause, stop og genoptag" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "Ikoner" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "Kunstnerlinje:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" "Mærkerne \"%(title)s\", \"%(artist)s\" og \"%(album)s\" vil blive " "erstattet af deres respektive værdier. Titlen vil blive erstattet med " "\"Ukendt\" hvis den er tom." #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "Sammendrag:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "Albumlinje:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "Indhold" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "Ugennemsigtighed af terminal:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "Skrifttype:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "Baggrundsfarve:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "Ændr størrelse på viste omslag" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "Kun kunstner:" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "Kun album:" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" "Meddelelsen, der skal vises som hovedtekst i påmindelsen. Koderne " "\"%(title)s\", \"%(artist)s\" og \"%(album)s\" vil blive erstattet af titel, " "kunstner og albumnavn. Hvis mærket ikke kendes, vil der i stedet stå \"Ukendt" "\"." #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "Både kunstner og album:" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "Meddelelsestekst" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "Ogg Vorbis" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "FLAC" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "AAC" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "MP3 (VBR)" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "MP3 (CBR)" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "WavPack" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "Importformat: " #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "Importkvalitet: " #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "Importsti: " #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "Altid øverst" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "Vis i procesliste" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "Vis vinduesdekorationer:" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "Vis på alle skriveborde" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "Fuld" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "Simpel" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "Foretræk albumvis korrektion" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "Foretræk albumvis ReplayGain-korrektion frem for nummervis korrektion." #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "Beskyt ved afklipning" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "Beskyt mod støj forårsaget af overforstærkning" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "Yderligere forstærkning, der anvendes på alle filer" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "Yderligere forstærkning (dB):" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" "Korrektion der bruges til filer, der ikke indeholder ReplayGain-information" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "Niveau for reservekorrektion (dB):" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "Sortér efter:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "Retning for ordning:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "Resultater:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "Avanceret" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "Faldende" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "Stigende" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "Udgivelsesdato" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "Bedømmelse denne uge" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "Bedømmelse denne måned" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "Antal gange føjet til afspilningsliste" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "Antal gange hentet" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "Antal gange lyttet til" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "Stjernemarkeret" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "Dato for stjernemærkning" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "Genre/mærker" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" "Besøg http://aws.amazon.com/ \n" "for at oprette en Amazon AWS-konto og finde denne information" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "Tilføj Podcast" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "Forankring:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "X-forskydning:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "billedpunkter" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "Y-forskydning:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "Tilsidesæt omslagsstørrelse" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "Størrelse:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "Benyt udtoning" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "Udtoningsvarighed:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "ms" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "Øverst til venstre" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "Øverst til højre" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "Nederst til venstre" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "Nederst til højre" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "Tilføj" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "Begynd forfra på afspilningsliste" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "Indtast venligst din Last.fm-godkendelse:" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "Opret konto på Last.fm" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "Brug omslag i bogmærkemenuen (træder i kraft ved næste genstart)" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "Servernavn:" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "Servervært:" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "Port:" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "Server aktiveret" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "Nuværende sang" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" "Angiver status i Pidgin for det, der afspilles nu. Du kan se flere " "understøttede tjenester i Pidgins OSS." #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" "Erstatter standardstatuslinjen med en stemningslinje.\n" "Afhænger: moodbar" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "Multimedietaster til GNOME" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" "Tilføjer understøttelse for at styre Exaile ved hjælp af GNOMEs " "multimedietaster. Kompatibel med GNOME >= 2.20.x" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" "Tillader dig at optage streams med streamripper.\n" "Afhænger: streamripper" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "Afspiller musik på et bestemt tidspunkt.\n" "\n" "Bemærk at når det angivne tidspunkt oprinder, vil Exaile blot opføre sig som " "havde du trykket på afspil-knappen. Sikr dig derfor, at den ønskede musik " "befinder sig i afspilningslisten." #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "Last.fm-omslag" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "Søg i Last.fm efter omslag" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "Angiver omslag og tilføjer nogle menuelementer til AWN for Exaile" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "Shoutcast-radio" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "Shoutcast-radioliste" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "Mærkeredigering med Ex Falso" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" "Integrerer mærkeredigeringsprogrammet Ex Falso med Exaile.\n" "Afhænger: Ex Falso." #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" "Tilføjer et sidefaneblad, der viser sangtekster for nummeret, der nu " "afspilles." #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" "Indsender lytteinformation til Last.fm og tilsvarende tjenester, der " "understøtter AudioScrobbler" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "XKeys" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "Globale genvejstaster ved hjælp af xlib (mmkeys.so)" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "En 10-bånds equalizer" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "Lyrics Fly" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "Udvidelsesmodul til at hente sangtekster fra lyricsfly.com" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "Librivox" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "Gennemse og lyt til lydbøger fra Librivox.org." #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "Tillader lukning af computeren når afspilning stopper." #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "Understøttelse for medieafspillere gennem USB Mass Storage" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" "Understøttelse for bærbare medieafspillere gennem USB Mass Storage-" "protokollen" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "Enheder" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "Dynamiske Last.fm-afspilningslister" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "Last.fm-motoren for dynamiske afspilningslister" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" "Dette udvidelsesmodul viser bobler med påmindelser, når en sang afspilles, " "stoppes eller afspilning genoptages, enten med sangens omslag eller et " "medieikon, der angiver den seneste handling.\n" "\n" "Afhænger: python-notify\n" "Anbefaler: notify-osd" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "Giver en IPython-konsol, der kan bruges til at manipulere Exaile." #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "Viser en påmindelse, når afspilningen af et nummer starter" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "Cd-afspilning" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "Information" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "A-B gentag" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "Gentager et segment af et nummer flydende." #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "Kompakt tilstand for Exaile med en konfigurérbar grænseflade" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "Slår understøttelse af ReplayGain til" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "Slip-statusikon" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" "Giver et alternativt ikon til statusfeltet, hvorpå filer kan slippes.\n" "\n" "Afhænger: python-eggtrayicon" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "Jamendo" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "Tillader adgang til Jamendos musikkatalog." #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "Understøttelse af iPod" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" "Et udvidelsesmodul for iPod-understøttelse. Skrivebeskyttet for øjeblikket, " "ingen overførsel.\n" "\n" "Afhænger af python-gpod." #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" "Søger på Amazon efter omslag\n" "\n" "For at kunne bruge dette udvidelsesmodul, kræves en AWS-API-nøgle og en " "hemmelig nøgle." #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "Karaoke" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "Fjerner stemmer fra musikken" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "Tilføjer simpel understøttelse af Podcast" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "Viser det aktuelle albumomslag på skrivebordet" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "Hej Verden" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "Et simpelt udvidelesmodul som tester modulsystemet" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "Afspiller musik på bestemte tidspunkter og dage.\n" "\n" "Bemærk at når det angivne tidspunkt oprinder, vil Exaile blot opføre sig som " "havde du trykket på afspil-knappen. Sikr dig derfor, at den ønskede musik " "befinder sig i afspilningslisten." #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "Kontekstinformation" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" "Vis diverse informationer om nummeret, der nu afspilles.\n" "Afhænger: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (også " "kendt som PIL)" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "Tillader at gemme og genoptage fra bogmærkepositioner i lydfiler." #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "Lyrics Wiki" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" "Dette udvidelsesmodul integrerer spydaap (http://launchpad.net/spydaap) i " "Exaile, så en samling kan deles over DAAP." #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "Tillader afspilning af DAAP-musikdelinger." #~ msgid "Clear" #~ msgstr "Ryd" #~ msgid "Close" #~ msgstr "Luk" #~ msgid "Close tab" #~ msgstr "Luk faneblad" #~ msgid "Export as..." #~ msgstr "Eksportér som..." #~ msgid "%d KB" #~ msgstr "%d KB" #~ msgid "© 2009-2010" #~ msgstr "© 2009-2010" #~ msgid "GNOME" #~ msgstr "GNOME" #~ msgid "ALSA" #~ msgstr "ALSA" #~ msgid "OSS" #~ msgstr "OSS" #~ msgid "PulseAudio" #~ msgstr "PulseAudio" #~ msgid "JACK" #~ msgstr "JACK" #~ msgid "AWN" #~ msgstr "AWN" #~ msgctxt "yes" #~ msgid "Monday" #~ msgstr "Mandag" #~ msgctxt "yes" #~ msgid "Tuesday" #~ msgstr "Tirsdag" #~ msgctxt "yes" #~ msgid "Wednesday" #~ msgstr "Onsdag" #~ msgctxt "yes" #~ msgid "Thursday" #~ msgstr "Torsdag" #~ msgctxt "yes" #~ msgid "Friday" #~ msgstr "Fredag" #~ msgctxt "yes" #~ msgid "Saturday" #~ msgstr "Lørdag" #~ msgctxt "yes" #~ msgid "Sunday" #~ msgstr "Søndag" #~ msgctxt "yes" #~ msgid "Use Fading" #~ msgstr "Brug fading" #~ msgctxt "yes" #~ msgid "Minimum volume:" #~ msgstr "Minimal lydstyrke:" #~ msgctxt "yes" #~ msgid "Maximum volume:" #~ msgstr "Maksimal lydstyrke:" #~ msgctxt "yes" #~ msgid "Increment:" #~ msgstr "Forøgelse:" #~ msgctxt "yes" #~ msgid "Time per increment:" #~ msgstr "Tid per trin:" #~ msgid "Secret key:" #~ msgstr "Hemmelig nøgle:" #~ msgid "Awn" #~ msgstr "Awn" #~ msgid "General" #~ msgstr "Generelt" #~ msgid "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgstr "" #~ "{title}\n" #~ "{artist}\n" #~ "fra {album} - {length}" #~ msgid "Autosize" #~ msgstr "Ændr størrelse automatisk" #~ msgid "Exaile" #~ msgstr "Exaile" #~ msgid "Location:" #~ msgstr "Placering:" #~ msgid "New Search" #~ msgstr "Ny søgning" #~ msgid "Resizable" #~ msgstr "Kan ændre størrelse" #~ msgid "Search:" #~ msgstr "Søg:" #~ msgid "Start" #~ msgstr "Start" #~ msgid "Show OSD on track change" #~ msgstr "Vis OSD ved skift af nummer" #~ msgid "Text Font:" #~ msgstr "Skrifttype:" #~ msgid "Stop Playback" #~ msgstr "Stop afspilning" #~ msgid "Stopped" #~ msgstr "Stoppet" #~ msgid "Text Color" #~ msgstr "Skriftfarve" #~ msgid "Vol:" #~ msgstr "Lydstyrke:" #~ msgid "Window Width:" #~ msgstr "Vinduesbredde:" #~ msgid "Window Height:" #~ msgstr "Vindueshøjde:" #~ msgid "Add a directory" #~ msgstr "Tilføj et katalog" #~ msgid "Quit" #~ msgstr "Afslut" #~ msgid "from %s" #~ msgstr "fra %s" #~ msgid "Playing %s" #~ msgstr "Afspiller %s" #~ msgid "Number of Plays" #~ msgstr "Antal afspilninger" #~ msgid "Add Playlist" #~ msgstr "Tilføj spilleliste" #~ msgid "Alarm Days:" #~ msgstr "Alarm dage:" #~ msgid " songs" #~ msgstr " sange" #~ msgid "Choose a file" #~ msgstr "Vælg en fil" #~ msgid "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "Year - Artist\n" #~ "Year - Album\n" #~ "Artist - Year - Album" #~ msgstr "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "År - Artist\n" #~ "År - Album\n" #~ "Artist - År - Album" #~ msgid "Open" #~ msgstr "Åbn" #~ msgid "by %s" #~ msgstr "af %s" #~ msgid "Add to Playlist" #~ msgstr "Tilføj til spilleliste" #~ msgid "Enter the search text" #~ msgstr "Angiv søgetekst" #~ msgid "%(title)s (by %(artist)s)" #~ msgstr "%(title)s (af %(artist)s)" #~ msgid "Select a save location" #~ msgstr "Vælg et sted at gemme" #~ msgid "Plugin Manager" #~ msgstr "Plugin-håndtering" #~ msgid "Part" #~ msgstr "Del" #~ msgid "Original Date" #~ msgstr "Oprindelig dato" #~ msgid "Original Artist" #~ msgstr "Oprindelig kunstner" #~ msgid "Original Album" #~ msgstr "Oprindeligt album" #~ msgid "Genre:" #~ msgstr "Genre:" #~ msgid "Track Number:" #~ msgstr "Spornummer:" #~ msgid "Album:" #~ msgstr "Album:" #~ msgid "Artist:" #~ msgstr "Kunstner:" #~ msgid "Title:" #~ msgstr "Titel:" #~ msgid "Bitrate:" #~ msgstr "Bitfrekvens:" #~ msgid "Import" #~ msgstr "Importér" #~ msgid "Date Added" #~ msgstr "Dato tilføjet" #~ msgid "Last Played" #~ msgstr "Senest spillet" #~ msgid "No covers found" #~ msgstr "Ingen omslag fundet" #~ msgid "Select File Type (By Extension)" #~ msgstr "Vælg filtype (efter endelse)" #~ msgid "File Type" #~ msgstr "Filtype" #~ msgid "Extension" #~ msgstr "Filendelse" #~ msgid " + " #~ msgstr " + " #~ msgid "Export" #~ msgstr "Eksportér" #~ msgid "0:00" #~ msgstr "0:00" #~ msgid " - " #~ msgstr " - " #~ msgid "..." #~ msgstr "..." #~ msgid "Page 1" #~ msgstr "Side 1" #~ msgid "Add device" #~ msgstr "Tilføj enhed" #~ msgid "Toggle: Stop after selected track" #~ msgstr "Håndter: Stop efter valgte spor" #~ msgid "" #~ "Path is already in your collection, or is a subdirectory of another path " #~ "in your collection" #~ msgstr "" #~ "Stien er allerede i din samling eller i en sti tilhørende en undermappe i " #~ "din samling." #~ msgid "Invalid file extension, file not saved" #~ msgstr "Filen er ikke gemt da filendelsen ikke er gyldig" #~ msgid "Choose a file to open" #~ msgstr "Vælg en fil at åbne" #~ msgid "Show a popup of the currently playing track" #~ msgstr "Vis popup af det nuværende nummer" #~ msgid " & " #~ msgstr " & " #~ msgid "Encoded By" #~ msgstr "Kodet af" #~ msgid "Save As..." #~ msgstr "Gem som..." #~ msgid "_Save As..." #~ msgstr "Gem _som..." #~ msgid "Delete track" #~ msgstr "Slet spor" #~ msgid "Remove item" #~ msgstr "Fjern element" #~ msgid "Move selected item up" #~ msgstr "Flyt markeret element op" #~ msgid "Move selected item down" #~ msgstr "Flyt markeret element ned" #~ msgid "Close this dialog" #~ msgstr "Luk denne dialog" #~ msgid "Remove All" #~ msgstr "Fjern alle" #~ msgid "Clear bookmarks" #~ msgstr "Ryd bogmærker" #~ msgid "Delete bookmark" #~ msgstr "Slet bogmærke" #~ msgid "Bookmark this track" #~ msgstr "Bogmærk dette spor" #~ msgid "iPod support" #~ msgstr "iPod support" #~ msgid "Plugin to fetch lyrics from lyricwiki.org" #~ msgstr "Udvidelsesmodul for at hente sange fra lyricwiki.org" #~ msgid "Enable Fading" #~ msgstr "Aktivér fading" #~ msgid "Fading:" #~ msgstr "Fading:" #~ msgid "Alarm:" #~ msgstr "Alarm:" #~ msgid "Alarm Name:" #~ msgstr "Alarm navn:" #~ msgid "Alarm Time:" #~ msgstr "Alarm tid:" #~ msgid "Maximum Volume:" #~ msgstr "Maksimum volumen:" #~ msgid "Restart Playlist" #~ msgstr "Genstart spilleliste" #~ msgid "Minimum Volume:" #~ msgstr "Minimum volumen:" #~ msgid "Name - Time" #~ msgstr "Navn - tid" #~ msgid "Use Album Covers As Icons" #~ msgstr "Brug albumcovers som ikon" #~ msgid "Decreases the volume by VOL%" #~ msgstr "Mindsker lydstyrken med VOL%" #~ msgid "Increases the volume by VOL%" #~ msgstr "Øger lydstyrken med VOL%" #~ msgid "Filter event debug output" #~ msgstr "Filtrér fejlsøgningsuddata for handlinger" #~ msgid "Plugin archive contains an unsafe path" #~ msgstr "Arkivet med udvidelsesmoduler indeholder en usikker sti" #~ msgid "Plugin archive is not in the correct format" #~ msgstr "Arkivet med udvidelsesmoduler er ikke i det rigtige format" #~ msgid "A plugin with the name \"%s\" is already installed" #~ msgstr "Der er allerede installeret et udvidelsesmodul ved navn \"%s\"" #~ msgid "Streaming..." #~ msgstr "Streamer..." #~ msgid "New playlist title:" #~ msgstr "Ny titel på afspilningsliste:" #~ msgid "Custom playlist name:" #~ msgstr "Brugertilpasset navn for afspilningsliste:" #~ msgid "" #~ "Exaile Music Player\n" #~ "Not playing" #~ msgstr "" #~ "Exaile - Musikafspiller\n" #~ "Afspiller ikke" #~ msgid "In pause: %s" #~ msgstr "På pause: %s" #~ msgid "_Rename Playlist" #~ msgstr "_Omdøb afspilningsliste" #~ msgid "_Close Playlist" #~ msgstr "_Luk afspilningsliste" #~ msgid "C_lear All Tracks" #~ msgstr "_Ryd alle numre" #~ msgid "%d covers to fetch" #~ msgstr "%d omslag at hente" #~ msgid "No track" #~ msgstr "Ingen numre" #~ msgid "%(minutes)d:%(seconds)02d" #~ msgstr "%(minutes)d:%(seconds)02d" #~ msgid "%(playlist_count)d showing, %(collection_count)d in collection" #~ msgstr "%(playlist_count)d vist, %(collection_count)d i samling" #~ msgid "Add item" #~ msgstr "Tilføj element" #~ msgid "%(year)d-%(month)02d-%(day)02d" #~ msgstr "%(year)d-%(month)02d-%(day)02d" #~ msgid "New custom playlist name:" #~ msgstr "Navn på ny brugertilpasset afspilningsliste:" #~ msgid "Repeat playlist" #~ msgstr "Gentag afspilningsliste" #~ msgid "" #~ "This will permanantly delete the selected tracks from your disk, are you " #~ "sure you wish to continue?" #~ msgstr "" #~ "Dette vil permanent slette de valgte numre fra din disk - er du sikker på " #~ "at du vil fortsætte?" #~ msgid "0/0 tracks" #~ msgstr "0/0 numre" #~ msgid "Dynamically add similar tracks" #~ msgstr "Tilføj lignende numre dynamisk" #~ msgid "Clear Playlist" #~ msgstr "Ryd afspilningslisten" #~ msgid "Randomize the order of the current playlist" #~ msgstr "Bland rækkefølgen for den aktuelle afspilningsliste" #~ msgid "_Randomize Playlist" #~ msgstr "_Bland afspilningsliste" #~ msgid "_Go to Playing Track" #~ msgstr "_Hop til nummeret, der afspilles" #~ msgid "_Close" #~ msgstr "_Luk" #~ msgid "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgstr "" #~ "Bevæg on screen display-vinduet dertil hvor det skal dukke op" #~ msgid "Opacity Level:" #~ msgstr "Uigennemsigtighed:" #~ msgid "Display OSD when hovering over tray icon" #~ msgstr "Vis OSD når markøren befinder sig over statusfeltikonet" #~ msgid "Display a progressbar in the OSD" #~ msgstr "Vis en statuslinje i OSD" #~ msgid "Use alpha transparency (if supported)" #~ msgstr "Brug alfagennemsigtighed (hvis det understøttes)" #~ msgid "Install a third party plugin from a file" #~ msgstr "Installér et tredjepartsudvidelsesmodul fra en fil" #~ msgid "Playback engine (requires restart): " #~ msgstr "Afspilningsmotor (kræver genstart): " #~ msgid "These options only affect the unified engine." #~ msgstr "Disse indstillinger angår kun unified-motoren." #~ msgid "" #~ "OSD\n" #~ "Drag to the location you'd like the\n" #~ "OSD to appear" #~ msgstr "" #~ "OSD\n" #~ "Vælg den position, hvor du ønsker\n" #~ "OSD skal fremkomme" #~ msgid "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager" #~ msgstr "" #~ "Mathias Brodala\n" #~ " \n" #~ " Oversættelseskoordinator" #~ msgid "Popup" #~ msgstr "Pop-op" #~ msgid "Restore Main Window" #~ msgstr "Gendan hovedvindue" #~ msgid "Seeking: " #~ msgstr "Søger: " #~ msgid "Display window decorations" #~ msgstr "Vis vinduesdekorationer" #~ msgid "Creates an MPRIS D-Bus object to control Exaile" #~ msgstr "Opretter et MPRIS-D-Bus-objekt til at styre Exaile" #~ msgid "" #~ "Adds support for playing audio CDs.\n" #~ "Requires python-cddb to look up tags." #~ msgstr "" #~ "Tilføjer understøttelse for afspilning af lyd-cd'er.\n" #~ "Kræver python-cddb for at kunne slå mærker op." #~ msgid "A plugin for iPod support" #~ msgstr "Et udvidelsesmodul for iPod-understøttelse" #~ msgid "Pauses/resumes playback on screensaver start/stop" #~ msgstr "" #~ "Standser og genoptager afspilning når pauseskærmen startes og stoppes" dist/copy/po/PaxHeaders.26361/fa.po0000644000175000017500000000012412233027260015365 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.069046931 exaile-3.3.2/po/fa.po0000644000000000000000000031351512233027260014335 0ustar00rootroot00000000000000# Persian translation for exaile # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2012-07-29 07:13+0000\n" "Last-Translator: Masoud Abdar \n" "Language-Team: Persian \n" "Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Launchpad-Export-Date: 2012-08-28 05:27+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "" #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "" #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "" #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "" #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "هرگز" #: ../xl/formatter.py:702 msgid "Today" msgstr "امروز" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "دیروز" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "نمی‌توان از ۰.۲.۱۴ مهاجرت کرد" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "امکانات" #: ../xl/main.py:421 msgid "Playback Options" msgstr "تنظیمات پخش" #: ../xl/main.py:423 msgid "Play the next track" msgstr "قطعه بعدی را پخش کن" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "قطعه قبلی را پخش کن" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "توقف بازنواخت" #: ../xl/main.py:429 msgid "Play" msgstr "پخش" #: ../xl/main.py:431 msgid "Pause" msgstr "مکث" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "توقف یا ادامه پخش" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "پخش را بعد از قطعه کنونی متوقف کن" #: ../xl/main.py:440 msgid "Collection Options" msgstr "" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:454 msgid "Track Options" msgstr "مشخصات قطعه" #: ../xl/main.py:456 msgid "Query player" msgstr "استفسار پخش‌کننده" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "عنوان شيار جاري را چاپ كن" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "آلبوم شيار جاري را چاپ كن" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "هنرمند شيار جاري راچاپ كن" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "مدت شيار جاري را چاپ كن" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "دریافت امتیاز برای قطعه‌ی جاری" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "چاپ موقعیت پخش جاری به صورت زمان" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "" #: ../xl/main.py:490 msgid "Volume Options" msgstr "مشخصات حجم صدا" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "درصد حجم صدای کنونی را نمایش بده" #: ../xl/main.py:507 msgid "Other Options" msgstr "انتخاب‌های دیگر" #: ../xl/main.py:509 msgid "Start new instance" msgstr "شروع نمونه‌ی جدید" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "" #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "شروع در حالت کمینه (" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "تغییر پدیداری GUI (در صورت امکان)" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "شروع در حالت ساده - بعضی اوقات زمانی که مشکلاتی وجود دارد مفید است" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "شاخه" #: ../xl/main.py:536 msgid "Set data directory" msgstr "تنظیم فهرست راهنمای داده‌ها" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "" #: ../xl/main.py:543 msgid "LEVEL" msgstr "" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "نمایش خروجی اشکال‌زدایی" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:555 msgid "TYPE" msgstr "نوع" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "از سطح خروجی بکاه" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "" #: ../xl/main.py:580 msgid "Entire Library" msgstr "تمام كتابخانه" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "%d تصادفي" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "امتیاز دادن > %d" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" "Exaile هنوز بارگذاری را تمام نکرده است. شاید شما باید سیگنال exail_loaded را " "بشنوید؟" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "" #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "شما جايی را براي ذخيره بانك اطلاعات تعیین نكرديد" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "هنرمند هاي محتلف" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "ناشناخته" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr "" #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "" #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "خودکار" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "سفارشی" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "پخش نمی‌شود." #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "" #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "ما نميدانيم كه چگونه اين نوع تنظيمات را ذخيره كنيم: " #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "يك نوع ناشناخته تنظيم پيدا شد." #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "" #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "فهرست پخش" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "" #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "ثانیه" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "دقیقه‌" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "ساعت" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "روز" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "هفته" #: ../xl/lyrics.py:305 msgid "Local" msgstr "" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "نام:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "نتايج تصادفي" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "محدود به: " #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr "" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "در حال اجرا نیست" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "#" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "شماره‌ی شیار" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "عنوان" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "هنرمند" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "مؤلف" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "آلبوم" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "مدت" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "دیسک" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "شمارۀ دیسک" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "ارزیابی" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "تاریخ" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "نوع" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "میزان ارسال بیت" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "موقعیت" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "نام پرونده" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "شمارش پخش" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "آخرین پخش" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "پویا" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "فهرست پخش جدید" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "تغییر نام‌" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "پرونده‌های پشتیبانی شده" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "پرونده‌های صوتی" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "پرونده‌ی فهرستِ پخش" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "همه‌ی پرونده‌ها" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "تغيرات گم خواهد شد اگر شما آنها را ذخيره نكنيد" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "بسته كن بدون ذخيره كردن" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "" #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "شما نامي براي ليست پخش وارد نكرديد" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "" #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "" #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "ادامه پخش" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "توقف موقت پخش" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "آغاز پخش" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "Exaile Music Player" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "_فهرست جدید" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "گشودن ـURL" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "_ستون ها" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "انصراف" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "آلبوم اصلی" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "" #: ../xlgui/properties.py:54 msgid "Website" msgstr "سایت" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "هنرمند اصلی" #: ../xlgui/properties.py:57 msgid "Author" msgstr "" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "تاریخ اصلی" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "تنظیم‌کننده" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "مجری" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "حق نشر" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "متن آهنگ‌ها" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "قطعه" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "نسخه" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "سازمان" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "از:" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "نمايش جلد" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "واكشي جلد" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "حذف پوشش" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "" #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "" #: ../xlgui/devices.py:81 msgid "Device" msgstr "" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "درحال بررسی مجموعه..." #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "" #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "آيتم هاي داخل صف" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "مشخصات" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "ویرایش کردن" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "صادرات فهرست پخش" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "حذف کردن فهرست" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "آيا مطمئناً ميخواهيد كه ليست پخش را براي هميشه حذف كنيد؟" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "نام جديد را كه براي لست باز پخش تان مي خواهيد وارد كنيد" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "تغییر نام" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "حذف" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "" #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "" #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "بازآوری‌" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "نام را كه براي ليست پخش جديد ميخواهيد وارد كنيد" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "اندازه‌" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s کیلوبایت" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "و" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "هست" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "نیست‌" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "شامل‌" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "ندارد" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "حداقل" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "حداکثر" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "پیش از" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "پس از" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "بین" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "سال" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "فهرستهای پخش هوشمند" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "سفارشي سازي ليست پخش" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "زياد كردن ليست پخش هوشمند" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "ويرايش كردن ليست پخش هوشمند" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "افزونه‌ها" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "" msgstr[1] "" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "مجموعه" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "فهرستهای پخش" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "Exaile در مورد" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "جستجوگر جلد" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "_پرونده" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "_ویرایش" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "_نما" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "_ابزارها" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "_راهنما" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "شیار قبلی" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "شیار بعدی" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0:00 / 0:00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "شرح:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "رادیو" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "اضافه کردن ایستگاه" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "فایل ها" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "دايركتوري بعدي ديده شده" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "دايركتوري بعدي ديده شده" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "دايركتوري شخصي" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "جستجو: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "" #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "ترتيب جستجوي جلد:" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "مرتب سازي) (درگ كنيد براي دوباره" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "" #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "افزونه" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "فعال" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "افزونه‌های نصب شده" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "نویسندگان:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "نسخه:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "نصب" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "هیچ افزونه‌ی انتخاب نشده" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "افزونه‌های دردسترس" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "نصب بروز رساني ها" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "بروز رساني ها" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "نمايش پرده اسپلاش در هنگام شروع" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "تنظیمات‌" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "مديريت قطعات" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "نوع قطعه:" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "قطعات كشف شده:" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "فرمايشي: " #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "" #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "" #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "كلمه كليدي جستجو را وارد كنيد" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "نتايج جستجو" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "جستجو" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "" #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "" #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "قبلی" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "بعدی" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "پخش/مکث" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "توقف" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "" #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "پادکست" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "" #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "" #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "" #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "" #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "دوشنبه" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "سه‌شنبه" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "چهارشنبه" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "پنج شنبه" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "جمعه" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "شنبه" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "یک‌شنبه" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "استفاده از محوسازی" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "زياد شونده:" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "رمز عبور:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "نام کاربر:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "۰" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "رنگ پسزمینه:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "پیشرفته" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "افزودن" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "دستگاه‌ها" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" #~ msgid "Close tab" #~ msgstr "بستن زبانه" #~ msgid "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgstr "" #~ "{عنوان}\n" #~ "{هنرمند}\n" #~ "on {آلبوم} - {طول}l" #~ msgid "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgstr "" #~ "پنجره روی صفحه را به مکانی که میخواهید آنجا ظاهر شود حرکت دهید " #~ msgid "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "Year - Artist\n" #~ "Year - Album\n" #~ "Artist - Year - Album" #~ msgstr "" #~ "هنرمتد\n" #~ "آلبوم\n" #~ "ژانر - هنرمند\n" #~ "ژانر - آلبوم\n" #~ "سال - هنرمند\n" #~ "سال - آلبوم\n" #~ "هنرمند - سال - آلبوم" #~ msgid "General" #~ msgstr "کلیات" #~ msgid "Clear Playlist" #~ msgstr "پاک کردن Playlist" #~ msgid "Exaile" #~ msgstr "Exaile" #~ msgid "Location:" #~ msgstr "موقعیت:" #~ msgid "New Search" #~ msgstr "جستجوی جدید" #~ msgid "Popup" #~ msgstr "بالاپر" #~ msgid "Resizable" #~ msgstr "قابل تغییر اندازه" #~ msgid "Start" #~ msgstr "شروع" #~ msgid "Stopped" #~ msgstr "متوقف شده‌" #~ msgid "Text Color" #~ msgstr "رنگ متن" #~ msgid "_Close" #~ msgstr "_بستن" #~ msgid "Text Font:" #~ msgstr "قلمِ متن:" #~ msgid "Window Height:" #~ msgstr "ارتفاع پنجره:" #~ msgid "Window Width:" #~ msgstr "عرض پنجره:" #~ msgid "Alarm Days:" #~ msgstr "روزهای هشدار:" #~ msgid "Open" #~ msgstr "باز کردن" #~ msgid "Add Playlist" #~ msgstr "افزودن فهرست پخش" #~ msgid "Relay Port:" #~ msgstr "درگاه بازپخش کننده:" #~ msgid "Choose a file" #~ msgstr "انتخاب یک پرونده" #~ msgid "Quit" #~ msgstr "خروج" #~ msgid "from %s" #~ msgstr "از %s" #~ msgid "Playing %s" #~ msgstr "در حال پخش %s" #~ msgid "by %s" #~ msgstr "توسط %s" #~ msgid "Add to Playlist" #~ msgstr "افزودن به فهرست پخش" #~ msgid "Set rating for current song" #~ msgstr "تنظيم درجه بندي براي آهنگ جاري" #~ msgid "Get rating for current song" #~ msgstr "گرفتن درجه آهنگ جاري" #~ msgid "order must be a list or tuple" #~ msgstr "ترتيب بايد ليست و يا چندگانه باشد" #~ msgid "Buffering: 100%..." #~ msgstr "در حال ميانگيري: 100%....." #~ msgid " songs" #~ msgstr " آهنگ ها" #~ msgid "0:00" #~ msgstr "0:00" #~ msgid "Select File Type (By Extension)" #~ msgstr "انتخاب نوع فايل (توسط پسوند)" #~ msgid "File Type" #~ msgstr "نوع فايل" #~ msgid "Extension" #~ msgstr "پسوند" #~ msgid "No covers found" #~ msgstr "جلد پيدا نشد" #~ msgid "Enter the search text" #~ msgstr "متن جستجو را وارد كنيد" #~ msgid "Number of Plays" #~ msgstr "شماره پخش ها" #~ msgid "Choose a file to open" #~ msgstr "يك فايل براي باز كردن انتخاب كنيد" #~ msgid "Export" #~ msgstr "صادر" #~ msgid "Invalid file extension, file not saved" #~ msgstr "پسوند نا درست، فايل ذخيره نشد" #~ msgid "Add a directory" #~ msgstr "زياد كردن دايرکتورى" #~ msgid " + " #~ msgstr " + " #~ msgid " - " #~ msgstr " - " #~ msgid "0/0 tracks" #~ msgstr "شيار 0/0" #~ msgid "Autosize" #~ msgstr "اندازه خود كار" #~ msgid "Page 1" #~ msgstr "صفحه 1" #~ msgid "Stop Playback" #~ msgstr "متوقف كردن باز نواخت" #~ msgid "Vol:" #~ msgstr "درجه صدا:" #~ msgid "..." #~ msgstr "..." #~ msgid "Add device" #~ msgstr "زياد كرد قطه" #~ msgid "Display a progressbar in the OSD" #~ msgstr "نمايش نوار حركت كننده در حالت نمايش بروي صفحه" #~ msgid "Opacity Level:" #~ msgstr "ميزان مكدريت" #~ msgid "Show OSD on track change" #~ msgstr "نمايش نمايش بروي صفحه همراه تغير شيار" #~ msgid "Personal" #~ msgstr "شخصي" #~ msgid "Recommended" #~ msgstr "توصيه شده" #~ msgid "Neighbourhood" #~ msgstr "همسايگي" #~ msgid "Loved Tracks" #~ msgstr "شيار هاي دوستداشتني" #~ msgid "LastFM Radio" #~ msgstr "رايو اخير اف ام" #~ msgid "Maximum Volume:" #~ msgstr ":حد اكثر درجه صدا" #~ msgid "Alarm Name:" #~ msgstr ":نام هشدار" #~ msgid "Alarm Time:" #~ msgstr ":زمان هشدار" #~ msgid "Alarm:" #~ msgstr ":هشدار" #~ msgid "Enable Fading" #~ msgstr "فعال سازي پژمردن" #~ msgid "Fading:" #~ msgstr "پژمردن‌:" #~ msgid "Minimum Volume:" #~ msgstr "حد اكثر درجه صدا:" #~ msgid "Name - Time" #~ msgstr "نام - زمان" #~ msgid "Restart Playlist" #~ msgstr "دوباره راه اندازي ليست پخش" #~ msgid "Toggle Play or Pause" #~ msgstr "تعویض بین پخش و مکث" #~ msgid "Print the position inside the current track as time" #~ msgstr "مکان داخل شیار کنونی را به زمان نشان بده" #~ msgid "Print the progress inside the current track as percentage" #~ msgstr "پیشرفت داخل شیار کنونی را به درصد نشان بده" #~ msgid "Plugin archive contains an unsafe path" #~ msgstr "آرشیو افزونه شامل مسیری نام امن است" #~ msgid "" #~ "Exaile Music Player\n" #~ "Not playing" #~ msgstr "" #~ "پخش‌کننده‌ی موزیک Exaile\n" #~ "پخش نمی‌شود" #~ msgid "Save As..." #~ msgstr "ذخیره به عنوان..." #~ msgid "In pause: %s" #~ msgstr "در توقف :%s" #~ msgid "_Rename Playlist" #~ msgstr "_تغییر نام فهرست" #~ msgid "Decreases the volume by VOL%" #~ msgstr "کاهش حجم صدا به وسیله‌ی VOL%" #~ msgid "Increases the volume by VOL%" #~ msgstr "افزایش حجم صدا به وسیله‌ی VOL%" #~ msgid "Filter event debug output" #~ msgstr "فیلتر خروجی عیب‌یابی رویداد" dist/copy/po/PaxHeaders.26361/zh_CN.po0000644000175000017500000000012412233027260016000 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.013046929 exaile-3.3.2/po/zh_CN.po0000644000000000000000000036251612233027260014755 0ustar00rootroot00000000000000# Simplified Chinese translation for exaile # Copyright (c) 2010 Free Software Foundation, Inc. # This file is distributed under the same license as the exaile package. # Aron Xu , 2010. # fujianwzh , 2010. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2012-07-29 07:19+0000\n" "Last-Translator: Phil \n" "Language-Team: Simplified Chinese \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Launchpad-Export-Date: 2012-08-28 05:29+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "%d 天, " #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "%d 时, " #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "%d 分, " #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d 秒" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "" #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "" #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "" #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "" #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "未曾播放" #: ../xl/formatter.py:702 msgid "Today" msgstr "今天" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "昨天" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "从 0.2.14 迁移失败" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "用法: exaile [选项]... [URI]" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "选项" #: ../xl/main.py:421 msgid "Playback Options" msgstr "回放选项" #: ../xl/main.py:423 msgid "Play the next track" msgstr "播放下一音轨" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "播放上一音轨" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "停止回放" #: ../xl/main.py:429 msgid "Play" msgstr "播放" #: ../xl/main.py:431 msgid "Pause" msgstr "暂停" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "暂停或启动回放" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "当前音轨后停止回放" #: ../xl/main.py:440 msgid "Collection Options" msgstr "收藏选项" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "地点" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "从 地点 添加音轨到音乐库" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:454 msgid "Track Options" msgstr "音轨选项" #: ../xl/main.py:456 msgid "Query player" msgstr "队列播放" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "弹出显示当前音轨的数据" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "打印当前音轨的标题" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "打印当前音轨的专辑名" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "打印当前音轨的艺术家" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "打印当前音轨的时长" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "N" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "将当前音轨的评分设为 N%" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "获取当前音轨的评分" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "以时间输出当前回放位置" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "以百分比输出当前回放位置" #: ../xl/main.py:490 msgid "Volume Options" msgstr "音量选项" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "增大 N%音量" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "将音量调低 N%" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "静音或取消静音" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "打印当前音量百分比" #: ../xl/main.py:507 msgid "Other Options" msgstr "其他选项" #: ../xl/main.py:509 msgid "Start new instance" msgstr "启动新实例" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "显示这个帮助信息然后退出" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "显示程序的版本号然后退出" #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "启动后最小化(如果可能最小化到托盘)" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "界面可视性切换(如果可能)" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "以安全模式启动——当运行出现问题时会有用" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "强制从0.2.x版本导入旧数据(覆盖现在的数据)" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "不要从0.2.x版本导入旧数据" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "Exaile 未运行时通过 --play 这样的控制选项启动之" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "开发/调试选项" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "目录" #: ../xl/main.py:536 msgid "Set data directory" msgstr "设置数据目录" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "模块" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "限制日志输出为模块" #: ../xl/main.py:543 msgid "LEVEL" msgstr "级别" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "限制日志输出级别为 LEVEL" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "显示调试输出" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "启用 xl.event 调试,将产生大量信息。" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:555 msgid "TYPE" msgstr "类型" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "降低输出等级" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "禁用D-Bus" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "禁用HAL" #: ../xl/main.py:580 msgid "Entire Library" msgstr "整个媒体库" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "随机 %d" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "评分 > %d" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "Exaile 尚未完全载入。也许您该监听 exaile_loaded 信号?" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "标签" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "插件存档没有使用正确的格式" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "名为“%s”的插件已经安装" #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "插件存档包含了一个不安全的路径" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "您没有指定载入数据库的位置" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "您没有定义用于保存数据库的位置" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "多位艺人" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "未知" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr "" #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" "Vorbis 是一个开源的有损音频编解码算法,具备高品质的输出并且文件体积比 MP3 更" "小。" #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "FLAC 是一个开源的无损音频编解码算法。" #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "在低比特率的情况下,Apple 特有的音频格式比 MP3 格式的音质更好。" #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" "一个特有且旧的音频格式,但是也很流行。VBR 格式的音质比 CBR 格式更好,但它与某" "些播放软件不兼容。" #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" "一个特有且旧的音频格式,但是也很流行。CBR 格式的音质不如 VBR 格式好,但它与所" "有播放软件兼容。" #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "一种免费的快速且压缩比很好的无损音频格式。" #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "自动" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "自定义" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "未播放。" #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" "状态:%(status)s,标题:%(title)s,艺术家:%(artist)s,专辑:%(album)s,长" "度:%(length)s,位置:%(progress)s%% [%(position)s]" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "设置的版本比当前版本更新。" #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "Exaile 无法保存以下设置: " #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "发现未知的设置类型" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "无效的播放列表类型" #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "播放列表" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "M3U 播放列表" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "PLS 播放列表" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "%s 为无效的格式" #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "版本 %(version)s 不支持 %(type)s" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "ASX 播放列表" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "XSPF 播放列表" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "随机播放关(_O)" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "随机播放音轨(_T)" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "随机播放专辑(_A)" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "重播_关" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "重播_所有" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "重复(_N)" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "秒" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "分" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "时" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "天" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "周" #: ../xl/lyrics.py:305 msgid "Local" msgstr "本地的" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "替换现有的" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "追加到当前列表" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "打开文件夹" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "文件不能被移至垃圾箱,从磁盘中永久删除吗?" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "查看播放的音轨(_S)" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "名称:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "匹配任一条件" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "随机结果" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "限制在: " #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr " 音轨" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "未播放" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "查找: %s" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "移动" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "新标记" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "已静音" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "最大音量" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" "$title\n" "通过 $artist\n" "来自 $album" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "多个" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "%(track_count)d 总计 (%(total_duration)s)" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "总计 %d 个" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "显示 %d 个" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "查询 (%d)" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "序号" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "曲目编号" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "标题" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "艺术家" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "作曲家" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "专辑" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "时长" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "盘片" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "盘片号" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "评分" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "日期" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "流派" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "比特率" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "位置" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "文件名" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "播放计数" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "BPM" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "最近播放" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "添加日期" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "还原大小(_R)" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "自动调整大小(_A)" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "评分:" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "随机播放" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "重复" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "动态" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "从播放列表移除" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "随机播放列表" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "新建播放列表" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "重命名" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "需要有动态列表功能的插件" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "动态添加相似音轨到播放列表" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "输入要打开的网址" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "打开网址" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "选择文件类型 (高级)" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "选择要打开的媒体" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "支持的文件" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "音乐文件" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "播放列表文件" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "所有文件" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "选择要打开的目录" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "导出目前的播放列表" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "播放列表已存为 %s。" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "关闭 %s" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "关闭之前保存更改到%s?" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "如果不保存,您的更改将会丢失。" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "不保存直接关闭" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "已保存 %(count)s 总共 %(total)s." #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "您未给播放列表命名" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "您输入的播放列表名称已经被使用。" #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "关闭标签" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "$title (按 $artist)" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "切换: 在选中的曲目后停止" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "播放遇到错误" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "正在缓冲:%d%%..." #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "继续回放" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "暂停回放" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "播放列表导出失败" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "开始回放" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "Exaile 音乐播放器" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "新建播放列表(_N)" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "打开网址(_U)" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "打开目录" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "导出目前的播放列表(_E)" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "音乐库(_C)" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "队列(_Q)" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "封面(_O)" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "列(_C)" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "清空播放列表(_C)" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "设备管理器(_D)" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "重新扫描音乐库(_S)" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "音轨属性(_T)" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "取消" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "原始专辑" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "作词" #: ../xlgui/properties.py:54 msgid "Website" msgstr "网站" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "封面" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "原始艺术家" #: ../xlgui/properties.py:57 msgid "Author" msgstr "作者" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "原始日期" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "改编者" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "指挥" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "表演者" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "版权" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "歌词" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "音轨" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "版本" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "国际标准录音码" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "使用编码" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "组织" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "已修改" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "播放次数" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "正在编辑音轨 %(current)d ,共 %(total)d" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "将当前音量应用于所有音轨" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "显示专辑封面" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "获取专辑封面" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "删除封面" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "%s的封面" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "%(artist)s - %(album)s 封面选项" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "未找到封面。" #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "图标" #: ../xlgui/devices.py:81 msgid "Device" msgstr "设备" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "驱动程序" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "扫描音乐库..." #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "正在扫描 %s..." #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "开关队列" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "队列项目" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "属性" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "新电台" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "新建智能播放列表" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "编辑" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "导出播放列表" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "删除播放列表" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "您确定要永久删除选定的播放列表吗?" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "输入新的播放列表名称" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "重命名播放列表" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "移除" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "播放列表 %d" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "添加一个目录" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "目录没有被添加" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "该目录已经在你的收藏夹里或者是在收藏夹里另一个目录的子文件夹里。" #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "正在传输到 %s..." #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "正在加载流..." #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "添加电台" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "网址:" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "已保存的电台" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "电台流媒体" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "刷新" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "为您的新播放列表命名" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "流派 - 艺术家" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "流派 - 专辑" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "重新扫描音乐库" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "大小" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s KB" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "和" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "是" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "不是" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "包含" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "不包含" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "至少" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "至多" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "早于" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "晚于" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "介于" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "大于" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "小于" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "播放" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "年" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "%(first)s, %(second)s 以及其他" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "%(first)s 以及 %(second)s" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "智能播放列表" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "自定义播放列表" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "添加到智能播放列表" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "编辑智能播放列表" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "回放" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "插件" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "不能加载插件信息" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "插件不可用: %s" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "不能禁用插件" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "不能启用插件!" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "选择一个插件" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "插件包" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "插件安装失败" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "封面" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "外观" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "音乐库" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "此" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "初始化设置" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "重新启动Exaile?" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "重起后改变后生效。" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "动作" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "快捷方式" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "播放列表" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "关于 Exaile" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" "版权所有 (C) 2008-2010 Adam Olsen \n" "\n" "本程序为自由软件;您可以在自由软件基金会所发布的 GNU 通用公共许可证 (GPL) 第" "二版或之后任意版本之下自由修改/重发布此软件。\n" "\n" "分发此软件是希望它能够有一些用处,但是我们对它不做任何保证,无论是关于其适销" "性还是对特定用途的适用性。请查看 GNU 通用公共许可证以了解详情。\n" "您应当随此程序获得 GNU 通用公共许可证的一个副本;如果没有,请致函自由软件基金" "会:\n" "Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "封面管理器" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "打乱回放顺序" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "重复" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "专辑封面查找器" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "设为封面(_S)" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "文件(_F)" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "编辑(_E)" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "查看(_V)" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "工具(_T)" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "帮助(_H)" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "上一音轨" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" "停止播放\n" "\n" "在音轨处右击来停止" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "下一音轨" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0:00 / 0:00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "音轨属性" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "添加标签(_D)" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "删除标签(_R)" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "ab → A_b" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "将所有标签的第一个字母大写" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "前一个(_P)" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "下一个(_N)" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "描述:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "音乐库管理" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "已显示" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "电台广播" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "添加全部音轨到播放列表" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "添加光盘" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "添加电台" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "文件" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "上一个已查看的目录" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "下一个已查看的目录" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "返回上级目录" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "刷新目录列表" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "主目录" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "搜索: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "清除搜索框" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "音乐库是空的。" #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "添加音乐" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" "刷新音乐库视图\n" "(按住 Shift 键来重新扫描音乐库)" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "使用本地封面" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "封面搜索顺序:" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "(拖动以调整顺序)" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "启动时打开上次的播放列表" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "关闭时提示保存自定义的播放列表" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "双击窗格将不会把曲目添加到当前播放列表中,而是替换当前播放列表。" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "用户操作时使用匀滑转换" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "淡入淡出持续时间(毫秒):" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "使用匀滑转换(实验性)" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "匀滑转换持续时间(毫秒):" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "音频接收器: " #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "启动时继续上次播放" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "继续已暂停的播放" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "正常" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "统一(不稳定)" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "插件" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "已启用" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "没有选中插件" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "已安装的插件" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "作者:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "版本:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "安装" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "没有选中任何插件" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "可用插件" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "安装更新" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "更新" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "安装插件" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "始终显示标签栏" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "标签位置:" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "显示音轨数量" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "使用透明:" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "警告:如果使用一个没有合成支持的窗口管理器会使此选项导致显示错误" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "显示托盘图标" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "最小化到托盘" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "当音轨改变时跳转到当前曲目" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "启动时显示启动画面" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "左" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "右" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "顶部" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "底部" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "首选项" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "(右击以重置为默认值)" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "使用基于文件编译的检测" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "设备管理器" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "添加设备" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "设备类型:" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "检测到的设备:" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "自定义: " #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "队列管理器" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "正在搜索 mood..." #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "Mood 已找到。" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "无法读取 moodbar 。" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "Moodbar 可执行程序不存在。" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "Moodbar" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "提取流媒体时出错" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "流媒体" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "闹钟" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "联接 Podcast 服务器..." #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "联接 Podcast 服务器出错。" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "输入要搜索的关键字" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "SHOUTcast 搜索" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "搜索结果" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "搜索" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "" #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "同乐会" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "启用同乐会" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "均衡器" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "osd 通知" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "%(title)s" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "艺人:%(artist)s" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "专辑:%(album)s" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "IPython 控制台 - Exaile" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "显示 IPython 控制台" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "IPython 终端" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "通知" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" "艺人:%(artist)s\n" "专辑:%(album)s" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "正在导入 CD..." #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "音频光盘" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "CD" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "音轨号" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "盘片号" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "播放计数" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "迷你模式" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "$tracknumber - $title" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "$title by $artist" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "上一首" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "下一首" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "播放/暂停" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "开始回放" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "停止" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "音量" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "恢复" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "音轨选取器" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "播放列表按钮" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "进度条" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "回放增益" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "添加并播放" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "添加" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "就绪" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "搜索 Jamendo 目录" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "正在取回歌曲数据..." #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "屏幕显示" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "Amazon 封面" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "Podcasts" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "播客" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "刷新 Podcast" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "删除" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "输入要添加的播客网址" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "打开播客" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "正在载入 %s..." #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "载入播客出错。" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "正在载入播客..." #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "无法保存播客文件" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "桌面封面" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "多点闹钟" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "关联菜单" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "书签" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "屏幕保护程序启动时暂停" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "DAAP 客户端" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "手动..." #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "输入共享使用的 IP 地址和端口" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "输入 IP 地址和端口" #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" "这个服务器不支持多重连接。\n" "下载歌曲前您必须停止回放。" #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "与服务器断开连接" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "设置一个保存的目录" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "连接到 DAAP..." #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "加深播放部分而不使用游标" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "加深程度:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "使用波形样式" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "只显示波形,而不是 mood" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "使用颜色方案 " #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "基色:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "基色" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "保存位置:" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "星期一" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "星期二" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "星期三" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "星期四" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "星期五" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "星期六" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "星期日" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "使用淡出淡入" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "增量:" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "无" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "使用 Audioscrobbler 提交音轨" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "密码:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "用户名:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "+12 dB" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "0" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "-24 dB" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "29" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "59" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "119" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "474" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "947" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "1.9K" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "3.8K" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "7.5K" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "15K" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "当音轨发生改变时" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "显示" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "使用专辑封面作为图标" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "图标" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "概览" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "内容" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "字体:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "背景色:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "缩放已显示的封面" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "主体信息" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "Ogg Vorbis" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "FLAC" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "AAC" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "MP3 (VBR)" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "MP3 (CBR)" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "WavPack" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "导入格式: " #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "导入音质: " #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "导入路径: " #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "前端显示" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "在任务列表中显示" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "在所有桌面上显示" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "喜欢逐一专辑校正" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "为重放增益使用每个专辑校正而不是每个曲目校正。" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "使用裁剪保护" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "抵制信号噪音" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "应用额外增强到所有文件" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "功放增益(dB)" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "默认校正无重放增益信息的文件" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "回落校正水平(dB):" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "结果:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "高级" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "降序" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "升序" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "发布日期" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "本周评分" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "本月评分" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "下载数" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "收听数" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "评星级" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "评星级的日期" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "流派/标签" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "添加播客" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "锚点:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "X 偏移:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "像素" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "Y 偏移:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "大小:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "左上" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "右上" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "左下" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "右下" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "添加" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "在书签菜单中显示封面(下次启动时生效)" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "当前歌曲" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" "使用 moodbar 代替标准进度条\n" "依赖:moodbar" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "GNOME 多媒体按键" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "添加支持通过 GNOME 多媒体键系统控制 Exaile。兼容 GNOME >= 2.20.x" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" "让您使用 streamripper 录制流。\n" "依赖:streamripper" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "定时播放音乐。\n" "\n" "注意到了指定的时间,Exaile 会自动开始播放,请确保在你的播放列表中有相应的歌曲" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "Last.fm 封面" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "在 Last.fm 搜索封面" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "高音喇叭" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "高音喇叭列表" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "Ex Falso 标签编辑器" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" "将Ex Falso标签编辑器整合入 Exaile。\n" "依赖: Ex Falso。" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "提交收听信息到 Last.fm 或类似的支持 AudioScrobbler 的服务" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "XKeys" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "使用 xlib (mmkeys.so) 实现的全局快捷键" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "一个10段均衡器" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "歌词滚动" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "从 lyricsfly.com 获取歌词的插件" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "Librivox" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "浏览和倾听来自 Librivox.org 的 乐谱。" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "允许在回放完毕时关闭计算机。" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "支持USB存储器类型的媒体播放器" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "支持访问使用 USB 存储介质协议的可移动媒体播放器" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "设备" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "Last.fm 动态播放列表" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "动态播放列表的 Last.fm 后端" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" "该插件在音乐播放、恢复、停止时显示通知气泡,并且使用封面或媒体图标表示最近的" "动作。\n" "\n" "依赖:python-notify\n" "推荐:notify-osd" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "提供 IPython 控制台来操作 Exaile。" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "音轨开始播放时弹出通知" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "CD 回放" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "A-B 重复" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "反复播放音轨的某部分。" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "兼容模式的 Exaile,有配置界面" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "启用重放增益支持" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "Jamendo" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "启用到 Jamendo 音乐目录的连接。" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "iPod 支持" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" "用于 iPod 支持的插件。目前仅支持读取,尚不可传输。\n" "\n" "基于 python-gpod。" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" "在 Amazon 上搜索封面\n" "\n" "要使用该插件,需要 AWS API 钥匙和密钥。" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "卡拉OK" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "从音频移除人声" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "添加简单的 Podcast 支持" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "在桌面显示当前专辑封面" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "大家好" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "检测基本插件系统的简易插件" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "定时播放音乐。\n" "注意:当时间到时,Exaile 会自动点击播放按钮,所以要确保播放列表中要有音乐。" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "关联菜单信息" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" "显示当前曲目的多种信息。\n" "依赖:libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (即 PIL)" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "允许保存/重新开始音频文件的书签位置。" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "歌词 Wiki" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "允许播放 DAAP 音乐共享。" #~ msgid "Clear" #~ msgstr "清空" #~ msgid "Close" #~ msgstr "关闭" #~ msgid "Close tab" #~ msgstr "关闭标签" #~ msgid "Export as..." #~ msgstr "导出..." #~ msgid "%d KB" #~ msgstr "%d KB" #~ msgid "GNOME" #~ msgstr "GNOME" #~ msgid "ALSA" #~ msgstr "ALSA" #~ msgid "OSS" #~ msgstr "OSS" #~ msgid "PulseAudio" #~ msgstr "PulseAudio" #~ msgid "JACK" #~ msgstr "JACK" #~ msgid "AWN" #~ msgstr "AWN" #~ msgid "API Key:" #~ msgstr "API Key:" #~ msgid "Awn" #~ msgstr "Awn" #~ msgid "Add Playlist" #~ msgstr "添加播放列表" #~ msgid "Choose a file" #~ msgstr "选择文件" #~ msgid "Add to Playlist" #~ msgstr "添加到播放列表" #~ msgid "Clear Playlist" #~ msgstr "清空播放列表" #~ msgid "Location:" #~ msgstr "位置:" #~ msgid "Search:" #~ msgstr "搜索:" #~ msgid "Number of Plays" #~ msgstr "播放次数" #~ msgid "A plugin with the name \"%s\" is already installed" #~ msgstr "插件\"%s\"已安装" #~ msgid "Plugin archive is not in the correct format" #~ msgstr "插件包格式错误" #~ msgid "Choose a file to open" #~ msgstr "选择一个要打开的文件" #~ msgid "0:00" #~ msgstr "0:00" #~ msgid "Buffering: 100%..." #~ msgstr "正在缓冲:100%" #~ msgid "..." #~ msgstr "..." #~ msgid " New song, fetching cover." #~ msgstr " 新歌曲,正在获取封面。" #~ msgid "Plugin archive contains an unsafe path" #~ msgstr "插件包包含不安全的路径" #~ msgid "Streaming..." #~ msgstr "滚动..." #~ msgid "Toggle: Stop after selected track" #~ msgstr "锁定:选中音乐后停止" #~ msgid "Page 1" #~ msgstr "第1页" #~ msgid "0/0 tracks" #~ msgstr "0/0 个音轨" #~ msgid "Streamripper can only record streams." #~ msgstr "媒体流提取程序只能记录流媒体。" #~ msgid "Enable Fading" #~ msgstr "启用渐变" #~ msgid "Fading:" #~ msgstr "渐变:" #~ msgid "Alarm:" #~ msgstr "提醒:" #~ msgid "Alarm Name:" #~ msgstr "提醒名称:" #~ msgid "Alarm Time:" #~ msgstr "提醒时间:" #~ msgid "Restart Playlist" #~ msgstr "重启动播放列表" #~ msgid "Minimum Volume:" #~ msgstr "最小音量:" #~ msgid "Name - Time" #~ msgstr "名称 - 时间" #~ msgid "Maximum Volume:" #~ msgstr "最大音量:" #~ msgid "Decreases the volume by VOL%" #~ msgstr "减小音量至 VOL%" #~ msgid "Increases the volume by VOL%" #~ msgstr "增大音量至 VOL%" #~ msgid "" #~ "Exaile Music Player\n" #~ "Not playing" #~ msgstr "" #~ "Exaile 音乐播放器\n" #~ "未播放" #~ msgid "In pause: %s" #~ msgstr "暂停:%s" #~ msgid "Add to custom playlist" #~ msgstr "添加到自定义播放列表" #~ msgid "_Rename Playlist" #~ msgstr "重命名播放列表(_P)" #~ msgid "_Save As Custom Playlist" #~ msgstr "另存为自定义播放列表(_S)" #~ msgid "_Close Playlist" #~ msgstr "关闭播放列表(_C)" #~ msgid "%(minutes)d:%(seconds)02d" #~ msgstr "%(minutes)d:%(seconds)02d" #~ msgid "Export current playlist..." #~ msgstr "导出当前播放列表..." #~ msgid "Repeat playlist" #~ msgstr "循环播放列表" #~ msgid "Dynamically add similar tracks" #~ msgstr "自动添加相似音轨" #~ msgid "Remove current track from playlist" #~ msgstr "将当前音轨从播放列表中删除" #~ msgid "© 2009" #~ msgstr "© 2009" #~ msgid "" #~ "Left\n" #~ "Right\n" #~ "Top\n" #~ "Bottom" #~ msgstr "" #~ "左\n" #~ "右\n" #~ "上\n" #~ "下" #~ msgid "Plugin Manager" #~ msgstr "插件管理器" #~ msgid "Close this dialog" #~ msgstr "关闭此对话框" #~ msgid "" #~ "Automatic\n" #~ "GNOME\n" #~ "ALSA\n" #~ "OSS\n" #~ "PulseAudio\n" #~ "JACK" #~ msgstr "" #~ "自动\n" #~ "GNOME\n" #~ "ALSA\n" #~ "OSS\n" #~ "PulseAudio\n" #~ "JACK" #~ msgid "Playback engine (requires restart): " #~ msgstr "回放引擎(需要重新启动程序): " #~ msgid " + " #~ msgstr " + " #~ msgid " - " #~ msgstr " - " #~ msgid "_Export current playlist" #~ msgstr "导出当前播放列表(_E)" #~ msgid "Bookmark this track" #~ msgstr "将此音轨加入书签" #~ msgid "Delete bookmark" #~ msgstr "删除书签" #~ msgid "Restore Main Window" #~ msgstr "恢复主窗口" #~ msgid "Available controls" #~ msgstr "可用控制" #~ msgid "Selected controls" #~ msgstr "已选中控制" #~ msgid " & " #~ msgstr " & " #~ msgid "Album Line:" #~ msgstr "专辑:" #~ msgid "Artist Line:" #~ msgstr "艺人:" #~ msgid "On Playback Start, Pause or Stop" #~ msgstr "当回放开始、暂停或停止时" #~ msgid "On Track Change" #~ msgstr "当音轨发生变更时" #~ msgid "Use Album Covers As Icons" #~ msgstr "使用专辑封面作为图标" #~ msgid "Use Media Icons For Pause, Stop and Resume" #~ msgstr "为暂停、停止和恢复使用媒体图标" #~ msgid "Only album" #~ msgstr "仅专辑" #~ msgid "Only artist" #~ msgstr "仅艺人" #~ msgid "Summary" #~ msgstr "概览" #~ msgid "Position" #~ msgstr "位置" #~ msgid "Center horizontally" #~ msgstr "水平居中" #~ msgid "Center vertically" #~ msgstr "竖直居中" #~ msgid "Display window decorations" #~ msgstr "显示窗口装饰" #~ msgid "Horizontal:" #~ msgstr "水平:" #~ msgid "Vertical:" #~ msgstr "竖直:" #~ msgid "Save Location:" #~ msgstr "保存位置:" #~ msgid "Stopped" #~ msgstr "已停止" #~ msgid "Export" #~ msgstr "导出" #~ msgid "Open" #~ msgstr "打开" #~ msgid " (%(queue_count)d queued)" #~ msgstr " (%(queue_count)d 首已排队)" #~ msgid "%d covers to fetch" #~ msgstr "取得 %d 个封面" #~ msgid "These options only affect the unified engine." #~ msgstr "这些选项只影响 unified 引擎。" #~ msgid "Randomize the order of the current playlist" #~ msgstr "随机改变当前播放列表顺序" #~ msgid "_Go to Playing Track" #~ msgstr "转到当前播放音轨(_G)" #~ msgid "Time per Increment:" #~ msgstr "时间每次增量:" #~ msgid "Timer per Increment:" #~ msgstr "定时器每次增量:" #~ msgid "On Tray Icon Hover" #~ msgstr "托盘图标上悬停" #~ msgid "Quit" #~ msgstr "退出" #~ msgid "New playlist title:" #~ msgstr "新建的播放列表标题:" #~ msgid "File Type" #~ msgstr "文件类型" #~ msgid "Extension" #~ msgstr "扩展名" #~ msgid "Start" #~ msgstr "开始" #~ msgid "Display OSD when hovering over tray icon" #~ msgstr "鼠标在托盘图标悬停时显示 OSD" #~ msgid "Show OSD on track change" #~ msgstr "当音轨改变时显示 OSD" #~ msgid "Text Color" #~ msgstr "文本颜色" #~ msgid "Text Font:" #~ msgstr "文本字体:" #~ msgid "Window Height:" #~ msgstr "窗口高度:" #~ msgid "Window Width:" #~ msgstr "窗口宽度" #~ msgid "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "Year - Artist\n" #~ "Year - Album\n" #~ "Artist - Year - Album" #~ msgstr "" #~ "艺人\n" #~ "专辑\n" #~ "流派 - 艺人\n" #~ "流派 - 专辑\n" #~ "年份 - 艺人\n" #~ "年份 - 专辑\n" #~ "艺人 - 年份 - 专辑" #~ msgid "New Search" #~ msgstr "新建搜索" #~ msgid "Popup" #~ msgstr "弹出" #~ msgid "_Close" #~ msgstr "关闭(_C)" #~ msgid "Stop Playback" #~ msgstr "停止回放" #~ msgid "Vol:" #~ msgstr "音量:" #~ msgid "Add device" #~ msgstr "添加设备" #~ msgid "General" #~ msgstr "常规" #~ msgid "Exaile" #~ msgstr "Exaile" #~ msgid "Neighbourhood" #~ msgstr "邻近的" #~ msgid "" #~ "Message that should be displayed in the body of the notification. In each " #~ "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced " #~ "by their respective values. If the tag is not known, \"Unknown\" will be " #~ "filled in its place" #~ msgstr "" #~ "信息将被显示于通知窗主体位置。任何情况下,\"%(title)s\", \"%(artist)s\", " #~ "和 \"%(album)s\" 将被他们各自的值替换。如果标签未知,则用 \"Unknown\" 替代" #~ msgid "Relay Port:" #~ msgstr "中继端口:" #~ msgid "" #~ "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " #~ "replaced by their respective values. The title will be replaced by " #~ "\"Unknown\" if it is empty." #~ msgstr "" #~ "\"%(title)s\",\"%(artist)s\" 和 \"%(album)s\" 三个标签将被其相应值替代。" #~ "如果标题为空则用 \"Unknown\" 替换。" #~ msgid "" #~ "Exaile now uses absolute URI's, please delete/rename your %s directory" #~ msgstr "Exaile 现在使用绝对 URI,请删除/重命名您的 %s 目录" #~ msgid "%(playlist_count)d showing, %(collection_count)d in collection" #~ msgstr "当前显示 %(playlist_count)d 首,音乐库中共 %(collection_count)d 首" #~ msgid "from %s" #~ msgstr "- %s" #~ msgid "Select File Type (By Extension)" #~ msgstr "选择文件类型 (按扩展名)" #~ msgid "Choose a plugin" #~ msgstr "选择插件" #~ msgid "" #~ "Copyright (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "This program is free software; you can redistribute it and/or modify\n" #~ "it under the terms of the GNU General Public License as published by\n" #~ "the Free Software Foundation; either version 2 of the License, or\n" #~ "(at your option) any later version.\n" #~ "\n" #~ "This program is distributed in the hope that it will be useful,\n" #~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" #~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" #~ "GNU General Public License for more details.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along\n" #~ "with this program; if not, write to the Free Software Foundation, Inc.,\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ msgstr "" #~ "版权所有 (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "本程序为自由软件;您可以在自由软件基金会所发布的 GNU 通用公共许可证 (GPL) " #~ "第二版或之后任意版本之下自由修改/重发布此软件。\n" #~ "\n" #~ "分发此软件是希望它能够有一些用处,但是我们对它不做任何保证,无论是关于其适" #~ "销性还是对特定用途的适用性。请查看 GNU 通用公共许可证以了解详情。\n" #~ "您应当随此程序获得 GNU 通用公共许可证的一个副本;如果没有,请致函自由软件" #~ "基金会:\n" #~ "Free Software Foundation, Inc.,\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ msgid "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager" #~ msgstr "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager\n" #~ "Aron Xu\n" #~ " \n" #~ " Simplified Chinese translator\n" #~ "fujianwzh\n" #~ " \n" #~ " Simplified Chinese translator" #~ msgid "" #~ "OSD\n" #~ "Drag to the location you'd like the\n" #~ "OSD to appear" #~ msgstr "" #~ "OSD\n" #~ "拖动 OSD 到您希望的位置" #~ msgid "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgstr "" #~ "{title}\n" #~ "艺人:{artist}\n" #~ "专辑:{album} - {length}" #~ msgid "Opacity Level:" #~ msgstr "透明度:" #~ msgid "Remove All" #~ msgstr "全部删除" #~ msgid "" #~ "Normal\n" #~ "Unified (unstable)" #~ msgstr "" #~ "普通\n" #~ "Unified(不稳定)" #~ msgid "Autosize" #~ msgstr "自适应大小" #~ msgid "Resizable" #~ msgstr "可变大小" #~ msgid "Clear bookmarks" #~ msgstr "清空书签" #~ msgid "Both artist and album" #~ msgstr "艺人和专辑" #~ msgid "Delete track" #~ msgstr "删除音轨" #~ msgid "Save As..." #~ msgstr "另存为…" #~ msgid "Custom playlist name:" #~ msgstr "自定义播放列表名称:" #~ msgid "_Save As..." #~ msgstr "另存为(_S)..." #~ msgid "No track" #~ msgstr "无音轨" #~ msgid "Idle." #~ msgstr "空闲。" #~ msgid "Could not enable plugin: %s" #~ msgstr "无法启用插件:%s" #~ msgid "Could not disable plugin: %s" #~ msgstr "无法禁用插件:%s" #~ msgid "File Size:" #~ msgstr "文件大小:" #~ msgid "Basic" #~ msgstr "基本" #~ msgid "Date:" #~ msgstr "日期:" #~ msgid "Details" #~ msgstr "详细信息" #~ msgid "Bitrate:" #~ msgstr "比特率:" #~ msgid "Genre:" #~ msgstr "流派:" #~ msgid "Album:" #~ msgstr "专辑:" #~ msgid "Artist:" #~ msgstr "艺人:" #~ msgid "Title:" #~ msgstr "标题:" #~ msgid "Length:" #~ msgstr "时长:" #~ msgid "Play Count:" #~ msgstr "播放计数:" #~ msgid "Track Number:" #~ msgstr "音轨号:" #~ msgid "Track _properties" #~ msgstr "音轨属性(_P)" #~ msgid "Start/Pause Playback" #~ msgstr "开始/暂停回放" #~ msgid "Import" #~ msgstr "导入" #~ msgid "Track title format:" #~ msgstr "音轨标题格式:" #~ msgid "Last.fm Dynamic Search" #~ msgstr "Last.fm 动态搜索" #~ msgid "iPod support" #~ msgstr "iPod 支持" #~ msgid " songs" #~ msgstr " 歌曲" #~ msgid "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgstr "移动屏幕上的显示窗口至您想要的位置" #~ msgid "Alarm Days:" #~ msgstr "定时日期:" #~ msgid "Enter the search text" #~ msgstr "输入搜索文字" #~ msgid "Get rating for current song" #~ msgstr "获取当前曲目的评分" #~ msgid "LastFM Radio" #~ msgstr "LastFM 电台" #~ msgid "No covers found" #~ msgstr "未能找到专辑封面" #~ msgid "Playing %s" #~ msgstr "正在播放 %s" #~ msgid "Recommended" #~ msgstr "推荐" #~ msgid "Show a popup of the currently playing track" #~ msgstr "为当前播放音轨弹出提示" #~ msgid "Toggle Play or Pause" #~ msgstr "切换播放或暂停状态" #~ msgid "order must be a list or tuple" #~ msgstr "顺序必须是一个列表或元组" #~ msgid "Filter event debug output" #~ msgstr "过滤事件调试输出" #~ msgid "_Save Changes To Playlist" #~ msgstr "保存改变到播放列表(_S)" #~ msgid "Print the progress inside the current track as percentage" #~ msgstr "显示当前歌曲的播放进度百分比" #~ msgid "Add To New Playlist..." #~ msgstr "添加到新的播放列表..." #~ msgid "Move selected item down" #~ msgstr "选中项下移" #~ msgid "Install plugin file" #~ msgstr "安装插件文件" #~ msgid "Install a third party plugin from a file" #~ msgstr "从文件安装第三方插件" #~ msgid "Use alpha transparency (if supported)" #~ msgstr "使用透明效果(如果支持)" #~ msgid "_Randomize Playlist" #~ msgstr "随机播放列表(_R)" #~ msgid "Seeking: " #~ msgstr "搜索: " #~ msgid "$title ($length)" #~ msgstr "$title ($length)" #~ msgid "When GUI is Focused" #~ msgstr "窗口聚焦时" #~ msgid "Secret Key:" #~ msgstr "密钥:" #~ msgid "Terminal Opacity:" #~ msgstr "终端模糊处理:" #~ msgid "Pauses/resumes playback on screensaver start/stop" #~ msgstr "屏幕保护程序 启动/停止 时,自动 暂停/继续 播放" #~ msgid "A plugin for iPod support" #~ msgstr "用于支持 iPod 的插件" #~ msgid "Tag Covers" #~ msgstr "标签封面" #~ msgid "Searches track tags for covers" #~ msgstr "按音轨标签搜索封面" #~ msgid "Plugin to fetch lyrics from lyricwiki.org" #~ msgstr "从 lyricwiki.org 获取歌词的插件" #~ msgid "" #~ "This will permanantly delete the selected tracks from your disk, are you " #~ "sure you wish to continue?" #~ msgstr "将会永久删除磁盘上的音乐文件,确定要继续吗?" #~ msgid "New custom playlist name:" #~ msgstr "新自定义播放列表名称:" #~ msgid "Move selected item up" #~ msgstr "将所选项上移" #~ msgid "Remove item" #~ msgstr "删除项目" #~ msgid "Add item" #~ msgstr "添加条目" #~ msgid "MPRIS" #~ msgstr "MPRIS" #~ msgid "%(year)d-%(month)02d-%(day)02d" #~ msgstr "%(year)d年%(month)02d月%(day)02d日" #~ msgid "Device class does not support transfer." #~ msgstr "设备类不支持转移。" #~ msgid "%(title)s (by %(artist)s)" #~ msgstr "%(title)s (由 %(artist)s)" #~ msgid "by %s" #~ msgstr "由 %s" #~ msgid "" #~ "Path is already in your collection, or is a subdirectory of another path " #~ "in your collection" #~ msgstr "您的音乐库中已存在该路径或其上层路径。" #~ msgid "Invalid file extension, file not saved" #~ msgstr "无效的扩展名,文件未保存" #~ msgid "" #~ "To sign up for an Amazon AWS account and get \n" #~ "this information visit http://aws.amazon.com/" #~ msgstr "" #~ "注册 Amazon AWS 帐户获取本信息 \n" #~ "网址为 http://aws.amazon.com/" #~ msgid "" #~ "Adds support for playing audio CDs.\n" #~ "Requires python-cddb to look up tags." #~ msgstr "" #~ "支持播放音乐 CD。\n" #~ "需要 python-cddb 查看标签。" #~ msgid "Creates an MPRIS D-Bus object to control Exaile" #~ msgstr "创建 MPRIS D-Bus 对象来控制 Exaile" #~ msgid "Show Menuitem to toggle Submission" #~ msgstr "显示菜单项切换提交" #~ msgid "Print the position inside the current track as time" #~ msgstr "打印当前音轨位置的时间" #~ msgid "C_lear All Tracks" #~ msgstr "清除所有音轨(_L)" #~ msgid "" #~ "Show various informations about the track currently playing.\n" #~ "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2" #~ msgstr "" #~ "显示当前播放音轨的多种信息。\n" #~ "依赖:libwebkit >= 1.0.1,python-webkit >= 1.1.2" #~ msgid "Add a directory" #~ msgstr "添加一个目录" #~ msgid "Display a progressbar in the OSD" #~ msgstr "在 OSD 中显示进度条" #~ msgid "Original Album" #~ msgstr "原始专辑" #~ msgid "Original Date" #~ msgstr "原始日期" #~ msgid "Original Artist" #~ msgstr "原始艺人" #~ msgid "Date Added" #~ msgstr "已添加日期" #~ msgid "Last Played" #~ msgstr "上次播放" #~ msgid "Select a save location" #~ msgstr "选择一个保存位置" #~ msgid "Set rating for current song" #~ msgstr "为当前曲目评分" #~ msgid "Encoded By" #~ msgstr "编码" #~ msgid "Personal" #~ msgstr "个人的" #~ msgid "Loved Tracks" #~ msgstr "喜欢的音乐" dist/copy/po/PaxHeaders.26361/sk.po0000644000175000017500000000012412233027260015414 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.073046931 exaile-3.3.2/po/sk.po0000644000000000000000000036674112233027260014375 0ustar00rootroot00000000000000# Slovak translation for exaile # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2012-07-29 07:18+0000\n" "Last-Translator: Roman Horník \n" "Language-Team: Slovak \n" "Language: sk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 1 : (n>=2 && n<=4) ? 2 : 0;\n" "X-Launchpad-Export-Date: 2012-08-28 05:28+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "%d dní, " msgstr[1] "%d deň, " msgstr[2] "%d dni, " #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "%d hodín, " msgstr[1] "%d hodina, " msgstr[2] "%d hodiny, " #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "%d minút, " msgstr[1] "%d minúta, " msgstr[2] "%d minúty, " #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d sekunda" msgstr[1] "%d sekundy" msgstr[2] "%d sekúnd" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "%dd, " #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "%dh, " #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "%dm, " #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "%ds" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "%dd " #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "%d:%02d:%02d" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "%d:%02d" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "Nikdy" #: ../xl/formatter.py:702 msgid "Today" msgstr "Dnes" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "Včera" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "Nepodarilo sa migrovať z verzie 0.2.14" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "Použitie: exaile [VOĽBA]... [URI]" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "Možnosti" #: ../xl/main.py:421 msgid "Playback Options" msgstr "Možnosti prehrávania" #: ../xl/main.py:423 msgid "Play the next track" msgstr "Prehrať ďaľšiu skladbu" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "Prehrať predchádzajúcu skladbu" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "Zastaviť prehrávanie" #: ../xl/main.py:429 msgid "Play" msgstr "Prehrať" #: ../xl/main.py:431 msgid "Pause" msgstr "Pauza" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "Zastaviť alebo pokračovať v prehrávaní" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "Zastaviť prehrávanie po tejto skladbe" #: ../xl/main.py:440 msgid "Collection Options" msgstr "Možnosti kolekcie" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "Umiestnenie" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "Pridať stopy z umiestnenia do zbierky" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:454 msgid "Track Options" msgstr "Možnosti skladby" #: ../xl/main.py:456 msgid "Query player" msgstr "Preveriť prehrávač" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "Zobrazí popup s dátami aktuálnej skladby" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "Zobraziť názov prehrávanej skladby" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "Zobraziť album prehrávanej skladby" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "Zobraziť interpréta prehrávanej skladby" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "Zobraziť dĺžku prehrávanej skladby" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "N" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "Nastaví ohodnotenie aktuálnej skladby na N%" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "Získa ohodnotenie aktuálnej skladby" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "Vypíše aktuálnu pozíciu prehrávania ako čas" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "Vypíše aktuálny priebeh prehrávania v percentách" #: ../xl/main.py:490 msgid "Volume Options" msgstr "Možnosti hlasitosti" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "Zvýši hlasitosť o N%" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "Zníži hlasitosť o N%" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "Stlmí alebo odtlmí hlasitosť" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "Získať momentálnu hlasitosť v percentách" #: ../xl/main.py:507 msgid "Other Options" msgstr "Ďalšie možnosti" #: ../xl/main.py:509 msgid "Start new instance" msgstr "Spustiť novú inštanciu" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "Zobrazí pomocnú hlášku a skončí" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "Zobrazí verziu programu a skončí" #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "Spustiť minimalizované (do lišty, ak je možné)" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "Zmeniť viditeľnosť GUI (ak je to možné)" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "Spusti v bezpečnom režime - vhodné ak máte pretrvávajúce problémy" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "Nútený import starých dát z verzie 0.2.x (Prepíše súčasné dáta)" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "Neimportovať staré dáta z verzie 0.2.x" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" "Vykonajte kontrolu možností, ako je - zapnutie Exaile, pokiaľ nie je spustený" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "Možnosti Vývoja/Ladenia" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "PRIEČINOK" #: ../xl/main.py:536 msgid "Set data directory" msgstr "Nastaviť priečinok pre dáta" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "MODUL" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "Obmedz výstup logu do MODULE" #: ../xl/main.py:543 msgid "LEVEL" msgstr "ÚROVEŇ" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "Obmedz výstup logu do LEVEL" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "Zobraziť ladiaci výstup" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "Povoliť debugovanie xl.event. Generuje VEĽA výstupu" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:555 msgid "TYPE" msgstr "TYP" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "Limit xl. udalostí pri ladení na výstupe TYPE" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "Znížiť úroveň výstupu" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "Zakázať D-Bus podporu." #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "Zakázať HAL podporu." #: ../xl/main.py:580 msgid "Entire Library" msgstr "Celá knižnica" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "Náhodné %d" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "Hodnotenie > %d" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" "Exaile ešte nedokončil nahrávanie. Chceli by ste si vypočuť exaile_loaded " "signál?" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "Značky" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "Archív pluginov nie je v správnom formáte." #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "Plugin s názvom \"%s\" je už nainštalovaný." #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "Archív pluginov obsahuje nebezpečnú cestu." #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "Nenastavili ste miesto, odkiaľ sa má načítať databáza" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "Nenastavili ste miesto, kde sa má uložiť databáza" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "Rôzni interpréti" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "Neznámy" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr " / " #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" "Vorbis je open source stratový zvukový kodek s vysokou kvalitou výstupu pri " "menšej veľkosti ako mp3." #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" "Free Lossless Audio Codec (FLAC) je open source kódek, ktorý komprimuje, ale " "neznižuje kvalitu zvuku." #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" "Proprietárny stratový zvukový formát od Apple, ktorý dosahuje lepšiu " "kvalitu zvuku ako MP3 pri nižších bitratoch." #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" "Proprietárny starší ale populárny stratový zvukový formát. VBR má lepšiu " "kvalitu ako CBR, ale môže byť nekompatibilný s niektorými prehrávačmi." #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" "Proprietárny starší ale populárny stratový zvukový formát. CBR má horšiu " "kvalitu ako VBR, ale je kompatibilný s každým prehrávačom." #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "Veľmi rýchly bezplatný bezstratový zvukový formát s dobrou kompresiou." #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "Automaticky" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "Voliteľné" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "Neprehráva sa." #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" "stav: %(status)s, titul: %(title)s, interprét: %(artist)s, album: %(album)s, " "dĺžka: %(length)s, pozícia: %(progress)s%% [%(position)s]" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "verzia nastavení je novšia ko súčasná." #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "Nevieme, ako uložiť tento druh nastavení: " #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "Bol nájdený neznámy typ nastavenia!" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "Neplatný typ zoznamu skladieb." #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "Zoznam skladieb" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "M3U zoznam skladieb" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "PLS zoznam skladieb" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "Neplatný formát pre %s." #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "Nepodporovaná verzia %(version)s pre %(type)s" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "ASX zoznam skladieb" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "XSPF zoznam skladieb" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "Náhodné _vypnuté" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "Náhodné _skladby" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "Náhodné _albumy" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "Opakovať _vypnuté" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "Opakovať _všetko" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "Opakovať j_ednu" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "Dynamika _vypnúť" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "Dynamika podľa Similar _Artists" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "sekúnd" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "minút" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "hodín" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "dní" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "týždňov" #: ../xl/lyrics.py:305 msgid "Local" msgstr "Lokálne" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "Zaradiť do fronty" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "Nahraď aktuálny" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "Pripoj k súčasnému" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "Otvoriť priečinok" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "Súbory nie je možné premiestniť do koša. Zmazať ich natrvalo z disku?" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "Presunúť do Koša" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "_Zobraziť hrajúcu stopu" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "Názov:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "Spĺňa aspoň jedno kritérium" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "Náhodný výsledok" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "Obmedziť na: " #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr " stopy" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "Neprehráva sa" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "Hľadanie: %s" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "Presunúť" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "Nový popisovač" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "Stlmený" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "%d%%" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "Hlasitosť naplno" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" "$title\n" "od $artist\n" "z $album" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "Rôzni" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "%(track_count)d z celkových (%(total_duration)s)" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "%d v kolekcii" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "%d zobrazených" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "%d vybraných" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "Fronta" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "Front (%d)" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "č" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "Číslo stopy" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "Názov" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "Interprét" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "Skladateľ" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "Album" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "Dĺžka" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "Disk" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "Číslo disku" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "Hodnotenie" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "Dátum" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "Žáner" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "Dátový tok" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "Umiestnenie" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "Názov súboru" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "Počet prehraní" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "úderov/min" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "Naposledy prehrávané" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "Dátum pridania" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "_Meniť veľkosť" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "_Automatická veľkosť" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "Hodnotenie:" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "Náhodné poradie" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "Opakovať" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "Dynamicky" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "Odstrániť aktuálnu stopu zo zoznamu skladieb" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "Rozhádž plazlist" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "Nový zoznam skladieb" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "Premenovať" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "Vyžaduje modul poskytujúcí dynamické zoznamy skladieb" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "Dynamicky pridávať podobné skladby do zoznamu skladieb" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "Zadaj URL pre otvorenie" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "Otvoriť URL" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "Vyberte typ súboru (by Extension)" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "Vyberte médium na otvorenie" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "Podporované súbory" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "Hudobné súbory" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "Súbory zoznamu skladieb" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "Všetky súbory" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "Vyberte zložku na otvorenie" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "Exportuj aktuálny zoznam skladieb" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "Zoznam skladieb uložený ako %s." #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "Zavrieť %s" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "Uložiť zmeny do %s pred zavretím?" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "Vaše zmeny budú stratené ak ich neuložíte" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "Zavrieť bez uloženia" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "Uložených %(count)s z %(total)s." #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "Nezadali ste názov vášho zoznamu skladieb" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "Zadaný názov zoznamu skladieb je už použitý." #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "Zavrieť kartu" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "$title (od $artist)" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "Prepnúť: Zastaviť po vybranej skladbe" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "Nastala chyba v prehrávaní!" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "Ukladanie do vyrovnávacej pamäte: %d%%" #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "Pokračovať v prehrávaní" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "Pozastaviť prehrávanie" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "Export zoznamu skladieb zlyhal!" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "Spustiť prehrávanie" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "Hudobný prehrávač Exaile" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "_Nový zoznam skladieb" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "Otvoriť _URL" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "Otvoriť adresáre" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "_Exportuj aktuálny zoznam skladieb" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "Reštartovať" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "_Kolekcia" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "_Fronta" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "_Obaly" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "_Ponuka utilít zoznamu skladieb" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "_Stĺpce" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "V_yčisti zoznam skladieb" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "Správca _zariadení" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "Pre_skenovať kolekciu" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "_Vlastnosti skladby" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "Zrušiť" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "Pôvodný album" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "Textár" #: ../xlgui/properties.py:54 msgid "Website" msgstr "Webstránka" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "Obal" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "Pôvodný interprét" #: ../xlgui/properties.py:57 msgid "Author" msgstr "Autor" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "Pôvodný dátum" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "Tvorca" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "Vedúci" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "Umelec" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "Autorské práva" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "Text skladby" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "Stopa" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "Verzia" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "ISRC" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "Kódovanie" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "Organizácia" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "Zmenené" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "Krát prehrávané" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "Úprava skladby %(current)d z %(total)d" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "z:" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "Použiť túto hodnotu do všetkých skladieb" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "Zobraziť obal" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "Pripojiť obal" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "Odstrániť obal" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "Obal pre %s" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "Nastavenia obalu pre %(artist)s - %(album)s" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "Neboli nájdené žiadne obaly." #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "Ikona" #: ../xlgui/devices.py:81 msgid "Device" msgstr "Zariadenie" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "Ovládač" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "Skenuje sa kolekcia..." #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "Skenuje sa %s..." #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "Prepnúť frontu" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "Položky v rade" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "Vlastnosti" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "Nová stanica" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "Nový inteligentný zoznam skladieb" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "Upraviť" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "Exportuj playlist" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "Odstrániť zoznam skladieb" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "Ste si istý že chcete natrvalo vymazať vybraný zoznam skladieb?" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "Zadajte nový názov pre váš zoznam skladieb" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "Premenovať zoznam skladieb" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "Odstrániť" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "Zoznam skladieb %d" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "Pridať priečinok" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "Priečinok nebol pridaný" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" "Priečinok je už súčasťou vašej kolekcie alebo je súčasťou iného priečinka vo " "vašej kolekcii." #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "Prenos do %s..." #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "Načítavajú sa streamy..." #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "Pridať rádio stanicu" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "URL:" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "Uložené stanice" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "Stremy rádií" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "Obnoviť" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "Zadajte názov pre váš nový zoznam skladieb" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "Žáner - Interprét" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "Žáner - Album" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "Preskenovať kolekciu" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "Veľkosť" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s KB" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "a" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "je" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "nie je" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "obsahuje" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "neobsahuje" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "aspoň" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "najviac" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "pred" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "po" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "medzi" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "väčšie ako" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "menšie ako" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "za posledné" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "nebolo za posledné" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "Hrá" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "Rok" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "%(first)s, %(second)s a ostatné" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "%(first)s a %(second)s" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "Inteligentné zoznamy skladieb" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "Vlastné zoznamy skladieb" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "Pridať inteligentný zoznam skladieb" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "Upraviť inteligetný zoznam skladieb" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "Prehrávanie" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "Zásuvné moduly" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "Nepodarilo sa nahrať informácie o zásuvnom module" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "Zlyhal rozširujúci modul: %s" msgstr[1] "Zlyhali rozširujúce moduly: %s" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "Nie je možné deaktivovať zásuvný modul!" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "Nie je možné aktivovať zásuvný modul!" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "Vyberte plugin" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "Archív pluginov" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "Inštalácia pluginu zlyhala!" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "Obaly" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "Vzhľad" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "Kolekcia" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "Nastaviť východzie" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "Reštartovať Exaile?" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "Pre aplikáciu týchto zmien je povinný reštart." #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "Operácia" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "Skratka" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "Zoznamy skladieb" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "O Exaile" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "© 2009-2012" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "Temto program je slobodný softvér; môžete ho redistribuovať a/alebo " "upravovať\n" "ho podľa podmienok GNU General Public License ako ich zverejnila\n" "Free Software Foundation; buď verzia 2 tejto Licencie, alebo\n" "(podľa vášho uváženia) ktorejkoľvek neskoršej verzie.\n" "\n" "Tento program je distribuovaný v nádeji, že bude užitočný,\n" "ale BEZ ZÁRUKY; neposkytujú sa ani odvodené záruky\n" "PREDAJNOSTI alebo VHODNOSTI PRE URČITÝ ÚČEL. Pozri\n" "GNU General Public License pre viac detailov.\n" "\n" "S programom by ste mali obdržať GNU General Public License;\n" "ak nie, napíšte do Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "Správca obalov" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "Poprehadzovať poradie hrania" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "Opakované prehrávanie" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "Vyhľadávač balov" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "_Nastav ako obal" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "_Súbor" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "_Upraviť" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "_Zobraziť" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "_Nástroje" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "_Nápoveda" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "Predchádzajúca skladba" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" "Zastaviť prehrávanie\n" "\n" "Kliknutie pravým tlačidlom pre zastavenie po prehraní vybranej skladby" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "Ďalšia skladba" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0:00 / 0:00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "Vlastnosti skladby" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "P_pridať tag" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "_Odstrániť tag" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "ab → A_b" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "Prvé písmeno všetkých tagov veľkým" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "_Predchádzajúca" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "Ď_alšia" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "Popis:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "Správca kolekcie" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "Monitorované" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "Rádio" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "Vlož všetky skladby do zoznamu skladieb" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "Importovať CD" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "Pridať stanicu" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "Súbory" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "Predchádzajúci navštívený priečinok" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "Následujúci navštívený priečinok" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "Na priečinok o úroveň vyššie" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "Obnoviť obsah priečinku" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "Domovský priečinok" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "Hľadať: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "Vyčistiť políčko vyhľadávania" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "Kolekcia je prázdna." #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "Pridať hudbu" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" "Odnoviť kolekciu\n" "(Podržať Shift klávesu na znovunačítanie kolekcie)" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "Použiť obaly zahrnuté v tagoch" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "Použiť obal z lokálnych súborov" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" "Táto možnosť bude vyhľadávať súbory s obrázkom obalu v \n" "rovnakom adresári, ako sú hudobné súbory." #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "Získať obaly albumov automaticky pri spustení prehrávania" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "(Presunutím zmeniť poradie)" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "Pri spustení otvoriť posledné zoznamy skladieb" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "Vyzvať na uloženie vlastného zoznamu skladieb pri uzatváraní" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" "Dvoj kliknutím na skladbu v paneli ju pridáme do aktuálne prehrávaného " "zoznamu skladieb." #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "Použiť prechod stíšenia pri činnosti užívateľa" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "Doba stišovania skladby (ms):" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "Použiť prelínanie (EXPERIMENTAL)" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "Doba prelínania skladieb (ms):" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "Audio kanál: " #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "Pokračovať v prehrávaní pri spustení" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "Pokračovať v prehrávaní s pozastavením" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "Bežný" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "Rovnaký (nestabilné)" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "Plugin" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "Povolené" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "Nebol vybraný modul" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "Inainštalované pluginy" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "Autori:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "Verzia:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "Inštalovať" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "Nieje vybratý žiaden plugin" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "Dostupné pluginy" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "Inštalovať aktualizácie" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "Aktualizácie" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "Inštalovať plugin" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "Vždy ukázať panel kariet" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "Umiestnenie záložiek:" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "Zobraz počet skladieb v kolekcii" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "Použiť Alpha priehladnosť:" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" "Upozornenie: táto možnosť môže zobraziť chyby ak je použitá s rozhraním bez " "kompozitnej podpory." #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "Zobraziť tray ikonu" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "Minimalizovať do tray oblasti" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "Skryť do oznamovacej oblasti" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "Preskočiť na aktuálnu pieseň pri zmene skladby" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "Zobraziť úvodný obrázok pri štarte" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "Vľavo" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "Vpravo" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "Navrchu" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "Spodok" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "Nastavenia" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "(Pravý klik pre predvolené nastavenia)" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "Správca zariadení" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "Pridať zariadenie" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "Typ zariadenia" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "Nájdené zariadenia:" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "Vlastné: " #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "Správca poradia" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "Vyhľadávam náladu skladby ..." #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "Nálada skladby nájdená." #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "Nemôžem čítať ukazovateľ nálady." #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "Spúštanie ukazovateľa nálady nie je k dispozícii." #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "Ukazovateľ nálady" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "Chyba pri spúšťaní Streamripper" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "Streamripper" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "Budík" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "Kontaktovanie shoutcast servera..." #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "Chyba pri kontaktovaní shoutcast servera." #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "Vlož kľúčové slová vyhľadávania" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "Vyhľadávanie shoutcastu" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "Výsledky hľadania" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "Hľadať" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "Text piesne nenájdený." #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "Ísť na: " #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "Akékoľvek" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "Prezerač textov skladieb" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "AudioScrobbler" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "Zapnúť audioscrobbling" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "Ekvalizér" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "Vypnúť PC po prehraní" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "Počítač bude vypnutí po skončení prehrávania" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "Počítač nemohol byť vypnutý pomocou D-Bus." #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "Obraz-prekrývajúce oznámenia" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "%(title)s" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "od %(artist)s" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "z %(album)s" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "IPython konzola - Exaile" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "Zobraziť IPython konzolu" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "IPython konzola" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "Oznámiť" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" "od %(artist)s\n" "z %(album)s" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "Importovanie CD..." #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "Zvukové CD" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "CD" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "Číslo skladby" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "Číslo disku" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "Počet prehraní" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "Interpret: " #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" "Vedeli ste že...\n" "\n" "%s" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "Opakovať časť" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "Opakovať začiatok" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "Opakovať koniec" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "Mini mód" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "$tracknumber - $title" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "$title od $artist" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "$title ($__length)" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "Predchádzajúca" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "Ísť na predchádzajúcu stopu" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "Predchádzajúca stopa" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "Ďalšia" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "Ísť na nasledujúcu stopu" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "Nasledujúca stopa" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "Prehrať/Pauza" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "Spustiť, pozastaviť alebo pokračovať v prehrávaní" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "Spustiť prehrávanie" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "Pokračovať v prehrávaní" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "Pozastaviť prehrávanie" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "Zastaviť" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "Zastaviť prehrávanie" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "Pokračovať v prehrávaní po tejto stope" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "Hlasitosť" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "Zmeniť hlasitosť" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "Obnoviť" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "Obnoviť hlavné okno" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "Obnoviť hlavné okno" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "Vyber hodnotenie tejto skladby" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "Označovač skladieb" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "Jednoduchý výber zoznamu skladieb" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "Tlačítko zoznamu skladieb" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "Prístup k aktuálnemu zoznamu skladieb" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "$title ($current_time / $total_time)" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "Tlačidlo priebehu" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "Priebeh prehrávania a prístup k aktuálnemu zoznamu skladieb" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "Ukazateľ priebehu" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "Skupina" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "ReplayGain" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "Pridať a hrať" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "Pripojiť" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "Pripravený" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "Vyhľadávam Jamendo katalóg..." #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "Získavam údaje o piesni..." #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "OSD" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "Obaly z Amazonu" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "Podcasty" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "Podcast" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "Obnoviť podcast" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "Vymazať" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "Zadajte URL adresu podcastu" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "Otvoriť podcast" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "Načítava sa %s..." #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "Chyba pri nahrávaní podcastu." #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "Nahrávanie podcastov..." #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "Nemožno uložiť podcast" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "Obal na ploche" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "Multibudík" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "Obsah" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "Súvisiaca informácia" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "Vytvoriť záložku na tejto skladbe" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "Odstrániť záložku" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "Vyčistiť záložky" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "Záložky" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "Pozastaviť pri šetriči obrazovky" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "DAAP Server" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "Klient DAAP" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "Manuálne" #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "Zadajte IP adresu a port pre zdieľanie" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "Zadajte IP adresu a port." #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" "Tento server nepodporuje viacero pripojení.\n" "Pred sťahovaním skladieb zastavte prehrávanie." #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "Obnoviť zoznam serverov" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "Odpojiť zo servera" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "Vyberte umiestnenie pre uloženie" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "Pripojiť k DAAP..." #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "Stmaviť prehranú čast namiesto použitia kurzora" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "Uroveň stmavenia:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "Použiť štýl kriviek" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "Zobraziť iba krivky, nie náladu" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "Použiť farebnú tému " #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "Základná farba:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "Základná farba" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "Umiestnenie uloženia:" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "Port prenosu:" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "Spoj do jediného súboru" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "Zmazať nekompletné súbory" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "API kľúč:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "Čas budenia" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "pondelok" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "utorok" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "streda" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "štvrtok" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "piatok" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "sobota" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "nedeľa" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "Budenie v dňoch" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "Použiť vytrácanie" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "Prírastok:" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "Zobraziť prekrývanie:" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "Zobraziť obaly" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "Žiadne" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "Obnoviť text skladby" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "Odoslať skladby pomocou Audioscrobbler" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "Zobraziť položku ponuky pri prechode na podskupinu" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "Heslo:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "Meno používateľa:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "+12 dB" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "0" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "-24 dB" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "29" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "59" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "119" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "237" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "474" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "947" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "1.9K" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "3.8K" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "7.5K" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "15K" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "Pri zmene skladby" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "Pri spusteni, pozastavení alebo zastavení prehrávania" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "Keď je vybraté hlavné okno" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "Zobraziť" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "Použiť obaly albumov ako ikony" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "Použiť multimediálne ikony pre pozastavenie, zastavenie a pokračovanie" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "Ikony" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "Zrnutie:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "Obsah" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "Nepriehľadnosť terminálu:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "Písmo:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "Farba pozadia:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "Zmeniť veľkosť zobrazeného obalu" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "Len umelec:" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "Len album" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" "Správa ktorá by sa mala zobraziť v texte oznámenia. Vždy budú \"%(title)s" "\", \"%(artist)s\", a \"%(album)s\" prepísaný náhradnými hodnotami. Ak nie " "je známy tag, bude použitý \"Neznámy\"." #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "Umelec aj album:" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "Text správy" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "Ogg Vorbis" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "FLAC" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "AAC" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "MP3 (VBR)" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "MP3 (CBR)" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "WavPack" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "Formát importu: " #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "Kvalita importu: " #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "Cesta importu: " #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "Vždy navrchu" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "Zobraziť v zozname úloh" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "Zobraziť dekorácie okna:" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "Zobraziť na všetkých plochách" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "Plné" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "Jednoduché" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "Preferovať korekciu celého albumu" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" "Preferovať ReplayGain korekciu celého albumu pred korekciou jednej skladby." #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "Použiť ochranu orezaním" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "Chrániť pred nadmerným zosilnením" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "Dodatočné zosilnenie použi na všetky súbory" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "Dodatočné zosilnenie (dB):" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "Náhradné korekcie pre súbory, ktoré nemajú ReplayGain informácie" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "Úroveň poklesu (db):" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "Zoradiť podľa:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "Výsledky:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "Rozšírené" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "Zostupne" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "Vzostupne" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "Dátum vydania" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "Hodnotenie tohto týždňa" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "Hodnotenie tohto mesiaca" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "Počet stiahnutí" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "Počet vypočutí" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "S hviezdičkou" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "Dátum prehrávania" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "Žáner/Tagy" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" "Pre vytvorenie účtu na Amazon AWS a získaní ďalších\n" "informácií navštívte stránku http://aws." "amazon.com/" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "Pridať podcast" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "Kotva:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "Posun X:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "pixelov" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "Posun Y:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "Potlačiť veľkosť obalu" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "Veľkosť:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "Trvanie slabnutia:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "ms" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "Vľavo hore" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "Vpravo hore" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "Vľavo dolu" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "Vpravo dolu" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "Pridať" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "Reštartovať zoznam skladieb" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "Prosím vložte vašu last.fm autentifikáciu:" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "Prihlásiť na last.fm" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" "Použiť obaly albumov v záložkách (efekt sa prejaví pri ďalšom spustení)" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "Názov servra:" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "Hostiteľský server:" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "Port:" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "Server je spustený" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "Aktuálna skladba" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" "Nastav \"práve hrá\" status v Pidgine. Overte FAQ v Pidgine a zistite " "podporované služby." #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" "Nahradí štandardný ukazovateľ priebehu, ukazovateľom nálady.\n" "Závislosti: moodbar" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "GNOME multimediálne klávesy" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" "Pridáva podporu pre multimediálne ovládanie Exaile, pomocou GNOME multimedia " "key system. Kompatibilné s GNOME> = 2.20.x" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" "Umožňuje nahrávanie streamov pomocou streamripper.\n" "Závislosti: streamripper" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "Prehráva hudbu v určitý čas.\n" "\n" "Upozornenie, v určenom čase sa bude Exaile správať akoby ste stlačili " "tlačítko prehrávania, uistite sa, že máte vybraný správny zoznam skladieb na " "prehranie." #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "Obaly Last.fm" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "Vyhľadať obaly na Last.fm" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "Nastaví obal albumu a pridáva niektoré položky menu do AWN pre Exaile" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "Shoutcast rádio" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "Zoznam Shoutcast rádií" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "Ex Falso tag editor" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" "Integruje Ex Falso editor tagov s Exaile.\n" "Závislosti: Ex Falso" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "Pridať bočný panel pre zobrazenie textu práve hrajúcej skladby." #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" "Odosielať profil hudobného vkusu do Last.fm a podobných služieb pomocou " "Audioscrobbler rozšírenia" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "XKeys" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "Globálne skratky použiť xlib (mmkeys.so)" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "10-pásmový ekvalizér" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "Lyrics Fly" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "Rozšírenie na stiahnutie textov z lyricsfly.com" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "Librivox" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "Prehľadať a vypočuť si audioknihy z Librivox.org." #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "Poskytuje možnosť vypnutia počítača na konci prehrávánia." #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "Podpora USB Mass storage media player" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" "Podpora pre prístup prenosných multimediálnych prehrávačov využívajúcich USB " "Mass Storage protokol" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "Zariadenia" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "Last.fm dynamický zoznam skladieb" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "Backend Last.fm pre dynamické zoznamy skladieb" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" "Tento plugin zobrazuje oznamovacie bubliny ked je skladba prehrávaná/" "pokračujúca/zastavená, buď s obalom albumu alebo s multimediálnymi ikonami " "zobrazujúcimi poslednú akciu.\n" "\n" "Závislosti: python-notify\n" "Odporúčané: notify-osd" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "Poskytuje IPython konzolu, cez ktorú je možné ovládať Exaile." #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "Zobrazovať oznámenie keď sa spustí prehrávanie skladby" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "Prehrávanie CD" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "Informácia" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "A-B Opakovať" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "Neustále opakovať časť skladby" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "Kompaktný mód pre Exaile s konfigurovateľným rozhraním" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "Umožňuje ReplayGain" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" "Poskytuje alternatívu lište ikon, ktorý prijíma pustené súbory.\n" "\n" "Závislosti: python-eggtrayicon" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "Jamendo" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "Umožňuje prístup do katalógu hudby Jamendo." #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "Podpora iPod" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" "Rozšírenie pre podporu iPod. Zatiaľ iba na čítanie, prenos nemožný.\n" "\n" "Závislí na python-gpod." #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" "Vyhľadať obaly na Amazon\n" "\n" "Aby ste mohli používať tento plugin, je potrebný AWS API kľúč a tajný kľúč." #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "Karaoke" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "Odstrániť hlas z audia" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "Pridať jednoduchú podporu podcastov" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "Zobrazuje aktuálny obal albumu na vašej ploche" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "Ahoj svet" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "Jednoduchý plugin pre testovanie základných rozšírení systému" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "Prehráva hudbu v určitý čas a deň.\n" "\n" "Upozornenie, v určenom čase sa bude Exaile správať akoby ste stlačili " "tlačítko prehrávania, uistite sa, že máte vybraný správny zoznam skladieb na " "prehranie." #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "Kontextová informácia" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" "Zobrazí rôzne informácie o práve prehrávanej skladbe.\n" "Závislosti: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k." "a. PIL)" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" "Umožňuje ukladanie / obnovenie pozície zo záložiek v hudobných súboroch." #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "Lyrics Wiki" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" "Tento plugin integruje spydaap (http://launchpad.net/spydaap) do Exaile, " "takže je možné kolekciu zdieľať cez DAAP." #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "Umožňuje prehrávanie zdielanej hudby cez DAAP server" #~ msgid "Clear" #~ msgstr "Vyčistiť" #~ msgid "Close" #~ msgstr "Zavrieť" #~ msgid "Close tab" #~ msgstr "Zatvoriť kartu" #~ msgid "Export as..." #~ msgstr "Exportovať ako..." #~ msgid "%d KB" #~ msgstr "%d KB" #~ msgid "© 2009-2010" #~ msgstr "© 2009-2010" #~ msgid "GNOME" #~ msgstr "GNOME" #~ msgid "ALSA" #~ msgstr "ALSA" #~ msgid "OSS" #~ msgstr "OSS" #~ msgid "PulseAudio" #~ msgstr "PulseAudio" #~ msgid "JACK" #~ msgstr "JACK" #~ msgid "AWN" #~ msgstr "AWN" #~ msgid "API Key:" #~ msgstr "API kľúč:" #~ msgctxt "yes" #~ msgid "Monday" #~ msgstr "Pondelok" #~ msgctxt "yes" #~ msgid "Tuesday" #~ msgstr "Utorok" #~ msgctxt "yes" #~ msgid "Wednesday" #~ msgstr "Streda" #~ msgctxt "yes" #~ msgid "Thursday" #~ msgstr "Štvrtok" #~ msgctxt "yes" #~ msgid "Friday" #~ msgstr "Piatok" #~ msgctxt "yes" #~ msgid "Saturday" #~ msgstr "Sobota" #~ msgctxt "yes" #~ msgid "Sunday" #~ msgstr "Nedeľa" #~ msgctxt "yes" #~ msgid "Use Fading" #~ msgstr "Použiť vytrácanie" #~ msgctxt "yes" #~ msgid "Minimum volume:" #~ msgstr "Minimálna hlasitosť" #~ msgctxt "yes" #~ msgid "Maximum volume:" #~ msgstr "Maximálna hlasitosť:" #~ msgctxt "yes" #~ msgid "Increment:" #~ msgstr "Prírastok:" #~ msgctxt "yes" #~ msgid "Time per increment:" #~ msgstr "Čas prírastku:" #~ msgid "Secret key:" #~ msgstr "Tajný kľúč:" #~ msgid "Awn" #~ msgstr "Awn" #~ msgid "Choose a file" #~ msgstr "Vyberte súbor" #~ msgid "Number of Plays" #~ msgstr "Počet prehraní" #~ msgid "Add to Playlist" #~ msgstr "Pridať do zoznamu skladieb" #~ msgid "Add Playlist" #~ msgstr "Pridať zoznam skladieb" #~ msgid "Quit" #~ msgstr "Ukončiť" #~ msgid "Enter the search text" #~ msgstr "Zadajte hľadaný text" #~ msgid "Resizable" #~ msgstr "Roztiahnuteľné" #~ msgid "Text Color" #~ msgstr "Farba písma" #~ msgid "_Close" #~ msgstr "_Zavrieť" #~ msgid "General" #~ msgstr "Všeobecné" #~ msgid "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgstr "" #~ "{nazov}\n" #~ "{Umelec}\n" #~ "na {album} - {dĺžka}" #~ msgid "Autosize" #~ msgstr "Automatická veľkosť" #~ msgid "New Search" #~ msgstr "Nové hľadanie" #~ msgid "Stopped" #~ msgstr "Zastavené" #~ msgid "Show OSD on track change" #~ msgstr "Zobraz OSD pri zmene skladby" #~ msgid "Vol:" #~ msgstr "Hla:" #~ msgid "Open" #~ msgstr "Otvoriť" #~ msgid "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "Year - Artist\n" #~ "Year - Album\n" #~ "Artist - Year - Album" #~ msgstr "" #~ "Interpret\n" #~ "Album\n" #~ "Žáner - Interpret\n" #~ "Žáner - Album\n" #~ "Rok - Artist\n" #~ "Rok - Album\n" #~ "Interpret - Rok - Album" #~ msgid " songs" #~ msgstr " skladby" #~ msgid "Alarm Days:" #~ msgstr "Dni alarmu:" #~ msgid "from %s" #~ msgstr "z %s" #~ msgid "Playing %s" #~ msgstr "Prehráva sa %s" #~ msgid "%(title)s (by %(artist)s)" #~ msgstr "%(title)s (od %(artist)s)" #~ msgid "by %s" #~ msgstr "od %s" #~ msgid "Start" #~ msgstr "Spustiť" #~ msgid "Stop Playback" #~ msgstr "Zastaviť prehrávanie" #~ msgid "Window Height:" #~ msgstr "Výška okna:" #~ msgid "Window Width:" #~ msgstr "Šírka okna:" #~ msgid "Relay Port:" #~ msgstr "Port prenosu:" #~ msgid "Exaile" #~ msgstr "Exaile" #~ msgid "Location:" #~ msgstr "Umiestnenie:" #~ msgid "Search:" #~ msgstr "Hľadať:" #~ msgid "Select a save location" #~ msgstr "Zadaj umiestnenie pre uloženie" #~ msgid "Part" #~ msgstr "Časť" #~ msgid "Original Date" #~ msgstr "Pôvodný dátum" #~ msgid "Original Album" #~ msgstr "Pôvodný album" #~ msgid "Encoded By" #~ msgstr "Enkódovanie" #~ msgid "Title:" #~ msgstr "Titulok:" #~ msgid "Artist:" #~ msgstr "Interpret:" #~ msgid "Album:" #~ msgstr "Album:" #~ msgid "Track Number:" #~ msgstr "Číslo stopy:" #~ msgid "Genre:" #~ msgstr "Žáner:" #~ msgid "Bitrate:" #~ msgstr "Dátový tok:" #~ msgid "Import" #~ msgstr "Import" #~ msgid "Date Added" #~ msgstr "Dátum pridania" #~ msgid "Plugin Manager" #~ msgstr "Manažér modulov" #~ msgid "Opacity Level:" #~ msgstr "Úroveň priehľadnosti:" #~ msgid "A plugin with the name \"%s\" is already installed" #~ msgstr "Plugin s názvom \"%s\" je už nainštalovaný" #~ msgid " New song, fetching cover." #~ msgstr " Nová skladba, získavam obal." #~ msgid "Toggle Play or Pause" #~ msgstr "Prepnút hrať alebo pozastaviť" #~ msgid "Toggle: Stop after selected track" #~ msgstr "Prepnúť: Zastaviť po vybranej skladbe" #~ msgid "Select File Type (By Extension)" #~ msgstr "Vybrať typ súboru (podľa prípony)" #~ msgid "File Type" #~ msgstr "Typ súboru" #~ msgid "Extension" #~ msgstr "Prípona" #~ msgid "Display a progressbar in the OSD" #~ msgstr "V OSD zobraziť priebeh prehrávania" #~ msgid "Add device" #~ msgstr "Pridať zariadenie" #~ msgid "Neighbourhood" #~ msgstr "Okolie" #~ msgid "Loved Tracks" #~ msgstr "Obľúbené skladby" #~ msgid "Personal" #~ msgstr "Osobné" #~ msgid "Recommended" #~ msgstr "Odporúčané" #~ msgid "Show a popup of the currently playing track" #~ msgstr "Zobraziť vyskakovacie okno o momentálne prehrávanej skladbe" #~ msgid "Print the position inside the current track as time" #~ msgstr "Zobraziť časovú pozíciu v rámci skladby" #~ msgid "Print the progress inside the current track as percentage" #~ msgstr "Zobraziť percentuálnu pozíciu v rámci skladby" #~ msgid "Set rating for current song" #~ msgstr "Ohodnotiť súčasnú skladbu" #~ msgid "Get rating for current song" #~ msgstr "Získať hodnotenie súčasnej skladby" #~ msgid "Decreases the volume by VOL%" #~ msgstr "Znížiť hlasitosť o VOL%" #~ msgid "Increases the volume by VOL%" #~ msgstr "Zvýšiť hlasitosť o VOL%" #~ msgid " & " #~ msgstr " & " #~ msgid "%(year)d-%(month)02d-%(day)02d" #~ msgstr "%(year)d-%(month)02d-%(day)02d" #~ msgid "Original Artist" #~ msgstr "Pôvodný interprét" #~ msgid "Streaming..." #~ msgstr "Streamovanie..." #~ msgid "New playlist title:" #~ msgstr "Názov nového playlistu:" #~ msgid "Last Played" #~ msgstr "Naposledy prehrávané" #~ msgid "Save As..." #~ msgstr "Uložiť ako..." #~ msgid "Custom playlist name:" #~ msgstr "Vlastný názov playlistu" #~ msgid "Add to custom playlist" #~ msgstr "Vložiť vlastný playlist" #~ msgid "" #~ "Exaile Music Player\n" #~ "Not playing" #~ msgstr "" #~ "Exaile Music Player\n" #~ "neprehráva sa" #~ msgid "_Save Changes To Playlist" #~ msgstr "_Uložiť zmeny do playlistu" #~ msgid "_Save As..." #~ msgstr "_Uložiť ako..." #~ msgid "_Rename Playlist" #~ msgstr "_Premenovať playlist" #~ msgid "_Close Playlist" #~ msgstr "_Zavrieť playlist" #~ msgid "C_lear All Tracks" #~ msgstr "_Vyčistiť všetky skladby" #~ msgid "_Save As Custom Playlist" #~ msgstr "_Uložiť ako vlastný playlist" #~ msgid "Export" #~ msgstr "Exportovať" #~ msgid "Delete track" #~ msgstr "Vymazať skladbu" #~ msgid "%d covers to fetch" #~ msgstr "%d obalov k pripojeniu" #~ msgid "Export current playlist..." #~ msgstr "Exportovať súčasný playlist..." #~ msgid "No track" #~ msgstr "Bez skladby" #~ msgid "%(minutes)d:%(seconds)02d" #~ msgstr "%(minutes)d:%(seconds)02d" #~ msgid "No covers found" #~ msgstr "Obal nenájdený" #~ msgid "Choose a file to open" #~ msgstr "Vybrať súbor na otvorenie" #~ msgid "Add a directory" #~ msgstr "Pridať priečinok" #~ msgid "" #~ "Path is already in your collection, or is a subdirectory of another path " #~ "in your collection" #~ msgstr "" #~ "Cesta už je vo vašej kolekcii, alebo je podpriečinkom niektorej z ciest " #~ "vo vašej kolekcii" #~ msgid "0:00" #~ msgstr "0:00" #~ msgid "Add To New Playlist..." #~ msgstr "Vložiť do nového playlistu..." #~ msgid "Choose a plugin" #~ msgstr "Vybrať plugin" #~ msgid "Move selected item up" #~ msgstr "Posunúť vybratú položku vyžšie" #~ msgid "Move selected item down" #~ msgstr "Posunúť vybratú položku nižšie" #~ msgid "Remove item" #~ msgstr "Odstrániť položku" #~ msgid "Add item" #~ msgstr "Pridať položku" #~ msgid "Repeat playlist" #~ msgstr "Opakovať playlist" #~ msgid "Remove current track from playlist" #~ msgstr "Odstrániť práveč hranú skladbu z playlistu" #~ msgid "0/0 tracks" #~ msgstr "0/0 skladieb" #~ msgid "Start/Pause Playback" #~ msgstr "Spustiť/pozastaviť prehrávanie" #~ msgid "Page 1" #~ msgstr "Strana 1" #~ msgid "Clear Playlist" #~ msgstr "Vyčistiť playlist" #~ msgid "Track _properties" #~ msgstr "_Vlastnosti skladby" #~ msgid "_Export current playlist" #~ msgstr "Exportovať tento playlist" #~ msgid "Install plugin file" #~ msgstr "Inštalovať súbor luginu" #~ msgid "Install a third party plugin from a file" #~ msgstr "Inštalovať plugin tretej strany zo súboru" #~ msgid "..." #~ msgstr "..." #~ msgid "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgstr "Presuňte OSD na miesto, kde sa má zobrazovať" #~ msgid "Display OSD when hovering over tray icon" #~ msgstr "Zobraziť OSD pri prechode na tray ikonu" #~ msgid "Close this dialog" #~ msgstr "Zavrieť tento dialóg" #~ msgid "Text Font:" #~ msgstr "Písmo:" #~ msgid "Remove All" #~ msgstr "Odstrániť všetko" #~ msgid "Playback engine (requires restart): " #~ msgstr "Prehrávací engine (je treba reštart): " #~ msgid "" #~ "OSD\n" #~ "Drag to the location you'd like the\n" #~ "OSD to appear" #~ msgstr "" #~ "OSD\n" #~ "Pretiahnite na miesto kde chcete\n" #~ "aby sa OSD zobrazovalo" #~ msgid "Popup" #~ msgstr "Vyskakovacie okno" #~ msgid "Delete bookmark" #~ msgstr "Zmazať záložku" #~ msgid "Summary" #~ msgstr "Zhrnutie" #~ msgid "Plugin to fetch lyrics from lyricwiki.org" #~ msgstr "Doplnok na sťahovanie textov z lyricwiki.org" #~ msgid "Alarm:" #~ msgstr "Budík:" #~ msgid "Name - Time" #~ msgstr "Názov - Čas" #~ msgid "Pauses/resumes playback on screensaver start/stop" #~ msgstr "" #~ "Pozastaviť/pokračovať prehravácie keď sa šetrič obrazovky zapne/vypne" #~ msgid "New custom playlist name:" #~ msgstr "Nový vlastný názov zoznamu skladieb:" #~ msgid "_Randomize Playlist" #~ msgstr "_Náhodný zoznam skladieb" #~ msgid "%(playlist_count)d showing, %(collection_count)d in collection" #~ msgstr "%(playlist_count)d zobrazených, %(collection_count)d v kolekcii" #~ msgid "Plugin archive is not in the correct format" #~ msgstr "Rozširujúci modul archívu nie je v správnom formáte" #~ msgid "Invalid file extension, file not saved" #~ msgstr "Neplatná prípona súboru, súbor nebude uložený" #~ msgid "File Size:" #~ msgstr "Veľkosť súboru :" #~ msgid "Length:" #~ msgstr "Dĺžka :" #~ msgid "Details" #~ msgstr "Podrobnosti" #~ msgid "Play Count:" #~ msgstr "Počet prehrávaní :" #~ msgid "" #~ "Left\n" #~ "Right\n" #~ "Top\n" #~ "Bottom" #~ msgstr "" #~ "Vľavo\n" #~ "Vpravo\n" #~ "Hore\n" #~ "Dole" #~ msgid "" #~ "This will permanantly delete the selected tracks from your disk, are you " #~ "sure you wish to continue?" #~ msgstr "" #~ "Vybraná stopa bude natrvalo vymazaná z disku, napriek tomu chcete " #~ "pokračovať?" #~ msgid "Use alpha transparency (if supported)" #~ msgstr "Použi alpha priehladnosť (ak je podporovaná)" #~ msgid "" #~ "Automatic\n" #~ "GNOME\n" #~ "ALSA\n" #~ "OSS\n" #~ "PulseAudio\n" #~ "JACK" #~ msgstr "" #~ "Automaticky\n" #~ "GNOME\n" #~ "ALSA\n" #~ "OSS\n" #~ "PulseAudio\n" #~ "JACK" #~ msgid " - " #~ msgstr " - " #~ msgid " + " #~ msgstr " + " #~ msgid "_Go to Playing Track" #~ msgstr "_Choď na prehrávanú skladbu" #~ msgid "Bookmark this track" #~ msgstr "Pridať skladbu do záložiek" #~ msgid "Clear bookmarks" #~ msgstr "Vymazať záložky" #~ msgid "Restore Main Window" #~ msgstr "Obnoviť hlavné okno" #~ msgid "Seeking: " #~ msgstr "Hľadám: " #~ msgid "Minimum Volume:" #~ msgstr "Minimálna hlasitosť:" #~ msgid "Alarm Name:" #~ msgstr "Názov výstrahy:" #~ msgid "Maximum Volume:" #~ msgstr "Maximálna hlasitosť:" #~ msgid "Alarm Time:" #~ msgstr "Čas výstrahy:" #~ msgid "On Tray Icon Hover" #~ msgstr "Pri postátí nad Tray ikonou" #~ msgid "On Track Change" #~ msgstr "Pri zmene skladny" #~ msgid "Secret Key:" #~ msgstr "Tajný kľúč:" #~ msgid "Only artist" #~ msgstr "Len interpréta" #~ msgid "Only album" #~ msgstr "Len album" #~ msgid "Track title format:" #~ msgstr "Formát názvu súboru:" #~ msgid "Vertical:" #~ msgstr "Zvisle:" #~ msgid "Display window decorations" #~ msgstr "Zobraziť dekoráciu okna" #~ msgid "Center vertically" #~ msgstr "Centrovať zvisle" #~ msgid "Center horizontally" #~ msgstr "Centrovať vodorovne" #~ msgid "iPod support" #~ msgstr "Podpora pre iPod" #~ msgid "A plugin for iPod support" #~ msgstr "Rozšírenie pre podporu iPod" #~ msgid "Idle." #~ msgstr "Nečinný." #~ msgid "Date:" #~ msgstr "Dátum:" #~ msgid "Basic" #~ msgstr "Základný" #~ msgid "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager" #~ msgstr "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager" #~ msgid "$title ($length)" #~ msgstr "$title ($length)" #~ msgid "Fading:" #~ msgstr "Útlm:" #~ msgid "Randomize the order of the current playlist" #~ msgstr "Náhodné zoradenie aktuálneho zoznam skladieb" #~ msgid "" #~ "Adds support for playing audio CDs.\n" #~ "Requires python-cddb to look up tags." #~ msgstr "" #~ "Pridáva podporu pre prehrávanie audio CD.\n" #~ "Vyžaduje python-CDDB na vyhľadanie značiek (tag-ov)." #~ msgid "LastFM Radio" #~ msgstr "LastFM Rádio" dist/copy/po/PaxHeaders.26361/pl.po0000644000175000017500000000012412233027260015412 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.065046931 exaile-3.3.2/po/pl.po0000644000000000000000000041217412233027260014363 0ustar00rootroot00000000000000# Polish translation for exaile # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2012-07-29 07:18+0000\n" "Last-Translator: sirmacik \n" "Language-Team: Polish \n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2;\n" "X-Launchpad-Export-Date: 2012-08-28 05:27+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "%d dzień, " msgstr[1] "%d dni, " msgstr[2] "%d dni, " #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "%d godzina, " msgstr[1] "%d godziny, " msgstr[2] "%d godziny, " #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "%d minuta, " msgstr[1] "%d minuty, " msgstr[2] "%d minuty, " #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d sekunda" msgstr[1] "%d sekundy" msgstr[2] "%d sekund" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "%dd, " #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "%dg, " #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "%dm, " #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "%ds" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "%dd " #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "%d:%02d:%02d" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "%d:%02d" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "Nigdy" #: ../xl/formatter.py:702 msgid "Today" msgstr "Dziś" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "Wczoraj" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "Nie udało się dokonać migracji z wersji 0.2.14" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "Użytkowanie: exaile [OPCJA]... [URI]" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "Opcje" #: ../xl/main.py:421 msgid "Playback Options" msgstr "Opcje odtwarzania" #: ../xl/main.py:423 msgid "Play the next track" msgstr "Odtwórz następny utwór" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "Odtwórz poprzedni utwór" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "Stop" #: ../xl/main.py:429 msgid "Play" msgstr "Odtwarzaj" #: ../xl/main.py:431 msgid "Pause" msgstr "Pauza" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "Pauza lub wznowienie odtwarzania" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "Zatrzymaj odtwarzanie po bieżącym utworze" #: ../xl/main.py:440 msgid "Collection Options" msgstr "Opcje kolekcji" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "KATALOG" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "Dodaj ścieżki z KATALOGU do kolekcji" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "Opcje listy odtwarzania" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "Eksportuj aktualną listę odtwarzania do LOKACJI" #: ../xl/main.py:454 msgid "Track Options" msgstr "Opcje utworu" #: ../xl/main.py:456 msgid "Query player" msgstr "Kolejka odtwarzacza" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "FORMAT" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "Pokaż wiadomość o aktualnie granym utworze" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "Wyświetl tytuł aktualnego utworu" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "Wyświetl album aktualnego utworu" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "Wyświetl artystę aktualnego utworu" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "Wyświetl długość aktualnego utworu" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "N" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "Ustaw ocenę odtwarzanej ścieżki: N%" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "Pobierz ocenę obecnego utworu" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "Pokaż bieżący postęp odtwarzania jako czas" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "Pokaż bieżący postęp odtwarzania w procentach" #: ../xl/main.py:490 msgid "Volume Options" msgstr "Opcje głośności" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "Zwiększa poziom głośności o N%" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "Zmniejsza poziom głośności o N%" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "Włącza/wyłącza wyciszenie" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "Wyświetl aktualną głośność w procentach" #: ../xl/main.py:507 msgid "Other Options" msgstr "Inne opcje" #: ../xl/main.py:509 msgid "Start new instance" msgstr "Rozpocznij nową instancję" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "Pokaż ten komunikat pomocy i wyjdź" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "Pokaż numer wersji programu i wyjdź." #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "Startuj zminimalizowany (do obszaru powiadamiania, kiedy możliwe)" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "Ustaw widoczność GUI (jeśli możliwe)" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "" "Uruchom w trybie awaryjnym - użyteczne kiedy występują problemy z programem" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" "Wymuś importowanie starych danych z wersji 0.2.x (Nadpisze obecne dane)" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "Nie importuj starych danych z wersji 0.2.x" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" "Spraw by opcje takie jak --play uruchamiały Exaile jeśli jeszcze nie zostało " "uruchomione" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "Opcje rozwojowe/debugowanie" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "KATALOG" #: ../xl/main.py:536 msgid "Set data directory" msgstr "Ustaw katalog danych" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "MODUŁ" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "Ogranicz długość loga do MODULE" #: ../xl/main.py:543 msgid "LEVEL" msgstr "POZIOM" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "Ogranicz długość loga do LEVEL" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "Pokazuj komunikaty debugowania" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "Włącz debugowanie xl.event. Generuje OGROM informacji" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "Dodaj nazwę wątku do komunikatów logowania." #: ../xl/main.py:555 msgid "TYPE" msgstr "TYP" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "Ogranicz długość loga xl.event do TYPE" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "Zredukuj poziom na wyjściu" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "Wyłącz obsługę D-Bus" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "Wyłącz obsługę HAL" #: ../xl/main.py:580 msgid "Entire Library" msgstr "Cała biblioteka" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "Losowo %d" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "Ocena > %d" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" "Exaile jeszcze nie zakończył się ładować. Może powinieneś czekać na sygnał " "exaile_loaded?" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "Znaczniki" #: ../xl/covers.py:505 msgid "Local file" msgstr "Plik lokalny" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "Niewłaściwy format archiwum pluginów" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "Plugin o nazwie \"%s\" jest już zainstalowany" #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "Archiwum dodatku zawiera niebezpieczne ścieżki." #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "Nie wskazano lokalizacji skąd załadować bazę danych" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "Nie wskazano miejsca zapisu bazy danych" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "Różni wykonawcy" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "Nieznany" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr " / " #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "%dk" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" "Vorbis jest stratnym kodekiem audio na licencji open source o wysokiej " "jakości dźwięku przy mniejszej wielkości pliku niż MP3" #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" "Free Lossless Audio Codec (FLAC) jest kodekiem na licencji open source, " "który podczas kompresji nie obniża jakości dźwięku." #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" "Własnościowy, stratny format audio od Apple, który osiąga lepszą jakość " "dźwięku niź MP3 przy niższym próbkowaniu." #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" "Własnościowy i starszy, lecz nadal popularny, stratny format audio. VBR daje " "wyższą jakość niż CBR, lecz może być niekompatybilny z niektórymi " "odtwarzaczami." #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" "Własnościowy i starszy, lecz nadal popularny, stratny format audio. CBR daje " "mniejszą jakość niż VBR, lecz jest kompatybilny z każdym odtwarzaczem." #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "" "Bardzo szybki, wolnie rozpowszechniany i bezstratny format audio z dobrą " "kompresją." #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "Automatycznie" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "Własne" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "Nie odtwarza." #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" "status: %(status)s, tytuł: %(title)s, wykonawca: %(artist)s, album: " "%(album)s, długość: %(length)s, pozycja: %(progress)s%% [%(position)s]" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "Wersja ustawień jest nowsza niż obecna." #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "Nie wiemy jak przechować taki typ ustawień: " #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "Wykryto nieznany typ ustawień!" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "Zły format playlisty." #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "Lista odtwarzania" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "Lista odtwarzania M3U" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "Lista odtwarzania PLS" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "Zły format dla %s." #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "Brak wsparcia %(type)s w wersji %(version)s" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "Lista odtwarzania ASX" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "Lista odtwarzania XSPF" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "Wyłącz l_osowanie" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "Losuj kolejność utworów" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "Losuj kolejność albumów" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "Powtarzanie _wyłączone" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "Powtarzaj _całość" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "Powtórz jede_n" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "Dynamiczne dodawanie wyłączone" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "Dynamiczne dodawania podobnych wykonawców" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "sekundy" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "minuty" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "godziny" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "dni" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "tygodnie" #: ../xl/lyrics.py:305 msgid "Local" msgstr "Lokalny" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "Dodaj do kolejki" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "Zastąp obecny" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "Dodaj do aktualnej" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "Otwórz ścieżkę" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" "Te pliki nie mogą zostać przeniesione do kosza. Usunąć je trwale z dysku?" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "Przenieś do kosza" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "_Show Odtwarzam" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "Nazwa:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "Dopasuj do dowolnego z powyższych kryteriów" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "Losuj wyniki" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "Ogranicz do: " #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr " utwory" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "Bezczynny" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "Szukanie: %s" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "Przenieś" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "Nowy znacznik" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "Wyciszony" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "%d%%" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "Pełna głośność" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" "$title\n" "przez $artist\n" "z albumu $album" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "Różne" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "%(track_count)d z (%(total_duration)s)" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "%d w kolekcji" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "%d wyświetlonych" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "%d zaznaczono" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "Kolejka odtwarzania" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "Kolejka (%d)" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "#" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "Numer utworu" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "Tytuł" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "Wykonawca" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "Kompozytor" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "Album" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "Długość" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "Dysk" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "Numer dysku" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "Ocena" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "Data" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "Gatunek" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "Bitrate" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "Lokalizacja" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "Nazwa pliku" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "Liczba odtworzeń" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "BPM" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "Ostatnio odtwarzane" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "Data dodania" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "Harmonogram" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "Komentarz" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "Grupowanie" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "_Skalowalny" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "Rozmiar automatyczny" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "Ocena:" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "Losowe" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "Powtarzanie" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "Dynamiczne" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "Usuń utwór z listy odtwarzania" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "Losuj listę odtwarzania" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "Nowa lista odtwarzania" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "Zmień nazwę" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "Zatrzymaj odtwarzanie po tym utworze" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "Kontynuuj odtwarzanie po tym utworze" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "Wymaga dodatku wprowadzającego obsługę dynamicznych list odtwarzania" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "Dynamicznie dodaj podobne utwory do listy odtwarzania" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "Wprowadź URL do otworzenia" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "Otwórz adres URL" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "Wybierz typ pliku (według rozszerzenia)" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "Wybierz media do otworzenia" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "Obsługiwane pliki" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "Pliki muzyczne" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "Pliki list odtwarzania" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "Wszystkie pliki" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "Wybierz ścieżkę do otworzenia" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "Importuj listę odtwarzania" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "Eksportuj bieżącą listę odtwarzania" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "Lista odtwarzania zapisana jako %s" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "Zamknij %s" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "Zapisać zmiany w %s przed zamknięciem?" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "Twoje zmiany będą utracone jeśli ich nie zapiszesz" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "Zamknij bez zapisywania" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "Tak dla wszystkich" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "Nie dla wszystkich" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "Zapisano %(count)s z %(total)s." #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "Nazwa listy odtwarzania:" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "Dodaj nową listę odtwarzania..." #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "Nie wprowadziłeś nazwy listy odtwarzania." #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "Podana nazwa playlisty jest już w użyciu." #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "Zamknij kartę" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "$title ($artist)" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "Przełącznik: Zatrzymaj odtwarzanie po wyznaczonej ścieżce" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "Błąd odtwarzania!" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "Buforowanie: %d%%..." #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "Kontynuuj odtwarzanie" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "Wstrzymaj odtwarzanie" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "Eksport playlisty nie powiódł się!" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "Rozpocznij odtwarzanie" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "Odtwarzacz muzyki Exaile" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "_Nowa lista odtwarzania" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "Otwórz adres _URL" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "Otwórz katalogi" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "_Export Bieżącej listy odtwarzania" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "Uruchom ponownie" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "_Kolekcja" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "_Kolejka" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "Okładki" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "Pasek narzędzi _Playlisty" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "_Kolumny" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "Wyczyść p_laylistę" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "_Menedżer Urządzeń" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "Przeskanuj kolekcję" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "_Właściwości utworu" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "Anuluj" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "Oryginalny album" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "Autor tekstu" #: ../xlgui/properties.py:54 msgid "Website" msgstr "Strona WWW" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "Okładka" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "Oryginalny artysta" #: ../xlgui/properties.py:57 msgid "Author" msgstr "Autor" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "Oryginalna data" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "Aranżator" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "Dyrygent" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "Wykonawca" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "Prawa autorskie" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "Tekst utworu" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "Ścieżka" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "Wersja" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "ISRC" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "Ripowane przez" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "Organizacja" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "Zmodyfikowany" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "Grano razy" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "Edycja ścieżki %(current)d z %(total)d" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "%s:" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "z:" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "Obraz JPEG" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "Obraz PNG" #: ../xlgui/properties.py:919 msgid "Image" msgstr "Obraz" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "Zastosuj tą wartość dla wszystkich ścieżek" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "Pokaż okładkę" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "Pobierz okładkę" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "Usuń okładkę" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "Okladka dla %s" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "Opcje okładki dla %(artist)s - %(album)s" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "Ładowanie..." #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "Nie znaleziono okładek." #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "Ikona" #: ../xlgui/devices.py:81 msgid "Device" msgstr "Urządzenie" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "Sterownik" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "Przeszukiwanie kolekcji..." #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "Skanowanie %s..." #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "Przełącz kolejkę" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "Dodaj do kolejki" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "Ustawienia" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "Nowa Stacja" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "Nowa inteligentna lista odtwarzania" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "Edytuj" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "Zapisz listę odtwarzania..." #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "Usuń listę odtwarzania" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "" "Czy jesteś pewien, że chcesz całkowicie usunąć zaznaczoną listę odtwarzania?" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "Wprowadź nową nazwę dla swojej listy odtwarzania" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "Zmień nazwę listy odtwarzania" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "Usuń" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "Ostatnio zamknięte karty" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "Playlista %d" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "Dodaj katalog" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "Katalog nie został dodany" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" "Ten katalog znajduje się już w Twojej kolekcji lub jest podkatalogiem " "któregoś ze znajdujących się już w kolekcji." #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "Przesyłanie do %s..." #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "Wczytywanie strumieni..." #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "Dodaj Stację Radiową" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "URL:" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "Zapisane stacje" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "Strumienie radiowe" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "Odśwież" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "Wprowadź nazwę nowej listy odtwarzania" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "Gatunel - Artysta" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "Gatunek - Album" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "Data - Artysta" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "Data - Album" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "Artysta - (Data - Album)" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "Skanuj ponownie kolekcję" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "Rozmiar" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s KB" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "oraz" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "jest" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "nie jest" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "zawiera" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "nie zawiera" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "wyrażenie regularne" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "conajmniej" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "conajwyżej" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "przed" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "po" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "pomiędzy" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "większy od" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "mniejszy od" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "w ostatnich" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "oprócz ostatnich" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "Odtwarza" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "Rok" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "%(first)s, %(second)s i inne" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "%(first)s i %(second)s" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "Inteligentne listy odtwarzania" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "Własne listy odtwarzania" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "Dodaj inteligentną listę odtwarzania" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "Edytuj inteligentną listę odtwarzania" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "Odtwarzanie" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "Wtyczki" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "Nie można wczytać informacji o pluginie" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "Błąd wtyczki: %s" msgstr[1] "Błąd wtyczek: %s" msgstr[2] "Błąd wtyczek: %s" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "Nie można wyłączyć wtyczki!" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "Nie można włączyć pluginu!" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "Wybierz wtyczkę" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "Archiwa wtyczki" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "Błąd podczas instalacji wtyczki!" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "Okładki" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "Wygląd" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "Kolekcja" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "Przywróć domyślne" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "Uruchomić ponownie Exaile?" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "Ponowne uruchomienie jest wymagane dla wprowadzenia zmian." #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "Działanie" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "Skrót" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "Listy odtwarzania" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "O Exaile" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "© 2009-2012" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "Menedżer okładek" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "Tasuj kolejność odtwarzania" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "Powtórz odtwarzanie" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "Wyszukiwarka okładek" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "Zapisz jako okładkę" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "_Plik" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "_Edycja" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "_Widok" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "Na_rzędzia" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "_Pomoc" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "Poprzednia ścieżka" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" "Zatrzymaj odtwarzanie\n" "\n" "Kliknij prawym przyciskiem by zatrzymać po zakończeniu utworu" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "Następna ścieżka" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0:00 / 0:00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "Właściwości ścieżki" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "Do_daj tag" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "Usuń znacznik" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "ab → A_b" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "Uzyj dużej litery na początku każdego znacznika" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "_Poprzedni" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "_Dalej" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "Inny" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "Ilustracja" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "Typ:" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "Opis:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "Menedżer kolekcji" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "Monitorowany" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "Stacje radiowe" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "Dołącz wszystkie ścieżki do listy odtwarzania" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "Importuj CD" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "Dodaj stację" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "Pliki" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "Poprzedni odwiedzony folder" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "Następny odwiedzony folder" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "Wyżej o jeden katalog" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "Odśwież listę folderu" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "Katalog domowy" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "Znajdź: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "Wyczyść pole wyszukiwania" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "Kolekcja jest pusta." #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "Dodaj muzykę" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" "Odśwież widok kolekcji\n" "(przytrzymaj klawisz shift, aby przeskanować ponownie kolekcję)" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "Uzyj okładki umieszczonej w tagach" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "Używaj okładek z plików lokalnych" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" "Włączenie tej opcji spowoduje przeszukanie \n" "folderu w celu znalezienia obrazu okładki" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "Znajdź okładki automatycznie po starcie odtwarzania" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "Kolejność szukania okładek:" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "(przeciągnij, aby zmienić kolejność)" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "Otwórz ostatnie listy odtwarzania przy uruchomieniu" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "Pytaj o zapis własnych list odtwarzania przy zamknięciu" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "Zmień zawartość po podwójnym kliknięciu na panel boczny" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" "Zamiast dopisywania, utwory dodane poprzez podwójne kliknięcie w panelu " "zastąpią zawartość bieżącej listy odtwarzania." #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "Silnik odtwarzania " #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "Użyj przenikania/wyciszania w akcjach użytkownika" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "Czas powolnego wyciszania (ms):" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "Użyj przenikania (EKSPERYMENTALNE)" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "Czas przenikania (ms):" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "Wyjście Audio: " #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "Rozpocznij odtwarzanie od początku" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "Wznów odtwarzanie w stanie pauzy" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "Normalny" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "Jednolity (niestabilny)" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "Wtyczka" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "Włączony" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "Nie zaznaczono wtyczki." #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "Zainstalowane wtyczki" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "Autorzy:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "Wersja:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "Zainstaluj" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "Nie zaznaczono wtyczki." #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "Dostępne wtyczki" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "Zainstaluj aktualizacje" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "Aktualizacje" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "Instaluj plik wtyczki" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "Pokaż pole szczegółów" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "Pole szczegółów wyświetla okładkę i informacje o utworze" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "Zawsze pokazuj pasek kart" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "Położenie kart" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "Wyświetl liczbę utworów w kolekcji" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "Użyj przezroczystości alpha:" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" "Uwaga: Ta opcja może spowodować błędy w wyświetlaniu jeżeli menedżer okien " "nie obsługuje kompozycji." #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "Pokaż ikonę w obszarze powiadamiania" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "Minimalizuj do zasobnika systemowego" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "Zamykaj do zasobnika" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "Przejdź do bieżącej ścieżki po zmianie utworu." #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "Pokaż ekran powitalny przy starcie" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "Po lewej" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "Po prawej" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "Góra" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "Dół" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "Preferencje" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" "Słowa do usunięcia z początku nazwy artysty podczas sortowania (oddzielone " "spacją):" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "(Kliknij prawym przyciskiem myszy, aby zresetować ustawienia)" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "Użyj detekcji na podstawie nazwy pliku" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "Menedżer urządzeń" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "Dodaj urządzenie" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "Typ urządzenia:" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "Wykryte urządzenia:" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "Własne: " #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "Menedżer kolejki" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "Szukanie nastroju..." #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "Znaleziono nastrój." #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "Nie można odczytać paska nastroju." #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "Plik wykonywalny paska nastroju jest niedostępny." #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "Pasek nastroju" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "Błąd uruchamiania streamrippera" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "Zgrywanie strumieni" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "Ulubione utwory Last.fm" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "Nieprawidłowy klucz API" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "Upewnij się czy wpisane dane są poprawne" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "Nie można otworzyć przeglądarki" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" "Skopiuj podany link i otwórz go w przeglądarce\n" "{url}" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "Ulubione" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "Ulubione z Last.fm" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "Dodaj do ulubionych" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "Usuń z ulubionych" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "Budzik" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "Menu główne" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "Łączenie z serwerem Shoutcast" #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "Błąd połączenia z serwerem Shoutcastów" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "Wpisz szukanę frazę" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "Szukaj w Shoutcast" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "Wyniki wyszukiwania" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "Znajdź" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "Nie znaleziono słów." #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "Idż do: " #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "Dowolny" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "Lyrics Viewer" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "AudioScrobbler" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "Weryfikacja nie powiodła się" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "Włącz audioscrobbling" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "Korektor" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "Wyłącz po zakończeniu odtwarzania" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "Zamknięcie dodane do harmonogramu" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "Komputer zostanie wyłączony po zakończeniu odtwarzania." #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "Natychmiastowe zamknięcie" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "Komputer zostanie wyłączony za %d sekund" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "Zamykanie nie powiodło się" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "Komputer nie może być zamknięcia używając D-Bus." #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "Podgląd" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "Powiadomienia Notify-osd" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "%(title)s" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "przez %(artist)s" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "z %(album)s" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "Konsola IPython - Exaile" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "Pokaż konsolę IPython" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "Konsola IPython" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "Powiadomienie" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" "przez %(artist)s\n" "z %(album)s" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "Importowanie CD..." #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "Płyta CD-Audio" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "CD" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "Numer ścieżki" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "Numer dysku" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "Licznik odtworzeń" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "Artysta: " #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" "Czy wiesz, że...\n" "\n" "%s" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "Wikipedia" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "Powtórz wycinek utworu" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "Powtórz początek" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "Powtórz koniec" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "Tryb Mini" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "$tracknumber - $title" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "$title przez $artist" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "$title ($__length)" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "Poprzedni" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "Idź do poprzedniego utworu" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "Poprzedni utwór" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "Następny" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "Idź do następnego utworu" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "Następny utwór" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "Odtwarzaj/Pauzuj" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "Odtwórz, zatrzymaj i wznów odtwarzanie" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "Rozpocznij odtwarzanie" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "Kontynuuj odtwarzanie" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "Wstrzymaj odtwarzanie" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "Zatrzymaj" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "Zatrzymaj odtwarzanie" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "Kontynuuj odtwarzanie po następnym utworze" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "Głośność" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "Zmień głośność" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "Przywróć" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "Pokaż główne okno" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "Przywrócić główne okno" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "Oceń ten utwór" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "Wybieracz utworu" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "Prosty wybór ścieżek" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "Przycisk listy odtwarzania" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "Otwórz aktualną listę odtwarzania" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "$title ($current_time / $total_time)" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "Przycisk postępu" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "Postęp odtwarzania i dostęp do bieżącej listy odtwarzania" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "Pasek postępu" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "Postęp odtwarzania i wyszukiwania" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "Grupa" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "Dodaj nową grupę" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "Usuń grupę" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "Usuń kategorię" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "Nowa wartość znacznika?" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "Wpisz nową wartość znacznika" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "Nowa kategoria?" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "Dodaj grupę" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "Musi mieć ten znacznik [AND]" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "Musi mieć ten znacznik [OR]" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "Zignorowano" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "Wybrane utwory" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "ReplayGain" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "Upuść aby wybrać" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "Dodaj i odtwórz" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "Dołącz" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "Historia" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "Zapisz historię" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "Wyczyść historię" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "Gotowe" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "Przeszukiwanie katalogu Jamendo" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "Pobieranie danych utworu..." #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "Wyświetlanie-na-ekranie (OSD)" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "Okładki Amazon" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "Podcasty" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "Podcast" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "Odśwież podcast" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "Usuń" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "Wprowadź URL do podcasta, aby dodać" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "Otwórz podcast" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "Wczytywanie %s..." #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "Błąd wczytywania podcasta" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "Ładowanie podcastów..." #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "Nie można zapisać pliku podcasta" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "Okładka na pulpicie" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "Zegar kilku alarmów" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "Kontekst" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "Contextinfo" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "Dodaj utwór do zakladki" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "Usuń zakładkę" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "Wyczyść zakładki" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "Zakładki" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "Pauza przy wygaszaczu ekranu" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "Serwer DAAP" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "Klient DAAP" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "Ręcznie..." #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "Proszę wprowadzić adres IP i port udostępniania" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "Proszę wprowadzić adres IP i port." #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" "Ten serwer nie obsługuje wielu połączeń.\n" "Musisz zatrzymać odtwarzanie, zanim zaczniesz pobierać utwory." #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "Odśwież listę serwerów" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "Zakończ połączenie z serwerem" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "Wybierz miejsce do zapisania" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "Połącz z DAAP..." #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "Zaciemnij odtworzoną sekcję zamiast używać kursora" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "Poziom ciemności" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "Użyj stylu waveform" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "Pokazuj tylko waveform" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "Użyj motywu kolorystycznego " #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "Kolor podstawowy:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "Kolor podstawowy" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "Lokalizacja zapisywania:" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "Port przekazywania:" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "Zripuj do jednego pliku" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "Usuń niekompletne pliki" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "Klucz API:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "Sekret:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "Wyślij żądanie dostępu" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" "Aby ukończyć instalację wejdź na swoje konto API, gdzie otrzymasz Klucz API oraz sekret. Po wpisaniu ich tutaj wyślij żądanie dostępu i potwierdź je." #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "Czas alarmu" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "poniedziałek" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "wtorek" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "środa" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "czwartek" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "piątek" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "sobota" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "niedziela" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "Dni alarmowe" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "Użyj przenikania" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "Zwiększenie" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "Wyświetlanie nakładki:" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "Wyświetl okladki" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "Widok zapętlony" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "Procent tekstu" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "Brak" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "Odśwież tekst" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "Prześlij informacje o utworach używając Audioscrobblera" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "Pokaż w menu opcję włącznenia/wyłączenia wysyłania" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "Hasło:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "Nazwa użytkownika:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "Przedwzmacniacz" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "+12 dB" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "0" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "-24 dB" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "29" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "59" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "119" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "237" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "474" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "947" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "1.9K" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "3.8K" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "7.5K" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "15K" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "Przy zmianie utworu" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "Podczas odtwarzania - start, pauza lub stop" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "W sprawie zmian tagu" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "Przy najechaniu na iknonę w obszarze powiadamiania" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "Gdy główne okno jest aktywne" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "Wyświetl" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "Użyj okładki albumu jako ikony" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "Użyj ikon mediów by spauzować, zatrzymać bądź wznowić" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "Ikony" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "Artysta:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" "Tagi \"%(title)s\", \"%(artist)s\" oraz \"%(album)s\" zostaną zastąpione " "przez odpowiednie wartości. Tytuł zostanie zastąpiony przez \"Unknown" "\" (ang. nieznany) jeśli jest pusty." #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "Podsumowanie:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "Album:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "Zawartość" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "Linux" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "Widoczność terminala:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "Czcionka:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "Kolor tekstu:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "Kolor tła:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "Zmień rozmiar okładek" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "Tylko artysta:" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "Tylko album:" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" "Wiadomość, która powinna być pokazywana w rozwinięciu notyfikacji. W " "każdym przypadku, \"%(title)s\", \"%(artist)s\" oraz \"%(album)s\" zostaną " "zastąpione przez właściwe wartość. Jeśli dany tag jest pusty jego wartość " "zostanie uzupełniona przez: \"Unknown\"." #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "Zarówno wykonawcy i albumu:" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "Treść wiadomości" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "Ogg Vorbis" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "FLAC" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "AAC" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "MP3 (VBR)" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "MP3 (CBR)" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "WavPack" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "Format importu: " #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "Jakość importu: " #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "Ścieżka importu: " #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" "Każdy tag może być użyty z $tag lub ${tag}. Tagi wewnętrzne " "takie jak $__length muszą być poprzedzone dwoma podkreśleniami." #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "Język:" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "Wstecz" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "Naprzód" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" "Kolejność kontrolek może zostać zmieniona przez przeciąganie ich w górę lub " "w dół. (Lub wciśnięcie Alt+Góra/Dół)." #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "Kontrolki" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "Format tytułu utworu" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "Zawsze na wierzchu" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "Pokaż w liście zadań" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "Użyj dekoracji okna:" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "Pokaż na wszystkich pulpitach" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "Pokaż przycisk w głównym oknie" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "Pełny" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "Prosty" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "Preferuj korekcję na album" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" "Przedkładaj korekcję ReplayGain na cały album nad korekcję na każdą ścieżkę " "osobno" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "Chroń przed sprzężeniami" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "Ochrona przed szumem spowodowanym nadmiernym wzmocnieniem" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "Dodatkowe wzmocnienie do zastosowania na wszystkich plikach" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "Dodatkowe wzmocnienie (dB):" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" "Przywróć korekcję dla plików, które nie posiadają informacji ReplayGain" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "Przywróć poziom korekcji (dB):" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "Długość historii:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "Sortuj według:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "Kierunek kolejki:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "Wyniki:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "Zaawansowane" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "Malejąco" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "Rosnąco" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "Data wydania" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "Ocena w tym tygodniu" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "Ocena w tym miesiącu" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "Liczba dodań listy odtwarzania" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "Liczba pobrań" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "Liczba odsłuchań" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "Oznaczone gwiazdką" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "Data występu" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "Gatunek/Tagi" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "Format wyświetlania" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "Tło:" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "Pokaż pasek postępu" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" "By zarejestrować konto w Amazon AWS i otrzymać zaproszenie odwiedź http://aws.amazon.com/" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "Dodaj Podcast" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "Kotwica:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "Przesunięcie X:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "pikseli" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "Przesunięcie Y:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "Zmień rozmiar okładki" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "Rozmiar:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "Użyj zanikania" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "Czas zanikania:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "ms" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "Góra lewo" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "Góra prawo" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "Dół lewo" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "Dół prawo" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "Dodaj" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "Alarmy" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "Włącz nasilenie dźwięku" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "Głośność początkowa:" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "Głośność końcowa:" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "Wzrost nasilenia:" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "Czas nasilenia (s):" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "Restart listy odtwarzania" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "Odtwarzanie" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "Proszę podać dane logowania do serwisu Last.fm" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "Zarejestruj się na Last.fm" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "Użyj okładek w menu zakładek (ma efekt przy ponownym uruchomieniu)" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "Nazwa serwera:" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "Host serwera:" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "Port:" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "Serwer aktywny" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "Obecny utwór" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" "Ustaw tytuł obecnie granego utworu jako status w Pidginie. Sprawdź FAQ " "Pidgina, aby dowiedzieć się o wspieranych usługach" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "Powiadomienia" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" "Zamienia standardowy pasek postępu na pasek nastroju\n" "Zależności: moodbar" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "Klawisze multimedialne GNOME" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" "Sterowanie Exaile za pomocą klawiszy multimedialnych GNOME. Funkcja " "kompatybilna z GNOME w wersji wyższej niż 2.20." #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" "Pozwala na nagrywanie transmisji strumieniowych wykorzystując stremripper.\n" "Wymaga: streamripper" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "Wyjście" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" "Wyświetla ulubione utwory i pozwala dodawać do ulubionych.\n" "\n" "W ustawieniach wtyczki wpisz prawidłowy klucz API.\n" "\n" "Nazwa użytkownika i hasło są zależne od wtyczki \"AudioScrobbler\"." #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "Odtwarza muzykę o określonej godzinie.\n" "\n" "Zauważ, że w określonym czasie Exaile zadziała tak, jakbyś przycisnął " "przycisk odtwarzania, więc upewnij się że będziesz miał wtedy na liście " "odtwarzania odpowiednią muzykę." #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "Narzędzia" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "Okładki z Last.fm" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "Wyszukuje okładki na Last.fm" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "Ustawia okładkę i dodaje kilka elementów menu do AWN dla Exaile" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "Radio Shoutcast" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "Lista stacji radiowych Shoutcast" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "Edytor tagów Ex Falso" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" "Integruje edytor tagów Ex Falso z Exaile.\n" "Wymaga: Ex Falso." #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" "Dodaje boczną zakładkę wyświetlającą tekst dla aktualnie odtwarzanego utworu." #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" "Wysyła informacje o odsłuchanej muzyce do Last.fm i podobnych serwisów " "korzystających z AudioScrobbler." #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "XKeys" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "Globalne skróty klawiszowe przy użyciu xlib (mmkeys.so)" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "Przyciski multimedialne Windows" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" "Umożliwia używanie klawiszy multimedialnych (dostępnych na większości nowych " "klawiatur), gdy Exaile jest uruchamiany w środowisku Microsoft Windows.\n" "\n" "Wymaga pyHook " #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "10-cio pasmowy equalizer" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "Efekt" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "Lyrics Fly" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "Wtyczka do pobierania liryk z lyricsfly.com" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "Librivox" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "Przeglądanie i słuchanie książek mówionych z Librivox.org." #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "Pozwala na wyłączenie komputer po zakończeniu odtwarzania." #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "Obsługa odtwarzaczy multimediów poprzez USB" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" "Obsługa przenośnych odtwarzaczy multimediów przez protokół Pamięci Masowej " "USB" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "Urządzenia" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "Dynamiczne playlisty Last.fm" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "Silnik z Last.fm do dynamicznych list odtwarzania" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "Dynamiczne listy odtwarzania" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" "Ta wtyczka wyświetla dymki powiadamiające o odtwarzaniu/wznawianiu/" "zatrzymywaniu piosenki oraz zawierające okładki lub ikony pokazujące " "ostatnią akcję. \n" "\n" "Wymaga: python-notify\n" "Zaleca: notify-osd" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" "Dostarcza konsoli IPython, która może być użyta do kontrolowania Exaile" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "Wyświetla powiadomienie na początku odtwarzania utworu" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "Odtwarzanie CD" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "Informacje" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "Powtarzanie A-B" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "Powtarza w pętli wycinek utworu." #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "Kompaktowy tryb dla Exalie z konfigurowalnym interfejsem" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "Włącz wsparcie dla ReplayGain" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "Zminimalizuj do ikonki w trayu" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" "Dostarcza alternatywną ikonkę traya, która umożliwia przerzucanie na nią " "plików\n" "\n" "Wymaga: python-eggtrayicon" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "Jamendo" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "Włącza do katalogu muzyki Jamendo." #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "Obsługa iPoda" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" "Plugin do obsługi iPod-a. Na razie możliwy jedynie odczyt.\n" "\n" "Zależny od python-gpod." #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "Wyszukuje okładki na Amazon" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "Karaoke" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "Usuwa głos z nagrania" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "Dodaje prostą obsługę Podcastów" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "Wyświetla okładkę odtwarzanego albumu na pulpicie." #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "Hello World" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "Prosta wtyczka do testowania podstawowego systemu wtyczek" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "Odtwarza muzykę w określonych dniach i godzinach.\n" "\n" "Zauważ, że w określonym czasie Exaile zadziała tak, jakbyś przycisnął " "przycisk odtwarzania, więc upewnij się że będziesz miał wtedy na liście " "odtwarzania odpowiednią muzykę." #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "Informacja kontekstowa" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" "Pokaż dodatkowe informacje o aktualnie odtwarzanej ścieżce.\n" "Wymaga: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" "Umożliwia zapisywanie/wzmawianie zakładki pozycji w plikach dźwiękowych" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "Lyrics Wiki" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" "Ta wtyczna integruje spydaap (http://launchpad.net/spydaap) z Exalie " "umożliwiając udostępnienie kolekcji przez DAAP" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "Pozwala na odtwarzanie plików udostępnionych za pomocą DAAP" #~ msgid "Clear" #~ msgstr "Wyczyść" #~ msgid "Close" #~ msgstr "Zamknij kartę" #~ msgid "Close tab" #~ msgstr "Zamknij kartę" #~ msgid "Export as..." #~ msgstr "Eksport jako..." #~ msgid "%d KB" #~ msgstr "%d KB" #~ msgid "© 2009-2010" #~ msgstr "© 2009-2010" #~ msgid "GNOME" #~ msgstr "GNOME" #~ msgid "ALSA" #~ msgstr "ALSA" #~ msgid "OSS" #~ msgstr "OSS" #~ msgid "PulseAudio" #~ msgstr "PulseAudio" #~ msgid "JACK" #~ msgstr "JACK" #~ msgid "AWN" #~ msgstr "AWN" #~ msgid "API Key:" #~ msgstr "Klucz API:" #~ msgctxt "yes" #~ msgid "Monday" #~ msgstr "Poniedziałek" #~ msgctxt "yes" #~ msgid "Tuesday" #~ msgstr "Wtorek" #~ msgctxt "yes" #~ msgid "Wednesday" #~ msgstr "Środa" #~ msgctxt "yes" #~ msgid "Thursday" #~ msgstr "Czwartek" #~ msgctxt "yes" #~ msgid "Friday" #~ msgstr "Piątek" #~ msgctxt "yes" #~ msgid "Saturday" #~ msgstr "Sobota" #~ msgctxt "yes" #~ msgid "Sunday" #~ msgstr "Niedziela" #~ msgctxt "yes" #~ msgid "Use Fading" #~ msgstr "Płynne przejścia" #~ msgctxt "yes" #~ msgid "Minimum volume:" #~ msgstr "Minimalna głośność:" #~ msgctxt "yes" #~ msgid "Maximum volume:" #~ msgstr "Maksymalna głośność:" #~ msgctxt "yes" #~ msgid "Increment:" #~ msgstr "Przyrost:" #~ msgctxt "yes" #~ msgid "Time per increment:" #~ msgstr "Czas przyrostowo:" #~ msgid "Secret key:" #~ msgstr "Klucz:" #~ msgid "Awn" #~ msgstr "AWN" #~ msgid "Add Playlist" #~ msgstr "Dodaj listę odtwarzania" #~ msgid "Choose a file" #~ msgstr "Wybierz plik" #~ msgid "Add to Playlist" #~ msgstr "Dodaj do listy odtwarzania" #~ msgid "Number of Plays" #~ msgstr "Ilość odtworzeń" #~ msgid "Exaile" #~ msgstr "Exaile" #~ msgid "Location:" #~ msgstr "Położenie:" #~ msgid "Bitrate:" #~ msgstr "Gęstość bitowa:" #~ msgid "Genre:" #~ msgstr "Gatunek:" #~ msgid "Part" #~ msgstr "Część" #~ msgid "Original Date" #~ msgstr "Oryginalna data" #~ msgid "Original Album" #~ msgstr "Oryginalny album" #~ msgid "Original Artist" #~ msgstr "Oryginalny artysta" #~ msgid "Encoded By" #~ msgstr "Zakodowany przez" #~ msgid "Title:" #~ msgstr "Tytuł:" #~ msgid "Artist:" #~ msgstr "Artysta:" #~ msgid "Album:" #~ msgstr "Album:" #~ msgid "Import" #~ msgstr "Importuj" #~ msgid "Date Added" #~ msgstr "Data dodania" #~ msgid "Last Played" #~ msgstr "Ostatnio odtwarzane" #~ msgid "Select a save location" #~ msgstr "Wybierz położenie zapisywania" #~ msgid "Track Number:" #~ msgstr "Nr ścieżki:" #~ msgid "Clear Playlist" #~ msgstr "Czyści listę odtwarzania" #~ msgid "Search:" #~ msgstr "Wyszukiwanie:" #~ msgid "Streaming..." #~ msgstr "Odtwarzanie strumienia..." #~ msgid "A plugin with the name \"%s\" is already installed" #~ msgstr "Wtyczka \"%s\" jest już zainstalowana" #~ msgid "Choose a plugin" #~ msgstr "Wybierz wtyczkę" #~ msgid "%d covers to fetch" #~ msgstr "%d okładek do pobrania" #~ msgid "Alarm:" #~ msgstr "Alarm:" #~ msgid "Alarm Name:" #~ msgstr "Nazwa alarmu:" #~ msgid "Alarm Time:" #~ msgstr "Czas alarmu:" #~ msgid "Minimum Volume:" #~ msgstr "Minimalna głośność:" #~ msgid "Maximum Volume:" #~ msgstr "Maksymalna głośność:" #~ msgid "Plugin archive is not in the correct format" #~ msgstr "Archiwum pluginów jest w niepoprawnym formacie" #~ msgid "Plugin archive contains an unsafe path" #~ msgstr "Archiwum wtyczki zawiera niepewną ścieżkę" #~ msgid "Streamripper can only record streams." #~ msgstr "Streamripper może jedynie nagrywać strumienie." #~ msgid "Close this dialog" #~ msgstr "Zamknij to okno" #~ msgid "Name - Time" #~ msgstr "Nazwa - Czas" #~ msgid "Restart Playlist" #~ msgstr "Zrestartuj playlistę" #~ msgid "Increases the volume by VOL%" #~ msgstr "Zwiększa głośność o VOL%" #~ msgid "Decreases the volume by VOL%" #~ msgstr "Zmniejsza głośność o VOL%" #~ msgid "New playlist title:" #~ msgstr "Tytuł nowej listy odtwarzania" #~ msgid "" #~ "Left\n" #~ "Right\n" #~ "Top\n" #~ "Bottom" #~ msgstr "" #~ "Lewo\n" #~ "Prawo\n" #~ "Góra\n" #~ "Dół" #~ msgid "" #~ "Automatic\n" #~ "GNOME\n" #~ "ALSA\n" #~ "OSS\n" #~ "PulseAudio\n" #~ "JACK" #~ msgstr "" #~ "Automatycznie\n" #~ "GNOME\n" #~ "ALSA\n" #~ "OSS\n" #~ "PulseAudio\n" #~ "JACK" #~ msgid "Randomize the order of the current playlist" #~ msgstr "Losuj kolejność odtwarzania obecnej listy odtwarzania" #~ msgid "Playback engine (requires restart): " #~ msgstr "Silnik odtwarzania (wymagany restart) " #~ msgid "Repeat playlist" #~ msgstr "Powtarzaj listę odtwarzania" #~ msgid "" #~ "Exaile now uses absolute URI's, please delete/rename your %s directory" #~ msgstr "" #~ "Exaile używa teraz absolutnych URI, proszę usunąć/zmienić nazwę katalogu " #~ "%s" #~ msgid "Playing %s" #~ msgstr "Odtwarzanie %s" #~ msgid " New song, fetching cover." #~ msgstr " Nowy utwór, pobieram okładkę." #~ msgid "Toggle Play or Pause" #~ msgstr "Odtwarzanie lub Pauza" #~ msgid "Set rating for current song" #~ msgstr "Oceń obecny utwór" #~ msgid "Get rating for current song" #~ msgstr "Pobierz ocenę dla obecnego utworu" #~ msgid "Stopped" #~ msgstr "Zatrzymany" #~ msgid "from %s" #~ msgstr "z albumu %s" #~ msgid "%(title)s (by %(artist)s)" #~ msgstr "%(title)s (w wykonaniu %(artist)s)" #~ msgid "by %s" #~ msgstr "w wykonaniu %s" #~ msgid "Add a directory" #~ msgstr "Dodaj katalog" #~ msgid "Start" #~ msgstr "Start" #~ msgid "" #~ "Path is already in your collection, or is a subdirectory of another path " #~ "in your collection" #~ msgstr "" #~ "Ścieżka już istnieje w Twojej kolekcji, albo jest podkatalogiem innej " #~ "ścieżki w Twojej kolekcji." #~ msgid "Enter the search text" #~ msgstr "Wprowadź frazę do wyszukania" #~ msgid " songs" #~ msgstr " utwory" #~ msgid "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgstr "" #~ "{title}\n" #~ "{artist}\n" #~ "z {album} - {length}" #~ msgid "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgstr "Przesuń okno OSD w miejsce w którym ma być wyświetlane" #~ msgid "Display a progressbar in the OSD" #~ msgstr "Wyświetlaj pasek postępu w OSD" #~ msgid "Display OSD when hovering over tray icon" #~ msgstr "Pokaż OSD po umieszczeniu kursora nad ikoną obszaru powiadamiania" #~ msgid "Popup" #~ msgstr "Popup" #~ msgid "New Search" #~ msgstr "Nowe Wyszukiwanie" #~ msgid "Text Font:" #~ msgstr "Czcionka:" #~ msgid "Autosize" #~ msgstr "Automatycznie dopasuj rozmiar" #~ msgid "Plugin Manager" #~ msgstr "Zarządzanie wtyczkami" #~ msgid "Show OSD on track change" #~ msgstr "Pokaż OSD podczas zmiany utworu" #~ msgid "Resizable" #~ msgstr "Zmienny rozmiar" #~ msgid "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "Year - Artist\n" #~ "Year - Album\n" #~ "Artist - Year - Album" #~ msgstr "" #~ "Wykonawca\n" #~ "Album\n" #~ "Gatunek - Wykonawca\n" #~ "Gatunek - Album\n" #~ "Rok - Wykonawca\n" #~ "Rok - Album\n" #~ "Wykonawca - Rok - Album" #~ msgid "Enable Fading" #~ msgstr "Włącz powolne wyciszenie" #~ msgid "Fading:" #~ msgstr "Powolne wyciszenie:" #~ msgid "Alarm Days:" #~ msgstr "Dni alarmu:" #~ msgid "Relay Port:" #~ msgstr "Port:" #~ msgid "Buffering: 100%..." #~ msgstr "Buforowanie: 100%..." #~ msgid "" #~ "Exaile Music Player\n" #~ "Not playing" #~ msgstr "" #~ "Odtwarzacz muzyki Exaie\n" #~ "Bezczynny" #~ msgid "In pause: %s" #~ msgstr "Pauza: %s" #~ msgid "%(playlist_count)d showing, %(collection_count)d in collection" #~ msgstr "%(playlist_count)d pokazuje %(collection_count)d w kolekcji" #~ msgid " (%(queue_count)d queued)" #~ msgstr " (%(queue_count)d w kolejce)" #~ msgid "Toggle: Stop after selected track" #~ msgstr "Włącz/wyłącz: Zatrzymaj po zaznaczonym utworze" #~ msgid "Add to custom playlist" #~ msgstr "Dodaj do własnej listy odtwarzania" #~ msgid "_Rename Playlist" #~ msgstr "Zmień nazwę listy odtwa_rzania" #~ msgid "C_lear All Tracks" #~ msgstr "Wyczyść wszystkie utwory" #~ msgid "_Close Playlist" #~ msgstr "Zamknij listę odtwarzania" #~ msgid "Export" #~ msgstr "Eksport" #~ msgid "Open" #~ msgstr "Otwórz" #~ msgid "Export current playlist..." #~ msgstr "Eksport obecnej listy odtwarzania..." #~ msgid "%(minutes)d:%(seconds)02d" #~ msgstr "%(minutes)d:%(seconds)02d" #~ msgid "No covers found" #~ msgstr "Nie znaleziono okładek" #~ msgid "Select File Type (By Extension)" #~ msgstr "Zaznacz typ pliku (przez rozszerzenie)" #~ msgid "File Type" #~ msgstr "Typ Pliku" #~ msgid "Extension" #~ msgstr "Rozszerzenie" #~ msgid "0:00" #~ msgstr "0:00" #~ msgid "Quit" #~ msgstr "Zakończ" #~ msgid "Remove current track from playlist" #~ msgstr "Usuń obecny utwór z listy odtwarzania" #~ msgid "Add device" #~ msgstr "Dodaj urządzenie" #~ msgid "..." #~ msgstr "..." #~ msgid "Dynamically add similar tracks" #~ msgstr "Dynamicznie dodaj pokrewne utwory" #~ msgid "" #~ "OSD\n" #~ "Drag to the location you'd like the\n" #~ "OSD to appear" #~ msgstr "" #~ "OSD\n" #~ "Przenieś do miejsca gdzie chcesz,\n" #~ "aby OSD zostało pokazane." #~ msgid "" #~ "Copyright (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "This program is free software; you can redistribute it and/or modify\n" #~ "it under the terms of the GNU General Public License as published by\n" #~ "the Free Software Foundation; either version 2 of the License, or\n" #~ "(at your option) any later version.\n" #~ "\n" #~ "This program is distributed in the hope that it will be useful,\n" #~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" #~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" #~ "GNU General Public License for more details.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along\n" #~ "with this program; if not, write to the Free Software Foundation, Inc.,\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ msgstr "" #~ "Copyright (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "This program is free software; you can redistribute it and/or modify\n" #~ "it under the terms of the GNU General Public License as published by\n" #~ "the Free Software Foundation; either version 2 of the License, or\n" #~ "(at your option) any later version.\n" #~ "\n" #~ "This program is distributed in the hope that it will be useful,\n" #~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" #~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" #~ "GNU General Public License for more details.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along\n" #~ "with this program; if not, write to the Free Software Foundation, Inc.,\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ msgid "© 2009" #~ msgstr "© 2009" #~ msgid "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager" #~ msgstr "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager" #~ msgid "Window Height:" #~ msgstr "Wysokość okna:" #~ msgid "_Close" #~ msgstr "Zamknij" #~ msgid "Window Width:" #~ msgstr "Szerokość okna:" #~ msgid "Text Color" #~ msgstr "Kolor tekstu" #~ msgid "Remove All" #~ msgstr "Usuń wszystkie" #~ msgid "These options only affect the unified engine." #~ msgstr "Te opcje dotyczą tylko zunifikowanego silnika." #~ msgid " + " #~ msgstr " + " #~ msgid "Vol:" #~ msgstr "Głośność:" #~ msgid "Stop Playback" #~ msgstr "Zatrzymaj odtwarzanie" #~ msgid " - " #~ msgstr " - " #~ msgid "Page 1" #~ msgstr "Strona 1" #~ msgid "_Go to Playing Track" #~ msgstr "Przejdź do odtwarzane_go utworu" #~ msgid "_Export current playlist" #~ msgstr "_Eksportuj obecną liste odtwarzania" #~ msgid "General" #~ msgstr "Ogólne" #~ msgid "Delete bookmark" #~ msgstr "Skasuj zakładkę" #~ msgid "Personal" #~ msgstr "Osobiste" #~ msgid "Neighbourhood" #~ msgstr "Sąsiedzi" #~ msgid "Loved Tracks" #~ msgstr "Ulubione utwory" #~ msgid "Recommended" #~ msgstr "Zalecane" #~ msgid "LastFM Radio" #~ msgstr "Radio Last.FM" #~ msgid "Restore Main Window" #~ msgstr "Przywróć okno główne" #~ msgid "Selected controls" #~ msgstr "Wybrane kontrolki" #~ msgid "Available controls" #~ msgstr "Dostępne kontrolki" #~ msgid " & " #~ msgstr " & " #~ msgid "Time per Increment:" #~ msgstr "Czas na inkrement:" #~ msgid "Album Line:" #~ msgstr "Linia albumu:" #~ msgid "On Tray Icon Hover" #~ msgstr "Podczas ustawienia kursora na ikonie w zasobniku" #~ msgid "" #~ "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " #~ "replaced by their respective values. The title will be replaced by " #~ "\"Unknown\" if it is empty." #~ msgstr "" #~ "Tagi \"%(title)s\", \"%(artist)s\" oraz \"%(album)s\" będą zastąpione " #~ "przez ich wartości Tytuł będzie zastąpiony przez \"Nieznany\" jeśli jest " #~ "pusty." #~ msgid "Artist Line:" #~ msgstr "Linia artysty:" #~ msgid "On Track Change" #~ msgstr "Podczas zmiany utworu" #~ msgid "On Playback Start, Pause or Stop" #~ msgstr "Podczas startu/stopu/pauzy odtwarzania" #~ msgid "Only artist" #~ msgstr "Tylko artysta" #~ msgid "Summary" #~ msgstr "Podsumowanie" #~ msgid "Both artist and album" #~ msgstr "Artysta i album" #~ msgid "Only album" #~ msgstr "Tylko album" #~ msgid "Position" #~ msgstr "Pozycja" #~ msgid "Vertical:" #~ msgstr "Pionowo:" #~ msgid "Display window decorations" #~ msgstr "Wyświetl dekoracje okna" #~ msgid "Center vertically" #~ msgstr "Wyśrodkuj w pionie" #~ msgid "Horizontal:" #~ msgstr "Poziomo:" #~ msgid "Center horizontally" #~ msgstr "Wyśrodkuj w poziomie" #~ msgid "Save Location:" #~ msgstr "Zapisz położenie:" #~ msgid "Invalid file extension, file not saved" #~ msgstr "Nieprawidłowe rozszerzenie pliku, nie zapisano pliku" #~ msgid "_Save As Custom Playlist" #~ msgstr "Zapisz jako własna lista odtwarzania" #~ msgid "Choose a file to open" #~ msgstr "Wybierz plik do otwarcia" #~ msgid "Opacity Level:" #~ msgstr "Stopień przezroczystości:" #~ msgid "" #~ "Normal\n" #~ "Unified (unstable)" #~ msgstr "" #~ "Normalny\n" #~ "Zunifikowany (niestabilny)" #~ msgid "0/0 tracks" #~ msgstr "0/0 ścieżek" #~ msgid "Bookmark this track" #~ msgstr "Dodaj zakładkę do tego utworu" #~ msgid "Clear bookmarks" #~ msgstr "Wyczyść zakładki" #~ msgid "Timer per Increment:" #~ msgstr "Czas na przyrost:" #~ msgid "Use Album Covers As Icons" #~ msgstr "Użyj okładek albumów jako ikon" #~ msgid "" #~ "Message that should be displayed in the body of the notification. In each " #~ "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced " #~ "by their respective values. If the tag is not known, \"Unknown\" will be " #~ "filled in its place" #~ msgstr "" #~ "Wiadomość, która powinna być wyświetlana w treści powiadomienia. Za " #~ "każdym razem \"%(title)s\", \"%(artist)s\", and \"%(album)s\" zostaną " #~ "zamienione na odpowiednie wartości. Jeśli któryś z tagów będzie pusty, to " #~ "w jego miejsce zostanie wstawiony \"Nieznany\"" #~ msgid "Custom playlist name:" #~ msgstr "Niestandardowa nazwa playlisty:" #~ msgid "No track" #~ msgstr "Brak ścieżki" #~ msgid "_Save As..." #~ msgstr "_Zapisz jako..." #~ msgid "Save As..." #~ msgstr "Zapisz jako..." #~ msgid "Delete track" #~ msgstr "Usuń ścieżkę" #~ msgid "%(year)d-%(month)02d-%(day)02d" #~ msgstr "%(year)d-%(month)02d-%(day)02d" #~ msgid "Add To New Playlist..." #~ msgstr "Dodaj do nowej playlisty" #~ msgid "Could not enable plugin: %s" #~ msgstr "Nie można włączyć pluginu: %s" #~ msgid "Could not disable plugin: %s" #~ msgstr "Nie można wyłączyć pluginu: %s" #~ msgid "Move selected item up" #~ msgstr "Przesunięcie wybranego elementu wyżej" #~ msgid "Move selected item down" #~ msgstr "Przesunięcie wybranego elementu niżej" #~ msgid "Remove item" #~ msgstr "Usuń element" #~ msgid "Add item" #~ msgstr "Dodaj element" #~ msgid "Details" #~ msgstr "Szczegóły" #~ msgid "Date:" #~ msgstr "Data:" #~ msgid "File Size:" #~ msgstr "Rozmiar pliku:" #~ msgid "Length:" #~ msgstr "Długość:" #~ msgid "Play Count:" #~ msgstr "Licznik odtwarzania:" #~ msgid "Use alpha transparency (if supported)" #~ msgstr "Używaj przezroczystości (jeśli obsługiwana)" #~ msgid "_Save Changes To Playlist" #~ msgstr "_Zapisz Zmiany w liście odtwarzania" #~ msgid "Idle." #~ msgstr "Brak zadań." #~ msgid "" #~ "This will permanantly delete the selected tracks from your disk, are you " #~ "sure you wish to continue?" #~ msgstr "To trwale usunie zaznaczone ścieżki z Twojego dysku. Kontynuować?" #~ msgid "_Randomize Playlist" #~ msgstr "Wymieszaj listę odtwarzania" #~ msgid "Track _properties" #~ msgstr "Właściwości ścieżki" #~ msgid "Install plugin file" #~ msgstr "Zainstaluj wtyczkę z pliku" #~ msgid "Start/Pause Playback" #~ msgstr "Rozpocznij/wstrzymaj odtwarzanie" #~ msgid "Secret Key:" #~ msgstr "Sekretny klucz:" #~ msgid "" #~ "Adds support for playing audio CDs.\n" #~ "Requires python-cddb to look up tags." #~ msgstr "" #~ "Dodaj wsparcie dla odtwarzania audio CD.\n" #~ "Wymaga python-cddb do wyszukiwania tagów." #~ msgid "Track title format:" #~ msgstr "Format tytułu ścieżki:" #~ msgid "Basic" #~ msgstr "Podstawowy" #~ msgid "$title ($length)" #~ msgstr "$title ($length)" #~ msgid "Use Media Icons For Pause, Stop and Resume" #~ msgstr "" #~ "Użyj przycisków multimedialnych do odtwarzania, zatrzymywania i " #~ "kontynuowania" #~ msgid "Last.fm Dynamic Search" #~ msgstr "Dynamiczne wyszukiwanie z Last.fm" #~ msgid "Pauses/resumes playback on screensaver start/stop" #~ msgstr "" #~ "Wstrzymuje/kontynuuje odtwarzanie przy włączeniu/wyłączeniu wygaszacza " #~ "ekranu" #~ msgid "iPod support" #~ msgstr "Obsługa iPod" #~ msgid "A plugin for iPod support" #~ msgstr "Wtyczka do obsługi iPod" #~ msgid "Print the position inside the current track as time" #~ msgstr "Wyświetl pozycję w obecnym utworze jako czas" #~ msgid "Print the progress inside the current track as percentage" #~ msgstr "Wyświetl pozycję w obecnym utworze procentowo" #~ msgid "Install a third party plugin from a file" #~ msgstr "Zainstaluj wtyczkę z innego źródła z pliku" #~ msgid "Seeking: " #~ msgstr "Przewijanie: " #~ msgid "" #~ "To sign up for an Amazon AWS account and get \n" #~ "this information visit http://aws.amazon.com/" #~ msgstr "" #~ "Aby założyć konto Amazon AWS i pobierać \n" #~ "te informacje odwiedź http://aws.amazon.com/" #~ msgid "Terminal Opacity:" #~ msgstr "Przezroczystość terminalu:" #~ msgid "Filter event debug output" #~ msgstr "Filtruj wynik akcji debugowania" #~ msgid "Device class does not support transfer." #~ msgstr "Klasa urządzenia nie wspiera transferu." #~ msgid "When GUI is Focused" #~ msgstr "Gdy skupienie jest na interfejsie graficznym" #~ msgid "Tag Covers" #~ msgstr "ta" #~ msgid "Creates an MPRIS D-Bus object to control Exaile" #~ msgstr "Tworzy obiekt MPRIS D-Bus do kontrolowania Exaile" #~ msgid "Show Menuitem to toggle Submission" #~ msgstr "Umożliw włączanie/wyłączanie scrobblowania przez przycisk w menu" #~ msgid "Plugin to fetch lyrics from lyricwiki.org" #~ msgstr "Wtyczka do pobierania tekstów piosenek z lyricwiki.org" #~ msgid "" #~ "Show various informations about the track currently playing.\n" #~ "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2" #~ msgstr "" #~ "Wyświetla różne informacje o aktualnie granym utworze.\n" #~ "Zależności: libwebkit >= 1.0.1, python-webkit >= 1.1.2" #~ msgid "Searches track tags for covers" #~ msgstr "Przeszukuje tagi utworów w poszukiwaniu okładek" #~ msgid "MPRIS" #~ msgstr "MPRIS" #~ msgid "Show a popup of the currently playing track" #~ msgstr "Pokaż okienko z aktualnie odtwarzanym utworem" #~ msgid "New custom playlist name:" #~ msgstr "Nowa nazwa listy odtwarzania:" dist/copy/po/PaxHeaders.26361/hi.po0000644000175000017500000000012312233027260015376 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 29 ctime=1382821553.04504693 exaile-3.3.2/po/hi.po0000644000000000000000000027443112233027260014352 0ustar00rootroot00000000000000# Hindi translation for exaile # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2011-05-06 17:40+0000\n" "Last-Translator: Danish Faizan \n" "Language-Team: Hindi \n" "Language: hi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-08-28 05:26+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "" #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "" #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "" #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "" #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "कभी नही" #: ../xl/formatter.py:702 msgid "Today" msgstr "आज" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "बीता कल" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "विकल्प" #: ../xl/main.py:421 msgid "Playback Options" msgstr "" #: ../xl/main.py:423 msgid "Play the next track" msgstr "अगला गीत बजाओ" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "पिछला गीत बजाओ" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "बजाना बंद करो" #: ../xl/main.py:429 msgid "Play" msgstr "बजाओ" #: ../xl/main.py:431 msgid "Pause" msgstr "" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "" #: ../xl/main.py:440 msgid "Collection Options" msgstr "" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:454 msgid "Track Options" msgstr "" #: ../xl/main.py:456 msgid "Query player" msgstr "" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "इस गाने का नाम दिखाओ" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "इस गाने का एल्बम दिखाओ" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "इस गाने के गायक को दिखाओ" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "" #: ../xl/main.py:490 msgid "Volume Options" msgstr "" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "" #: ../xl/main.py:507 msgid "Other Options" msgstr "अन्य विकल्प" #: ../xl/main.py:509 msgid "Start new instance" msgstr "" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "" #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "" #: ../xl/main.py:536 msgid "Set data directory" msgstr "" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "मॉड्यूल" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "" #: ../xl/main.py:543 msgid "LEVEL" msgstr "स्तर" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:555 msgid "TYPE" msgstr "प्रकार" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "" #: ../xl/main.py:580 msgid "Entire Library" msgstr "" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "" #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "विविध कलाकार" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "आज्ञात" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr "" #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "" #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "स्वचालित" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "मनपसंद" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "" #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "" #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "" #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "अज्ञात सेटिंग पायी गयी!" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "" #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "गीत-सूची" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "" #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "मिनट्स" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "घंटे" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "दिन" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "हफ्ते" #: ../xl/lyrics.py:305 msgid "Local" msgstr "स्थानीय" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "नाम:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "" #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr "" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "गीत बंद है" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "स्थानान्तर" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "मौन" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "अधिकतम आवाज" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "विविध" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "ट्रैक संख्या" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "शीर्षक" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "गायक" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "एल्बम" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "लंबाई" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "डिस्क" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "डिस्क संख्या" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "रेटिंग" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "दिनांक" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "शैली" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "बिटरेट" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "स्थान" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "फाइल नाम" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "फेंटें" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "दोहराएँ" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "यूआरएल खोलें" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "सभी फ़ाइलें" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "" #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "" #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "टैब बंद करें" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "" #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "प्लेबैक शुरु करें" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "_वेबसाइट बजाए" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "पुन: प्रारंभ करें" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "" #: ../xlgui/properties.py:54 msgid "Website" msgstr "वेबसाइट" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "कवर" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "" #: ../xlgui/properties.py:57 msgid "Author" msgstr "" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "कॉपीराइट" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "ट्रैक" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "संस्करण" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "संस्था" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "कवर हटाएं" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "" #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "" #: ../xlgui/devices.py:81 msgid "Device" msgstr "" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "" #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "" #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "विशेषताएँ" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "हटाएँ" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "" #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "" #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "" msgstr[1] "" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "संकलन" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "गीत-सूचियाँ" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "पिछला गीत" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "अगला गीत" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "रेडियो" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "फ़ाइलें" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "खोजें: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "" #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "" #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "ट्रे आइकान दिखाए" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "वरीयताएं" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "" #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "" #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "" #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "" #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "" #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "पिछला" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "अगला" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "" #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "" #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "" #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "" #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "" #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "कूटशब्द:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "उपयोक्ता नाम:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "पृष्ठभूमि का रंगः" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" #~ msgid "Clear" #~ msgstr "साफ" #~ msgid "Close" #~ msgstr "बंद करें" #~ msgid "Close tab" #~ msgstr "टैब बन्द करें" #~ msgid "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgstr "" #~ "{शीर्षक}\n" #~ "{गायक}\n" #~ "'{एलबम}' से - ({देरी})" #~ msgid "General" #~ msgstr "सामान्य" #~ msgid "New Search" #~ msgstr "नए सिरे से ढूंढें" #~ msgid "Stopped" #~ msgstr "रुका हुआ" #~ msgid "Autosize" #~ msgstr "स्वतः-विस्तरण" #~ msgid "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "Year - Artist\n" #~ "Year - Album\n" #~ "Artist - Year - Album" #~ msgstr "" #~ "गायक\n" #~ "एलबम\n" #~ "शैली - गायक\n" #~ "शैली - एलबम\n" #~ "वर्ष - गायक\n" #~ "वर्ष - एलबम\n" #~ "गायक - वर्ष - एलबम" #~ msgid "Popup" #~ msgstr "पॉप अप" #~ msgid "Start" #~ msgstr "प्रारंभ" #~ msgid "Show OSD on track change" #~ msgstr "गीत बदलने पर ओ.एस.डी. दिखाए" #~ msgid "Exaile" #~ msgstr "एक्ज़ाइल" #~ msgid "Extension" #~ msgstr "एक्सटेंशन" dist/copy/po/PaxHeaders.26361/ts.po0000644000175000017500000000012412233027260015425 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.397046941 exaile-3.3.2/po/ts.po0000644000000000000000000027130012233027260014370 0ustar00rootroot00000000000000# Tsonga translation for exaile # Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2012. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-08-25 20:55+0200\n" "PO-Revision-Date: 2012-06-11 09:50+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Tsonga \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n!=1;\n" "X-Launchpad-Export-Date: 2012-08-28 05:28+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "" #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "" #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "" #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "" #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "" #: ../xl/formatter.py:690 ../xl/formatter.py:695 msgid "Never" msgstr "" #: ../xl/formatter.py:701 msgid "Today" msgstr "" #: ../xl/formatter.py:703 msgid "Yesterday" msgstr "" #: ../xl/main.py:191 msgid "Failed to migrate from 0.2.14" msgstr "" #: ../xl/main.py:406 msgid "Usage: exaile [OPTION]... [URI]" msgstr "" #: ../xl/main.py:407 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "" #: ../xl/main.py:411 msgid "Playback Options" msgstr "" #: ../xl/main.py:413 msgid "Play the next track" msgstr "" #: ../xl/main.py:415 msgid "Play the previous track" msgstr "" #: ../xl/main.py:417 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "" #: ../xl/main.py:419 msgid "Play" msgstr "" #: ../xl/main.py:421 msgid "Pause" msgstr "" #: ../xl/main.py:424 msgid "Pause or resume playback" msgstr "" #: ../xl/main.py:427 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "" #: ../xl/main.py:430 msgid "Collection Options" msgstr "" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:433 ../xl/main.py:440 msgid "LOCATION" msgstr "" #: ../xl/main.py:433 msgid "Add tracks from LOCATION to the collection" msgstr "" #: ../xl/main.py:437 msgid "Playlist Options" msgstr "" #: ../xl/main.py:441 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:444 msgid "Track Options" msgstr "" #: ../xl/main.py:446 msgid "Query player" msgstr "" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:449 msgid "FORMAT" msgstr "" #: ../xl/main.py:450 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:453 msgid "TAGS" msgstr "" #: ../xl/main.py:454 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:457 msgid "Show a popup with data of the current track" msgstr "" #: ../xl/main.py:459 msgid "Print the title of current track" msgstr "" #: ../xl/main.py:461 msgid "Print the album of current track" msgstr "" #: ../xl/main.py:463 msgid "Print the artist of current track" msgstr "" #: ../xl/main.py:465 msgid "Print the length of current track" msgstr "" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:468 ../xl/main.py:483 ../xl/main.py:487 msgid "N" msgstr "" #: ../xl/main.py:469 msgid "Set rating for current track to N%" msgstr "" #: ../xl/main.py:471 msgid "Get rating for current track" msgstr "" #: ../xl/main.py:474 msgid "Print the current playback position as time" msgstr "" #: ../xl/main.py:476 msgid "Print the current playback progress as percentage" msgstr "" #: ../xl/main.py:480 msgid "Volume Options" msgstr "" #: ../xl/main.py:484 msgid "Increases the volume by N%" msgstr "" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:489 msgid "Decreases the volume by N%" msgstr "" #: ../xl/main.py:492 msgid "Mutes or unmutes the volume" msgstr "" #: ../xl/main.py:494 msgid "Print the current volume percentage" msgstr "" #: ../xl/main.py:497 msgid "Other Options" msgstr "" #: ../xl/main.py:499 msgid "Start new instance" msgstr "" #: ../xl/main.py:501 msgid "Show this help message and exit" msgstr "" #: ../xl/main.py:503 msgid "Show program's version number and exit." msgstr "" #: ../xl/main.py:506 msgid "Start minimized (to tray, if possible)" msgstr "" #: ../xl/main.py:509 msgid "Toggle visibility of the GUI (if possible)" msgstr "" #: ../xl/main.py:511 msgid "" "Start in safe mode - sometimes useful when you're running into problems" msgstr "" #: ../xl/main.py:514 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" #: ../xl/main.py:517 msgid "Do not import old data from version 0.2.x" msgstr "" #: ../xl/main.py:520 msgid "Make control options like --play start Exaile if it is not running" msgstr "" #: ../xl/main.py:524 msgid "Development/Debug Options" msgstr "" #: ../xl/main.py:526 ../xl/main.py:528 msgid "DIRECTORY" msgstr "" #: ../xl/main.py:526 msgid "Set data directory" msgstr "" #: ../xl/main.py:528 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:530 msgid "MODULE" msgstr "" #: ../xl/main.py:531 msgid "Limit log output to MODULE" msgstr "" #: ../xl/main.py:533 msgid "LEVEL" msgstr "" #: ../xl/main.py:534 msgid "Limit log output to LEVEL" msgstr "" #: ../xl/main.py:537 msgid "Show debugging output" msgstr "" #: ../xl/main.py:539 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "" #: ../xl/main.py:542 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:545 msgid "TYPE" msgstr "" #: ../xl/main.py:546 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:548 msgid "Reduce level of output" msgstr "" #: ../xl/main.py:552 msgid "Disable D-Bus support" msgstr "" #: ../xl/main.py:554 msgid "Disable HAL support." msgstr "" #: ../xl/main.py:570 msgid "Entire Library" msgstr "" #: ../xl/main.py:576 #, python-format msgid "Random %d" msgstr "" #: ../xl/main.py:584 #, python-format msgid "Rating > %d" msgstr "" #: ../xl/main.py:685 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "" #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "" #: ../xl/trax/trackdb.py:246 msgid "You did not specify a location to save the db" msgstr "" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr "" #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "" #: ../xl/player/pipe.py:309 ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Automatic" msgstr "" #: ../xl/player/pipe.py:345 ../data/ui/preferences/playback.ui.h:21 #: ../plugins/previewdevice/previewprefs.ui.h:16 msgid "Custom" msgstr "" #: ../xl/player/pipe.py:400 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "" #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "" #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "" #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "" #: ../xl/playlist.py:173 msgid "Playlist" msgstr "" #: ../xl/playlist.py:279 ../xlgui/oldmenu.py:269 msgid "M3U Playlist" msgstr "" #: ../xl/playlist.py:379 ../xlgui/oldmenu.py:270 msgid "PLS Playlist" msgstr "" #: ../xl/playlist.py:472 ../xl/playlist.py:488 #, python-format msgid "Invalid format for %s." msgstr "" #: ../xl/playlist.py:483 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "" #: ../xl/playlist.py:543 ../xlgui/oldmenu.py:271 msgid "ASX Playlist" msgstr "" #: ../xl/playlist.py:714 ../xlgui/oldmenu.py:272 msgid "XSPF Playlist" msgstr "" #: ../xl/playlist.py:829 msgid "Shuffle _Off" msgstr "" #: ../xl/playlist.py:830 msgid "Shuffle _Tracks" msgstr "" #: ../xl/playlist.py:830 msgid "Shuffle _Albums" msgstr "" #: ../xl/playlist.py:834 msgid "Repeat _Off" msgstr "" #: ../xl/playlist.py:834 msgid "Repeat _All" msgstr "" #: ../xl/playlist.py:834 msgid "Repeat O_ne" msgstr "" #: ../xl/playlist.py:838 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:838 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1779 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "" #: ../xl/playlist.py:1780 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "" #: ../xl/playlist.py:1781 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "" #: ../xl/playlist.py:1782 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "" #: ../xl/playlist.py:1783 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "" #: ../xl/lyrics.py:305 msgid "Local" msgstr "" #: ../xlgui/widgets/menuitems.py:93 msgid "Enqueue" msgstr "" #: ../xlgui/widgets/menuitems.py:115 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "" #: ../xlgui/widgets/menuitems.py:119 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "" #: ../xlgui/widgets/menuitems.py:129 ../xlgui/widgets/playlist.py:309 #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "" #: ../xlgui/widgets/menuitems.py:142 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "" #: ../xlgui/widgets/menuitems.py:164 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" #: ../xlgui/widgets/menuitems.py:179 msgid "Move to Trash" msgstr "" #: ../xlgui/widgets/menuitems.py:190 msgid "_Show Playing Track" msgstr "" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "" #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr "" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "" #: ../xlgui/widgets/queue.py:41 ../xlgui/widgets/playlist.py:208 #: ../xlgui/playlist.py:130 msgid "Clear" msgstr "" #: ../xlgui/widgets/queue.py:44 ../xlgui/widgets/playlist.py:211 #: ../plugins/history/__init__.py:239 msgid "Close" msgstr "" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:204 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "" #: ../xlgui/widgets/playlist_columns.py:205 msgid "Track Number" msgstr "" #: ../xlgui/widgets/playlist_columns.py:212 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "" #: ../xlgui/widgets/playlist_columns.py:219 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:171 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "" #: ../xlgui/widgets/playlist_columns.py:226 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "" #: ../xlgui/widgets/playlist_columns.py:233 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:174 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "" #: ../xlgui/widgets/playlist_columns.py:240 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "" #: ../xlgui/widgets/playlist_columns.py:247 ../xlgui/properties.py:75 msgid "Disc" msgstr "" #: ../xlgui/widgets/playlist_columns.py:248 msgid "Disc Number" msgstr "" #: ../xlgui/widgets/playlist_columns.py:255 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "" #: ../xlgui/widgets/playlist_columns.py:299 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "" #: ../xlgui/widgets/playlist_columns.py:305 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "" #: ../xlgui/widgets/playlist_columns.py:319 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "" #: ../xlgui/widgets/playlist_columns.py:326 ../xlgui/panel/files.py:147 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "" #: ../xlgui/widgets/playlist_columns.py:333 msgid "Playcount" msgstr "" #: ../xlgui/widgets/playlist_columns.py:340 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "" #: ../xlgui/widgets/playlist_columns.py:347 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "" #: ../xlgui/widgets/playlist_columns.py:359 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:478 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:487 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:606 msgid "_Resizable" msgstr "" #: ../xlgui/widgets/playlist_columns.py:611 msgid "_Autosize" msgstr "" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "" #: ../xlgui/widgets/playlist.py:126 msgid "Shuffle" msgstr "" #: ../xlgui/widgets/playlist.py:130 msgid "Repeat" msgstr "" #: ../xlgui/widgets/playlist.py:134 msgid "Dynamic" msgstr "" #: ../xlgui/widgets/playlist.py:149 msgid "Remove Current Track From Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:179 msgid "Randomize Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:203 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "" #: ../xlgui/widgets/playlist.py:246 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:253 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:302 ../xlgui/oldmenu.py:352 #: ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "" #: ../xlgui/widgets/playlist.py:499 msgid "Requires plugins providing dynamic playlists" msgstr "" #: ../xlgui/widgets/playlist.py:503 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "" #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/notebook.py:136 msgid "Close tab" msgstr "" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "" #: ../xlgui/main.py:463 msgid "Toggle: Stop after Selected Track" msgstr "" #: ../xlgui/main.py:566 ../plugins/previewdevice/__init__.py:354 msgid "Playback error encountered!" msgstr "" #: ../xlgui/main.py:573 #, python-format msgid "Buffering: %d%%..." msgstr "" #: ../xlgui/main.py:625 ../plugins/previewdevice/__init__.py:365 msgid "Continue Playback" msgstr "" #: ../xlgui/main.py:629 ../xlgui/main.py:817 #: ../plugins/previewdevice/__init__.py:336 #: ../plugins/previewdevice/__init__.py:369 msgid "Pause Playback" msgstr "" #: ../xlgui/main.py:771 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "" #: ../xlgui/main.py:829 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:347 msgid "Start Playback" msgstr "" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "" #: ../xlgui/menu.py:115 msgid "Close Tab" msgstr "" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "" #: ../xlgui/properties.py:54 msgid "Website" msgstr "" #: ../xlgui/properties.py:55 ../xlgui/cover.py:777 msgid "Cover" msgstr "" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "" #: ../xlgui/properties.py:57 msgid "Author" msgstr "" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1096 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "" #: ../xlgui/cover.py:111 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:112 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:137 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:477 msgid "Show Cover" msgstr "" #: ../xlgui/cover.py:478 msgid "Fetch Cover" msgstr "" #: ../xlgui/cover.py:479 msgid "Remove Cover" msgstr "" #: ../xlgui/cover.py:779 #, python-format msgid "Cover for %s" msgstr "" #: ../xlgui/cover.py:949 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "" #: ../xlgui/cover.py:982 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1054 msgid "No covers found." msgstr "" #: ../xlgui/cover.py:1055 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "" #: ../xlgui/devices.py:81 msgid "Device" msgstr "" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "" #: ../xlgui/__init__.py:289 msgid "Scanning collection..." msgstr "" #: ../xlgui/__init__.py:373 #, python-format msgid "Scanning %s..." msgstr "" #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "" #: ../xlgui/oldmenu.py:264 msgid "Export as..." msgstr "" #: ../xlgui/oldmenu.py:289 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:299 ../xlgui/panel/playlists.py:1197 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "" #: ../xlgui/oldmenu.py:312 msgid "Enter the new name you want for your playlist" msgstr "" #: ../xlgui/oldmenu.py:313 msgid "Rename Playlist" msgstr "" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "" #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "" #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "" #: ../xlgui/panel/collection.py:177 msgid "Genre - Artist" msgstr "" #: ../xlgui/panel/collection.py:180 msgid "Genre - Album" msgstr "" #: ../xlgui/panel/collection.py:183 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:186 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:189 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:312 msgid "Rescan Collection" msgstr "" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:171 msgid "Size" msgstr "" #: ../xlgui/panel/files.py:433 #, python-format msgid "%d KB" msgstr "" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "" #: ../xlgui/panel/playlists.py:276 msgid "Playlist name:" msgstr "" #: ../xlgui/panel/playlists.py:277 msgid "Add new playlist..." msgstr "" #: ../xlgui/panel/playlists.py:286 ../xlgui/panel/playlists.py:768 #: ../xlgui/panel/playlists.py:851 msgid "You did not enter a name for your playlist" msgstr "" #: ../xlgui/panel/playlists.py:289 ../xlgui/panel/playlists.py:349 #: ../xlgui/panel/playlists.py:774 ../xlgui/panel/playlists.py:858 msgid "The playlist name you entered is already in use." msgstr "" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:443 ../xlgui/panel/playlists.py:457 #: ../xlgui/panel/playlists.py:471 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:448 ../xlgui/panel/playlists.py:462 #: ../xlgui/panel/playlists.py:476 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:688 msgid "Smart Playlists" msgstr "" #: ../xlgui/panel/playlists.py:691 msgid "Custom Playlists" msgstr "" #: ../xlgui/panel/playlists.py:746 msgid "Add Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:821 msgid "Edit Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:1144 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "" msgstr[1] "" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2010" msgstr "" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "" #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "" #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "" #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "GNOME" msgstr "" #: ../data/ui/preferences/playback.ui.h:16 #: ../plugins/previewdevice/previewprefs.ui.h:11 msgid "ALSA" msgstr "" #: ../data/ui/preferences/playback.ui.h:17 #: ../plugins/previewdevice/previewprefs.ui.h:12 msgid "OSS" msgstr "" #: ../data/ui/preferences/playback.ui.h:18 #: ../plugins/previewdevice/previewprefs.ui.h:13 msgid "PulseAudio" msgstr "" #: ../data/ui/preferences/playback.ui.h:19 #: ../plugins/previewdevice/previewprefs.ui.h:14 msgid "JACK" msgstr "" #: ../data/ui/preferences/playback.ui.h:20 #: ../plugins/previewdevice/previewprefs.ui.h:15 msgid "DirectSound" msgstr "" #: ../data/ui/preferences/playback.ui.h:22 #: ../plugins/previewdevice/previewprefs.ui.h:17 msgid "Normal" msgstr "" #: ../data/ui/preferences/playback.ui.h:23 #: ../plugins/previewdevice/previewprefs.ui.h:18 msgid "Unified (unstable)" msgstr "" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Always show tab bar" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Tab placement:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:6 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:9 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "Show tray icon" msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Minimize to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:15 msgid "Jump to current song on track change" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Show splash screen on startup" msgstr "" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Left" msgstr "" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Right" msgstr "" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Top" msgstr "" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Bottom" msgstr "" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "" #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "" #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "" #: ../plugins/streamripper/__init__.py:64 msgid "Error executing streamripper" msgstr "" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:185 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:204 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/awn/awn_prefs.py:32 msgid "AWN" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "" #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "" #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:155 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:161 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "" #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:130 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:95 #: ../plugins/grouptagger/__init__.py:112 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:106 #: ../plugins/grouptagger/gt_widgets.py:688 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:117 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:121 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:652 #: ../plugins/grouptagger/gt_widgets.py:753 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:512 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:709 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:735 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:746 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:746 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:746 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:746 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:754 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "" #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:356 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "" #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "" #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "" #: ../plugins/contextinfo/__init__.py:1127 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "" #: ../plugins/bpm/__init__.py:78 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:238 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "" #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "" #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 msgid "API Key:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgctxt "yes" msgid "Monday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgctxt "yes" msgid "Tuesday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgctxt "yes" msgid "Wednesday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgctxt "yes" msgid "Thursday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgctxt "yes" msgid "Friday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgctxt "yes" msgid "Saturday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgctxt "yes" msgid "Sunday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgctxt "yes" msgid "Use Fading" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgctxt "yes" msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgctxt "yes" msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgctxt "yes" msgid "Increment:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgctxt "yes" msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "0" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by " "\"Unknown\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango" " Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret key:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon.com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "" #: ../plugins/awn/PLUGININFO:3 msgid "Awn" msgstr "" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is " "played/resumed/stopped, with either the song cover or a media icon to " "indicate the latest action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides contextual wikipedia information.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" #~ msgid "General" #~ msgstr "Angarhela" dist/copy/po/PaxHeaders.26361/hr.po0000644000175000017500000000012412233027260015410 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.013046929 exaile-3.3.2/po/hr.po0000644000000000000000000036143612233027260014365 0ustar00rootroot00000000000000# Croatian translation for exaile # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2012-07-29 07:14+0000\n" "Last-Translator: Dustin Spicuzza \n" "Language-Team: Croatian \n" "Language: hr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" "X-Launchpad-Export-Date: 2012-08-28 05:28+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "%d dan, " msgstr[1] "%d dani, " msgstr[2] "%d dani, " #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "%d sat, " msgstr[1] "%d sati, " msgstr[2] "%d sati, " #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "%d minuta, " msgstr[1] "%d minute, " msgstr[2] "%d minute, " #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d sekunda" msgstr[1] "%d sekunde" msgstr[2] "%d sekunde" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "%dd, " #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "%ds, " #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "%dm, " #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "%ds" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "%dd " #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "%d:%02d:%02d" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "%d:%02d" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "Nikada" #: ../xl/formatter.py:702 msgid "Today" msgstr "Danas" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "Jučer" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "Migracija iz 0.2.14 nije uspjela" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "Upotreba: exaile [OPTION]... [URI]" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "Postavke" #: ../xl/main.py:421 msgid "Playback Options" msgstr "Postavke reprodukcije" #: ../xl/main.py:423 msgid "Play the next track" msgstr "Sviraj slijedeću pjesmu" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "Sviraj prethodnu pjesmu" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "Zaustavi reprodukciju" #: ../xl/main.py:429 msgid "Play" msgstr "Sviraj" #: ../xl/main.py:431 msgid "Pause" msgstr "Pauza" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "Pauziraj ili nastavi reprodukciju" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "Zaustavi reprodukciju nakon trenutne pjesme" #: ../xl/main.py:440 msgid "Collection Options" msgstr "Mogućnosti Zbirke" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "Lokacija" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "Dodaj pjesme s lokacije u zbirku" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "Mogućnosti popisa pjesama" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "Izvozi trenutni popis pjesama na LOKACIJU" #: ../xl/main.py:454 msgid "Track Options" msgstr "Opcije pjesme" #: ../xl/main.py:456 msgid "Query player" msgstr "Ispitaj preglednika" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "Prikaži popup prozor sa podacima o trenutnoj pjesmi" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "Ispiši naslov trenutne pjesme" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "Ispiši album trenutne pjesme" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "Ispiši izvođača trenutne pjesme" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "Ispiši dužinu trenutne pjesme" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "N" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "Postavi ocjenu za trenutnu pjesmu na N%" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "Dobavi ocjenu za trenutnu pjesmu" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "Ispis trenutne pozicije reprodukcije, kao vrijeme" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "Ispis trenutne pozicije reprodukcije, u obliku postotka" #: ../xl/main.py:490 msgid "Volume Options" msgstr "Postavke glasnoće" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "Povećava glasnoću za N%" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "Smanjuje glasnoću za N%" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "Ispiši postotak trenutne glasnoće" #: ../xl/main.py:507 msgid "Other Options" msgstr "Ostale postavke" #: ../xl/main.py:509 msgid "Start new instance" msgstr "Pokreni novu instancu" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "Prikaži ovu poruku pomoći i izađi" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "Prikaži verziju programa i izađi." #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "Pokreni minimizirano (u trayu, ako je moguće)" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "Preklopi vidljivost GUI-a (ako je moguće)" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "" "Pokreni u sigurnom načinu rada - ponekad korisno ako naiđete na probleme" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" "Prisilno uvedi stare podatke iz inačice 0.2.x (Prebrisat će trenutne podatke)" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "Ne uvodi stare podatke iz inačice 0.2.x" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "Učini da opcije kao --sviraj pokrenu Exaile ukoliko nije pokrenut" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "Razvoj/Debug postavke" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "DIREKTORIJ" #: ../xl/main.py:536 msgid "Set data directory" msgstr "Postavi direktorij podataka" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "MODUL" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "Ograniči izlaz informacija na MODUL" #: ../xl/main.py:543 msgid "LEVEL" msgstr "RAZINA" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "Ograniči izlaz informacija na RAZINU" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "Prikaži izlaz otklanjanja grešaka" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "Omogući debuggiranje xl.događaja. Generira PUNO ispisa." #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "Dodaj ime Thread-a u poruke zapisa" #: ../xl/main.py:555 msgid "TYPE" msgstr "TIP" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "Ograniči xl.event otklanjanje grešaka na izlaz informacija za TIP" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "Smanji razinu izlaza" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "Onemogući D-Bus podršku" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "Onemogući HAL podršku" #: ../xl/main.py:580 msgid "Entire Library" msgstr "Cijela Knjižnica" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "Nasumično %d" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "Ocjena > %d" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" "Exaile još nije završio učitavanje. Možda bi trebali slušati čuje li se " "'exaile_loaded' signal?" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "Oznake" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "Arhiva dodataka nije u pravilnom formatu." #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "Dodatak imenovan \"%s\" je već instaliran." #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "Arhiva dodataka sadrži nesigurnu putanju" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "Niste specificirali lokaciju iz koje učitati db" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "Niste specificirali lokaciju za spremanje db" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "Razni izvođači" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "Nepoznato" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr " / " #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "%dk" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" "Vorbis je audio kodek otvorenog koda s degradacijom kvalitete. Pruža visoku " "kvalitetu uz manju veličinu datoteke od MP3 formata." #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" "Free Lossless Audio Codec (FLAC) kodek je otvorenog koda koji komprimira " "zvuk bez gubitka na kvaliteti." #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" "Appleov audio format s degradacijom kvalitete koji pri većoj kompresiji " "(manji bitrate) postiže bolju kvalitetu od MP3 formata." #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" "Vlasnički i stariji, ali isto popularan, audio format s degradacijom " "kvalitete. VBR nudi višu kvalitetu nego CBR, ali možda nije kompatibilan sa " "nekim sviračima." #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" "Vlasnički i stariji, ali isto popularan, audio format s degradacijom " "kvalitete. CBR nudi manju kvalitetu nego VBR, ali je kompatibilan sa svim " "sviračima." #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "" "Vrlo brz, besplatan audio format bez degradacije kvalitete, s dobrom " "kompresijom." #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "Automatski" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "Prilagođeni" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "Ne svira." #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" "status: %(status)s, naslov: %(title)s, izvođač: %(artist)s, album: " "%(album)s, dužina: %(length)s, pozicija: %(progress)s%% [%(position)s]" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "Inačica postavki je novija od aktivne." #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "Ne znamo kako pohraniti takvu vrstu postavki. " #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "Pronađen je nepoznati tip postavki." #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "Neodgovarajući tip popisa pjesama" #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "Lista izvođenja" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "M3U lista pjesama" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "PLS lista pjesama" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "" #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "ASX lista pjesama" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "XSPF lista pjesama" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "Miješanje isključen_o" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "Ponavljanje _Isključeno" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "Ponovi _sve" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "Ponovi jed_nu" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "s" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "min" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "h" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "d" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "tj" #: ../xl/lyrics.py:305 msgid "Local" msgstr "Lokalno" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "Stavi u red izvođenja" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "Prebriši trenutnu listu pjesama" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "Dodaj u trenutnu listu pjesama" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "Open Directory" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" "Odabrane datoteke nije moguće premjestiti u smeće. Želite li ih trajno " "ukloniti s diska?" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "Premjesti u smeće" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "Ime:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "Barem jedan od kriterija je točan" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "Promiješaj rezultate" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "Ograniči na: " #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr "" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "Ništa ne svira" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "Premjesti" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "Nova oznaka" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "Utišano" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "%d%%" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "Puna Glasnoća" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "Razno" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "%d prikazano" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "%d odabrano" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "Broj" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "Broj pjesme" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "Naslov" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "Izvođač" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "Skladatelj" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "Album" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "Duljina" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "Disk" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "Broj diska" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "Ocjena" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "Datum" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "Žanr" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "Protok bitova" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "Lokacija" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "Ime datoteke" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "Broj puštanja" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "BPM" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "Zadnje svirano" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "Datum dodavanja" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "_Promjenljive veličine" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "_Autoveličina" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "Ocjena:" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "Napreskokce" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "Ponavljaj" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "Ukloni trenutnu pjesmu s popisa izvođenja" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "Nova lista pjesama" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "Preimenuj" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "Zaustavi izvođenje nakon ove pjesme" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "Nastavi izvođenje nakon ove pjesme" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "Dinamično dodaj slične pjesme u popis izvođenja" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "Unesite URL za otvoriti" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "Otvori URL" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "Podržane Datoteke" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "Glazbene Datoteke" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "Datoteke Liste izvođenja" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "Sve Datoteke" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "Izvoz trenutne liste pjesama" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "Popis izvođenja spremljen kao %s." #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "Zatvori %s" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "Da spremim promjene prije zatvaranja? (%s)" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "Vaše će promjene nestati ako ih ne spremite." #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "Zatvori bez spremanja" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "Sačuvano %(count)s od %(total)s." #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "Niste unijeli ime za listu pjesama." #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "Naziv liste izvođenja koji ste unijeli je već u upotrebi." #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "Zatvori karticu" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "Greška pri reprodukciji!" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "Međuspremanje: %d%%..." #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "Nastavi Reprodukciju" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "Pauziraj Reprodukciju" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "Počni Reprodukciju" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "Exaile Music Player" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "_Nova Lista izvođenja" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "Otvori _URL" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "Ponovo pokreni" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "_Kolekcija" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "_Red" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "O_moti" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "_Kolone" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "Upravitelj _Uređaja" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "Re_skeniraj Kolekciju" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "Svojstva _pjesme" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "Poništi" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "Originalni album" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "Lirik" #: ../xlgui/properties.py:54 msgid "Website" msgstr "Web stranica" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "Omot" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "Originalni umjetnik" #: ../xlgui/properties.py:57 msgid "Author" msgstr "Autor" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "Originalni datum" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "Aranžer" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "Dirigent" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "Izvođač" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "Autorsko pravo" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "Tekst pjesme" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "Traka" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "Inačica" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "ISRC" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "Organizacija" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "Promijenjeno" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "Broj reprodukcija" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "Uređivanje trake %(current)d od %(total)d" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "od:" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "Primijeni trenutnu vrijednost na sve pjesme" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "Prikaži sliku albuma" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "Nabavi sliku albuma" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "Ukloni sliku albuma" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "Omot za %s" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "" #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "Ikona" #: ../xlgui/devices.py:81 msgid "Device" msgstr "Uređaj" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "Upravljački program" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "Pretražujem zbirku..." #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "Skeniranje %s" #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "Stavi u red puštanja" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "Stavi u red puštanja" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "Svojstva" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "Nova Stanica" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "Nova Pametna Lista izvođenja" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "Uredi" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "Izbriši listu pjesama" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "" "Jeste li sigurni da želite nepovratno izbrisati označenu listu pjesama?" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "Unesite novo ime liste pjesama." #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "Preimenuj listu pjesama" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "Ukloni" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "Lista izvođenja %d" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "Dodaj direktorij" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "Direktorij nije dodan." #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" "Direktorij se već nalazi u vašoj kolekciji ili je poddirektorij drugog " "direktorija u vašoj kolekciji." #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "Prijenos u %s..." #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "Učitavam streamove..." #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "Dodaj Radio Stanicu" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "URL:" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "Spremljene stanice" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "Radiostanice" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "Osvježi" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "Unesite ime nove liste pjesama" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "Žanr - Izvođač" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "Žanr - Album" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "Ponovno skeniraj Kolekciju" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "Veličina" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s KiB" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "i" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "jest" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "nije" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "sadrži" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "ne sadrži" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "najmanje" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "najviše" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "prije" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "poslije" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "između" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "veće od" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "manje od" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "u zadnjih" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "nije u posljednjih" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "Svira" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "g" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "Pametne liste pjesama" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "Korisničke liste pjesama" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "Dodaj pametnu listu pjesama" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "Uredi pametnu listu pjesama" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "Reprodukcija" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "Dodaci" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "" msgstr[1] "" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "Odaberite Priključak" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "Arhiva Priključaka" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "Omoti" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "Izgled" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "Zbirka" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "Vrati na Uobičajeno" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "Želite li ponovo pokrenuti Exaile?" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "Akcija" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "Prečica" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "Liste pjesama" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "O Exaileu" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "© 2009-2012" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "Ovaj program je slobodan software; možete ga redistribuirati i/ili " "modificirati\n" "u okviru uvjeta GNU General Public License kao što je objavljeno od strane\n" "Free Software Foundation; bilo verzija 2 Licence ili \n" "(po vašem mišljenju) bilo koja kasnija verzija.\n" "\n" "Ova program je distribuiran u nadi da će biti koristan,\n" "ali BEZ IKAKVE GARANCIJE; čak, bez podrazumijevane garancije\n" "TRŽENJA ili SPADANJA U ODREĐENU SVRHU. Pogledajte \n" "GNU General Public License za više detalja.\n" "\n" "Trebali bi dobiti kopiju GNU General Public License zajedno\n" "sa ovim programom; ako niste, pišite na Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "Upravitelj Omota" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "Promiješaj redoslijed reprodukcije" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "Pronalažeje slika albuma" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "_Datoteka" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "_Uredi" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "_Izgled" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "_Alati" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "_Pomoć" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "Prethodna pjesma" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" "Prekini Reprodukciju\n" "\n" "Desni klik za Stop nakon Mogućnosti trake" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "Sljedeća pjesma" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0:00 / 0:00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "Svojstva Pjesme" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "D_odaj citat" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "_Ukloni citat" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "ab → A_b" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "_Prethodno" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "_Slijedeće" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "Opis:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "Upravljanje zbirkama" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "Radio" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "Dodaj Sve Trake u Listu izvođenja" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "Importiraj CD" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "Dodaj stanicu" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "Datoteke" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "Prethodni posjećen direktorij" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "Sljedeći posjećen direktorij" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "Gore jedan direktorij" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "Osvježi izlistavanje direktorija" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "Home direktorij" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "Traži: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "Kolekcija je prazna." #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "Dodaj Muziku" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" "Osvježi pogled u kolekciju\n" "(Držite Skift tipku za reskeniranje kolekcije))" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "Poredak pretraživanja slika albuma:" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "(vucite za mijenjanje redoslijeda)" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "Otvori zadnju listu pjesama pri pokretanju" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "Pitaj za spremanje prilagođenih lista izvođenja pri zatvaranju" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" "Umjesto dodavanja na kraj, pjesme dodane dvostrukim klikom će zamijeniti " "sadržaj trenutnog popisa izvođenja." #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "Upotrijebi tranziciju \"Izblijeđivanje\" pri korisničkim akcijama" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "Trajanje slabljenja (ms)" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "Upotrijebi crossfading (EKSPERIMENTALNO)" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "Trajanje prijelaznog slabljenja (ms)" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "Audio Sink: " #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "Nastavi reprodukciju na početku" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "Nastavi reprodukciju u pauziranom stanju" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "Normalno" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "Ujedinjen (nestabilno)" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "Dodatak" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "Uključeno" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "Instalirani dodaci" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "Autori:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "Verzija:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "Instaliraj" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "Nije izabran nijedan dodatak." #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "Dostupni dodaci" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "Instaliraj nadogradnje" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "Nadogradnja" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "Uvijek prikaži tablu s karticama" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "Položaj kartice:" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "Prikaži ikonu u tray" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "Minimiziraj u tray" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "Označi trenutnu pjesmu nakon promjene" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "Prikaži pozdravni ekran pri pokretanju" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "Lijevo" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "Desno" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "Vrh" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "Dno" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "Postavke" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "" "(Desnom tipkom miša kliknite za ponovno namještanje na zadane postavke)" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "Upravljanje uređajima" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "Dodaj uređaj" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "Vrsta uređaja:" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "Pronađeni uređaji:" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "Podešeno: " #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "Menadžer reda" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "Traženje raspoloženja..." #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "Raspoloženje pronađeno." #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "Ne mogu pročitati moodbar." #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "Moodbar, izvršna datoteka nije dostupan." #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "Greška pri pokretanju streamrippera" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "Streamripper" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "API ključ je neispravan." #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "Nemoguće pokrenuti preglednik weba" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" "Molim kopirajte navedeni URL i otvorite ga u vašem pregledniku weba:\n" "{url}" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "Alarmni Sat" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "Kontaktiram Shoutcast server..." #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "Greška povezivanja sa Shoutcast serverom." #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "Unesite ključne riječi za traženje" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "Shoutcast Traženje" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "Rezultati Pretrage" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "Pretraga" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "Idi na: " #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "AudioScrobbler" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "Uključi audioscrobbling" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "Equalizer" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "Ugasi nakon izvođenja" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "Računalo će se ugasiti nakon završetka izvođenja." #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "Gašenje neizbježno" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "Računalo će se ugasiti za %d sekundi." #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "Uključi obavijesti preko OSD-a" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "%(title)s" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "od %(artist)s" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "sa %(album)s" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "IPython Konzola - Exaile" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "Prikaži IPython Konzolu" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "IPython Konzola" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "Obavijesti" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" "od %(artist)s\n" "sa %(album)s" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "Importiraj CD..." #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "Audio Disk" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "CD" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "Broj trake" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "Broj diska" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "Brojač" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "Izvođač: " #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" "Da liste znali...\n" "\n" "%s" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "Ponavljaj dio" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "Minimalan Način rada" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "$brojtrake - $naslov" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "$naslov po $umjetnik" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "$title ($__length)" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "Nazad" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "Idi na prethodnu pjesmu" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "Prethodna pjesma" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "Dalje" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "Idi na sljedeću pjesmu" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "Sljedeća pjesma" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "Sviraj/Pauziraj" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "Pokreni, pauziraj ili nastavi izvođenje" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "Pokreni izvođenje" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "Nastavi izvođenje" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "Pauziraj izvođenje" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "Zaustavi" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "Zaustavi izvođenje" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "Nastavi izvođenje nakon trenutne pjesme" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "Jačina zvuka" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "Promijeni glasnoću" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "Vrati" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "Vrati glavni prozor" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "Vrati glavni prozor" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "Odaberite ocjenu trenutne pjesme" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "Odabirač pjesama" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "Tipka za listu izvođenja" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "Pristupi trenutnom popisu izvođenja" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "$title ($current_time / $total_time)" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "Traka progresa" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "Grupa" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "ReplayGain" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "Dodaj i Sviraj" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "Dodaj" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "Spremno" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "Pretražujem Jamendo katalog..." #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "Preuzimam podatke o pjesmi..." #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "Prikaz Na Zaslon" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "Amazon Omoti" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "Podcastovi" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "Podcast" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "Osvježi Podcast" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "Izbrisati" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "Unesite URL podcasta za dodavanje" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "Otvori Podcast" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "Učitavanje %s..." #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "Greška učitavanja podcaasta." #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "Učitavanje Podcasta..." #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "Nemoguće spremiti podcast datoteku" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "Omot Radne Površine" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "Više-Alarmni Sat" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "Kontekst" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "Oznake" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "Pauza na Screensaver" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "DAAP poslužitelj" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "DAAP Klijent" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "Ručno..." #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "Unesite IP adresu i port za dijeljenje" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "Unesite IP adresu i port." #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" "Ovaj poslužitelj ne podržava višestruka spajanja.\n" "Morate zaustaviti izvođenje prije preuzimanja pjesama." #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "Prekini vezu s poslužiteljem" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "Odaberite mjesto za spremanje" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "Spojen na DAAP..." #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "Zatamni odsviranu sekciju umjesto upotrebom kursora" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "Razina tame:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "Upotrijebi temu boje " #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "Osnovna boja:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "Osnovna boja" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "Mjesto spremanja:" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "Ukloni nedovršene datoteke" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "API ključ:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "Vrijeme alarma" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "Ponedjeljak" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "Utorak" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "Srijeda" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "Četvrtak" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "Petak" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "Subota" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "Nedjelja" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "Koristi Izbljeđivanje" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "Povećanje:" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "Nijedan" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "Dostavi pjesme koristeći Audioscrobbler" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "Lozinka:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "Korisničko ime:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "+12 dB" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "0" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "-24 dB" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "29" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "59" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "119" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "237" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "474" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "947" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "1.9K" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "3.8K" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "7.5K" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "15K" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "Prikaz" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "Ikone" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "Sažetak:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "Sadržaj" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "Pismo:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "Boja pozadine" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "Promijeni veličinu prikazanih omota" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "Samo izvođač:" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "Samo album:" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "Tekst Poruke" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "Ogg Vorbis" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "FLAC" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "AAC" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "MP3 (VBR)" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "MP3 (CBR)" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "WavPack" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "Uvozni format: " #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "Uvozni kvalitet: " #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "Uvozni put: " #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "Kontrole" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "Oblik naslova pjesme" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "Uvijek na vrhu" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "Prikaži u listi zadataka" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "Prikaži ukrase prozora:" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "Prikaži na svim radnim površinama" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "Puni" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "Jednostavno" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "Koristi clipping zaštitu" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "Zaštiti od buke uzrokovane prepojačavanjem" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "Dodatno pojačanje za primijeniti na sve datoteke" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "Dodatno pojačanje (dB):" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "Poredaj po:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "Rezultati:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "Napredan" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "Silazno sortiranje" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "Uzlazno sortiranje" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "Datum objave" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "Broj dodavanja na popis izvođenja" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "Broj preuzimanja" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "Broj preslušavanja" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "Sa zvjezdicom" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "Dodaj Podcast" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "X ofset:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "pikseli" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "Y ofset" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "Veličina:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "ms" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "Gornji lijevo" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "Gornji desno" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "Donji lijevi" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "Donji desni" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "Dodaj" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "Alarmi" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "Ponovo pokreni popis izvođenja" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "Izvođenje" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "Otvorite račun na Last.fm-u" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "Ime poslužitelja:" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "Ulaz:" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "Poslužitelj omogućen" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "Aktivna Pjesma" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "GNOME Multimedijski Ključevi" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "Last.fm Omoti" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "Pretraga omota na Last.fm" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "Shoutcast Radio" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "Lista Shoutcast Radia" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "XKeys" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "Librivox" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "Uređaji" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "CD Reprodukcija" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "Kompaktni mode za Exaile sa konfiguracionim sučeljem" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "Jamendo" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "Omogućava pristup Jamendo muzičkim katalozima." #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "iPod podrška" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" "Dodatak za iPod podršku. Trenutno podržava samo čitanje, ne i prijenos.\n" "\n" "Zahtijeva python-gpod." #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "Karaoke" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "Dodaje Jednostavnu Podcast Podršku" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "Prikazuje omot trenutnog albuma na radnoj površini" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "Halo Svijete" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "Kontekstualne Informacije" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" #~ msgid "Clear" #~ msgstr "Očisti" #~ msgid "Close" #~ msgstr "Zatvori" #~ msgid "Close tab" #~ msgstr "Zatvori karticu" #~ msgid "Export as..." #~ msgstr "Izvoz kao..." #~ msgid "%d KB" #~ msgstr "%d KB" #~ msgid "© 2009-2010" #~ msgstr "© 2009-2010" #~ msgid "GNOME" #~ msgstr "GNOME" #~ msgid "ALSA" #~ msgstr "ALSA" #~ msgid "OSS" #~ msgstr "OSS" #~ msgid "PulseAudio" #~ msgstr "PulseAudio" #~ msgid "JACK" #~ msgstr "JACK" #~ msgid "AWN" #~ msgstr "AWN" #~ msgid "API Key:" #~ msgstr "API Ključ:" #~ msgctxt "yes" #~ msgid "Monday" #~ msgstr "Ponedjeljak" #~ msgctxt "yes" #~ msgid "Tuesday" #~ msgstr "Utorak" #~ msgctxt "yes" #~ msgid "Wednesday" #~ msgstr "Srijeda" #~ msgctxt "yes" #~ msgid "Thursday" #~ msgstr "Četvrtak" #~ msgctxt "yes" #~ msgid "Friday" #~ msgstr "Petak" #~ msgctxt "yes" #~ msgid "Saturday" #~ msgstr "Subota" #~ msgctxt "yes" #~ msgid "Sunday" #~ msgstr "Nedjelja" #~ msgctxt "yes" #~ msgid "Minimum volume:" #~ msgstr "Najmanja glasnoća:" #~ msgctxt "yes" #~ msgid "Maximum volume:" #~ msgstr "Najveća glasnoća:" #~ msgctxt "yes" #~ msgid "Increment:" #~ msgstr "Korak:" #~ msgid "Secret key:" #~ msgstr "Tajni ključ:" #~ msgid "Playing %s" #~ msgstr "Svira %s." #~ msgid "Number of Plays" #~ msgstr "Broj puštanja" #~ msgid "Add a directory" #~ msgstr "Dodaj mapu" #~ msgid " songs" #~ msgstr " pjesme" #~ msgid "Stopped" #~ msgstr "Zaustavljeno" #~ msgid "%(title)s (by %(artist)s)" #~ msgstr "%(title)s (%(artist)s)" #~ msgid "Start" #~ msgstr "Pokreni" #~ msgid "No covers found" #~ msgstr "Slika albuma nije nađena." #~ msgid "from %s" #~ msgstr "s albuma %s" #~ msgid "Enter the search text" #~ msgstr "Unesite tekst za pretragu" #~ msgid "by %s" #~ msgstr "izvođača %s" #~ msgid "Select File Type (By Extension)" #~ msgstr "Odaberite vrstu datoteke (prema ekstenziji)" #~ msgid "File Type" #~ msgstr "Vrsta datoteke" #~ msgid "Extension" #~ msgstr "Ekstenzija" #~ msgid "" #~ "Path is already in your collection, or is a subdirectory of another path " #~ "in your collection" #~ msgstr "" #~ "Mapa je već u Vašoj zbirci ili je podmapa neke druge mape koja je u " #~ "zbirci." #~ msgid "Quit" #~ msgstr "Izađi" #~ msgid "Add to Playlist" #~ msgstr "Dodaj u listu pjesama" #~ msgid "Choose a file" #~ msgstr "Izaberite datoteku" #~ msgid "Add Playlist" #~ msgstr "Dodaj listu pjesama" #~ msgid "Open" #~ msgstr "Otvori" #~ msgid "Invalid file extension, file not saved" #~ msgstr "Nepodržana ekstenzija, nije spremljeno." #~ msgid "Autosize" #~ msgstr "Automatska širina" #~ msgid "Page 1" #~ msgstr "Prva stranica" #~ msgid "0/0 tracks" #~ msgstr "0/0 pjesama" #~ msgid "Vol:" #~ msgstr "Glasnoća" #~ msgid "Resizable" #~ msgstr "Ručno promjenjiva širina" #~ msgid "Stop Playback" #~ msgstr "Zaustavi reprodukciju" #~ msgid "Add device" #~ msgstr "Dodaj uređaj" #~ msgid "..." #~ msgstr "..." #~ msgid "General" #~ msgstr "Općenito" #~ msgid "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgstr "" #~ "{title}\n" #~ "{artist}\n" #~ "album {album} - {length}" #~ msgid "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgstr "Pomaknite obavijest (OSD) na željeno mjesto." #~ msgid "Opacity Level:" #~ msgstr "Prozirnost (0 - prozirno, 100 - neprozirno)" #~ msgid "Display a progressbar in the OSD" #~ msgstr "Prikaži traku proteklog vremena" #~ msgid "New Search" #~ msgstr "Nova pretraga" #~ msgid "" #~ "OSD\n" #~ "Drag to the location you'd like the\n" #~ "OSD to appear" #~ msgstr "" #~ "Obavijest (OSD)\n" #~ "Vucite na željenu lokaciju." #~ msgid "Window Height:" #~ msgstr "Visina:" #~ msgid "Window Width:" #~ msgstr "Širina:" #~ msgid "Text Font:" #~ msgstr "Font:" #~ msgid "Text Color" #~ msgstr "Boja teksta:" #~ msgid "Show OSD on track change" #~ msgstr "Prikaži obavijest pri promjeni pjesme" #~ msgid "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "Year - Artist\n" #~ "Year - Album\n" #~ "Artist - Year - Album" #~ msgstr "" #~ "Izvođač\n" #~ "Album\n" #~ "Žanr - Izvođač\n" #~ "Žanr - Album\n" #~ "Godina - Izvođač\n" #~ "Godina - Album\n" #~ "Izvođač - Godina - Album" #~ msgid "_Close" #~ msgstr "_Zatvori" #~ msgid " + " #~ msgstr " + " #~ msgid "0:00" #~ msgstr "0:00" #~ msgid " - " #~ msgstr " - " #~ msgid "Exaile" #~ msgstr "Exaile" #~ msgid "Save Location:" #~ msgstr "Spremi Lokaciju:" #~ msgid "Vertical:" #~ msgstr "Okomito:" #~ msgid "Summary" #~ msgstr "Sažetak" #~ msgid "Center vertically" #~ msgstr "Centriraj okomito" #~ msgid "Horizontal:" #~ msgstr "Vodoravno:" #~ msgid "Center horizontally" #~ msgstr "Centriraj vodoravno" #~ msgid "Position" #~ msgstr "Pozicija" #~ msgid "Only artist" #~ msgstr "Samo izvođač" #~ msgid "Only album" #~ msgstr "Samo album" #~ msgid "Secret Key:" #~ msgstr "Tajni Ključ:" #~ msgid "Name - Time" #~ msgstr "Ime - Vrijeme" #~ msgid "Minimum Volume:" #~ msgstr "Minimalna Jačina:" #~ msgid "Maximum Volume:" #~ msgstr "Maksimalna Jačina:" #~ msgid "Alarm:" #~ msgstr "Alarm:" #~ msgid "Alarm Time:" #~ msgstr "Vrijeme Alarma:" #~ msgid "Alarm Name:" #~ msgstr "Naziv Alarma:" #~ msgid " & " #~ msgstr " & " #~ msgid "Alarm Days:" #~ msgstr "Dani Alarma:" #~ msgid "Selected controls" #~ msgstr "Odabrane kontrole" #~ msgid "Available controls" #~ msgstr "Raspoložive kontrole" #~ msgid "Delete bookmark" #~ msgstr "Obriši oznaku" #~ msgid "Bookmark this track" #~ msgstr "Zabilježi ovu pjesmu" #~ msgid "Clear bookmarks" #~ msgstr "Očisti oznake" #~ msgid "_Go to Playing Track" #~ msgstr "_Idi na Pjesmu Što Svira" #~ msgid "" #~ "Automatic\n" #~ "GNOME\n" #~ "ALSA\n" #~ "OSS\n" #~ "PulseAudio\n" #~ "JACK" #~ msgstr "" #~ "Automatski\n" #~ "GNOME\n" #~ "ALSA\n" #~ "OSS\n" #~ "PulseAudio\n" #~ "JACK" #~ msgid "" #~ "Normal\n" #~ "Unified (unstable)" #~ msgstr "" #~ "Normalno\n" #~ "Unificirano (nestabilno)" #~ msgid "Remove All" #~ msgstr "Ukloni Sve" #~ msgid "" #~ "Left\n" #~ "Right\n" #~ "Top\n" #~ "Bottom" #~ msgstr "" #~ "Lijevo\n" #~ "Desno\n" #~ "Gore\n" #~ "Dolje" #~ msgid "Decreases the volume by VOL%" #~ msgstr "Utišaj za VOL%" #~ msgid "Increases the volume by VOL%" #~ msgstr "Pojačaj za VOL%" #~ msgid "Set rating for current song" #~ msgstr "Postavi ocjene za trenutnu pjesmu" #~ msgid "Get rating for current song" #~ msgstr "Dobij ocjene za trenutnu pjesmu" #~ msgid "Save As..." #~ msgstr "Spremi Kao..." #~ msgid "In pause: %s" #~ msgstr "Pauziran: %s" #~ msgid "_Save As..." #~ msgstr "_Spremi Kao..." #~ msgid "Choose a file to open" #~ msgstr "Odaberi datoteku za otvoriti" #~ msgid "Delete track" #~ msgstr "Obriši Pjesmu" #~ msgid "Artist:" #~ msgstr "Izvođač:" #~ msgid "Album:" #~ msgstr "Album:" #~ msgid "Title:" #~ msgstr "Naslov:" #~ msgid "File Size:" #~ msgstr "Veličina Datoteke:" #~ msgid "Basic" #~ msgstr "Osnovno" #~ msgid "Date:" #~ msgstr "Datum:" #~ msgid "Details" #~ msgstr "Detalji" #~ msgid "Genre:" #~ msgstr "Žanr:" #~ msgid "© 2009" #~ msgstr "© 2009" #~ msgid "Use Album Covers As Icons" #~ msgstr "Upotrijebi Omote Albuma Kao Ikone" #~ msgid "iPod support" #~ msgstr "iPod podrška" #~ msgid "A plugin for iPod support" #~ msgstr "Priključak za iPod podršku" #~ msgid "Device class does not support transfer." #~ msgstr "Klasa uređaja ne podržava transfer." #~ msgid "Could not enable plugin: %s" #~ msgstr "Nemoguće osposobiti priključak: %s" #~ msgid "Could not disable plugin: %s" #~ msgstr "Nemoguće onesposobiti priključak: %s" #~ msgid "A plugin with the name \"%s\" is already installed" #~ msgstr "Priključak sa nazivom \"%s\" je već instaliran" #~ msgid "Plugin archive is not in the correct format" #~ msgstr "Arhiva priključka nije u ispravnom formatu" #~ msgid "%(playlist_count)d showing, %(collection_count)d in collection" #~ msgstr "%(playlist_count)d prikazuje, %(collection_count)d u kolekciji" #~ msgid "Play Count:" #~ msgstr "Brojač:" #~ msgid "Close this dialog" #~ msgstr "Zatvori ovaj dijalog" #~ msgid "Install plugin file" #~ msgstr "Instaliraj datoteku priključka" #~ msgid "Artist Line:" #~ msgstr "Linija Izvođača:" #~ msgid "Album Line:" #~ msgstr "Linija Albuma:" #~ msgid "Location:" #~ msgstr "Lokacija:" #~ msgid "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager" #~ msgstr "" #~ "Mathias Brodala\n" #~ " \n" #~ " Upravitelj Prevođenja" #~ msgid "Start/Pause Playback" #~ msgstr "Započni/Pauziraj Reprodukciju" #~ msgid "" #~ "Exaile now uses absolute URI's, please delete/rename your %s directory" #~ msgstr "" #~ "Exaile sada koristi apsolutne URI-jeve, molim obrišite/preimenujte vaš %s " #~ "direktorij." #~ msgid "Show a popup of the currently playing track" #~ msgstr "Prikaži skočni prozor pjesme koja se trenutno reproducira" #~ msgid "Print the position inside the current track as time" #~ msgstr "Ispiši poziciju unutar trenutne pjesme kao vrijeme" #~ msgid "Print the progress inside the current track as percentage" #~ msgstr "Ispiši napredak unutar trenutne pjesme kao postotak" #~ msgid "" #~ "Exaile Music Player\n" #~ "Not playing" #~ msgstr "" #~ "Exaile Muzicki svirač\n" #~ "Ne svira" #~ msgid "C_lear All Tracks" #~ msgstr "O_čisti Sve Trake" #~ msgid "No track" #~ msgstr "Nema trake" #~ msgid "%d covers to fetch" #~ msgstr "%d omota za dohvatiti" #~ msgid "" #~ "This will permanantly delete the selected tracks from your disk, are you " #~ "sure you wish to continue?" #~ msgstr "" #~ "Ovo će trajno izbrisati označene trake sa vašeg diska, jeste li sigurni " #~ "da želite nastaviti?" #~ msgid "Dynamically add similar tracks" #~ msgstr "Dinamično dodaj slične trake" #~ msgid "Use alpha transparency (if supported)" #~ msgstr "Primjeni alfa transparentnost (ako je podržano)" #~ msgid "Playback engine (requires restart): " #~ msgstr "Mašina reprodukcije (zahtijeva restart) " #~ msgid "Streaming..." #~ msgstr "Potjecanje..." #~ msgid " New song, fetching cover." #~ msgstr " Nova pjesma, dobavljanje omota." #~ msgid "Filter event debug output" #~ msgstr "Filtriraj debug ispis događaja." #~ msgid "Toggle: Stop after selected track" #~ msgstr "Prekidač: Zaustavi nakon označene trake" #~ msgid "Buffering: 100%..." #~ msgstr "Međuspremanje: 100%..." #~ msgid "Remove current track from playlist" #~ msgstr "Ukloni trenutnu traku iz popisa naslova" #~ msgid "" #~ "Copyright (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "This program is free software; you can redistribute it and/or modify\n" #~ "it under the terms of the GNU General Public License as published by\n" #~ "the Free Software Foundation; either version 2 of the License, or\n" #~ "(at your option) any later version.\n" #~ "\n" #~ "This program is distributed in the hope that it will be useful,\n" #~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" #~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" #~ "GNU General Public License for more details.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along\n" #~ "with this program; if not, write to the Free Software Foundation, Inc.,\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ msgstr "" #~ "Copyright (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "Ovaj program je slobodan software; možete ga redistribuirati i/ili " #~ "modificirati\n" #~ "u okviru uvjeta GNU General Public License kao što je objavljeno od " #~ "strane\n" #~ "Free Software Foundation; bilo verzija 2 Licence ili \n" #~ "(po vašem mišljenju) bilo koja kasnija verzija.\n" #~ "\n" #~ "Ova program je distribuiran u nadi da će biti koristan,\n" #~ "ali BEZ IKAKVE GARANCIJE; čak, bez podrazumijevane garancije\n" #~ "TRŽENJA ili SPADANJA U ODREĐENU SVRHU. Pogledajte \n" #~ "GNU General Public License za više detalja.\n" #~ "\n" #~ "Trebali bi dobiti kopiju GNU General Public License zajedno\n" #~ "sa ovim programom; ako niste, pišite na Free Software Foundation, Inc.,\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ msgid "Display OSD when hovering over tray icon" #~ msgstr "Prikaži OSD pri pokrivanju ikone u trayu" #~ msgid "These options only affect the unified engine." #~ msgstr "Ove opcije utječu samo na ujedinjen mehanizam." #~ msgid "Track _properties" #~ msgstr "Traka _Svojstva" #~ msgid "Restore Main Window" #~ msgstr "Vrati Glavni Prozor" #~ msgid "$title ($length)" #~ msgstr "$naslov ($duljina)" #~ msgid "Seeking: " #~ msgstr "Traženje: " #~ msgid "order must be a list or tuple" #~ msgstr "redoslijed mora biti lista ili sekvenca" #~ msgid "Fading:" #~ msgstr "Izblijeđivanje:" #~ msgid "Plugin archive contains an unsafe path" #~ msgstr "Arhiva dodatka sadrži nesigurnu putanju." #~ msgid "Timer per Increment:" #~ msgstr "Brojač po Uvećanju:" #~ msgid "Time per Increment:" #~ msgstr "Vrijeme po Uvećanju:" #~ msgid "Streamripper can only record streams." #~ msgstr "Streamripper može samo snimati streamove." #~ msgid "When GUI is Focused" #~ msgstr "Kad je GUI fokusiran" #~ msgid "On Tray Icon Hover" #~ msgstr "Na Prekrivanje Tray Ikone" #~ msgid "On Track Change" #~ msgstr "Na Promjenu Pjesme" #~ msgid "On Playback Start, Pause or Stop" #~ msgstr "Na, Početku reprodukcije, Pauzi ili Stopu" #~ msgid "Search:" #~ msgstr "Traži:" #~ msgid "Creates an MPRIS D-Bus object to control Exaile" #~ msgstr "Kreira MPRIS D-Bus objekt za kontrolu Exaile" #~ msgid "Tag Covers" #~ msgstr "Označi Omote" #~ msgid "%(minutes)d:%(seconds)02d" #~ msgstr "%(minutes)d:%(seconds)02d" #~ msgid "%(year)d-%(month)02d-%(day)02d" #~ msgstr "%(year)d-%(month)02d-%(day)02d" #~ msgid "LastFM Radio" #~ msgstr "LastFM Radio" #~ msgid "Neighbourhood" #~ msgstr "Susjedstvo" #~ msgid "Personal" #~ msgstr "Osobno" #~ msgid "Recommended" #~ msgstr "Preporučeno" #~ msgid "Original Artist" #~ msgstr "Originalni Umjetnik" #~ msgid "Original Album" #~ msgstr "Originalni Album" #~ msgid "Original Date" #~ msgstr "Originalni Datum" #~ msgid "Encoded By" #~ msgstr "Kodirao/la" #~ msgid "Date Added" #~ msgstr "Datumu Dodavanja" #~ msgid "Last Played" #~ msgstr "Zadnje Svirano" #~ msgid "New playlist title:" #~ msgstr "Novi naslov lista izvođenja:" #~ msgid "Add to custom playlist" #~ msgstr "Dodaj u podešenu lista izvođenja" #~ msgid "_Rename Playlist" #~ msgstr "_Preimenuj Listu Izvođenja" #~ msgid "_Save Changes To Playlist" #~ msgstr "_Spremi Promjene U Listu izvođenja" #~ msgid "_Save As Custom Playlist" #~ msgstr "_Spremi Kao Podešenu Listu izvođenja" #~ msgid "_Close Playlist" #~ msgstr "_Zatvori Listu izvođenja" #~ msgid "Export current playlist..." #~ msgstr "Izvezi trenutnu listu izvođenja..." #~ msgid "New custom playlist name:" #~ msgstr "Naziv nove podešene liste izvođenja:" #~ msgid "Add To New Playlist..." #~ msgstr "Dodaj U Novu Listu izvođenja..." #~ msgid "Choose a plugin" #~ msgstr "Odaberi priključak" #~ msgid "Move selected item up" #~ msgstr "Pomakni odabrani predmet gore" #~ msgid "Move selected item down" #~ msgstr "Pomakni odabrani predmet dole" #~ msgid "Remove item" #~ msgstr "Ukloni predmet" #~ msgid "Add item" #~ msgstr "Dodaj predmet" #~ msgid "Randomize the order of the current playlist" #~ msgstr "Rasporedi trenutnu listu izvođenja slučajnim odabirom" #~ msgid "Repeat playlist" #~ msgstr "Ponovi listu izvođenja" #~ msgid "Clear Playlist" #~ msgstr "Očisti Listu izvođenja" #~ msgid "_Export current playlist" #~ msgstr "_Izvezi trenutnu listu izvođenja" #~ msgid "_Randomize Playlist" #~ msgstr "_Slučajan redoslijed u listi izvođenja" #~ msgid "Install a third party plugin from a file" #~ msgstr "Instaliraj priključak treće strane iz datoteke" #~ msgid "Popup" #~ msgstr "Popup" #~ msgid "Enable Fading" #~ msgstr "Omogući Izblijeđivanje" #~ msgid "Restart Playlist" #~ msgstr "Ponovo pokreni Listu izvođenja" #~ msgid "Both artist and album" #~ msgstr "Oboje, izvođač i album" #~ msgid "Terminal Opacity:" #~ msgstr "Neprozirnost Terminala" #~ msgid "Relay Port:" #~ msgstr "Relejni Port:" #~ msgid "Track title format:" #~ msgstr "Format naslova trake:" #~ msgid "Searches track tags for covers" #~ msgstr "Pretražuje oznake traka radi omote" #~ msgid "Toggle Play or Pause" #~ msgstr "Uključi Reprodukciju ili Pauzu" #~ msgid "Custom playlist name:" #~ msgstr "Prilagođeno ime popisa izvođenja:" #~ msgid "Export" #~ msgstr "Izvoz" #~ msgid "Select a save location" #~ msgstr "Odaberi lokaciju za spremanje" #~ msgid "Bitrate:" #~ msgstr "Bitrate:" #~ msgid "Track Number:" #~ msgstr "Broj pjesme:" #~ msgid "Idle." #~ msgstr "Pripravan." #~ msgid "Length:" #~ msgstr "Duljina:" #~ msgid "Last.fm Dynamic Search" #~ msgstr "Last.fm dinamička pretraga" #~ msgid "Display window decorations" #~ msgstr "Prikaži ukrase prozora" dist/copy/po/PaxHeaders.26361/te.po0000644000175000017500000000012312233027260015406 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 29 ctime=1382821553.05704693 exaile-3.3.2/po/te.po0000644000000000000000000027603312233027260014362 0ustar00rootroot00000000000000# Telugu translation for exaile # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2011-08-27 11:53+0000\n" "Last-Translator: Praveen Illa \n" "Language-Team: Telugu \n" "Language: te\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-08-28 05:28+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "" #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "" #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "" #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "" #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "" #: ../xl/formatter.py:702 msgid "Today" msgstr "" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "0.2.14 నుండి మారడంలో విఫలమైంది" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "ఐచ్ఛికాలు" #: ../xl/main.py:421 msgid "Playback Options" msgstr "" #: ../xl/main.py:423 msgid "Play the next track" msgstr "తరువాతి పాట పాడించు" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "మునుపటి పాట పాడించు" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "పాడటం ఆపివేయి" #: ../xl/main.py:429 msgid "Play" msgstr "ఆడించు" #: ../xl/main.py:431 msgid "Pause" msgstr "" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "పాడుతున్న పాట అవ్వగానే పాడటం ఆపు" #: ../xl/main.py:440 msgid "Collection Options" msgstr "" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:454 msgid "Track Options" msgstr "" #: ../xl/main.py:456 msgid "Query player" msgstr "ప్లేయర్ ని అడుగు" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "ప్రస్తుత పాట యొక్క శీర్షికని ముద్రించు" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "ప్రస్తుత పాట యొక్క ఆల్బం పేరు ముద్రించు" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "ప్రస్తుత పాట యొక్క కళాకారుడి పేరు ముద్రించు" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "ప్రస్తుత పాట పొడవెంతో ముద్రించు" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "" #: ../xl/main.py:490 msgid "Volume Options" msgstr "" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "ధ్వనిస్థాయి శాతం ముద్రించు" #: ../xl/main.py:507 msgid "Other Options" msgstr "" #: ../xl/main.py:509 msgid "Start new instance" msgstr "కొత్త దృష్టాంతాన్ని మొదలుపెట్టు" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "" #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "సురక్షిత విధంలో ప్రారంభించు - కొన్నిసార్లు సమస్యలేమైన ఉంటే ఉపయోగపడుతుంది" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "" #: ../xl/main.py:536 msgid "Set data directory" msgstr "సమాచార సంచయాన్ని అమర్చు" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "" #: ../xl/main.py:543 msgid "LEVEL" msgstr "" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:555 msgid "TYPE" msgstr "" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "" #: ../xl/main.py:580 msgid "Entire Library" msgstr "" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "" #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr "" #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "" #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "స్వయంచాలకం" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "అనురూపిత" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "" #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "" #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "" #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "" #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "" #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "" #: ../xl/lyrics.py:305 msgid "Local" msgstr "" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "పేరు:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "" #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr "" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "శీర్షిక" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "పొడవు" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "రేటింగు" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "తేది" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "ఫైలు పేరు" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "పేరు మార్చు" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "అన్ని ఫైళ్ళు" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "" #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "" #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "" #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "రద్దు" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "" #: ../xlgui/properties.py:54 msgid "Website" msgstr "" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "" #: ../xlgui/properties.py:57 msgid "Author" msgstr "" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "" #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "" #: ../xlgui/devices.py:81 msgid "Device" msgstr "" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "" #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "" #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "తొలగించు" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "" #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "" #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "సంవత్సరం" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "" msgstr[1] "" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "సేకరణ" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "పనిముట్లు (_T)" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "_సహాయం" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "వివరణ:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "రేడియో" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "ఫైళ్ళు" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "" #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "" #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "" #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "అభిరుచులు" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "" #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "" #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "" #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "వెతుకు" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "" #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "" #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "తరువాత" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "" #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "" #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "" #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "" #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "" #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "సోమవారం" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "మంగళవారం" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "బుధవారం" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "గురువారం" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "శుక్రవారం" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "శనివారం" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "ఆదివారం" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "నేపధ్యపు రంగు:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "చేర్చు" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" #~ msgid "GNOME" #~ msgstr "గ్నోమ్" #~ msgid "ALSA" #~ msgstr "ఏఎల్ఎస్ఏ" #~ msgid "OSS" #~ msgstr "ఓఎస్ఎస్" #~ msgid "PulseAudio" #~ msgstr "పల్స్ ఆడియో" #~ msgid "JACK" #~ msgstr "జేఏసీకే" #~ msgid "General" #~ msgstr "సాధారణ" #~ msgid "Text Color" #~ msgstr "పాఠ్యపు రంగు" #~ msgid " songs" #~ msgstr " పాటలు" #~ msgid "Quit" #~ msgstr "చాలించు" #~ msgid "" #~ "Exaile now uses absolute URI's, please delete/rename your %s directory" #~ msgstr "" #~ "ఎగ్జైల్ ఇప్పుడు పూర్తి యుఆర్ఐ లను వాడుతుంది, దయచేసి మీ %s సంచయాన్ని తొలగించండి/పేరుమార్చండి" #~ msgid "Show a popup of the currently playing track" #~ msgstr "ప్రస్తుతం పాడుతున్న పాట ప్రకటనలో చూపు" #~ msgid "Toggle Play or Pause" #~ msgstr "పాడటం నిలపడం మధ్య మార్చు" #~ msgid "Set rating for current song" #~ msgstr "ప్రస్తుత పాటకి రేటింగ్ ఇవ్వు" #~ msgid "Decreases the volume by VOL%" #~ msgstr "ధ్వనిస్థాయి VOL% తగ్గించు" #~ msgid "Increases the volume by VOL%" #~ msgstr "ధ్వనిస్థాయి VOL% పెంచు" #~ msgid "Print the position inside the current track as time" #~ msgstr "ప్రస్తుత పాట ఎంత సమయం వరకు జరిగిందో ముద్రించు" #~ msgid "Print the progress inside the current track as percentage" #~ msgstr "ప్రస్తుత పాట ఎంత శాతం జరిగిందో ముద్రించు" #~ msgid "Get rating for current song" #~ msgstr "ప్రస్తుత పాటకి రేటింగ్ ఎంతో తెలుపు" dist/copy/po/PaxHeaders.26361/es.po0000644000175000017500000000012412233027260015406 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.061046931 exaile-3.3.2/po/es.po0000644000000000000000000042260212233027260014354 0ustar00rootroot00000000000000# Spanish translation for exaile # Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2012. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2013-10-21 02:12+0000\n" "Last-Translator: Dustin Spicuzza \n" "Language-Team: Spanish \n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2013-10-22 05:13+0000\n" "X-Generator: Launchpad (build 16807)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "%d día, " msgstr[1] "%d días, " #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "%d hora, " msgstr[1] "%d horas, " #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "%d minuto, " msgstr[1] "%d minutos, " #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d segundo" msgstr[1] "%d segundos" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "%dd, " #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "%dh, " #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "%dm, " #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "%ds," #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "%dd " #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "%d:%02d:%02d" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "%d:%02d" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "Nunca" #: ../xl/formatter.py:702 msgid "Today" msgstr "Hoy" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "Ayer" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "Error al migrar desde 0.2.14" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "Uso: exaile [OPCIÓN]... [URI]" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "Opciones" #: ../xl/main.py:421 msgid "Playback Options" msgstr "Opciones de reproducción" #: ../xl/main.py:423 msgid "Play the next track" msgstr "Reproducir la pista siguiente" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "Reproducir la pista anterior" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "Detener la reproducción" #: ../xl/main.py:429 msgid "Play" msgstr "Reproducir" #: ../xl/main.py:431 msgid "Pause" msgstr "Pausa" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "Pausar o continuar reproducción" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "Detener la reproducción después de la pista actual" #: ../xl/main.py:440 msgid "Collection Options" msgstr "Opciones de colección" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "UBICACIÓN" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "Agregar pistas desde UBICACIÓN a la colección" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "Opciones de lista de reproducción" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "Exporta la lista de reproducción actual a UBICACIÓN" #: ../xl/main.py:454 msgid "Track Options" msgstr "Opciones de pista" #: ../xl/main.py:456 msgid "Query player" msgstr "Consultar reproductor" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "FORMATO" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" "Recupera el estado de reproducción y la información de la pista como FORMATO" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "ETIQUETAS" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "ETIQUETAS a obtener de la pista actual, úselo con --format-query" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "Mostrar ventana emergente con información sobre la pista actual" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "Muestra el título de la pista actual" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "Muestra el álbum de la pista actual" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "Muestra el artista de la pista actual" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "Muestra la duración de la pista actual" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "N" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "Calificar la pista actual a N%" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "Obtener calificación de la pista actual" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "Muestra la posición de la reproducción como tiempo" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "Muestra el progreso de la reproducción como porcentaje" #: ../xl/main.py:490 msgid "Volume Options" msgstr "Opciones de volumen" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "Sube el volumen un N%" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "Baja el volumen un N%" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "Silencia o activa el volumen" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "Mostrar el porcentaje actual de volumen" #: ../xl/main.py:507 msgid "Other Options" msgstr "Otras opciones" #: ../xl/main.py:509 msgid "Start new instance" msgstr "Iniciar una instancia nueva" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "Mostrar este mensaje de ayuda y salir" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "Muestra el número de versión del programa y salir" #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "Iniciar minimizado (en bandeja, si es posible)" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "Alternar visibilidad de la interfaz gráfica (si es posible)" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "" "Iniciar en modo seguro. Puede resultarle útil si está teniendo problemas" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" "Forzar la importación de datos antiguos de la versión 0.2.x (Sobreescribe " "los datos actuales)" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "No importar datos antiguos de la versión 0.2.x" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" "Hace que las opciones de control como --play inicien Exaile si no se está " "ejecutando" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "Opciones de desarrollo/depuración" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "DIRECTORIO" #: ../xl/main.py:536 msgid "Set data directory" msgstr "Configurar directorio de datos" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "Establecer directorio de datos y configuración" #: ../xl/main.py:540 msgid "MODULE" msgstr "MÓDULO" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "Limitar la salida de registro a MÓDULO" #: ../xl/main.py:543 msgid "LEVEL" msgstr "NIVEL" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "Limitar la salida de registro a NIVEL" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "Mostrar la salida de depuración" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "Activar depuración de xl.event. Genera MUCHAS salidas" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "Añadir nombre del tema a los mensajes del registro." #: ../xl/main.py:555 msgid "TYPE" msgstr "TIPO" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "Limitar depuración de xl.event a salida de tipo" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "Reducir nivel de salida" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "Desactivar compatibilidad con D-Bus" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "Desactivar compatibilidad con HAL" #: ../xl/main.py:580 msgid "Entire Library" msgstr "Biblioteca completa" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "Aleatorio %d" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "Puntuación > %d" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" "Exaile aún no termina de cargarse. ¿Tal vez debería escuchar la señal de " "exaile_loaded?" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "Etiquetas" #: ../xl/covers.py:505 msgid "Local file" msgstr "Archivo local" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "El archivador del complemento no está en el formato correcto." #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "Un complemento con el nombre «%s» ya está instalado." #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "El archivador del complemento contiene una ruta de acceso no segura." #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "No se especificó una ubicación de donde cargar la base de datos" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "No especificó donde guardar la bd" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "Varios artistas" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "Desconocido" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr " / " #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "%dk" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" "Vorbis es un códec de audio de compresión con pérdida, de código abierto que " "proporciona una alta calidad de sonido con un tamaño de archivo inferior al " "de un MP3." #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" "Free Lossless Audio Codec (FLAC) es un códec de código abierto que comprime " "pero no degrada la calidad de sonido." #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" "Formato propietario de audio digital con pérdida de Apple que obtiene mejor " "calidad de sonido que el MP3 a menores tasas de bits." #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" "Un formato propietario de audio con pérdida, más antiguo pero también " "popular. VBR proporciona mejor calidad que CBR, pero puede ser incompatible " "con algunos reproductores." #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" "Un formato propietario de sonido con pérdida, más antiguo pero también " "popular. CBR proporciona más calidad que CBR, pero es compatible con todos " "los reproductores." #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "" "Un formato de sonido Libre, sin perdida, muy rápido y con buena compresión." #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "Automático" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "Personalizado" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "Automático" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "Detenido." #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" "estado: %(status)s, título: %(title)s, artista: %(artist)s, álbum: " "%(album)s, duración: %(length)s, progreso: %(progress)s%% [%(position)s]" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "La configuración de la versión es más reciente que la actual." #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "No sabemos como almacenar este tipo de opción: " #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "¡Se encontró un tipo de opción desconocido!" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "Tipo de lista de reproducción no válida" #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "Lista de reproducción" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "Lista de reproducción M3U" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "Lista de reproducción PLS" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "Formato inválido para %s" #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "Versión no soportada %(version)s para %(type)s" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "Lista de reproducción ASX" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "Lista de reproducción XSPF" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "Detener alea_torio" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "Pis_tas aleatorias" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "Álbumes _aleatorios" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "Repetir_apagado" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "Repetir _todo" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "Repetir U_no" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "Dinámica _apagada" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "Dinámica por _artistas similares" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "segundos" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "minutos" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "horas" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "días" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "semanas" #: ../xl/lyrics.py:305 msgid "Local" msgstr "Local" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "Encolar" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "Reemplazar actual" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "Añadir a actual" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "Abrir directorio" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" "Los archivos no han podido ser movidos a la papelera de reciclaje. ¿Quiere " "borrarlos permanentemente del disco duro?" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "Mover a la papelera" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "_Mostrar pista en reproducción" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "Nombre:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "Coincidir con cualquiera de los criterios" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "Resultados aleatorios" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "Limitar a: " #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr " pistas" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "No reproduciendo" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "Buscando: %s" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "Mover" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "Nuevo marcador" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "Silenciado" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "%d%%" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "Volumen total" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" "$title\n" "por $artist\n" "de $album" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "Varios" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "%(track_count)d en total (%(total_duration)s)" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "%d en la colección" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "mostrando %d" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "%d seleccionada" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "Cola" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "Cola (%d)" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "#" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "Número de pista" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "Título" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "Artista" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "Compositor" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "Álbum" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "Duración" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "Disco" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "Número de disco" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "Puntuación" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "Fecha" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "Género" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "Tasa de bits" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "Ubicación" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "Nombre de archivo" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "Contador de reproducciones" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "BPM" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "Último reproducido" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "Fecha añadida" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "Planificación" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "Comentario" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "Agrupación" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "_Redimensionable" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "_Autoajustar" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "Puntuación:" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "Cambiar el orden" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "Repetir" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "Dinámico" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "Quitar pista actual de la lista de reproducción" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "Desordenar lista de reproducción" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "Selección aleatoria" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "Lista de reproducción nueva" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "Renombrar" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "Detener la reproducción después de esta pista" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "Continuar la reproducción después de esta pista" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "" "Necesita complementos para proporcionar listas de reproducción dinámicas" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "Añadir pistas similares a la lista de forma dinámica" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "Introduzca la dirección URL a abrir" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "Abrir dirección URL" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "Seleccione el tipo de archivo (por extensión)" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "Elegir Dispositivo para Abrir" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "Archivos soportados" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "Archivos de música" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "Archivos de listas de reproducción" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "Todos los Archivos" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "Seleccione directorio para abrir" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "Importar lista de reproducción" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "Exportar lista de reproducción actual" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "Usar rutas relativas a las pistas" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "Lista de reproducción guardada como %s" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "Cerrar %s" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "¿Guardar los cambios en %s antes de cerrar?" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "Sus cambios se perderán si no los guarda" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "Cerrar Sin Guardar" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "Sí a todo" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "No a todo" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "Guardados %(count)s de %(total)s." #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "Ocurrió un error al copiar %s: %s" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "El archivo existe, ¿sobreescribir %s?" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "Nombre de la lista de reproducción:" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "Añadir lista de reproducción nueva…" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "No ha introducido ningún nombre para su lista de reproducción." #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "El nombre de la lista que ha introducido ya está en uso." #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "Cerrar pestaña" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "$title (por $artist)" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "Continuar/Parar después de la pista seleccionada" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "¡La reproducción encontró un error!" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "Cargando: %d%%..." #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "Continuar reproducción" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "Pausar reproducción" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "Fallo al exportar la lista de reproducción" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "Iniciar reproducción" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "Reproductor de música Exaile" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "_Lista de reproducción nueva" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "Abrir _URL" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "Abrir directorios" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "Exportar lista de reproducción actual" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "Reiniciar" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "_Colección" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "_Cola" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "_Carátulas" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "Barra de utilidades de la lista de reproducción" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "_Columnas" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "L_impiar lista de reproducción" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "_Administrador de dispositivos" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "_Reescanear la colección" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "_Propiedades de pista" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "Cancelar" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "Álbum original" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "Letrista" #: ../xlgui/properties.py:54 msgid "Website" msgstr "Sitio web" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "Carátula" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "Artista original" #: ../xlgui/properties.py:57 msgid "Author" msgstr "Autor" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "Fecha original" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "Arreglista" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "Director" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "Intérprete" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "Derechos de autor" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "Letra" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "Pista" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "Versión" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "Código ISRC" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "Codificado por" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "Organización" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "Modificado" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "Veces reproducida" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "Falló la escritura de las etiquetas" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" "No se pudieron escribir las etiquetas en los siguientes archivos:\n" "{files}" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "Editando pista %(current)d de %(total)d" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "¿Aplicar los cambios antes de cerrar?" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "Se perderán sus cambios si no los aplica ahora." #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "%s:" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "de:" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "Imagen JPEG" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "Imagen PNG" #: ../xlgui/properties.py:919 msgid "Image" msgstr "Imagen" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "Imagen vinculada" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "{width}×{height} píxeles" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "{format} ({width}×{height} píxeles)" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "Selecciona la imagen para establecer como carátula" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "Formatos de imagen compatibles" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "Aplicar el valor actual a todas las pistas" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "{outstanding} carátulas por descargar" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "Todas las portadas obtenidas" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "Recopilando álbumes y portadas..." #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "Mostrar portada" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "Obtener portada" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "Eliminar portada" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "Carátula para %s" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "Opciones de portada para %(artist)s - %(album)s" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "Cargando…" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "No se encontraron carátulas." #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" "Ninguna de las fuentes activadas tiene una portada para esta pista, pruebe a " "activar más fuentes." #: ../xlgui/devices.py:76 msgid "Icon" msgstr "Icono" #: ../xlgui/devices.py:81 msgid "Device" msgstr "Dispositivo" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "Controlador" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "Explorando colección..." #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "Explorando %s..." #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "Activar/Desactivar cola" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "Encolar elementos" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "Propiedades" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "Emisora nueva" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "Lista de reproducción inteligente nueva" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "Editar" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "Exportar lista de reproducción" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "Exportar archivos" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "Eliminar lista de reproducción" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "Seleccionar directorio para exportar archivos" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "" "¿Está seguro de que quiere eliminar permanentemente la lista seleccionada?" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "Introduzca el nuevo nombre para su lista de reproducción" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "Renombrar lista de reproducción" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "Eliminar" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "Soltar aqui para crear una nueva lista de reproducción" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "Pestañas cerradas recientemente" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "Lista de reproducción %d" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" "{playlist_name} ({track_count} canciones, cerradas hace {minutes} minutos)" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" "{playlist_name} ({track_count} canciones, cerradas hace {seconds} segundos)" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "Añada un directorio" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "Directorio no añadido." #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" "El directorio ya se encuentra en su colección o es un subdirectorio de otro " "directorio en su colección." #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "Transfiriendo a %s..." #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "Cargando flujos..." #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "Añadir emisora de radio" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "URL:" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "Emisoras guardadas" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "Flujos de radio" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "Actualizar" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "Introduzca el nombre que desea para su nueva lista de reproducción" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "Género - Artista" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "Género - Álbum" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "Fecha - Artista" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "Fecha - Álbum" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "Artista - (Fecha - Álbum)" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "Reescanear la colección" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "Tamaño" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s KB" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "y" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "es" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "no es" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "está establecida" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "no está establecida" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "contiene" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "no contiene" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "expresión regular" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "no es una expresión regular" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "al menos" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "como mucho" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "antes" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "después de" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "entre" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "mayor que" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "menor que" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "en los últimos" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "no en los últimos" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "Reproducciones" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "Año" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "%(first)s, %(second)s y otros" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "%(first)s y %(second)s" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "Listas de reproducción inteligentes" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "Listas de reproducción personalizadas" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "Añadir lista de reproducción inteligente" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "Editar lista de reproducción inteligente" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "Exportando %s" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "Reproducción" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "Complementos" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "Sin categorizar" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "¡No se pudo cargar la información del complemento!" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "Complemento fallido: %s" msgstr[1] "Complementos fallidos: %s" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "¡No se pudo desactivar el complemento!" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "¡No se pudo activar el complemento!" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "Seleccione un complemento" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "Archivos de extensiones" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "¡La instalación del archivo de complemento falló!" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "Carátulas" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "Aspecto" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "Colección" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "el" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "Restablecer a los valores predeterminados" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "¿Reiniciar Exaile?" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "Es necesario reiniciar para que este cambio surta efecto." #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "Acción" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "Atajo" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "Listas de reproducción" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "Acerca de Exaile" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "© 2009–2012" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "Este programa es software libre, puede redistribuirlo o modificarlo\n" "bajo los términos de la Licencia Pública General GNU publicada por\n" "la Fundación de Software Libre, bien la versión 2 de la Licencia, o\n" "(según su elección) cualquier versión posterior.\n" "\n" "Este programa se distribuye con la esperanza de que sea útil,\n" "pero SIN NINGUNA GARANTÍA, incluso sin la garantía implícita de\n" "COMERCIABILIDAD o IDONEIDAD PARA UN PROPÓSITO PARTICULAR. Véase el\n" "Licencia Pública General GNU para más detalles.\n" "\n" "Usted debería haber recibido una copia de la Licencia Pública General de GNU " "junto\n" "con este programa, si no, escriba a la Fundación de Software Libre (Free " "Software Foundation, Inc),\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 EE.UU..\n" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "Traductor desconocido" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "Gestor de carátulas" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "_Obtener portadas" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "Desordenar el orden de reproducción" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "Repetir la reproducción" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "_Buscar:" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "Buscador de portadas" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "El origen de esta portada" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "E_stablecer como portada" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "_Archivo" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "_Editar" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "_Ver" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "_Herramientas" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "Ay_uda" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "Pista anterior" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" "Detener la reproducción\n" "\n" "Pinche con el botón derecho para detener después de la pista actual" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "Pista siguiente" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0:00 / 0:00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "Propiedades de la pista" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "Aña_dir etiqueta" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "_Eliminar etiqueta" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "ab → A_b" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "Primera letra en mayúscula de todas las etiquetas" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "_Anterior" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "Siguie_nte" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "Otros" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "Archivo de icono 32x32 píxeles (sólo PNG)" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "Otro archivo de icono" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "Portada (anverso)" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "Portada (reverso)" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "Página de folleto" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "Medio (ej. lado de la etiqueta del CD)" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "Artista principal/intérprete principal/solista" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "Artista/intérprete" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "Banda/orquesta" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "Letrista/escritor" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "Lugar de grabación" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "Durante la grabación" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "En presentación" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "Captura de pantalla de la película/vídeo" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "Un pez de colores brillantes" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "Ilustración" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "Logotipo de artista/banda" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "Logotipo del estudio/discográfica" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "Pulse o arrastre archivos aquí para cambiar la imagen de portada" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "Tipo:" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "Descripción:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "Gestor de colección" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "Monitorizada" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "Radio" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "Añadir todas las pistas a la lista de reproducción" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "Importar CD" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "Añadir emisora" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "Archivos" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "Directorio anterior visitado" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "Directorio siguiente visitado" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "Subir un directorio" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "Actualizar listado de directorios" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "Directorio principal" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "Buscar: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "Limpiar el campo de búsqueda" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "La colección está vacía." #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "Añadir música" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" "Actualizar vista de la colección\n" "(Mantenga la tecla Mayús para volver a explorar la colección)" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "Usar portadas empotradas en etiquetas" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "Usar portadas de archivos locales" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" "Esta opción buscará imágenes de portada en \n" "la misma carpeta que el archivo de música." #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "Nombres de archivos preferidos:" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" "Una lista de nombres de archivos separados por comas, sin extensiones de " "archivo" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "Obtener portadas automáticamente al iniciar reproducción" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "Orden de búsqueda para carátulas:" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "(arrastre para reordenar)" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "Abrir las últimas listas de reproducción al iniciar" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "Marcar para guardar la lista de reproducción al cerrar" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "Sustituir el contenido del panel lateral al pulsar dos veces" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" "En lugar de añadir al final, las pistas añadidas mediante doble pulsación en " "los paneles reemplazarán el contenido de la lista de reproducción actual." #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" "Añadir/Reemplazar por medio del elemento del menú inicia la reproducción" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" "Cuando se usa un elemento del menú para añadir/reemplazar pistas de la lista " "de reproducción, empezar a reproducir si hay una pista reproduciendose " "actualmente. Este era el comportamiento por defecto antes de Exaile 0.3.3" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "Poner las canciones en cola en vez de reproducirlas" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" "Al pulsar dos veces sobre una canción u oprimir Intro para reproducir una " "pista de una lista, colocarla en la cola de reproducción en vez de " "reproducirla" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "Motor de reproducción: " #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "Usar transiciones de desvanecimiento en acciones de usuario" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "Duración del difuminado (ms):" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "Usar transición (EXPERIMENTAL)" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "Duración de la transición (en ms)" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "Salida de audio: " #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "Dispositivo: " #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "Tbería personalizada del objetivo:" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "Continuar lista de reproducción al iniciar" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "Continuar reproducción pausada" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "Añadir un elemento a una cola vacía comienza la reproducción" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "Eliminar pista de la cola cuando se reproduzca" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "Avanzar automáticamente a la pista siguiente" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "Normal" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "Unificado (inestable)" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "Complemento" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "Activado" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "No se han seleccionado plugins" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "Complementos instalados" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "Autores:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "Versión:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "Instalar" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "Ningún complemento seleccionado" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "Complementos disponibles" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "Instalar actualizaciones" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "Actualizaciones" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "Instalar archivo de complemento" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "Mostrar área de información" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "El área de información muestra la portada y los datos de la pista" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "Mostrar la portada en el área de información" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "Mostrar siempre la barra de pestañas" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "Posición de las pestañas:" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "Tipografía de la lista de reproducción:" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "Reiniciar a la fuente del sistema" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "Muestra el número de pistas en la colección" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "Usar transparencia alpha:" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" "Aviso: esta opción puede causar problemas de visualización si se usa con un " "gestor de ventanas que no permita la composición de imagen." #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "Mostrar icono en la bandeja" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "Minimizar en el área de notificación" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "Cerrar en el área de notificación" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "Saltar a la canción actual al cambiar de pista" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "Mostrar pantalla de inicio" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "Izquierda" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "Derecha" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "Principio" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "Fondo" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "Preferencias" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" "Palabras que se eliminarán del comienzo de las etiquetas de artistas a la " "hora de ordenar (separadas por espacios):" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "(Pulse con el botón derecho para reiniciar a valores predeterminados)" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "Uso de archivos de detección basados en la compilación" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "Administrador de dispositivos" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "Añadir dispositivo" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "Tipo de dispositivo:" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "Dispositivos detectados:" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "Personalizado: " #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "Gestor de cola" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "Buscando mood..." #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "Mood encontrado." #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "No se pudo leer moodbar." #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "El ejecutable Moodbar no se encuentra disponible" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "Moodbar" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "Error ejecutando Streamripper" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "Streamripper" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "Canciones favoritas de Last.fm" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "La clave API introducida no es válida." #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "Compruebe que la información introducida es correcta." #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "No se pudo iniciar el navegador web" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" "Copie la siguiente URL y ábrala con su navegador:\n" "{url}" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "Favorito" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "Favoritos de Last.fm" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "Añadir esta canción a favoritos" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "Eliminar esta canción de favoritos" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "Reloj despertador" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "Este complemento necesita por lo menos PyGTK 2.22 y GTK 2.20." #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "Menú principal" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "Conectando con el servidor Shoutcast..." #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "Error al conectar con el servidor Shoutcast." #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "Introduzca los términos de búsqueda" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "Buscar en shoutcast" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "Resultados de búsqueda" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "Buscar" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "No se encontraron las letras." #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "Ir a: " #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "Cualquier" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "Visor de letras" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "AudioScrobbler" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "Verificación exitosa" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "Falló la verificación" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "Activar audioscrobbling" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "Ecualizador" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "Apagar después de la reproducción" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "Apagado programado" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "El equipo se apagará al finalizar la reproducción." #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "Apagado inminente" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "El equipo se apagará en %d segundos." #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "Hubo un error al apagar" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "El equipo no ha podido apagarse usando D-Bus." #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "Previsualizar dispositivo" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "Previsualizar reproductor" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "Previsualización" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "Notificaciones OSD" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "%(title)s" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "de %(artist)s" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "de %(album)s" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "Consola IPython - Exaile" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "Mostrar consola IPython" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "Consola IPython" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "Notificar" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" "por %(artist)s\n" "en %(album)s" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "Importando CD..." #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "Disco de audio" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "CD" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "Número de pista" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "Número de disco" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "Contador de reproducción" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "Intérprete: " #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" "¿Lo sabía?\n" "\n" "%s" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "Wikipedia" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "Muestra la página de Wikipedia acerca del intérprete actual." #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "Reperit segmento" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "Repetir inicio" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "Repetir final" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "Modo mini" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "$tracknumber - $title" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "$title por $artist" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "$title ($__length)" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "Anterior" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "Ir a la pista anterior" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "Pista anterior" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "Siguiente" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "Ir a la siguiente pista" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "Pista siguiente" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "Reproducir/Pausa" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "Iniciar, pausar o reanudar la lista de reproducción" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "Iniciar reproducción" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "Continuar con la reproducción" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "Pausar reproducción" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "Detener" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "Detener la reproducción" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "Continuar reproducción después de la pista actual" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "Volumen" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "Cambia el volumen" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "Restaurar" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "Restaurar la ventana principal" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "Restaurar ventana principal" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "Elija una puntuación de la pista actual" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "Selector de pistas" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "Selector sencillo de la lista de pistas" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "Botón de la lista de reproducción" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "Acceda a la lista de reproducción actual" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "$title ($current_time / $total_time)" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "Botón de progreso" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "Reproducción en curso y acceso a la lista de reproducción actual" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "Barra de progreso" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "Reproducción en curso y búsqueda" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "Obtener todas las etiquetas de la colección" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "Mostrar pistas con todas las etiquetas" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "Mostrar pistas con etiquetas (personalizado)" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "Mostrar pistas con selección" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "Mostrar pistas etiquetadas con «%s»" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "Grupo" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "Añadir grupo nuevo" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "Eliminar grupo" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "Añadir categoría nueva" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "Eliminar categoría" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "Mostrar pistas con selección (personalizado)" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "¿Nuevo valor de etiqueta?" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "Escriba el valor nuevo de la etiqueta" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "¿Nueva categoría?" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "Escriba el nombre nuevo de la categoría de grupo" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "Añadir grupo" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "Mostrar pistas con grupos" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "Debe tener esta etiqueta [Y]" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "Puede tener esta etiqueta [O]" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "No debe tener esta etiqueta [NO]" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "Ignorado" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "Pistas seleccionadas" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "ReplayGain" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "Suelte para elegir" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "Añadir y reproducir" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "Añadir" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "Histórico" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "Histórico de reproducción" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "¿Quiere eliminar el histórico almacenado?" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "Guardar el histórico" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "Limpiar el histórico" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "Listo" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "Buscando catálogo de Jamendo..." #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "Obteniendo datos de canciones ..." #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "Visualización en pantalla" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" "$title\n" "por $artist\n" "de $album" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" "$title\n" "por $artist\n" "de $album" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "Carátulas de Amazon" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "Podcasts" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "Podcast" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "Actualizar Podcast" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "Borrar" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "Introduzca la URL del podcast que quiere añadir" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "Abrir podcast" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "Cargando %s..." #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "Error en la carga del podcast." #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "Cargando podcasts..." #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "No se puede guardar el archivo podcast" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "Carátula en escritorio" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "Reloj multi-alarma" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "Contexto" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "Informacióndecontexto" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "Marcar esta pista" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "Eliminar marcador" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "Limpiar marcadores" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "Marcadores" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "Pausar el protector de pantalla" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "Servidor DAAP" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "Contador de PPM" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "¿Fijar PPM de %d a %s?" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "Cliente DAAP" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "Manualmente..." #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "Ingrese dirección IP y puerto para compartir" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "Ingrese dirección IP y puerto." #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" "Este servidor no soporta conexiones múltiples.\n" "Detenga la reproducción antes de descargar canciones." #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "Actualizar la lista de servidores" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "Desconectar del servidor" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "Seleccione una ubicación donde guardar" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "Conectar a DAAP..." #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "Oscurecer la sección reproducida en lugar de utilizar el cursor" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "Nivel de oscuridad:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "Usar estilo de ondas" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "Mostrar sólo ondas, no mood" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "Usar tema de color " #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "Color base:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "Color base" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "Guardar ubicación:" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "Puerto de transmisión:" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "Procesar a un archivo único" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "Eliminar archivos incompletos" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "Clave API:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "Secreto:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "Solicitar permiso de acceso" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" "Vaya a su cuenta API " "para obtener su clave API y secreto e introdúzcalas aquí. Tras " "escribirlas, solicite permiso para acceder y confírmelo para " "completar la instalación." #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "Hora de alarma" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "Lunes" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "Martes" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "Miércoles" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "Jueves" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "Viernes" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "Sábado" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "Domingo" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "Días con alarma" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "Usar desvanecimiento" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "Volumen mínimo:" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "Volumen máximo:" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "Incremento:" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "Tiempo por incremento:" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "Reproducir con retraso" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "Mostrar portadas" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "Reproducir en círculo" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "Porcentaje de texto" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "Ninguno" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "Fuente de las letras:" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "Actualizar letras" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "Enviar canciones usando Audioscrobbler" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "Mostrar elemento de menú al activar/desactivar envío" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "Contraseña:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "Nombre de usuario:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "Comprobar los datos de inicio de sesión" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "pre" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "+12 dB" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "0" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "-24 dB" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "29" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "59" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "119" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "237" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "474" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "947" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "1,9K" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "3,8K" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "7,5K" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "15K" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "Al cambiar de pista" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "Al iniciar reproducción, pausar o parar" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "Al cambiar las etiquetas" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "Al situar el ratón sobre el icono de la bandeja" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "Cuando la ventana principal está activa" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "Pantalla" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "Usar portadas de álbumes como iconos" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "Usar iconos de medios para pausar, parar y continuar" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "Iconos" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "Línea del artista:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" "Las etiquetas «%(title)s», «%(artist)s», y «%(album)s» se sustituirán por " "sus respectivos valores. El título se reemplazará por «Desconocido» si está " "vacío." #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "Resumen:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "Línea del álbum:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "Contenido" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "Linux" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "LightBG" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "Sin color" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "Opacidad del terminal:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "Tipografía" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "Color del texto:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "Color de fondo:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "Tema de IPython:" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "Redimensionar las carátulas mostradas" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "Sólo el artista:" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "Sólo el álbum:" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" "Mensaje que se muestra en el cuerpo de la notificación. En cada caso " "«%(title)s», «%(artist)s», y «%(album)s» se reemplazarán por sus respectivos " "valores. Si no se conoce la etiqueta se mostrará «Desconocido»." #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "Tanto el artista como el álbum:" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "Cuerpo del mensaje" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "Ogg Vorbis" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "FLAC" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "AAC" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "MP3 (VBR)" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "MP3 (CBR)" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "WavPack" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "Importar formato: " #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "Importar calidad: " #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "Importar ruta: " #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" "Cada etiqueta puede usarse con $tag o ${tag}. Las etiquetas " "internas como $__length necesitan especificarse con dos guiones bajos." #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "Código del idioma de Wikipedia (en, de, fr, …)" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "Idioma:" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "Inicio" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "Atrás" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "Adelante" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" "El orden de los controles puede cambiarse arrastrándolos arriba o abajo. (O " "presionando Alt+Arriba/Abajo)" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "Controles" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "Formato de titulo de la pista" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "Siempre visible" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "Mostrar en la lista de tareas" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "Mostrar decoración de ventanas:" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "Mostrar en todos los escritorios" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "Mostrar botón en la ventana principal" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "Completo" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "Simple" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "Priorizar corrección por álbum" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "Priorizar corrección ReplayGain por álbum en vez de por pista." #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "Usar protección de recorte" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "Proteger contra el ruido causado por el exceso de amplificación" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "Amplificación adicional para aplicar a todos los archivos" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "Amplificación adicional (dB):" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "Corrección para los archivos con falta información ReplayGain" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "Nivel de corrección seguro (dB):" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "Longitud del histórico:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "Ordenar por:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "Dirección del orden:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "Resultados:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "Avanzadas" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "Descendente" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "Ascendente" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "Fecha de la versión" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "Valoración esta semana" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "Valoración este mes" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "Número de listas de reproducción añadidas" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "Número de descargas" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "Número de reproducciones" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "Destacado" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "Fecha de lanzamiento" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "Género/Etiquetas" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" "Puede utilizar cualquier etiqueta con $tag o ${tag}. Las " "etiquetas internas como $__length deben tener dos guiones bajos al " "principio.\n" "Se admite el lenguaje de etiquetas de formato de texto de Pango." #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "Formato de Presentación" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "Mostrar duración" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "Fondo:" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "Mostrar barra de progreso" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "Radio del borde:" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" "Para registrar una cuenta Amazon AWS y obtener \n" "esta información visite http://aws.amazon." "com/" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "Añadir podcast" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "Anclaje:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "Desplazamiento X:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "píxeles" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "Desplazamiento Y:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "Sobrescribir tamaño de portada" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "Tamaño:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "Usar desvanecimiento" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "Duración del desvanecimiento:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "ms" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "Arriba a la izquierda" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "Arriba a la derecha" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "Abajo a la izquierda" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "Abajo a la derecha" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "Añadir" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "Alarmas" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "Activar aumento gradual de volumen" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "Volumen inicial de fundido:" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "Volumen final de fundido:" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "Incremento de fundido:" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "Tiempo de fundido (s):" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "Reiniciar lista de reproducción" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "Reproducción" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "Introduzca sus credenciales de Last.fm:" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "Regístrese en Last.fm" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" "Usar carátulas en el menú de marcadores (tendrá efecto la siguiente vez que " "inicie)" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "Nombre del servidor:" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "Servidor:" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "Puerto:" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "Servidor habilitado" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "Mostrar los servidores IPv6 (experimental)" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "Recordar los servidores DAAP recientes" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "Canción actual" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" "Establece el estado de la reproducción en Pidgin. Consulte las preguntas " "frecuentes de Pidgin para averiguar los servicios soportados." #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "Notificaciones" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" "Reemplaza la barra de progreso estándar por la barra Moodbar.\n" "Depende: moodbar" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "IGU" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "Telcas multimedia de GNOME" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" "Añade soporte para controlar Exaile mediante el sistema de teclas multimedia " "de GNOME. Compatible con GNOME >= 2.20.x" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "Atajos de teclado" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" "Permite grabar secuencias con streamripper.\n" "Dependencias: streamripper" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "Salida" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "Carátulas MusicBrainz" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "Integra MusicBrainz para la búsqueda de carátulas" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" "Muestra las canciones que han sido añadidas a favoritos y permite añadir " "canciones a favoritos.\n" "\n" "Asegúrese de introducir una clave API valida y un secreto en las " "preferencias del complemento.\n" "\n" "Requiere del complemento «AudioScrobbler» para el usuario y contraseña." #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "Etiquetado" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "Reproduce música en un momento específico.\n" "\n" "Tenga en cuenta que cuando llega el tiempo especificado, Exaile actuará como " "si pulsara el botón de reproducción, así que asegúrese de tener la música " "que quieres escuchar en la lista de reproducción" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "Utilidad" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "Botón del menú principal" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" "Reduce el menú principal a un botón sobre los paneles.\n" "Depende de: PyGTK >= 2.22, GTK >= 2.20" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "Carátulas Last.fm" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "Búsquedas Last.fm para carátulas" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "Selecciona la carátula y añade algunos elementos a AWN para Exaile" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "Radio Shoutcast" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "Lista de radio Shoutcast" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "Orígenes de medios" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "Editor de etiquetas Ex Falso" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "Integra el editor de etiquetas Ex Falso con Exaile." #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "Añade una pestaña lateral que muestra la letra de la pista actual." #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" "Presenta la información a escuchar Last.fm y servicios similares que " "permuten AudioScrobbler" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "XKeys" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "Teclas de acceso directo global usando xlib (mmkeys.so)" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "Teclas multimedia para Windows" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" "Añade soporte para teclas multimedia (presentes en la mayoría de los " "teclados nuevos) cuando se ejecuta Exaile en Microsoft Windows.\n" "\n" "Requiere pyHook " #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "Un ecualizador de 10 bandas" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "Efecto" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "Lyrics Fly" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "Complemento para buscar letras en lyricsfly.com" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "Inhibir la suspensión" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" "Evita la suspensión de la sesión del usuario durante la reproducción de " "música" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "Librivox" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "Busca y escucha libros de audio de Librivox.org" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "Permite apagar el equipo al terminar la lista de reproducción." #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "Soporte para dispositivo de almacenamiento masivo USB" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" "Soporte para el acceso a los reproductores portátiles utilizando el " "protocolo de almacenamiento masivo USB" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "Dispositivos" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" "Permite reproducir sonido en un dispositivo secundario (pulse con el botón " "derecho en una lista de reproducción y seleccione «Previsualizar». Útil para " "los DJ." #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "Lista de reproducción dinámica de Last.fm" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "El motor de Last.fm para listas de reproducción dinámicas" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "Listas de reproducción dinámicas" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" "Este complemento muestra una burbuja de notificación cuando se inicia una, " "se reanuda o se para; con una carátula o bien un icono que indica la última " "acción (iniciar, reanudar o parar).\n" "\n" "Depende: python-notify\n" "Recomendado: notify-osd" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" "Proporciona una consola IPython que se puede utilizar para manipular Exaile." #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "Desarrollo" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "Se despliega una notificación al comenzar la reproducción de una pista" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "Reproducción de CD" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" "Proporciona información de Wikipedia sobre el artista actual.\n" "Depende de: python-webkit" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "Información" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "Repetir A-B" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "Continuamente se repite un segmento de una pista." #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "Modo compacto para Exaile con una interfaz configurable" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "Activa el soporte ReplayGain" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "Soltar icono de bandeja" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" "Proporciona un icono alternativo en la bandeja del sistema que acepta " "archivos arrastrados.\n" "\n" "Depende de: python-eggtrayicon" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" "Implementa la interfaz de DBus MPRIS (org.freedesktop.MediaPlayer) para " "controlar Exaile." #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "Jamendo" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "Activa el acceso al catálogo de música de Jamendo" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" "Una ventana emergente mostrando información de la pista reproducida " "actualmente." #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "Soporte para iPod" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" "Un complemento que añade soporte para el iPod. Por el momento es de sólo " "lectura, sin transferencia.\n" "\n" "Depende de python-gpod." #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" "Buscar carátulas en Amazon\n" "\n" "Para poder utilizar este complemento, es necesario una clave y una clave " "secreta API AWS." #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "Karaoke" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "Eliminar voces del audio" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "Añade soporte simple para Podcast" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "Muestra la carátula del álbum actual en el escritorio" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "Hola mundo" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "Un complemento simple para probar el sistema de complemento básico" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "Reproduce la música en determinados momentos y días.\n" "\n" "Tenga en cuenta que cuando llega el tiempo especificado, Exaile actuará como " "si pulsara el botón de reproducción, así que asegúrese de tener la música " "que quiere escuchar en la lista de reproducción" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "Información contextual" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" "Muestra información variada acerca de la pista en reproducción.\n" "Dependencias: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a." "k.a. PIL)" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" "Permite guardar/reanudar las posiciones de marcador en los archivos de audio." #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "Wiki de letras" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" "Complemento para descargar letras desde lyrics.wikia.com\n" "Dependencia: python-beautifulsoup" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" "Este complemento integra spydaap (http://launchpad.net/spydaap) en Exaile de " "manera que se pueda compartir una colección a través de DAAP." #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "Permite la reproducción de música compartida DAAP." #~ msgid "New Search" #~ msgstr "Nueva búsqueda" #~ msgid "Popup" #~ msgstr "Ventana emergente" #~ msgid "Text Font:" #~ msgstr "Tipografía del texto:" #~ msgid "Text Color" #~ msgstr "Color del texto" #~ msgid "_Close" #~ msgstr "_Cerrar" #~ msgid "Open" #~ msgstr "Abrir" #~ msgid "%(title)s (by %(artist)s)" #~ msgstr "%(title)s (por %(artist)s)" #~ msgid "by %s" #~ msgstr "por %s" #~ msgid " songs" #~ msgstr " canciones" #~ msgid "Enter the search text" #~ msgstr "Introduzca el texto de búsqueda" #~ msgid "Playing %s" #~ msgstr "Reproduciendo %s" #~ msgid "Relay Port:" #~ msgstr "Puerto de relay:" #~ msgid "Opacity Level:" #~ msgstr "Nivel de opacidad:" #~ msgid "Show OSD on track change" #~ msgstr "Mostrar OSD al cambiar de pista" #~ msgid "Extension" #~ msgstr "Extensión" #~ msgid "Export" #~ msgstr "Exportar" #~ msgid "Display a progressbar in the OSD" #~ msgstr "Mostrar una barra de progreso en el OSD" #~ msgid "..." #~ msgstr "..." #~ msgid "Page 1" #~ msgstr "Página 1" #~ msgid "" #~ "OSD\n" #~ "Drag to the location you'd like the\n" #~ "OSD to appear" #~ msgstr "" #~ "OSD\n" #~ "Arrastre a la posición en la que desea\n" #~ "que aparezca el OSD" #~ msgid "File Type" #~ msgstr "Tipo de archivo" #~ msgid "Start" #~ msgstr "Iniciar" #~ msgid "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgstr "Mueva la ventana OSD al lugar en el que quiera que aparezca" #~ msgid "Display OSD when hovering over tray icon" #~ msgstr "" #~ "Mostrar OSD al colocar el ratón sobre el icono del área de notificación" #~ msgid "Window Height:" #~ msgstr "Altura de la ventana:" #~ msgid "Window Width:" #~ msgstr "Anchura de la ventana:" #~ msgid "Location:" #~ msgstr "Ubicación:" #~ msgid "Stopped" #~ msgstr "Detenido" #~ msgid "AWN" #~ msgstr "AWN" #~ msgid "Bitrate:" #~ msgstr "Tasa de bits:" #~ msgid "Genre:" #~ msgstr "Género:" #~ msgid "Close" #~ msgstr "Cerrar" #~ msgid "Add a directory" #~ msgstr "Añadir un directorio" #~ msgid "Track Number:" #~ msgstr "Número de pista:" #~ msgid "Album:" #~ msgstr "Álbum:" #~ msgid "Artist:" #~ msgstr "Intérprete:" #~ msgid "Title:" #~ msgstr "Título:" #~ msgid "from %s" #~ msgstr "del álbum %s" #~ msgid "Clear Playlist" #~ msgstr "Limpiar lista de reproducción" #~ msgid "Alarm Days:" #~ msgstr "Días de la alarma:" #~ msgid "0:00" #~ msgstr "0:00" #~ msgid "" #~ "Path is already in your collection, or is a subdirectory of another path " #~ "in your collection" #~ msgstr "" #~ "La ruta ya está en su colección o es un subdirectorio de otra ruta en su " #~ "colección" #~ msgid "No covers found" #~ msgstr "No se encontraron portadas" #~ msgid "0/0 tracks" #~ msgstr "0/0 pistas" #~ msgid "Add device" #~ msgstr "Añadir dispositivo" #~ msgid "Toggle: Stop after selected track" #~ msgstr "Detener/Continuar después de la pista seleccionada" #~ msgid "Choose a file to open" #~ msgstr "Elija un archivo para abrir" #~ msgid "Invalid file extension, file not saved" #~ msgstr "Extensión de archivo inválida, archivo no guardado" #~ msgid "Show a popup of the currently playing track" #~ msgstr "Mostrar un emergente con la pista que se reproduce actualmente" #~ msgid "Toggle Play or Pause" #~ msgstr "Cambiar Reproducción/Pausa" #~ msgid "Set rating for current song" #~ msgstr "Asignar puntuación a la canción actual" #~ msgid "Get rating for current song" #~ msgstr "Obtener puntuación de la canción actual" #~ msgid "order must be a list or tuple" #~ msgstr "el orden debe ser una lista o tupla" #~ msgid "Plugin archive contains an unsafe path" #~ msgstr "El archivo de complemento contiene una ruta no segura" #~ msgid " New song, fetching cover." #~ msgstr " Nueva canción, obteniendo portada." #~ msgid "Alarm:" #~ msgstr "Alarma:" #~ msgid "Alarm Name:" #~ msgstr "Nombre de alarma:" #~ msgid "Alarm Time:" #~ msgstr "Hora de alarma:" #~ msgid "Maximum Volume:" #~ msgstr "Volumen máximo:" #~ msgid "Restart Playlist" #~ msgstr "Reiniciar lista de reproducción" #~ msgid "Minimum Volume:" #~ msgstr "Volumen mínimo:" #~ msgid "Enable Fading" #~ msgstr "Activar desvanecimiento" #~ msgid "Fading:" #~ msgstr "Desvanecimiento:" #~ msgid "%d covers to fetch" #~ msgstr "%d portadas a obtener" #~ msgid "Streaming..." #~ msgstr "En vivo..." #~ msgid "Streamripper can only record streams." #~ msgstr "Streamripper sólo puede grabar flujos (streams)." #~ msgid "Choose a plugin" #~ msgstr "Elija un complemento" #~ msgid "Close tab" #~ msgstr "Cerrar pestaña" #~ msgid "Close this dialog" #~ msgstr "Cerrar este diálogo" #~ msgid "New playlist title:" #~ msgstr "Nombre de la nueva lista" #~ msgid "A plugin with the name \"%s\" is already installed" #~ msgstr "Un complemento con el nombre \"%s\" ya está instalado." #~ msgid "Plugin archive is not in the correct format" #~ msgstr "El archivo de complemento no está en el formato correcto" #~ msgid "Select File Type (By Extension)" #~ msgstr "Seleccionar tipo de archivo (por extensión)" #~ msgid "Decreases the volume by VOL%" #~ msgstr "Disminuye el volumen en un VOL%" #~ msgid "%(minutes)d:%(seconds)02d" #~ msgstr "%(minutes)d:%(seconds)02d" #~ msgid "© 2009" #~ msgstr "© 2009" #~ msgid "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager" #~ msgstr "" #~ "Mathias Brodala\n" #~ " \n" #~ " Coordinador de traducción" #~ msgid "Playback engine (requires restart): " #~ msgstr "Motor de reproducción (requiere reiniciar) " #~ msgid "Repeat playlist" #~ msgstr "Repetir lista de reproducción" #~ msgid "Name - Time" #~ msgstr "Nombre - Hora" #~ msgid "Both artist and album" #~ msgstr "Ambos artista y álbum" #~ msgid "Only album" #~ msgstr "Sólo álbum" #~ msgid "Only artist" #~ msgstr "Sólo artista" #~ msgid "_Rename Playlist" #~ msgstr "_Renombrar lista de reproducción" #~ msgid "_Close Playlist" #~ msgstr "_Cerrar lista de reproducción" #~ msgid "Export as..." #~ msgstr "Exportar como ..." #~ msgid "Export current playlist..." #~ msgstr "Exportar lista de reproducción actual..." #~ msgid "Remove current track from playlist" #~ msgstr "Eliminar pista actual de la lista de reproducción" #~ msgid "Dynamically add similar tracks" #~ msgstr "Añadir dinámicamente pistas similares" #~ msgid "Selected controls" #~ msgstr "Controles seleccionados" #~ msgid "Available controls" #~ msgstr "Controles disponibles" #~ msgid "Display window decorations" #~ msgstr "Mostrar decoraciones de las ventanas" #~ msgid "Summary" #~ msgstr "Resumen" #~ msgid "OSS" #~ msgstr "OSS" #~ msgid "GNOME" #~ msgstr "GNOME" #~ msgid "ALSA" #~ msgstr "ALSA" #~ msgid "JACK" #~ msgstr "JACK" #~ msgid "PulseAudio" #~ msgstr "PulseAudio" #~ msgid "Buffering: 100%..." #~ msgstr "Cargando: 100%..." #~ msgid "" #~ "Exaile Music Player\n" #~ "Not playing" #~ msgstr "" #~ "Reproductor de música Exaile\n" #~ "Detenido" #~ msgid "Timer per Increment:" #~ msgstr "Temporizador por incremento:" #~ msgid "On Track Change" #~ msgstr "Al cambiar de pista" #~ msgid "On Playback Start, Pause or Stop" #~ msgstr "Al iniciar, detener o pausar la reproducción" #~ msgid "Increases the volume by VOL%" #~ msgstr "Aumenta el volumen en un VOL%" #~ msgid "Save As..." #~ msgstr "Guardar como..." #~ msgid "No track" #~ msgstr "No hay pista" #~ msgid "%(year)d-%(month)02d-%(day)02d" #~ msgstr "%(year)d-%(month)02d-%(day)02d" #~ msgid "Install plugin file" #~ msgstr "Instalar archivo de complemento" #~ msgid "Install a third party plugin from a file" #~ msgstr "Instalar un complemento de terceros de un archivo" #~ msgid "Track _properties" #~ msgstr "_Propiedades de la pista" #~ msgid "Delete bookmark" #~ msgstr "Eliminar marcador" #~ msgid "Seeking: " #~ msgstr "Buscando: " #~ msgid "$title ($length)" #~ msgstr "$title ($length)" #~ msgid "Album Line:" #~ msgstr "Línea de álbum:" #~ msgid "Secret Key:" #~ msgstr "Clave secreta:" #~ msgid "API Key:" #~ msgstr "Clave API:" #~ msgid "Save Location:" #~ msgstr "Guardar ubicación:" #~ msgid "Creates an MPRIS D-Bus object to control Exaile" #~ msgstr "Crear un objeto MPRIS D-Bus para controlar Exaile" #~ msgid "" #~ "Adds support for playing audio CDs.\n" #~ "Requires python-cddb to look up tags." #~ msgstr "" #~ "Añade soporte para reproducir CD de audio.\n" #~ "Requiere python-cddb para buscar etiquetas." #~ msgid "iPod support" #~ msgstr "Soporte iPod" #~ msgid "Randomize the order of the current playlist" #~ msgstr "Desordenar la lista de reproducción actual" #~ msgid "Add item" #~ msgstr "Añadir elemento" #~ msgid "Basic" #~ msgstr "Básico" #~ msgid "Length:" #~ msgstr "Duración:" #~ msgid "Play Count:" #~ msgstr "Número de reproducciones:" #~ msgid "Remove All" #~ msgstr "Eliminar todo" #~ msgid "" #~ "Copyright (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "This program is free software; you can redistribute it and/or modify\n" #~ "it under the terms of the GNU General Public License as published by\n" #~ "the Free Software Foundation; either version 2 of the License, or\n" #~ "(at your option) any later version.\n" #~ "\n" #~ "This program is distributed in the hope that it will be useful,\n" #~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" #~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" #~ "GNU General Public License for more details.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along\n" #~ "with this program; if not, write to the Free Software Foundation, Inc.,\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ msgstr "" #~ "Copyright (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "Este programa es software libre, puede redistribuirlo o modificarlo\n" #~ "bajo los términos de la Licencia Pública General GNU publicada por\n" #~ "la Fundación de Software Libre, bien la versión 2 de la Licencia, o\n" #~ "(según su elección) cualquier versión posterior.\n" #~ "\n" #~ "Este programa se distribuye con la esperanza de que sea útil,\n" #~ "pero SIN NINGUNA GARANTÍA, incluso sin la garantía implícita de\n" #~ "COMERCIABILIDAD o IDONEIDAD PARA UN PROPÓSITO PARTICULAR. Véase el\n" #~ "Licencia Pública General GNU para más detalles.\n" #~ "\n" #~ "Usted debería haber recibido una copia de la Licencia Pública General de " #~ "GNU junto\n" #~ "con este programa, si no, escriba a la Fundación de Software Libre (Free " #~ "Software Foundation, Inc),\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 EE.UU..\n" #~ msgid "These options only affect the unified engine." #~ msgstr "Estas opciones sólo afectan al motor unificado." #~ msgid "Idle." #~ msgstr "Inactivo." #~ msgid "Print the progress inside the current track as percentage" #~ msgstr "Mostrar progreso dentro de la pista actual como porcentaje" #~ msgid "Filter event debug output" #~ msgstr "Filtrar salida de eventos de depuración" #~ msgid "C_lear All Tracks" #~ msgstr "_Limpiar todas las pistas" #~ msgid "Add To New Playlist..." #~ msgstr "Añadir a la nueva lista de reproducción..." #~ msgid "Date:" #~ msgstr "Fecha:" #~ msgid "File Size:" #~ msgstr "Tamaño del archivo" #~ msgid "Details" #~ msgstr "Detalles" #~ msgid " & " #~ msgstr " y " #~ msgid "On Tray Icon Hover" #~ msgstr "En la bandeja de iconos flotantes" #~ msgid "When GUI is Focused" #~ msgstr "Cuando la interfaz gráfica de usuario se enfoca" #~ msgid "" #~ "To sign up for an Amazon AWS account and get \n" #~ "this information visit http://aws.amazon.com/" #~ msgstr "" #~ "Para inscribirse en una cuenta AWS de Amazon y recibir\n" #~ "esta información visite http://aws.amazon.com/" #~ msgid "Use Media Icons For Pause, Stop and Resume" #~ msgstr "Usar botones de medios para pausar, detener y reanudar" #~ msgid "Track title format:" #~ msgstr "Formato de título de la pista:" #~ msgid "Terminal Opacity:" #~ msgstr "Opacidad de terminal:" #~ msgid "Custom playlist name:" #~ msgstr "Nombre personalizado de la lista de reproducción:" #~ msgid "_Save Changes To Playlist" #~ msgstr "_Guardar cambios hechos a la lista de reproducción" #~ msgid "New custom playlist name:" #~ msgstr "Nuevo nombre para la lista de reproducción:" #~ msgid "Could not enable plugin: %s" #~ msgstr "No se puede activar el complemento %s" #~ msgid "Could not disable plugin: %s" #~ msgstr "No se puede desactivar el complemento %s" #~ msgid "Clear bookmarks" #~ msgstr "Limpiar marcadores" #~ msgid "Delete track" #~ msgstr "Borrar pista" #~ msgid "Use alpha transparency (if supported)" #~ msgstr "Usar transparencias alfa (si es posible)" #~ msgid "_Export current playlist" #~ msgstr "_Exportar la lista de reproducción actual" #~ msgid "Move selected item down" #~ msgstr "Bajar el elemento seleccionado" #~ msgid "Remove item" #~ msgstr "Eliminar elemento" #~ msgid "Move selected item up" #~ msgstr "Subir el elemento seleccionado" #~ msgid "Bookmark this track" #~ msgstr "Añadir esta pista a marcadores" #~ msgid "Restore Main Window" #~ msgstr "Restaurar la ventana principal" #~ msgid "%d KB" #~ msgstr "%d KB" #~ msgid "_Go to Playing Track" #~ msgstr "_Ir a la pista en reproducción" #~ msgid "Plugin to fetch lyrics from lyricwiki.org" #~ msgstr "Complemento para buscar letras en lyricwiki.org" #~ msgid "Last.fm Dynamic Search" #~ msgstr "Búsqueda dinámica en Last.fm" #~ msgid "A plugin for iPod support" #~ msgstr "Un complemento para soporte de iPod" #~ msgid "Pauses/resumes playback on screensaver start/stop" #~ msgstr "" #~ "Pausa/reanuda la lista de reproducción cuando se activa/desactiva el " #~ "salvapantalla" #~ msgid "Awn" #~ msgstr "Awn" #~ msgid "%(playlist_count)d showing, %(collection_count)d in collection" #~ msgstr "mostrando %(playlist_count)d, %(collection_count)d en colección" #~ msgid "Add to custom playlist" #~ msgstr "Añadir a lista de reproducción personalizada" #~ msgid "Time per Increment:" #~ msgstr "Tiempo por incremento:" #~ msgid "_Randomize Playlist" #~ msgstr "_Lista de reproducción aleatoria" #~ msgid "" #~ "This will permanantly delete the selected tracks from your disk, are you " #~ "sure you wish to continue?" #~ msgstr "" #~ "Esta acción eliminará definitivamente las pistas seleccionadas de su " #~ "disco, ¿está seguro de que desea continuar?" #~ msgid "Show Menuitem to toggle Submission" #~ msgstr "Mostrar el menú de elementos para cambiar Submission" #~ msgid "" #~ "Message that should be displayed in the body of the notification. In each " #~ "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced " #~ "by their respective values. If the tag is not known, \"Unknown\" will be " #~ "filled in its place" #~ msgstr "" #~ "El mensaje que se debería mostrar en el cuerpo de la notificación. En " #~ "cada caso, «%(title)s», «%(artist)s», y «%(album)s» se reemplazarán por " #~ "sus valores respectivos. Si la etiqueta es desconocida, verá " #~ "«Desconocido» en su lugar." #~ msgid "© 2009-2010" #~ msgstr "© 2009-2010" #~ msgctxt "yes" #~ msgid "Tuesday" #~ msgstr "Martes" #~ msgctxt "yes" #~ msgid "Friday" #~ msgstr "Viernes" #~ msgid "Stop Playback" #~ msgstr "Detener reproducción" #~ msgid "Secret key:" #~ msgstr "Clave secreta:" #~ msgctxt "yes" #~ msgid "Increment:" #~ msgstr "Incremento:" #~ msgctxt "yes" #~ msgid "Wednesday" #~ msgstr "Miércoles" #~ msgctxt "yes" #~ msgid "Use Fading" #~ msgstr "Usar desvanecimiento" #~ msgctxt "yes" #~ msgid "Monday" #~ msgstr "Lunes" #~ msgctxt "yes" #~ msgid "Saturday" #~ msgstr "Sábado" #~ msgctxt "yes" #~ msgid "Sunday" #~ msgstr "Domingo" #~ msgctxt "yes" #~ msgid "Thursday" #~ msgstr "Jueves" #~ msgctxt "yes" #~ msgid "Minimum volume:" #~ msgstr "Volumen mínimo:" #~ msgctxt "yes" #~ msgid "Maximum volume:" #~ msgstr "Volumen máximo:" #~ msgctxt "yes" #~ msgid "Time per increment:" #~ msgstr "Tiempo por incremento" #~ msgid "Clear" #~ msgstr "Limpiar" #~ msgid "_Save As..." #~ msgstr "Guardar _como..." #~ msgid "In pause: %s" #~ msgstr "Pausado: %s" #~ msgid "Device class does not support transfer." #~ msgstr "Esta clase de dispositivo no permite la transferencia." #~ msgid "_Save As Custom Playlist" #~ msgstr "Guardar como li_sta de reproducción personalizada" #~ msgid "Searches track tags for covers" #~ msgstr "Busca las etiquetas de portadas para las pistas" #~ msgid "Print the position inside the current track as time" #~ msgstr "Muestra la posición dentro de la pista actual como tiempo" #~ msgid "Tag Covers" #~ msgstr "Etiquetas de portadas" #~ msgid "" #~ "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " #~ "replaced by their respective values. The title will be replaced by " #~ "\"Unknown\" if it is empty." #~ msgstr "" #~ "Las etiquetas «%(title)s», «%(artist)s», y «%(album)s» se sustituirán por " #~ "sus respectivos valores. De estar vacío, el título será sustituido por " #~ "«Desconocido»." #~ msgid "Start/Pause Playback" #~ msgstr "Iniciar/Pausar reproducción" #~ msgid "Use Album Covers As Icons" #~ msgstr "Usar portadas como iconos" #~ msgid "Artist Line:" #~ msgstr "Línea de artista:" #~ msgid "DirectSound" #~ msgstr "DirectSound" dist/copy/po/PaxHeaders.26361/vi.po0000644000175000017500000000012312233027260015414 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 29 ctime=1382821553.03304693 exaile-3.3.2/po/vi.po0000644000000000000000000035027112233027260014365 0ustar00rootroot00000000000000# Vietnamese translation for exaile # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2011-03-30 12:51+0000\n" "Last-Translator: Lê Trường An \n" "Language-Team: Vietnamese \n" "Language: vi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Launchpad-Export-Date: 2012-08-28 05:29+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "%d ngày, " #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "%d giờ, " #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "%d phút, " #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d giây" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "%dd, " #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "%dh, " #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "%dm, " #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "%ds" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "%dd " #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "%d:%02d:%02d" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "%d:%02d" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "Không bao giờ" #: ../xl/formatter.py:702 msgid "Today" msgstr "Hôm nay" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "Hôm qua" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "Lỗi khi nâng cấp từ 0.2.14" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "Sử dụng: exaile [OPTION]... [URI]" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "Tuỳ chọn" #: ../xl/main.py:421 msgid "Playback Options" msgstr "Tùy chỉnh phát nhạc" #: ../xl/main.py:423 msgid "Play the next track" msgstr "Phát track tiếp theo" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "Phát track trước" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "Ngừng phát" #: ../xl/main.py:429 msgid "Play" msgstr "Phát" #: ../xl/main.py:431 msgid "Pause" msgstr "Tạm dừng" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "Tạm dừng hoặc tiếp tục phát" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "Dừng phát sau track này" #: ../xl/main.py:440 msgid "Collection Options" msgstr "Tùy chỉnh bộ sưu tập" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "LOCATION" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "Thêm các track từ LOCATION đến bộ sưu tập" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "Tùy chỉnh danh sách" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "Xuất danh sash hiện tại vào LOCATION" #: ../xl/main.py:454 msgid "Track Options" msgstr "Tùy chỉnh track" #: ../xl/main.py:456 msgid "Query player" msgstr "Query player" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "Hiện một popup với thông tin của track hiện tại" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "In tựa đề của track hiện tại" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "In album của track hiện tại" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "Hiển thị nghệ sĩ của track hiện tại" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "Hiển thị độ dài của track hiện tại" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "N" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "Thiết lập đánh giá cho track hiện tại đến N%" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "Lấy đánh giá cho track hiện tại" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "Hiển thị tiến trình phát hiện tại dưới dạng phần trăm" #: ../xl/main.py:490 msgid "Volume Options" msgstr "Tùy chỉnh âm lượng" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "Tăng âm lượng lên N%" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "Giảm âm lượng xuống N%" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "Tắt hay bật âm thanh" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "Hiển thị mức phần trăm của âm lượng hiện tại" #: ../xl/main.py:507 msgid "Other Options" msgstr "Tùy chọn khác" #: ../xl/main.py:509 msgid "Start new instance" msgstr "Yêu cầu mới" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "Hiện trợ giúp này và thoát" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "Hiện phiên bản của chương trình và thoát." #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "Bắt đầu thu nhỏ (vào khay hệ thống, nếu có thể)" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "Chuyển sang hiển thị giao diện đồ họa (nếu có thể)" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "" "Khởi động trong chế độ an toàn, điều này sẽ hữu ích nếu bạn gặp vấn đề gì đó " "trong khi chạy" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "Nhập dữ liệu cũ từ phiên bản 0.2.x (Ghi đè dữ liệu hiện tại)" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "Không nhập dữ liệu cũ từ phiên bản 0.2.x" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "Tạo tuỳ chỉnh điều khiển như --play khởi động Exaile nếu nó không chạy" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "Tùy chỉnh Phát triển/Gỡ lỗi" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "DIRECTORY" #: ../xl/main.py:536 msgid "Set data directory" msgstr "Thiết lập thư mục dữ liệu" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "MODULE" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "Giới hạn nhật kí xuất vào MODULE" #: ../xl/main.py:543 msgid "LEVEL" msgstr "LEVEL" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "Giới hạn nhật kí xuất vào LEVEL" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "Hiện thông tin gỡ lỗi" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:555 msgid "TYPE" msgstr "TYPE" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "Giảm mức độ xuất" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "Tắt hỗ trợ D-Bus" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "Tắt hỗ trợ HAL." #: ../xl/main.py:580 msgid "Entire Library" msgstr "Toàn bộ Thư viện" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "Ngẫu nhiên %d" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "Đánh giá > %d" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "Exail chưa nạp xong. Bạn nên chờ tín hiệu exaile_loaded?" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "Các thẻ" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "Lưu trữ của trình cắm thêm không đúng định dạng." #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "Phần mở rộng có tên \"%s\" đã được cài đặt." #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "Lưu trữ phần mở rộng chứa một đường dẫn không an toàn." #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "Bạn chưa xác định vị trí để tải db từ" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "Bạn chưa xác định vị trí để lưu db" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "Nhiều nghệ sĩ" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "Chưa xác định" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr " / " #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "%dkbps" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" "Vorbis là bộ mã hóa mã nguồn mở với chất lượng đầu ra cao và có kích thước " "tập tin nhỏ hơn MP3." #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" "Free Lossless Audio Codec (FLAC) là chuẩn mã hóa mở, dùng để nén âm thanh mà " "không ảnh hưởng nhiều đến chất lượng." #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" "Một định dạng nén audio có hao tổn, thuộc quyền sở hữu của Apple, cho chất " "lượng âm thanh tốt hơn MP3 với bitrate nhỏ hơn." #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" "Một định dạng âm thanh độc quyền cũ, nhưng cũng phổ biến, ít hao tổn. VBR " "cho chất lượng cao hơn CBR, nhưng có thể không tương thích với một số trình " "chơi nhạc." #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" "Một định dạng âm thanh độc quyền cũ, nhưng cũng phổ biến, ít hao tổn. CBR " "cho chất lượng thấp hơn VBR, nhưng tương thích tốt với mọi trình chơi nhạc." #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "Một chuẩn nén âm thanh ít hao tổn với chất lượng nén tốt." #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "Tự động" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "Tuỳ chọn" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "Chưa phát nhạc." #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" "trạng thái: %(status)s, tựa đề: %(title)s, nghệ sĩ: %(artist)s, album: " "%(album)s, độ dài: %(length)s, vị trí: %(progress)s%% [%(position)s]" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "Cài đặt phiên bản mới hơn so với bản hiện tại." #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "Không biết cách lưu giữ loại thiết đặt: " #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "Chưa xác định được kiểu thiết đặt!" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "Loại danh sách không hợp lệ." #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "Danh sách" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "Danh sách M3U" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "Danh sách PLS" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "Định dạng không hợp lệ %s." #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "Phiên bản %(version)s không hỗ trợ cho %(type)s" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "Danh sách ASX" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "Danh sách XSPFt" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "_Tắt Phát ngẫu nhiên" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "Phát ngẫu nhiên T_rack" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "Phát ngẫu nhiên _Album" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "Tắt Lặp lạ_i" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "_Lặp lại tất cả" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "Lặp lại _một lần" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "Dynamic _Off" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "Dynamic by Similar _Artists" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "giây" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "phút" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "giờ" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "ngày" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "tuần" #: ../xl/lyrics.py:305 msgid "Local" msgstr "" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "Loại khỏi danh sách chờ" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "Thay thế danh sách hiện tại" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "Bổ sung vào danh sách hiện tại" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "Mở Thư mục" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" "Không thể chuyển các tập tin vào thùng rác. Bạn có muốn xóa chúng khỏi đĩa " "cứng?" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "Chuyển vào thùng rác" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "_Hiện Track đang phát" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "Tên:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "Phù hợp với mọi tiêu chuẩn" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "Các kết quả ngẫu nhiên" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "Giới hạn đến: " #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr " track" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "Chưa phát nhạc" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "Tìm kiếm: %s" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "Di chuyển" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "Đã tắt âm" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "%d%%" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "Âm lượng tối đa" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" "$title\n" "by $artist\n" "from $album" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "%(track_count)d trong tổng số (%(total_duration)s)" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "%d trong bộ sưu tập" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "đang hiện %d" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "đã chọn %d" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "Chờ phát (%d)" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "#" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "Số thứ tự của track" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "Tựa đề" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "Nghệ sĩ" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "Biên soạn" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "Album" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "Thời lượng" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "Đĩa" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "Số đĩa" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "Đánh giá" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "Ngày" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "Thể loại" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "Bitrate" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "Vị trí" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "Tên tập tin" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "Số lần phát" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "BPM" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "Lần phát chót" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "Ngày khởi tạo" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "Có thể điều chỉnh _kích thước" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "_Tự động điều chỉnh kích thước" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "Đánh giá:" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "Phát ngẫu nhiên" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "Lặp lại" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "Loại Track hiện tại khỏi Danh sách" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "Danh sách mới" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "Đổi tên" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "Dừng phát nhạc sau trak này" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "Tiếp tục phát nhạc sau track này" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "Yêu cầu các phần mở rộng cung cấp các danh sách động" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "Tự động thêm các track tương tự vào danh sách" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "Nhập URL để mở" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "Mở URL" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "Chọn loại tập tin (Phần mở rộng)" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "Chọn tập tin để mở" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "Các loại tập tin được hỗ trợ" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "Các tập tin nhạc" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "Các tập tin danh sách" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "Tất cả Tập tin" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "Chọn thư mục để mở" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "Xuất danh sách hiện tại" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "Lưu danh sách %s." #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "Đóng %s" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "Lưu lại sự thay đổi của %s trước khi đóng?" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "Mọi sự thay đổi của bạn sẽ bị mất nếu bạn không lưu lại" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "Đóng và không Lưu" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "Đã lưu %(count)s trong số %(total)s." #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "Bạn chưa nhập tên cho danh sách" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "Tên danh sách bạn nhập đã được sử dụng." #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "Đóng Tab" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "$title (by $artist)" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "Chuyển đổi: Dừng sau Track đã chọn" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "Gặp phải lỗi khi phát!" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "Đang nạp bộ đệm: %d%%..." #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "Tiếp tục phát" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "Dừng phát" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "Xuất danh sách thất bại!" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "Bắt đầu phát" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "Exaile Music Player" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "Danh sách _mới" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "Mở _URL" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "Mở Thư mục" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "Xuất danh sách _hiện tại" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "Khởi động lại" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "_Bộ sưu tập" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "Danh sách _chờ" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "Ảnh _bìa" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "_Thanh tiện ích danh sách" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "_Các cột" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "Làm trốn_g danh sách" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "Quản lý thiết _bị" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "_Quét lại Bộ sưu tập" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "_Thông tin Track" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "Hủy bỏ" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "Album gốc" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "Lời bài hát" #: ../xlgui/properties.py:54 msgid "Website" msgstr "Trang Web" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "Ảnh bìa" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "Nghệ sĩ gốc" #: ../xlgui/properties.py:57 msgid "Author" msgstr "Tác giả" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "Ngày gốc" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "Sắp xếp" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "Chỉ đạo" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "Người biểu diễn" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "Bản quyền" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "Lời bài hát" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "Track" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "Phiên bản" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "ISRC" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "Mã hóa bởi" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "Tổ chức" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "Đã sửa đổi" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "Số lần phát" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "Chỉnh sửa track %(current)d của %(total)d" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "of:" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "Sử dụng giá trị này cho tất cả các track" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "Hiện ảnh bìa" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "Tải ảnh bìa" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "Loại bỏ ảnh bìa" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "Ảnh bìa cho %s" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "Tùy chọn ảnh bìa cho %(artist)s - %(album)s" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "Không tìm thấy ảnh bìa." #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "Biểu tượng" #: ../xlgui/devices.py:81 msgid "Device" msgstr "Thiết bị" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "Trình điều khiển" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "Đang quét bộ sưu tập..." #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "Đang quét %s..." #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "Chuyển đổi Danh sách chờ" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "Đối tượng trong hàng đợi" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "Thuộc tính" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "Danh sách thông minh mới" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "Chỉnh sửa" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "Xoá danh sách" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "Bạn có chắc là muốn xóa vĩnh viễn danh sách được chọn không?" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "Nhập tên Danh sách" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "Đổi tên Danh sách" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "Gỡ bỏ" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "Danh sách %d" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "Thêm một Thư mục" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "Thư mục không được thêm vào." #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" "Thư mục đã có trong bộ sưu tập hoặc nó là thư mục con của một thư mục khác " "trong bộ sưu tập." #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "Đang chuyển đến %s..." #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "Đang nạp luồng dữ liệu..." #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "Thêm kênh radio" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "URL:" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "Các Đài đã lưu" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "Radio Streams" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "Làm mới" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "Nhập tên cho danh sách mới" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "Thể loại - Nghệ sĩ" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "Thể loại - Album" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "Quét lại Bộ sưu tập" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "Kích thước" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s KB" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "and" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "is" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "is not" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "contains" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "does not contain" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "at least" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "at most" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "before" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "after" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "between" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "greater than" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "less than" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "in the last" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "not in the last" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "Phát" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "Năm" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "%(first)s, %(second)s and others" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "%(first)s and %(second)s" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "Các Danh sách thông minh" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "Các Danh sách tùy chọn" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "Thêm Danh sách thông minh" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "Sửa đổi Danh sách Thông minh" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "Phát" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "Phần mở rộng" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "Không thể nạp thông tin phần mở rộng!" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "" msgstr[1] "" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "Không thể tắt phần mở rộng!" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "Không thể bật phần mở rộng!" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "Chọn một Phần mở rộng" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "Lưu trữ Phần mở rộng" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "Cài đặt tập tin Phần mở rộng thất bại!" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "Ảnh bìa" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "Giao diện" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "Bộ sưu tập" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "the" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "Đặt lại về Mặc định" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "Khởi động lại Exaile?" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "Yêu cầu khởi động lại để thấy được sự thay đổi." #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "Hành động" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "Phím tắt" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "Danh sách" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "Giới thiệu về Exaile" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "© 2009-2012" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "Quản lí ảnh bìa" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "Đảo thứ tự phát" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "Lặp lại" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "Bộ tìm ảnh bìa" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "Thiết đặt ảnh _bìa" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "_Tập tin" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "Chỉnh _sửa" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "_Hiển thị" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "_Công cụ" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "Trợ _giúp" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "Track trước" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" "Dừng phát\n" "\n" "Bấm chuột phải để dừng lại sau Track" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "Track tiếp theo" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0:00 / 0:00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "Thông tin của Track" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "_Thêm thẻ" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "_Gỡ bỏ thẻ" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "ab → A_b" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "Viết hoa chữ cái đầu của tất cả các thẻ" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "_Lùi" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "_Tiếp theo" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "Mô tả:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "Quản lý Bộ sưu tập" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "Theo dõi" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "Radio" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "Nối tất cả Track vào Danh sách" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "Nhập đĩa CD" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "Thêm kênh radio" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "Tập tin" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "Thư mục đã xem trước" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "Thư mục đã xem kế đến" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "Chuyển lên thư mục cha" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "Làm mới danh sách thư mục" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "Thư mục Home" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "Tìm kiếm: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "Làm trống khung tìm kiếm" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "Bộ sưu tập rỗng." #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "Thêm Nhạc" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" "Làm mới bộ sưu tập\n" "(Nhấn giữ phím Shift để quét lại bộ sưu tập)" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "Sử dụng ảnh bìa nhúng trong các thẻ" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "Sử dụng ảnh bìa từ các tập tin lân cận" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" "Tùy chọn này sẽ tìm kiếm tập tin ảnh bìa trong \n" "thư mục chứa tập tin nhạc." #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "Tự động tải ảnh bìa khi bắt đầu phát nhạc" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "Sắp xếp tìm kiếm ảnh bìa:" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "(nhấn và kéo chuột đế sắp xếp lại)" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "Khi khởi động sẽ mở lại danh sách lần trước" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "Nhắc để lưu tùy chỉnh các danh sách khi đóng" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" "Thay vì nối vào, các track được thêm vào bằng cách click chuột sẽ thay thế " "nội dung của danh sách hiện tại." #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "Thời gian làm mờ (ms):" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "Thời gian làm mờ (ms):" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "" #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "Phát nhạc khi khởi động" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "Trở lại vị trí đang phát trước kia" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "Bình thường" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "Phần mở rộng" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "Đã bật" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "Không có phần mở rộng nào được chọn" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "Các phần mở rộng đã cài" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "Tác giả:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "Phiên bản:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "Cài đặt" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "Không Phần mở rộng nào được chọn" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "Các Phần mở rộng có sẵn" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "Cài bản cập nhật" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "Cập nhật" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "Cài đặt tập tin Phần mở rộng" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "Nguồn thông tin chứa ảnh bìa và thông tin track" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "Luôn hiện thanh tab" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "Vị trí tab:" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "Hiện số track trong bộ sưu tập" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "Sử dụng độ trong suốt:" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" "Cảnh báo: tùy chọn này có thể hiển thị lỗi nếu sử dụng với trình quản lý cửa " "sổ không hỗ trợ compositing." #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "Hiện biểu tượng dưới khay hệ thống" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "Thu nhỏ xuống khay hệ thống" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "Đóng xuống khay hệ thống" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "Nhảy tới bài hát hiện tại" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "Hiện màn hình chào khi khởi động" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "Trái" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "Phải" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "Trên" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "Bên dưới" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "Ưu tiên" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "(Nhấn chuột phải để thiết đặt về mặc định)" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "Trình quản lý thiết bị" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "Thêm Thiết bị" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "Loại thiết bị:" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "Nhận diện các thiết bị:" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "Tùy chỉnh: " #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "Trình quản lý danh sách chờ" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "" #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "Lỗi khi thực thi streamripper" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "Streamripper" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "Alarm Clock" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "Đang liên lạc với máy chủ Shoutcast..." #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "Lỗi khi kết nối đến máy chủ Shoutcast." #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "Nhập từ khóa tìm kiếm" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "Tìm kiếm Shoutcast" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "Kết quả tìm kiếm" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "Tìm kiếm" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "Không tìm thấy lời bài hát." #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "Đến: " #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "Bất kỳ" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "Lyrics Viewer" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "AudioScrobbler" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "Bật truyền tải thông tin âm thanh" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "Bộ cân chỉnh âm" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "Shutdown after Playback" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "Máy sẽ tắt khi phát xong." #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "Máy không thể tắt vì D-Bus." #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "Notify-osd notifications" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "%(title)s" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "by %(artist)s" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "from %(album)s" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "IPython Console - Exaile" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "Hiện IPython Console" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "IPython Console" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "Notify" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" "by %(artist)s\n" "from %(album)s" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "Nhập đĩa CD..." #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "Đĩa nhạc" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "CD" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "Số track" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "Số của đĩa" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "Số lần phát" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "Lặp lại đoạn" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "Bắt đầu lặp lại" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "Kết thúc lặp lại" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "Mini Mode" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "$tracknumber - $title" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "$title by $artist" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "$title ($__length)" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "Trước" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "Đến track trước" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "Track trước" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "Tiếp theo" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "Đến track tiếp theo" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "Track tiếp theo" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "Phát/Tạm dừng" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "Bắt đầu, tạm dừng hoặc phát trở lại" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "Bắt đầu phát" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "Tiếp tục phát" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "Tạm dừng phát" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "Dừng" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "Dừng phát" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "Tiếp tục phát sau track hiện tại" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "Âm lượng" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "Thay đổi âm lượng" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "Khôi phục" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "Khôi phục cửa sổ chính" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "Khôi phục cửa sổ chính" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "Chọn đánh giá của track hiện tại" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "Chọn track" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "Chọn danh sách track đơn giản" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "Nút danh sách" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "Truy cập danh sách hiện tại" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "$title ($current_time / $total_time)" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "Nút tiến trình" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "Tiến độ phát và truy cập đến danh sách hiện tại" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "Thanh tiến độ" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "Tiến độ và thời gian phát" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "ReplayGain" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "Nối vào và phát" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "Nối thêm vào" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "Sẵn sàng" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "Đang tìm mục lục Jamendo..." #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "Đang lấy dữ liệu bài hát..." #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "Hiển thị trên màn hình" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "Amazon Covers" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "Podcasts" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "Podcast" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "Làm mới Podcast" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "Xóa" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "Nhập URL của podcast để thêm vào" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "Mở Podcast" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "Đang nạp %s..." #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "Lỗi khi nạp podcast." #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "Đang nạp các Podcast..." #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "Không thể lưu tập tin podcast" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "Desktop Cover" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "Multi-Alarm Clock" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "Đánh dấu Track này" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "Xóa đánh dấu" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "Xóa các đánh dấu" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "Bookmarks" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "Pause on Screensaver" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "DAAP Server" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "DAAP Client" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "Thủ công..." #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "Nhập địa chỉ IP và cổng để chia sẻ" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "Nhập địa chỉ IP và cổng." #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" "Máy chủ này không hỗ trợ đa kết nối.\n" "Bạn phải dừng phát trước khi tải các bài hát." #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "Làm mới danh sách máy chủ" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "Ngắt kết nối với máy chủ" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "Chọn nơi để lưu lại" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "Kết nối đến DAAP..." #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "Sử dụng màu sắc chủ đề " #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "Màu cơ bản:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "Màu cơ bản" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "Vị trí lưu:" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "Xóa các tập tin không đầy đủ" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "Khóa API:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "Thời gian cảnh báo" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "Thứ hai" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "Thứ ba" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "Thứ tư" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "Thứ năm" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "Thứ sáu" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "Thứ bảy" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "Chủ nhật" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "Ngày cảnh báo" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "Tăng:" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "Hiện che phủ:" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "Hiện ảnh bìa" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "Hiện vòng tròn" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "Không" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "Làm mới lời bài hát" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "Gửi track sử dụng Audioscrobbler" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "Mật khẩu" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "Tên người dùng:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "pre" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "+12 dB" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "0" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "-24 dB" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "29" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "59" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "119" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "237" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "474" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "947" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "1.9K" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "3.8K" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "7.5K" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "15K" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "Khi đổi track" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "Khi bắt đầu phát, tạm ngưng hay dừng lại" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "Khi cửa sổ chính được tập trung" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "Hiển thị" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "Sử dụng ảnh bìa album làm biểu tượng" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "Biểu tượng" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "Dòng Nghệ sĩ:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" "Các thẻ \"%(title)s\", \"%(artist)s\", and \"%(album)s\" sẽ được thay thế " "bởi các giá trị tương ứng. Tựa đề sẽ được thay thế bởi \"Chưa xác định\" nếu " "nó trống." #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "Tóm tắt:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "Dòng Album:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "Nội dung" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "Phông chữ :" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "Màu nền:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "Chỉ nghệ sĩ:" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "Chỉ album:" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "Cả nghệ sĩ và album:" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "Phần tin nhắn" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "Ogg Vorbis" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "FLAC" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "AAC" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "MP3 (VBR)" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "MP3 (CBR)" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "WavPack" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "Định dạng nhập: " #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "Chất lượng nhập: " #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "Đường dẫn nhập: " #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "Luôn ở trên" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "Hiện các trang trí cửa sổ:" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "Đầy" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "Đơn giản" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "Sắp xếp theo:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "Hướng sắp xếp:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "Kết quả:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "Nâng cao" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "Giảm dần" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "Tăng dần" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "Ngày phát hành" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "Đánh giá tuần này" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "Đánh giá tháng này" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "Số lần thêm vào danh sách" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "Số lần tải về" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "Số lần nghe" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "Đã bắt đầu" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "Ngày bắt đầu" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "Thể loại/Thẻ" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" "Để đăng kí một tài khoản Amazon AWS và lấy \n" "thông tin này vui lòng xem trang http://" "aws.amazon.com/" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "Thêm Podcast" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "Neo:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "pixel" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "Kích thước:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "ms" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "Góc trên bên trái" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "Góc trên bên phải" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "Góc dưới bên trái" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "Góc dưới bên phải" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "Bắt đầu lại danh sách" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "Vui lòng nhập xác thực Last.fm:" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "Đăng kí Last.fm" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" "Sử dụng ảnh bìa trong trình đơn đánh dấu (có hiệu lực vào lần khởi động sau)" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "Tên máy chủ:" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "Cổng:" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "Đã cho phép máy chủ" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "Current Song" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" "Thiết đặt trạng thái đang phát trong Pidgin. Kiểm tra FAQ của Pidgin để tìm " "các dịch vụ được hỗ trợ." #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" "Cho phép bạn ghi lại luồng dữ liệu với streamripper.\n" "Phụ thuộc: streamripper" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "Phát nhạc vào thời gian xác định.\n" "\n" "Chú ý rằng khi thời gian xác định đến, Exaile sẽ chỉ nhấn nút phát nhạc thay " "bạn, bởi vậy bạn phải bảo đảm các bài hát bạn muốn nghe có sẵn trong danh " "sách" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "Last.fm Covers" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "Tìm kiếm ảnh bìa cho Last.fm" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "Hiện ảnh bìa và thêm một số trình đơn vào AWN cho Exaile" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "Shoutcast Radio" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "Danh sách Shoutcast Radio" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "Ex Falso tag editor" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" "Tích hợp trình chỉnh sửa thẻ Ex Falso vào Exaile.\n" "Phụ thuộc: Ex Falso." #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "Thêm một thanh bên hiển thị lời của bài hát đang phát." #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" "Gửi thông tin đang nghe đến Last.fm và các dịch vụ tương tự hỗ trợ " "AudioScrobbler" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "XKeys" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "Cân chỉnh âm thanh theo một số chủ đề định sẵn" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "Lyrics Fly" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "Phần mở rộng để tải lời bài hát từ lyricsfly.com" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "Librivox" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "Duyệt và nghe audiobook từ Librivox.org." #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "Cho phép tắt máy khi đã phát xong." #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "USB Mass Storage Media Player Support" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "Hỗ trợ truy cập vào các máy phát nhạc qua cổng giao thức USB" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "Last.fm Dynamic Playlists" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" "Phần mở rộng này hiển thị thông báo khi một bài hát được phát/dừng lại/phát " "tiếp, cừng với ảnh bìa hoặc biểu tượng.\n" "\n" "Phụ thuộc: python-notify\n" "Đề nghị: notify-osd" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "Cung cấp một giao diện điều khiển IPython dùng để điều khiển Exaile." #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "Hiện thông báo khi bắt đầu phát một track" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "CD Playback" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "Lặp lại đoạn A-B" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "Bật hỗ trợ ReplayGain" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "Drop Trayicon" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "Jamendo" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "Cho phép truy cập vào mục lục Jamendo." #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "Hỗ trợ iPod" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "Karaoke" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "Lọc bỏ tiếng ồn ra khỏi âm thanh" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "Thêm hỗ trợ Podcast đơn giản" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "Hiển thị ảnh bìa album hiện tại trên màn hình desktop" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "Hello World" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "Phát nhạc vào thời gian và ngày xác định.\n" "\n" "Chú ý rằng khi thời gian xác định đến, Exaile sẽ chỉ nhấn nút phát nhạc thay " "bạn, bởi vậy bạn phải bảo đảm các bài hát bạn muốn nghe có sẵn trong danh " "sách" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "Lyrics Wiki" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" "Phần mở rộng này tích hợp spydaap (http://launchpad.net/spydaap) vào Exaile " "để bộ sưu tập có thể được chia sẻ qua DAAP." #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "Cho phép phát nhạc chia sẻ qua DAAP." #~ msgid "Clear" #~ msgstr "Xóa" #~ msgid "Close" #~ msgstr "Đóng" #~ msgid "Close tab" #~ msgstr "Đóng tab" #~ msgid "Export as..." #~ msgstr "Xuất dưới dạng..." #~ msgid "%d KB" #~ msgstr "%d KB" #~ msgid "© 2009-2010" #~ msgstr "© 2009-2010" #~ msgid "GNOME" #~ msgstr "GNOME" #~ msgid "ALSA" #~ msgstr "ALSA" #~ msgid "OSS" #~ msgstr "OSS" #~ msgid "PulseAudio" #~ msgstr "PulseAudio" #~ msgid "JACK" #~ msgstr "JACK" #~ msgid "AWN" #~ msgstr "AWN" #~ msgctxt "yes" #~ msgid "Monday" #~ msgstr "Thứ hai" #~ msgctxt "yes" #~ msgid "Tuesday" #~ msgstr "Thứ ba" #~ msgctxt "yes" #~ msgid "Wednesday" #~ msgstr "Thứ tư" #~ msgctxt "yes" #~ msgid "Thursday" #~ msgstr "Thứ năm" #~ msgctxt "yes" #~ msgid "Friday" #~ msgstr "Thứ sáu" #~ msgctxt "yes" #~ msgid "Saturday" #~ msgstr "Thứ bảy" #~ msgctxt "yes" #~ msgid "Sunday" #~ msgstr "Chủ nhật" #~ msgctxt "yes" #~ msgid "Minimum volume:" #~ msgstr "Âm lượng cực tiểu:" #~ msgctxt "yes" #~ msgid "Maximum volume:" #~ msgstr "Âm lượng cực đại:" #~ msgctxt "yes" #~ msgid "Increment:" #~ msgstr "Tăng:" #~ msgid "Secret key:" #~ msgstr "Khóa bí mật:" #~ msgid "Awn" #~ msgstr "Awn" #~ msgid "Minimum Volume:" #~ msgstr "Âm lượng nhỏ nhất:" #~ msgid "Enable Fading" #~ msgstr "Bật Fading" #~ msgid "order must be a list or tuple" #~ msgstr "Thứ tự phải là một danh sách" #~ msgid "A plugin with the name \"%s\" is already installed" #~ msgstr "Plugin với tên \"%s\" đã được cài" #~ msgid "Plugin archive is not in the correct format" #~ msgstr "Plugin archive không đúng định dạng" #~ msgid "Plugin archive contains an unsafe path" #~ msgstr "Plugin archive chứa một đường dẫn không an toàn" #~ msgid " New song, fetching cover." #~ msgstr " Bản nhạc mới, đang lấy cover" #~ msgid "Toggle Play or Pause" #~ msgstr "Chuyển Play hoặc Pause" #~ msgid "Show a popup of the currently playing track" #~ msgstr "Hiện popuo của track đang chơi" #~ msgid "Set rating for current song" #~ msgstr "Đánh giá cho bài hiện tại" #~ msgid "Get rating for current song" #~ msgstr "Xem đánh giá cho bài hiện tại" #~ msgid "" #~ "Exaile now uses absolute URI's, please delete/rename your %s directory" #~ msgstr "" #~ "Exaile sử dụng các đường dẫn tuyệt đối URI, hãy xóa/sửa đổi tên thư mục %s" #~ msgid "Playing %s" #~ msgstr "Đang play %s" #~ msgid "Add to Playlist" #~ msgstr "Thêm vào Playlist" #~ msgid "Add Playlist" #~ msgstr "Thêm Playlist" #~ msgid "Choose a file" #~ msgstr "Chọn một file" #~ msgid "Open" #~ msgstr "Mở" #~ msgid "Start" #~ msgstr "Bắt đầu" #~ msgid "Invalid file extension, file not saved" #~ msgstr "Kiểu file không hợp lệ, file sẽ không được lưu" #~ msgid "Quit" #~ msgstr "Thoát" #~ msgid "No covers found" #~ msgstr "Không tìm thấy cover nào" #~ msgid "Enter the search text" #~ msgstr "Từ khóa tìm kiếm" #~ msgid "Choose a plugin" #~ msgstr "Chọn một plugin" #~ msgid "Number of Plays" #~ msgstr "Số lần Play" #~ msgid "Choose a file to open" #~ msgstr "Chọn một file để mở" #~ msgid "" #~ "Path is already in your collection, or is a subdirectory of another path " #~ "in your collection" #~ msgstr "" #~ "Đường dẫn này đã có trong Collection hoặc nó là thư mục con của một đường " #~ "dẫn khác trong Collection" #~ msgid "Add a directory" #~ msgstr "Thêm một thư mục" #~ msgid " songs" #~ msgstr " Bài hát" #~ msgid "Streaming..." #~ msgstr "Đang phát..." #~ msgid "0:00" #~ msgstr "0:00" #~ msgid "Buffering: 100%..." #~ msgstr "Buffering: 100%..." #~ msgid "_Close" #~ msgstr "Đó_ng" #~ msgid "Toggle: Stop after selected track" #~ msgstr "Toogle: Dừng sau track đã chọn" #~ msgid "New playlist title:" #~ msgstr "Tiêu đề playlist mới:" #~ msgid "Stopped" #~ msgstr "Đã dừng" #~ msgid "from %s" #~ msgstr "từ %s" #~ msgid "by %s" #~ msgstr "bởi %s" #~ msgid "Select File Type (By Extension)" #~ msgstr "Chọn kiểu File (qua phần mở rộng)" #~ msgid "Extension" #~ msgstr "Phần mở rộng" #~ msgid "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgstr "{tiêu đề}" #~ msgid "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgstr "Di chuyển cửa sổ On Screen Display tới vị trí bạn muốn" #~ msgid "Window Height:" #~ msgstr "Độ cao cửa sổ:" #~ msgid "Window Width:" #~ msgstr "Độ rộng cửa sổ:" #~ msgid "Opacity Level:" #~ msgstr "Độ mờ:" #~ msgid "Text Font:" #~ msgstr "Font chữ:" #~ msgid "Text Color" #~ msgstr "Màu chữ" #~ msgid "Display OSD when hovering over tray icon" #~ msgstr "Hiện thị OSD khi lượn chuột qua biểu tượng trên thanh Tray" #~ msgid "Show OSD on track change" #~ msgstr "Hiện OSD khi thay đổi track" #~ msgid "%(title)s (by %(artist)s)" #~ msgstr "%(title)s (by %(artist)s)" #~ msgid "Close this dialog" #~ msgstr "Đóng hộp thoại này" #~ msgid "New Search" #~ msgstr "Tìm kiếm mới" #~ msgid "General" #~ msgstr "Tổng thể" #~ msgid "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "Year - Artist\n" #~ "Year - Album\n" #~ "Artist - Year - Album" #~ msgstr "" #~ "Nghệ sĩ\n" #~ "Al-bum\n" #~ "Thể loại - Nghệ sĩ\n" #~ "Thể loại - Al-bum\n" #~ "Năm - Nghệ sĩ\n" #~ "Năm - Al-bum\n" #~ "Nghệ sĩ - Năm - Al-bum" #~ msgid "..." #~ msgstr "..." #~ msgid "Add device" #~ msgstr "Them thiết bị" #~ msgid "Popup" #~ msgstr "Popup" #~ msgid " - " #~ msgstr " - " #~ msgid " + " #~ msgstr " + " #~ msgid "Autosize" #~ msgstr "Tự chỉnh kích thước" #~ msgid "0/0 tracks" #~ msgstr "0/0 tracks" #~ msgid "Resizable" #~ msgstr "Đổi được cỡ" #~ msgid "Page 1" #~ msgstr "Trang 1" #~ msgid "Vol:" #~ msgstr "Vol:" #~ msgid "Stop Playback" #~ msgstr "Dừng Play" #~ msgid "%d covers to fetch" #~ msgstr "%d ảnh bìa để tải" #~ msgid "File Type" #~ msgstr "Định dạng tập tin" #~ msgid "No track" #~ msgstr "Không có track nào" #~ msgid "Export" #~ msgstr "Xuất ra" #~ msgid "%(minutes)d:%(seconds)02d" #~ msgstr "%(minutes)d:%(seconds)02d" #~ msgid "New custom playlist name:" #~ msgstr "Tùy chọn tên danh sách mới:" #~ msgid "_Randomize Playlist" #~ msgstr "Danh sách ngẫu nhiên" #~ msgid "Randomize the order of the current playlist" #~ msgstr "Sắp xếp thứ tự ngẫu nhiên cho danh sách hiện tại" #~ msgid "Search:" #~ msgstr "Tìm kiếm:" #~ msgid "Display a progressbar in the OSD" #~ msgstr "Hiện thanh tiến trình trên OSD" #~ msgid "" #~ "OSD\n" #~ "Drag to the location you'd like the\n" #~ "OSD to appear" #~ msgstr "" #~ "OSD\n" #~ "Di chuyển tới vị trí mà bạn \n" #~ "muốn OSD xuất hiện" #~ msgid "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager" #~ msgstr "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager" #~ msgid "Name - Time" #~ msgstr "Tên - Thời gian" #~ msgid "Alarm:" #~ msgstr "Cảnh báo:" #~ msgid "Playback engine (requires restart): " #~ msgstr "Hiệu ứng phát (yêu cầu khởi động lại): " dist/copy/po/PaxHeaders.26361/tr.po0000644000175000017500000000012412233027260015424 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.017046929 exaile-3.3.2/po/tr.po0000644000000000000000000036732312233027260014402 0ustar00rootroot00000000000000# Turkish translation for exaile # Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2012. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2013-08-27 00:35+0000\n" "Last-Translator: Volkan Gezer \n" "Language-Team: Turkish \n" "Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2013-10-22 05:14+0000\n" "X-Generator: Launchpad (build 16807)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "%d gün, " msgstr[1] "%d gün, " #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "%d saat, " msgstr[1] "%d saat, " #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "%d dakika, " msgstr[1] "%d dakika, " #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d saniye" msgstr[1] "%d saniye" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "%dd, " #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "%dh, " #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "%dd, " #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "%ds" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "%dg " #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "%d:%02d:%02d" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "%d:%02d" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "Asla" #: ../xl/formatter.py:702 msgid "Today" msgstr "Bugün" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "Dün" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "0.2.14'den taşıma başarısız oldu" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "Kullanım: exaile [SEÇENEK]... [URI]" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "Seçenekler" #: ../xl/main.py:421 msgid "Playback Options" msgstr "Oynatma Seçenekleri" #: ../xl/main.py:423 msgid "Play the next track" msgstr "Sonraki parçayı oynat" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "Önceki parçayı oynat" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "Oynatmayı durdur" #: ../xl/main.py:429 msgid "Play" msgstr "Oynat" #: ../xl/main.py:431 msgid "Pause" msgstr "Duraklat" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "Oynatmayı durdur veya devam et" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "Bu parçadan sonra yürütmeyi durdur" #: ../xl/main.py:440 msgid "Collection Options" msgstr "Koleksiyon Seçenekleri" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "KONUM" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "KONUM dan koleksiyona parçaları ekle" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "Çalmalistesi Seçenekleri" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "Geçerli çalma listesini KONUMa aktar" #: ../xl/main.py:454 msgid "Track Options" msgstr "Parça Ayarları" #: ../xl/main.py:456 msgid "Query player" msgstr "Oynatıcıyı sorgula" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "BİÇİM" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "ETİKETLER" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "Güncel parça bilgisini açılır pencerede göster" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "Çalan parçanın başlığını görüntüle" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "Çalan parçanın albümünü görüntüle" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "Çalan parçanın sanatçısını görüntüle" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "Çalan parçanın uzunluğunu görüntüle" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "N" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "Güncel parçanın beğenisini N% olarak belirle" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "Şu anki parça için derecelendirmeyi al" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "Şu an geçerli çalma pozisyonunu yazdır" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "Güncel çalma listesini yüzdesel olarak yayınla" #: ../xl/main.py:490 msgid "Volume Options" msgstr "Ses Ayarları" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "Sesi N% kadar artırır" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "Sesi N% azaltır" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "Sesi kapat veya aç" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "Şu anki ses yüzdesini yazdır" #: ../xl/main.py:507 msgid "Other Options" msgstr "Diğer Seçenekler" #: ../xl/main.py:509 msgid "Start new instance" msgstr "Yeni örnek başlat" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "Bu yardım mesajını göster ve çık" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "Program sürüm numarasını göster ve çık" #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "Küçültülmüş olarak başlat (sistem tepsisinde, eğer mümkünse)" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "Görsel arayüzün görünürlüğünü değiştir (eğer mümkünse)" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "" "Güvenli kipte başlat - sorunlarla karşılaştığınızda bazen kullanışlı " "olabilir." #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" "0.2.x sürümünden eski veriyi içeri aktarmaya zorla (Güncel verinin üzerine " "yazar)" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "0.2.x sürümünden önceki verileri içe aktarma" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "Geliştirme/Hata Ayıklama Seçenekleri" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "DİZİN" #: ../xl/main.py:536 msgid "Set data directory" msgstr "Veri dizinini ayarla" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "MODÜL" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "Kütük çıktısını MODULE ile sınırla" #: ../xl/main.py:543 msgid "LEVEL" msgstr "SEVİYE" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "Kütük çıktısını LEVEL ile sınırla" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "Hata ayıklama çıktısını göster" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "" "xl.event'in hata ayıklama çıktısını etkinleştir. BİR ÇOK çıktı görüntüler" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "Günlük mesajlarına konu adı ekle." #: ../xl/main.py:555 msgid "TYPE" msgstr "TÜR" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "Çıktı seviyesini azalt" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "D-Bus desteğini etkisizleştir" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "HAL desteğini etkisizleştir" #: ../xl/main.py:580 msgid "Entire Library" msgstr "Tüm Kütüphane" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "Rasgele %d" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "Derecelendirme > %d" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" "Exaile henüz yüklemeyi bitiremedi. exaile_loaded sinyalini dinliyor olabilir " "misin?" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "Etiketler" #: ../xl/covers.py:505 msgid "Local file" msgstr "Yerel dosya" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "Eklenti arşivi uygun formatta değil" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "Zaten \"%s\" isimli bir eklenti kurulu." #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "Eklenti arşivi güvensiz bir konum içerir." #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "db yüklemenk için bir konum belirtmediniz." #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "Veritabanına aktarım yapmak için bir yer belirtilmediniz" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "Çeşitli Sanatçılar" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "Bilinmeyen" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr " / " #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "%dk" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" "Vorbis açık kaynak kodlu, MP3' den daha yüksek kalitede çıkışı daha küçük " "dosya boyutunda veren, kayıplı bir ses verisi kodlayıcı - kod çözücüdür." #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" "Free Lossless Audio Codec (FLAC) açık kaynak kodlu, ses kalitesini " "düşürmeden sıkıştıran, kayıpsız bir kodlayıcı - kod çözücüdür." #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" "Düşük bit oranlarında MP3'ten daha iyi ses kalitesi sağlayan Apple'ın " "tescilli kayıplı ses biçimi." #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" "tescilli, eski fakat popüler, kayıplı ses biçimi. VBR CBR'den daha yüksek " "kaliteye sahip olmakla birlikte bazı oynatıcılarla uyumsuz olabilir." #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" "tescilli, eski fakat popüler, kayıplı ses biçimi. CBR VBR'den daha düşük " "kaliteye sahip olmakla birlikte her oynatıcıyla uyumludur." #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "Çok hızlı ve kayıpsız iyi sıkıştırmaya sahip bir Özgür ses biçimi." #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "Otomatik" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "Özel" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "Otomatik" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "Bir şey çalmıyor." #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" "durum: %(status)s, başlık: %(title)s, sanatçı: %(artist)s, albüm: %(album)s, " "uzunluk: %(length)s, :dinlenilen %(progress)s%% [%(position)s]" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "Ayarlar versiyonu mevcut versiyondan daha yeni." #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "Bu tür ayarın nasıl saklanacağını bilmiyoruz. " #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "Ayarların bilinmeyen bir tipi bulundu." #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "Geçersiz çalma listesi türü" #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "Çalma Listesi" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "M3U Çalma Listesi" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "PLS Çalma Listesi" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "%s için geçersiz biçim." #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "%(type)s için %(version)s versiyonu desteklenmiyor" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "ASX Çalma Listesi" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "XSPF Çalma Listesi" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "Karışık _Kapalı" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "Karışık _Parçalar" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "Karışık _Albümler" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "Tekrar _Kapalı" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "_Hepsini Tekrarla" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "_Birini Tekrarla" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "Dinamik_Kapalı" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "Benzer _Sanatçılara göre Dinamik" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "saniye" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "dakika" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "saat" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "gün" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "hafta" #: ../xl/lyrics.py:305 msgid "Local" msgstr "Yerel" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "Sıraya Koy" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "Şimdikiyle Değiştir" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "Geçerli Listeye Ekle" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "Dizini Aç" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" "Dosyalar çöp kutusuna taşınamadı. Dosyalar diskten tamamen silinsin mi?" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "Çöp Kutusuna Taşı" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "Çalan Parçayı _Göster" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "İsim:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "Ölçütlerin herhangi birine eşleştir" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "Rastgele dağılımlı sonuçlar" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "Sınırlanacak: " #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr " parçalar" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "Çalmıyor" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "Aranıyor: %s" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "Taşı" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "Yeni İşaretleyici" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "Sessiz" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "%d%%" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "Son Ses" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "Çeşitli" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "%d gösteriliyor" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "%d seçildi" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "Kuyruk" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "Sıra (%d)" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "#" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "Parça Numarası" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "Başlık" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "Sanatçı" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "Besteci" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "Albüm" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "Uzunluk" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "Disk" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "Disk Numarası" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "Derecelendirme" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "Tarih" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "Tür" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "Bit oranı" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "Konum" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "Dosya Adı" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "Çalma Sayısı" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "BPM" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "Son çalınan" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "Eklendiği tarih" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "Yorum" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "Gruplandırma" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "_Tekrar Boyutlandır." #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "_Otomatik Boyutlandırma" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "Derecelendirme:" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "Karıştır" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "Tekrarla" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "Dinamik" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "Şu Anki Parçayı Çalma Listesinden Çıkar" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "Listeyi Karıştır" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "Yeni Çalma Listesi" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "Yeniden Adlandır" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "Bu Parçadan Sonra Çalmayı Durdur" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "Bu Parçadan Sonra Çalmaya Devam Et" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "Dinamik oynatma listelerini sağlayan eklentiler gerektirir" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "Çalma listesine benzer parça ekle" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "Açmak için bir URL girin" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "Adres Aç" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "Dosya Tipi Seç (Uzantıya göre)" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "Açmak için Ortam Seç" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "Desteklenen Dosyalar" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "Müzik Dosyaları" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "Çalma Listesi Dosyaları" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "Bütün Dosyalar" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "Açmak için Dizin Seç" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "Çalma Listesini İçe Aktar" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "Şu anki çalma listesini dışa aktar" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "Çalma listesi %s olarak kaydedildi." #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "'%s' Dosyasını Kapat" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "Kapatmadan önce değişikllikler %s için kaydedilsin mi?" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "Eğer kaydetmezseniz değişiklikler kaybedilecek" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "Kaydetmeden Kapat" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "Tümüne evet" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "Tümüne hayır" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "%(total)s ın %(count)s kadarı kaydedildi." #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "%s: %s kopyalanırken hata meydana geldi" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "Dosya mevcut, %s üzerine yazılsın mı?" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "Çalma listesi adı:" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "Yeni çalma listesi ekle..." #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "Çalma listeniz için bir isim girmediniz" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "Girilen çalma listesi ismi şuan kullanımda." #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "Sekmeyi Kapat" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "$title ($artist tarafından)" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "Geçiş yap: Seçili Parçadan sonra Dur" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "Çalma hatasıyla karşılaşıldı!" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "Arabelleğe alınıyor: %d%%..." #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "Çalmaya Devam Et" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "Çalmayı Duraklat" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "Liste dışarı aktarılamadı!" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "Çalmayı Başlat" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "Exaile Müzik Çalıcı" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "_Yeni Çalma Listesi" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "Adresi _Aç" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "Dizinleri Aç" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "Güncel li_steyi dışarı aktar" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "Yeniden Başlat" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "_Koleksiyon" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "_Kuyruk" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "A_lbüm kapakları" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "Çal_ma Listesi Araç Çubuğu" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "_Sütunlar" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "Çalma li_stesini temizle" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "_Aygıt Yöneticisi" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "Ko_leksiyonu tekrar tara." #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "_Parça Özellikleri" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "Vazgeç" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "Orijinal albüm" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "Söz Yazarı" #: ../xlgui/properties.py:54 msgid "Website" msgstr "Web sayfası" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "Kapak" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "Orijinal sanatçı" #: ../xlgui/properties.py:57 msgid "Author" msgstr "Yazar" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "Orijinal tarih" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "Düzenleyen" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "Orkestra Şefi" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "İcracı" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "Telif Hakkı" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "Şarkı Sözleri" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "Parça" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "Sürüm" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "ISRC" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "Kodlayan" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "Organizasyon" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "Değiştirilmiş" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "Çalma sayısı" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "%(total)d parça içinden %(current)d parçası düzenleniyor" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "Kapanırken değişiklikler uygulansın mı?" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "%s:" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "JPEG görüntüsü" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "Görüntü" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "Görüntüyü kapak resmi olarak ata" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "Desteklenen görüntü biçimleri" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "Bütün parçalara bu değeri uygula" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "Kapağı Göster" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "Kapağı Getir" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "Kapağı Kaldır" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "%s için albüm kapağı" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "%(artist)s - %(album)s için albüm kapağı seçenekleri" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "Yükleniyor..." #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "Albüm kapağı bulunamadı." #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "Simge" #: ../xlgui/devices.py:81 msgid "Device" msgstr "Aygıt" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "Sürücü" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "Kolleksiyon taranıyor..." #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "%s taranıyor..." #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "Kuyruğa Ekle" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "Öğeleri Sırala" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "Özellikler" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "Yeni İstasyon Ekle" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "Hızlı yeni çalma listesi" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "Düzenle" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "Çalma Listesini Farklı Kaydet" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "Dosyaları Dışa Aktar" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "Çalma Listesini Sil" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "" "Seçilen çalma listesini kalıcı olarak silmek istediğinize emin misiniz?" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "Çalma listeniz için istediğiniz yeni ismi giriniz" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "Çalma Listesini Yeniden Adlandır" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "Kaldır" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "Son Kapatılan Sekmeler" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "Çalma listesi %d" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "Dizin Ekle" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "Dizin eklenmedi" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" "Dizin zaten koleksiyonunuzda mevcut ya da koleksiyonunuzdaki bir dizinin alt " "dizini." #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "Transfer ediliyor %s..." #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "Yayınlar yükleniyor" #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "Radyo istasyonu ekle" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "URL:" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "Kayıtlı İstasyonlar" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "Radyo Yayınları" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "Tazele" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "Yeni müzik listeniz için istediğiniz bir isim giriniz" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "Tür - Sanatçı" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "Tür - Albüm" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "Tarih - Sanatçı" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "Tarih - Albüm" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "Sanatçı - (Tarih - Albüm)" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "Koleksiyonu Yeniden Tara" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "Boyut" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s KB" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "ve" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "içeren" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "içermeyen" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "en az" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "en fazla" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "önce" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "sonra" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "arasında" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "daha büyük" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "daha küçük" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "son" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "şu süreden beri değil:" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "Çalanlar" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "Yıl" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "%(first)s, %(second)s ve diğerleri" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "%(first)s ve %(second)s" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "Akıllı Çalma Listeleri" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "Özel Çalma Listeleri" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "Akıllı Çalma Listesi Ekle" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "Akıllı Çalma Listesi Düzenle" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "Çalma" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "Eklentiler" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "Kategorilenmemiş" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "Eklenti bilgisi yüklenemedi!" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "Eklenti başarısız oldu: %s" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "Eklenti devre dışı bırakılamadı!" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "Eklenti etkinleştirilemedi!" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "Eklenti Seç" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "Eklenti Arşivleri" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "Eklenti dosyası kurulumu başarısız oldu!" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "Albüm Kapakları" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "Görünüm" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "Koleksiyon" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "Öntanımlı Ayarlara Dön" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "Exaile yeniden başlatılsın mı?" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "Değişikliğin uygulanabilmesi için yeniden başlatma gerekir." #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "Eylem" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "Kısayol" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "Çalma Listeleri" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "Exaile Hakkında" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "© 2009-2012" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" "Telif Hakkı (C) 2008-2010 Adam Olsen \n" "\n" "Bu program ücretsiz bir yazılımdır. Özgür Yazılım Vakfı tarafından " "yayımlanşım GNU Genel Açık Lisans koşulları altında bu programı veya diğer 2 " "lisansı ya da isteğinize bağlı olarak sonraki versiyonu yeniden " "yapılandırabilir ve/veya yenileyebilirsiniz. \n" "\n" "Bu program yararlı olması umuduyla dağıtılmıştır, ama HERHANGİ BİR GARANTİSİ " "YOKTUR. Aynı zamanda TİCARİ veya BİR AMACA UYGUNLUK açısından da garantisi " "yoktur. Ayrıntılar için GNU Genel Açık Lisans'a bakınız. \n" "\n" "Bu programla birlikte GNU Genel Açık Lisans'ın bir kopyası gelmiş olması " "lazım. Eğer yoksa bu adrese bildiriniz: the Free Software Foundation, Inc.,\n" "\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "Kapak Yöneticisi" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "Karışık çal" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "Çalmayı tekrarla" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "_Ara:" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "Albüm Kapağı Bulucu:" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "Kapak olarak _Belirle" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "_Dosya" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "_Düzenle" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "_Görünüm" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "_Araçlar" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "_Yardım" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "Önceki Parça" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" "Çalmayı Durdur\n" "\n" "Parça özellikleri için durduktan sonra sağ tuş tıklayın" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "Sonraki Parça" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0:00 / 0:00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "Parça Özellikleri" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "Etiket ekle" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "_Etiketi sil" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "ab → A_b" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "Tüm etiketlerin ilk harfini büyük yap" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "_Önceki" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "_Sonraki" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "Diğer" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "32x32 piksel 'dosya simgesi' (sadece PNG)" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "Diğer dosya simgesi" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "Kapak Resmi (ön)" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "Kapak Resmi (arka)" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "Grup/Orkestra" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "Kayıt Konumu" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "Tür:" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "Tanım" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "Kolleksiyon Yöneticisi" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "İzlenen" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "Radyo" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "Tüm parçaları çalma listesine ekle." #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "CD Ekle" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "İstasyon Ekle" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "Dosyalar" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "Önceki dizini ziyaret" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "Sonraki dizini ziyaret" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "Bir üst dizine geç" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "Listelenen dizini tazele" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "Başlangıç dizini" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "Ara: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "Arama alanını temizle" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "Koleksiyon boş." #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "Müzik ekle" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" "Koleksiyon görüntüsünü yenile\n" "(Koleksiyonu tekrar taramak için shift tuşuna basılı tutun)" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "Etiketlerde gömülü kapakları kullan" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "Kapakları yerel dosyalardan kullan" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" "Bu seçenek, müzik dosyanızın bulunduğu klasörde \n" "albüm kapağı arayacak." #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "Önerilen dosya isimleri:" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "Kapak Arama Düzeni" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "(yeniden sıralamak için sürükleyiniz)" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "Başlangıçta son çalma listesini aç" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "Çıkışta karışık çalma listelerini kaydetmek için bir komut" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "Yan panelde çift tıklayarak içeriği değiştir" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "Çalma motoru: " #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "Azalma süresi (ms):" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "Şarkı geçişi kullan (DENEYSEL)" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "Şarkı geçişi süresi (ms):" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "Ses Alıcı: " #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "Çalmaya başla" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "Durdurulanı çalmaya devam et" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "Olağan" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "Birleşik (kararsız)" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "Eklenti" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "Aktif" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "Hiçbir Eklenti Seçilmedi" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "Kurulu Eklentiler" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "Yazarlar:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "Sürüm:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "Yükle" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "Herhangi bir eklenti seçilmemiş" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "Kullanılabilir Eklentiler" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "Güncellemeleri Yükle" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "Güncellemeler" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "Eklenti Dosyası Yükle" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "Bilgi alanını göster" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "Bilgi alanı kapak resmi ve parça bilgisini içerir" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "Sekme çubuğunu her zaman göster" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "Sekme yerleşimi:" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "Çalma listesi yazı tipi:" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "Sistem yazı tipine dön:" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "Derlemede bulunan parça sayısını göster" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "Alpha şeffaflığını kullan:" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" "Uyarı: Bu seçenek kompozisyon desteği olmayan bir pencere yöneticisi ile " "kullanılırsa görüntüleme hatalarına neden olabilir." #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "Sistem çekmecesi simgesini göster" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "Sistem alanına küçült" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "Sistem çekmecesine küçült" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "Şarkı değiştiğinde geçerli şarkıya atla" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "Açılışta hoşgeldin ekranı göster" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "Sol" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "Sağ" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "Üstte" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "Altta" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "Tercihler" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "(Ön tanımlıları silmek için sağ tık yapınız)" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "Dosya tabanlı derleme algılamasını kullan" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "Aygıt Yöneticisi" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "Aygıt Ekle" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "Aygıt türü:" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "Bulunan aygıtlar:" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "Özel: " #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "Kuyruk Yöneticisi" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "Kip için aranıyor..." #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "Kip bulundu" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "Moodbar okunamadı." #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "Moodbar çalıştırılabilir değil." #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "Moodbar" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "Last.fm Sevilen Parçalar" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "API anahtarı geçersiz." #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "Lütfen girilen verinin doğruluğundan emin olun." #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "Web tarayıcı başlatılamadı" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" "Aşağıdaki URL'yi kopyalayın ve web tarayıcınızla açın:\n" "{url}" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "Sevilen" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "Last.fm Sevilen" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "Bu Parçayı Sevdim" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "Bu Parçayı Sevmedim" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "Çalar Saat" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "Ana Menü" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "Shoutcast sunucusuna bağlanıyor." #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "Shoutcast sunucusuna bağlanırken hata oluştu." #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "Arama için bir kelime girin" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "Shoutcast Arama" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "Arama Sonuçları" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "Arama" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "Hiçbir şarkı sözü bulunamadı." #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "Şuraya git: " #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "Herhangi biri" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "Şarkı Sözü Görüntüleyici" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "AudioScrobbler" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "Doğrulama başarılı" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "Doğrulama başarısız" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "Audioscrobblingi etkinleştir" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "Ekolayzer" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "Çalma işlemi sonunda kapat" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "Kapatma planlandı" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "Çalma işlemi bittiğinde bilgisayar kapatılacak." #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "Acil Kapatma" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "Bilgisayar %d saniye içinde kapatılacak." #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "Kapatma başarısız" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "Bilgisayar D-bus kullanılarak kapatılamıyor." #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "Aygıt Önizleme" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "Önizleme" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "%(title)s" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "Yazar %(artist)s" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "Albüm %(album)s" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "IPython Konsolu - Exaile" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "IPython konsolunu göster" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "IPython Konsolu" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "Bildirim" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" "yazar %(artist)s\n" "albüm %(album)s" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "CD alınıyor..." #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "Ses Diski" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "CD" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "Parça numarası" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "Disk numarası" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "Çalınma sayısı" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "Sanatçı: " #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" "Biliyor muydunuz...\n" "\n" "%s" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "Vikipedi" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "Geçerli sanatçı için Vikipedi sayfasını göster." #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "Bölümü Tekrarla" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "Tekrar Başlangıcı" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "Tekrar Bitimi" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "Mini Mod" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "$tracknumber - $title" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "$title by $artist" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "$isim ($__süre)" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "Önceki" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "Önceki parçaya git" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "Önceki parça" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "Sonraki" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "Sonraki parçaya git" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "Sonraki parça" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "Çal/Duraklat" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "Parçayı başlat, duraklat veya devam ettir" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "Oynatmaya başla" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "Çalmaya devam et" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "Oynatmayı duraklat" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "Dur" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "Oynatmayı durdur" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "Güncel parçadan sonra çalmaya devam et" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "Ses Düzeyi" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "Ses şiddetini değiştir" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "Geri Yükle" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "Ana pencereyi geri yükle" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "Ana pencereyi geri yükle" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "Güncel parçanın derecesini seç" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "Parça Seçici" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "Basit parça listesi seçici" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "Çalma Listesi butonu" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "Güncel listeye geç" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "$isim ($geçerli_süre / $toplam_süre)" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "İlerleme düğmesi" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "İlerleme çubuğu" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "Koleksiyondaki tüm etiketleri al" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "Etiketli parçaları göster (özel)" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "\"%s\" olarak etiketlenmiş parçaları göster" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "Grubu" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "Yeni grup ekle" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "Grubu sil" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "Yeni kategori ekle" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "Kategoriyi sil" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "Yeni Kategori?" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "Grup Ekle" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "Seçili Parçalar" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "Ses Gücü Sabitleme" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "Seçmek için Bırakın" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "Ekle ve Çal" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "Ekle" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "Çalma geçmişi" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "Geçmişi Kaydet" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "Geçmişi Temizle" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "Hazır" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "Jamendo kataloğu aranıyor..." #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "Şarkı verisine erişiliyor..." #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "Bilgilendirme Ekranı" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "Amazon Albüm Kapakları" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "Podcastlar" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "Podcast" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "Podcast tazele" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "Sil" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "Podcast eklemek için bir URL girin" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "Podcast Aç" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "Yükleniyor %s..." #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "Podcast yüklenirken hata oluştu." #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "Podcast yükleniyor..." #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "Podcast dosyası kaydedilemedi." #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "Masaüstü Albüm Kapakları" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "Çoklu Alarm Saat" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "İleti Bağlamı" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "Bu Parçayı Yer İmlerine Ekle" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "Yer İmini Sil" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "Yerimlerini sil" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "Yer İmleri" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "Ekran koruyucu başladığında duraklat" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "DAAP Sunucusu" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "DAAP İstemcisi" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "El ile..." #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "Paylaşım için IP adresini ve bağlantı noktasını girin" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "IP adresini ve port numarasını giriniz." #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" "Bu sunucu çoklu bağlantıyı desteklemiyor.\n" "Şarkıları indirmeden önce oynatmayı durdurmalısınız." #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "Sunucu Listesini Tazele" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "Sunucuyla Bağlantınız Kesildi" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "Kaydetme Yerini Seç" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "DAAP 'ye bağlan..." #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "Karanlık derecesi:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "Dalga formu stilini kullan" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "Yalnızca dalga formunu göster" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "Renk teması kullan " #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "Temel Renk:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "Temel renk" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "Konumu kaydet:" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "Aktarım portu:" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "Tamamlanmamış dosyaları sil" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "API anahtarı:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "Gizli:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "Erişim İzni Talebi" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "Alarm zamanı" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "Pazartesi" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "Salı" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "Çarşamba" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "Perşembe" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "Cuma" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "Cumartesi" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "Pazar" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "Alarm Günleri" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "Sesi Alçaltarak Geç" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "En düşük ses seviyesi:" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "En yüksek ses seviyesi:" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "Artış:" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "Albüm kapaklarını göster" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "Dairesel görünüm" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "Hiçbiri" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "Şarkı sözü yazı tipi" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "Şarkı Sözlerini Yenile" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "Parçaları Audioscrobbler kullanarak gönder" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "Parola:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "Kullanıcı adı:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "Giriş Verisini Doğrula" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "ön" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "+12 dB" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "0" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "-24 dB" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "29" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "59" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "119" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "237" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "474" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "947" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "1.9K" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "3.8K" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "7.5K" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "15K" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "Ana pencere odaklandığında" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "Görüntü" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "Albüm kapaklarını simge olarak kullan" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "Duraklat, Dur, Devam için medya simgelerini kullan" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "Simgeler" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "Sanatçı satırı:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "Özet:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "Albüm satırı:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "İçerik" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "Yazıtipi:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "Arka Plan Rengi:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "Görüntülenen kapakları yeniden boyutlandır" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "Sadece sanatçı:" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "Sadece albüm:" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "Sanatçı ve albüm:" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "Ogg Vorbis" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "FLAC" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "AAC" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "MP3 (VBR)" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "MP3 (CBR)" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "WavPack" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "İçe aktarım biçimi: " #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "İçe aktarım kalitesi: " #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "İçe aktarım yolu: " #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "Denetimler" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "Parça Başlık Biçimi" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "Her zaman üstte" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "Görev listesinde göster" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "Pencere dekorasyonlarını göster:" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "Tüm masaüstlerinde göster" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "Ana pencerede düğmeyi göster" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "Tam" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "Basit" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "Kesim koruması kullan" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "Ek genişlemeyi tüm dosyalara ekle" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "Ek genişletim (dB):" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "Sırala:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "Sonuçlar:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "Gelişmiş" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "Azalan" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "Artan" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "Yayınlanma tarihi" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "Bu haftanın derecelendirmesi" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "Bu ayın derecelendirmesi" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "Çalma listesi ekleri sayısı" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "İndirme sayısı" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "Dinlenme sayısı" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "Yıldızlı" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "Tarz/Etiket" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "Podcast Ekle" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "Çapa:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "X yerleşimi:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "benekler" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "Y yerleşimi:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "Boyut:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "Belirme/kaybolma süresi:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "ms" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "Üst sol" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "Üst sağ" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "Alt sol" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "Alt sağ" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "Ekle" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "Alarmlar" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "Çalma listesini yeniden başlat" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "Kayıttan Yürütme" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "Lütfen Last.fm kimliğinizi doğrulayınız:" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "Last.fm e giriş yap" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" "Yer imleri menüsünde kullanılan albüm kapakları (Bir sonraki açılışta aktif " "olacak)" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "Sunucu Adı:" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "Sunucu:" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "Port:" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "Sunucu etkin" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "Güncel Şarkı" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "GNOME Çokluortam Tuşları" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" "Kayıt yapabilmeniz için streamripper eklentisini kurmanız gereklidir.\n" "Gerekenler: streamripper" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "Last.fm Albüm Kapakları" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "Albüm kapağı için Last.fm de arama yapar" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "Shoutcast Radyo" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "Shoutcast Radyo listesi" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "Ex Falso etiket düzenleyici" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" "Ex Falso etiket yöneticisini Exaile ile bütünleştirir.\n" "Bağlılıklar: Ex Falso" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "Çalmakta olan parçanın sözlerini gösteren bir yan sekme ekler." #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "XKeys" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "Windows için multimedya tuşları" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "10-bantlı bir dengeleyici" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "Lyrics Fly" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "Lyricsfly.com dan şarkı sözü getiren bir eklenti" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "Librivox" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "Librivox.org adresinden sesli kitapları listele ve dinle." #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "Çalma işlemi bittiğinde bilgisayarınızın kapatılmasını sağlar." #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "USB Yığın Bellek Medya Oynatıcı Desteği" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "Aygıtlar" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "Last.fm Dinamik Şarkı Listesi" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "Dinamik şarkı listeleri için Last.dm arka ucu" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "Exaile'i işlemek için kullanılabilen bir IPython konsolu sağlar." #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "Bir parça çalmaya başladığında açılır bir pencereyle bilgilendirir" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "CD Oynatımı" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "A-B Tekrarla" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "Bir parçanın bir bölümünü sürekli olarak tekrar eder." #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "Exaile için ayarlanabilen arayüzlü kompakt mod" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "Ses dengeleme desteğini etkinleştirir" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "Jamendo" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "Jamendo müzik kataloğuna erişimi etkinleştirir." #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "iPod Desteği" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" "iPod desteği için bir eklenti. Şimdilik sadece okumayı destekler, aktarım " "yapmaz.\n" "\n" "python-gpod ile bağımlıdır." #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" "Albüm kapağı için Amazon da arama yapar\n" "\n" "Bu eklentiyi kullanabilmek için, bir AWS API ve gizli anahtarına ihtiyacınız " "olacak." #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "Karaoke" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "Basit Podcast Desteği Ekler" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "Albüm kapağını masaüstünde göster" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "Merhaba Dünya" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "Temel eklenti sistemini test etmek için basit bir eklenti" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "Ayrıntılı Bilgi" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" "Çalmakta olan parça hakkında çeşitli bilgiler göster\n" "Bağımlılıklar: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a." "k.a. PIL)" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "Lyrics Wiki" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" "Bu eklenti, bir koleksiyonun DAAP üzerinden paylaşılabilmesi için spydaap " "(http://launchpad.net/spydaap)'i Exaile'a dahil eder." #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" #~ msgid "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgstr "" #~ "Sanal ekran görüntüsünü görünmesini istediğiniz yere sürükleyin" #~ msgid "New Search" #~ msgstr "Yeni Arama" #~ msgid "Opacity Level:" #~ msgstr "Opaklık seviyesi:" #~ msgid "Popup" #~ msgstr "Açılır Pencere" #~ msgid "Show OSD on track change" #~ msgstr "Şarkı değiştiğinde OSD göster" #~ msgid "Start" #~ msgstr "Başlat" #~ msgid "Stopped" #~ msgstr "Durduruldu" #~ msgid "Stop Playback" #~ msgstr "Çalmayı durdur" #~ msgid "Text Font:" #~ msgstr "Metin Yazı tipi" #~ msgid "Text Color" #~ msgstr "Metin Rengi" #~ msgid "Window Height:" #~ msgstr "Pencere Yüksekliği:" #~ msgid "Window Width:" #~ msgstr "Pencere Genişliği:" #~ msgid "_Close" #~ msgstr "_Kapat" #~ msgid "Alarm Days:" #~ msgstr "Alarm Günleri:" #~ msgid "Open" #~ msgstr "Aç" #~ msgid " songs" #~ msgstr " şarkılar" #~ msgid "%(title)s (by %(artist)s)" #~ msgstr "%(title)s (%(artist)s)" #~ msgid "" #~ "Path is already in your collection, or is a subdirectory of another path " #~ "in your collection" #~ msgstr "" #~ "Belirtilen yol zaten kolleksiyonunuzda var, ya da kolleksiyonunuzdaki bir " #~ "diğer yolun alt dizini" #~ msgid "File Type" #~ msgstr "Dosya Türü" #~ msgid "Extension" #~ msgstr "Uzantı" #~ msgid "Add a directory" #~ msgstr "Bir dizin ekle" #~ msgid "Export" #~ msgstr "Dışarı Aktar" #~ msgid "No covers found" #~ msgstr "Hiç kapak bulunamadı" #~ msgid "Invalid file extension, file not saved" #~ msgstr "Geçersiz dosya uzantısı, dosya kaydedilmedi" #~ msgid "Enter the search text" #~ msgstr "Arama metnini giriniz" #~ msgid "" #~ "OSD\n" #~ "Drag to the location you'd like the\n" #~ "OSD to appear" #~ msgstr "" #~ "OSD\n" #~ "OSD' yi görünmesini istediğiniz\n" #~ "yere sürükleyiniz" #~ msgid "Display a progressbar in the OSD" #~ msgstr "OSD içinde ilerleme çubuğu göster" #~ msgid "Add device" #~ msgstr "Aygıt Ekle" #~ msgid "0:00" #~ msgstr "0:00" #~ msgid "Select File Type (By Extension)" #~ msgstr "Dosya türünü Seçiniz (Uzantı olarak)" #~ msgid "GNOME" #~ msgstr "GNOME" #~ msgid "OSS" #~ msgstr "OSS" #~ msgid "ALSA" #~ msgstr "ALSA" #~ msgid "JACK" #~ msgstr "JACK" #~ msgid "PulseAudio" #~ msgstr "PulseAudio" #~ msgid "Playing %s" #~ msgstr "Oynatılıyor %s" #~ msgid "Save Location:" #~ msgstr "Kaydetme Konumu:" #~ msgid "Summary" #~ msgstr "Özet" #~ msgid "Only album" #~ msgstr "Sadece albüm" #~ msgid "Only artist" #~ msgstr "Sadece sanatçı" #~ msgid "Both artist and album" #~ msgstr "Sanatçı ve albüm birlikte" #~ msgid "Restart Playlist" #~ msgstr "Çalma listesini yeniden başlat" #~ msgid "Name - Time" #~ msgstr "Ad - Süre" #~ msgid "Show a popup of the currently playing track" #~ msgstr "Şu an çalan parçayı açılır pencerede göster" #~ msgid "Decreases the volume by VOL%" #~ msgstr "Sesi VOL% karar alçaltır" #~ msgid "Increases the volume by VOL%" #~ msgstr "Sesi VOL% kadar yükseltir" #~ msgid "Set rating for current song" #~ msgstr "Çalan şarkı için değerlendirme yap" #~ msgid "Get rating for current song" #~ msgstr "Çalan şarkının değerlendirmesini al" #~ msgid " New song, fetching cover." #~ msgstr " Yeni parça, albüm kapağı alınıyor." #~ msgid "A plugin with the name \"%s\" is already installed" #~ msgstr "\"%s\" adında bir eklenti zaten kurulu" #~ msgid "Close tab" #~ msgstr "Sekmeyi kapat" #~ msgid "Save As..." #~ msgstr "Farklı Kaydet..." #~ msgid "Custom playlist name:" #~ msgstr "Özel çalma listesi ismi:" #~ msgid "New playlist title:" #~ msgstr "Yeni çalma listesi başlığı:" #~ msgid "order must be a list or tuple" #~ msgstr "sıra, liste veya değişkenler grubu olmalı" #~ msgid "Toggle Play or Pause" #~ msgstr "Oynat veya Durdur." #~ msgid "_Save As..." #~ msgstr "_Farklı Kaydet..." #~ msgid "Delete track" #~ msgstr "Parçayı Sil" #~ msgid "_Close Playlist" #~ msgstr "_Oynatma Listesini Kapat" #~ msgid "C_lear All Tracks" #~ msgstr "T_üm Parçaları Sil" #~ msgid "Device class does not support transfer." #~ msgstr "Aygıt sınıf aktarımını desteklemiyor." #~ msgid "Plugin archive contains an unsafe path" #~ msgstr "Eklenti arşivinde güvenli olmayan bir paket vat." #~ msgid "Plugin archive is not in the correct format" #~ msgstr "Eklenti arşivi doğru format değil." #~ msgid "Buffering: 100%..." #~ msgstr "Arabelleğe alınıyor: 100%..." #~ msgid "Add to custom playlist" #~ msgstr "Özel çalma listesi ekle." #~ msgid "" #~ "Exaile Music Player\n" #~ "Not playing" #~ msgstr "" #~ "Exaile Müzik Oynatıcı\n" #~ "Çalmıyor" #~ msgid "In pause: %s" #~ msgstr "Durduruldu: %s" #~ msgid "_Rename Playlist" #~ msgstr "_Çalma listesini yeniden adlandır" #~ msgid "_Save Changes To Playlist" #~ msgstr "_Özel listeyi kaydet" #~ msgid "_Save As Custom Playlist" #~ msgstr "_Özel listeyi farklı kaydet" #~ msgid "No track" #~ msgstr "İz yok" #~ msgid "%d covers to fetch" #~ msgstr "%d kapaklarını getir" #~ msgid "Export as..." #~ msgstr "Dışarı çıkart..." #~ msgid "Idle." #~ msgstr "Boş" #~ msgid "New custom playlist name:" #~ msgstr "Özel çalma listesi adı:" #~ msgid "Add To New Playlist..." #~ msgstr "Yeni çalma listesi ekle..." #~ msgid "" #~ "This will permanantly delete the selected tracks from your disk, are you " #~ "sure you wish to continue?" #~ msgstr "" #~ "Seçilen parçalar diskinizden tamamen silinecektir, devam etmek istiyor " #~ "musunuz?" #~ msgid "Could not enable plugin: %s" #~ msgstr "Eklenti aktif olamadı: %s" #~ msgid "Could not disable plugin: %s" #~ msgstr "Eklenti pasif olamadı: %s" #~ msgid "Remove current track from playlist" #~ msgstr "Mevcut parçayı çalma listesinden sil." #~ msgid "Repeat playlist" #~ msgstr "Çalma listesini tekrar et" #~ msgid "Track Number:" #~ msgstr "Parça numarası:" #~ msgid "" #~ "Copyright (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "This program is free software; you can redistribute it and/or modify\n" #~ "it under the terms of the GNU General Public License as published by\n" #~ "the Free Software Foundation; either version 2 of the License, or\n" #~ "(at your option) any later version.\n" #~ "\n" #~ "This program is distributed in the hope that it will be useful,\n" #~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" #~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" #~ "GNU General Public License for more details.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along\n" #~ "with this program; if not, write to the Free Software Foundation, Inc.,\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ msgstr "" #~ "Telif Hakkı (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "Bu program ücretsiz bir yazılımdır. Özgür Yazılım Vakfı tarafından " #~ "yayımlanşım GNU Genel Açık Lisans koşulları altında bu programı veya " #~ "diğer 2 lisansı ya da isteğinize bağlı olarak sonraki versiyonu yeniden " #~ "yapılandırabilir ve/veya yenileyebilirsiniz. \n" #~ "\n" #~ "Bu program yararlı olması umuduyla dağıtılmıştır, ama HERHANGİ BİR " #~ "GARANTİSİ YOKTUR. Aynı zamanda TİCARİ veya BİR AMACA UYGUNLUK açısından " #~ "da garantisi yoktur. Ayrıntılar için GNU Genel Açık Lisans'a bakınız. \n" #~ "\n" #~ "Bu programla birlikte GNU Genel Açık Lisans'ın bir kopyası gelmiş olması " #~ "lazım. Eğer yoksa bu adrese bildiriniz: the Free Software Foundation, " #~ "Inc.,\n" #~ "\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n" #~ msgid "© 2009" #~ msgstr "© 2009" #~ msgid "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager" #~ msgstr "" #~ "Mathias Brodala\n" #~ " \n" #~ " Çeviri Yöneticisi" #~ msgid "Install plugin file" #~ msgstr "Eklenti dosyası yükle" #~ msgid "Install a third party plugin from a file" #~ msgstr "Bir dosyadan üçüncü kısım eklentisi yükle" #~ msgid "These options only affect the unified engine." #~ msgstr "Bu seçenekler sadece birleşik motorda etkili olur." #~ msgid "Playback engine (requires restart): " #~ msgstr "Tekrar oynatma motoru (yeniden başlatma gerekli) " #~ msgid "0/0 tracks" #~ msgstr "0/0 parça" #~ msgid "Start/Pause Playback" #~ msgstr "Çalmayı Oynat/Durdur" #~ msgid "Track _properties" #~ msgstr "Parça _özellikleri" #~ msgid "_Randomize Playlist" #~ msgstr "_Karışık Çalma Listesi" #~ msgid "_Go to Playing Track" #~ msgstr "_ Çalan Parçaya Git" #~ msgid "_Export current playlist" #~ msgstr "_Mevcut Çalma Listesini Dışarı Çıkart" #~ msgid "Bookmark this track" #~ msgstr "Parçayı yer imine ekle." #~ msgid "Clear bookmarks" #~ msgstr "Yer imlerini temizle" #~ msgid "Restore Main Window" #~ msgstr "Ana Pencereyi Tekrar Yükle" #~ msgid "Selected controls" #~ msgstr "Seçilen Kontrol" #~ msgid "Available controls" #~ msgstr "Mevcut Kontrol" #~ msgid "$title ($length)" #~ msgstr "$title ($length)" #~ msgid "Filter event debug output" #~ msgstr "Hata ayıklama çıktısını olaylara göre filitrele" #~ msgid "Print the position inside the current track as time" #~ msgstr "Yazdırma pozisyonu şu anki parçanın zamanlamasının içindedir" #~ msgid "Export current playlist..." #~ msgstr "Çalma listesini dışarıya aktar..." #~ msgid "Choose a file to open" #~ msgstr "Açılacak dosyayı seçin" #~ msgid "Choose a plugin" #~ msgstr "Eklenti seçin" #~ msgid "Move selected item up" #~ msgstr "Seçili ögeyi yukarı taşı" #~ msgid "Move selected item down" #~ msgstr "Seçili ögeyi aşağı taşı" #~ msgid "Remove item" #~ msgstr "Ögeyi kaldır" #~ msgid "Add item" #~ msgstr "Öge ekle" #~ msgid "Dynamically add similar tracks" #~ msgstr "Benzer parçaları dinamik olarak ekle." #~ msgid "Page 1" #~ msgstr "Sayfa 1" #~ msgid "Clear Playlist" #~ msgstr "Parça Listesini Temizle" #~ msgid "..." #~ msgstr "..." #~ msgid "Close this dialog" #~ msgstr "Bu iletişim kutusunu kapat" #~ msgid "Remove All" #~ msgstr "Tümünü Sil" #~ msgid "Delete bookmark" #~ msgstr "Yer imi sil" #~ msgid "Alarm:" #~ msgstr "Alarm:" #~ msgid "Seeking: " #~ msgstr "Aranıyor: " #~ msgid "Alarm Name:" #~ msgstr "Alarm İsmi:" #~ msgid "Alarm Time:" #~ msgstr "Alarm Zamanı:" #~ msgid "Minimum Volume:" #~ msgstr "Minimım Ses Düzeyi:" #~ msgid "Maximum Volume:" #~ msgstr "Maximum Ses Düzeyi:" #~ msgid "Secret Key:" #~ msgstr "Gizli Key:" #~ msgid "API Key:" #~ msgstr "API Anahtarı:" #~ msgid "Display window decorations" #~ msgstr "Pencere dekarasyonunu göster" #~ msgid "iPod support" #~ msgstr "İpod desteği" #~ msgid "Plugin to fetch lyrics from lyricwiki.org" #~ msgstr "Lyricwiki.org 'dan şarkı sözü getiren bir eklenti" #~ msgid "%(playlist_count)d showing, %(collection_count)d in collection" #~ msgstr "%(collection_count)d koleksiyonunda %(playlist_count)d oynatılıyor." #~ msgid "%(year)d-%(month)02d-%(day)02d" #~ msgstr "%(year)d-%(month)02d-%(day)02d" #~ msgid "Use alpha transparency (if supported)" #~ msgstr "Alfa şeffaflığını kullan (Eğer destekleniyorsa)" #~ msgid " & " #~ msgstr " & " #~ msgid "Enable Fading" #~ msgstr "Solmayı aktif et" #~ msgid "Fading:" #~ msgstr "Solma" #~ msgid "Use Media Icons For Pause, Stop and Resume" #~ msgstr "Duraklatmak, Durdurmak ve Oynatmak için Medya Simgelerini Kullan" #~ msgid "" #~ "To sign up for an Amazon AWS account and get \n" #~ "this information visit http://aws.amazon.com/" #~ msgstr "" #~ "Bir Amazon AWS hesabı aç ve bilgi için\n" #~ "http://aws.amazon.com/ ziyaret edin." #~ msgid "" #~ "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " #~ "replaced by their respective values. The title will be replaced by " #~ "\"Unknown\" if it is empty." #~ msgstr "" #~ "\"%(title)s\", \"%(artist)s\", and \"%(album)s\" etiketleri kendi " #~ "değerleri ile değişecek. Eğer başlık boş bırakılırsa \"Bilinmeyen\" " #~ "olacak." #~ msgid "Artist Line:" #~ msgstr "Sanatçı Satırı:" #~ msgid "Album Line:" #~ msgstr "Albüm Satırı:" #~ msgid "On Track Change" #~ msgstr "Parça Değişikliği" #~ msgid "On Playback Start, Pause or Stop" #~ msgstr "Oynatmayı Başlat, Duraklat veya Durdur" #~ msgid "Streaming..." #~ msgstr "Yayın alınıyor..." #~ msgid "from %s" #~ msgstr "%s albümünden" #~ msgid "Randomize the order of the current playlist" #~ msgstr "Parça listesinin düzenini rastgele karıştır." #~ msgid "%d KB" #~ msgstr "%d KB" #~ msgid "Toggle: Stop after selected track" #~ msgstr "Seçili şarkıdan sonra dur" #~ msgid "Use Album Covers As Icons" #~ msgstr "Albüm Kapaklarını Simge Olarak Kullan" #~ msgid "Terminal Opacity:" #~ msgstr "Uçbirim Şeffaflığı" #~ msgid "A plugin for iPod support" #~ msgstr "iPod desteği için bir eklenti" #~ msgid "Tag Covers" #~ msgstr "Albüm Kapaklarını Etiketle" #~ msgid "Track title format:" #~ msgstr "Parça başlık formatı:" #~ msgid "Print the progress inside the current track as percentage" #~ msgstr "Şu andaki parçanın ilerlemesini yüzde olarak yazdır" #~ msgid "AWN" #~ msgstr "AWN" #~ msgid "When GUI is Focused" #~ msgstr "Kullanıcı Arayüzü Odaklandığında" #~ msgctxt "yes" #~ msgid "Friday" #~ msgstr "Cuma" #~ msgctxt "yes" #~ msgid "Tuesday" #~ msgstr "Salı" #~ msgctxt "yes" #~ msgid "Monday" #~ msgstr "Pazartesi" #~ msgctxt "yes" #~ msgid "Saturday" #~ msgstr "Cumartesi" #~ msgctxt "yes" #~ msgid "Sunday" #~ msgstr "Pazar" #~ msgctxt "yes" #~ msgid "Thursday" #~ msgstr "Perşembe" #~ msgctxt "yes" #~ msgid "Wednesday" #~ msgstr "Çarşamba" #~ msgid "Secret key:" #~ msgstr "Özel anahtar:" #~ msgid "Awn" #~ msgstr "Awn" #~ msgid "Clear" #~ msgstr "Temizle" #~ msgid "Close" #~ msgstr "Kapat" #~ msgctxt "yes" #~ msgid "Minimum volume:" #~ msgstr "En düşük ses seviyesi:" #~ msgctxt "yes" #~ msgid "Maximum volume:" #~ msgstr "En yüksek ses seviyesi:" #~ msgid "Location:" #~ msgstr "Konum:" #~ msgid "Bitrate:" #~ msgstr "Akış Hızı:" #~ msgid "Genre:" #~ msgstr "Tür:" #~ msgid "Pauses/resumes playback on screensaver start/stop" #~ msgstr "" #~ "Ekran koruyucu başladığında/durduğunda çalma işlemini Durdurur/devam eder" #~ msgid "© 2009-2010" #~ msgstr "© 2009-2010" #~ msgctxt "yes" #~ msgid "Increment:" #~ msgstr "Artış:" #~ msgctxt "yes" #~ msgid "Use Fading" #~ msgstr "Şarkı bitiminde sesi azaltarak geçiş yap" #~ msgid "by %s" #~ msgstr "%s tarafından" dist/copy/po/PaxHeaders.26361/cs.po0000644000175000017500000000012412233027260015404 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.021046929 exaile-3.3.2/po/cs.po0000644000000000000000000040575012233027260014357 0ustar00rootroot00000000000000# Czech translation for exaile # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2012-07-29 07:11+0000\n" "Last-Translator: Mathias Brodala \n" "Language-Team: Czech \n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "X-Launchpad-Export-Date: 2012-08-28 05:24+0000\n" "X-Generator: Launchpad (build 15864)\n" "X-Poedit-Country: CZECH REPUBLIC\n" "X-Poedit-Language: Czech\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "%d den, " msgstr[1] "%d dny, " msgstr[2] "%d dnů, " #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "%d hodina, " msgstr[1] "%d hodiny, " msgstr[2] "%d hodin, " #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "%d minuta, " msgstr[1] "%d minuty, " msgstr[2] "%d minut, " #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d sekunda" msgstr[1] "%d sekundy" msgstr[2] "%d sekund" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "%dd, " #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "%dh, " #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "%dm, " #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "%ds" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "%dd " #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "%d:%02d:%02d" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "%d:%02d" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "Nikdy" #: ../xl/formatter.py:702 msgid "Today" msgstr "Dnes" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "Včera" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "Nezdařila se migrace z 0.2.14" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "Použití: exaile [VOLBA]... [URI]" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "Volby" #: ../xl/main.py:421 msgid "Playback Options" msgstr "Možnosti přehrávání" #: ../xl/main.py:423 msgid "Play the next track" msgstr "Přehrát další skladbu" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "Přehrát předcházející skladbu" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "Zastavit přehrávání" #: ../xl/main.py:429 msgid "Play" msgstr "Přehrát" #: ../xl/main.py:431 msgid "Pause" msgstr "Pauza" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "Pozastavit nebo obnovit přehrávání" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "Zastavit přehrávání po právě přehrávané skladbě" #: ../xl/main.py:440 msgid "Collection Options" msgstr "Nastavení sbírek" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "UMÍSTĚNÍ" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "Přidat stopy z UMÍSTĚNÍ do sbírky" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "Možnosti seznamu skladeb" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "Exportovat seznam skladeb do UMÍSTĚNÍ" #: ../xl/main.py:454 msgid "Track Options" msgstr "Nastavení stopy" #: ../xl/main.py:456 msgid "Query player" msgstr "Přehrávač" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "Zobraz vyskakovací okno s informacemi o aktuální stopě" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "Zobrazit název aktuální skladby" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "Zobrazit název alba aktuální skladby" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "Zobrazit interpreta aktuální skladby" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "Zobrazit délku aktuální skladby" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "N" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "Nastav hodnocení aktuální stopy na N%" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "Načíst hodnocení aktuální stopy" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "Zobrazit aktuálně přehrávanou pozici jako čas" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "Zobrazit aktuálně přehrávanou pozici v procentech" #: ../xl/main.py:490 msgid "Volume Options" msgstr "Nastavení hlasitosti" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "Zvýšit hlasitost o N%" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "Snížit hlasitost o N%" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "Vypnout nebo zapnout zvuk" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "Zobrazit aktuální hlasitost v procentech" #: ../xl/main.py:507 msgid "Other Options" msgstr "Ostatní možnosti" #: ../xl/main.py:509 msgid "Start new instance" msgstr "Start nové instance" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "Zobrazit nápovědu a ukončit." #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "Zobrazit verzi programu a ukončit." #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "Spustit mininimalizované do systémové lišty, pokud je to možné" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "Změnit viditelnost GUI (pokud je to možné)" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "Spustit v bezpečném režimu - uzitečné, pokud máte problémy s Exaile" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "Nucený import starých dat z verze 0.2.x (Přepíše stávající data)" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "Neimportovat stará data z verze 0.2.x" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "Nastavit ovládací volby jako --spuštění přehrávání Exaile pokud neběží" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "Vývojové/ladící možnosti" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "ADRESÁŘ" #: ../xl/main.py:536 msgid "Set data directory" msgstr "Nastavit datový adresář" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "MODUL" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "Omezit výstup záznamu do MODULE" #: ../xl/main.py:543 msgid "LEVEL" msgstr "ÚROVEŇ" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "Omezit výstup záznamu do LEVEL" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "Zobrazit ladicí výstup" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "Povolit debugování xl.event. Generuje HODNĚ výstupu" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "Zapisovat do logu jméno vlákna." #: ../xl/main.py:555 msgid "TYPE" msgstr "TYP" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "Omezit výstup záznamu do TYPE" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "Snížit úroveň výstupu" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "Zakázat podporu D-Bus" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "Zakázat podporu HAL." #: ../xl/main.py:580 msgid "Entire Library" msgstr "Celá knihovna" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "Náhodný %d" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "Hodnocení > %d" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" "Exaile ještě nedokončil načítání. Možná byste měli vyčkat na signál " "exaile_loaded." #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "Značky" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "Archiv pluginů není ve správném formátu." #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "Zásuvný modul \"%s\" je již nainstalován." #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "Archiv zásuvného modulu obsahuje nebezpečnou záplatu." #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "Nenastavil jste místo, kde je databáze" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "Neurčili jste místo uložení databáze" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "Různí interpreti" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "Neznámé" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr " / " #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "%dk" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" "Vorbis je otevřený, ztrátový zvukový kodek s vyšší kvalitou výstupu při " "menší velikosti než MP3." #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" "Free Lossless Audio Codec (FLAC) je open source kodek, který komprimuje, ale " "nesnižuje kvalitu zvuku." #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" "Uzavřený formát Applu, který dosahuje lepší zvukovou kvalitu než MP3 při " "nízkých datových tocích." #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" "Uzavřený a starší, ale populární, ztrátový zvukový formát. VBR podává vyšší " "kvalitu než CBR, ale může být nekompatibilní se staršími přehrávači." #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" "Uzavřený a starší, ale populární, ztrátový zvukový formát. CBR podává nižší " "kvalitu než VBR, ale je kompatibilní se všemi přehrávači." #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "Velmi rychlý bezeztrátový zvukový formát s dobrou kompresí." #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "Automaticky" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "Vlastní" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "Nepřehrává se." #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" "stav: %(status)s, název: %(title)s, interpret: %(artist)s, album: %(album)s, " "délka: %(length)s, pozice: %(progress)s%% [%(position)s]" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "Nastavená verze je novější než současná" #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "Nevíme, jak uložit tento druh nastavení: " #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "Byl nalezen neznámý typ nastavení!" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "Neplatný typ seznamu skladeb." #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "Seznam skladeb" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "M3U seznam skladeb" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "PLS seznam skladeb" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "Neplatný formát pro %s." #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "Nepodporovaná verze %(version)s pro %(type)s" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "ASX seznam skladeb" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "XSPF seznam skladeb" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "Míchání _vypnuto" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "Míchat _skladby" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "Míchat _alba" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "Opakování _vypnuto" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "Opakovat _vše" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "Opakovat _jednu" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "Dynamika _Vyp." #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "Dynamicky dle podobných _umělců" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "sekundy" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "minuty" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "hodiny" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "dny" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "týdny" #: ../xl/lyrics.py:305 msgid "Local" msgstr "Místní" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "Přidat do seznamu skladeb" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "Nahradit současný" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "Přidat do seznamu" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "Otevřít adresář" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "Soubory nelze přesunout do koše. Trvale odstranit z disku ?" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "Přesunout do koše" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "_Ukázat přehrávanou skladbu" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "Název:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "Vyberte některé z těchto kriterií" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "Náhodné výsledky" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "Omezit na: " #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr " stopy" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "Nepřehrává se" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "Přetáčení: %s" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "Přesunout" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "Nový značkovač" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "Ztišeno" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "%d%%" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "Plná hlasitost" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" "$title\n" "od $artist\n" "z $album" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "Různí" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "%(track_count)d ze (%(total_duration)s)" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "%d v kolekci" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "%d zobrazeno" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "%d vybráno" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "Fronta" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "Fronta (%d)" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "#" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "Číslo skladby" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "Název" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "Interpret" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "Skladatel" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "Album" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "Délka" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "Disk" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "Číslo disku" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "Hodnocení" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "Datum" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "Žánr" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "Datový tok" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "Umístění" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "Název souboru" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "Počet přehrání" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "BPM" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "Naposledy hrané" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "Přidáno" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "Komentář" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "Seskupování" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "Měnitelná velikost" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "_Automatická velikost" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "Hodnocení:" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "Zamíchat" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "Opakovat" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "Dynamická" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "Odebrat současnou skladbu ze seznamu stop" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "Náhodný seznam skladeb" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "Náhodný výběr" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "Nový seznam skladeb" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "Přejmenovat" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "Zastavit přehrávání po této skladbě" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "Pokračovat přehrávání po této skladbě" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "Vyžaduje modul poskytující dynamické seznamy skladeb" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "Dynamicky přidávat podobné skladby do seznamu skladeb" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "Zadejte URL pro otevření" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "Otevřít URL" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "Vyber typ souboru (dle přípony)" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "Zvolte soubor k otevření" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "Podporované soubory" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "Hudební soubory" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "Soubory se seznamy skladeb" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "Všechny soubory" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "Zvolte adresář k otevření" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "Importovat seznam skladeb" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "Exportovat stávající playlist" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "Seznam skladeb uložen jako %s." #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "Zavřít %s" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "Uložit změny do %s před uzavřením?" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "Vaše změny budou ztraceny, pokud je neuložíte" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "Zavřít bez uložení" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "Ano všem" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "Ne všem" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "Uloženo %(count)s ze %(total)s." #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "Název seznamu skladeb:" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "Přidat nový seznam skladeb..." #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "Nebylo napsáno jméno seznamu skladeb" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "Takto pojmenovaný seznam skladeb se už používá" #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "Zavřít záložku" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "$title (od $artist)" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "Přehrávání: zastavit po označené stopě" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "Při přehrávání se vyskytla chyba!" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "Vyrovnávací paměť: %d%%..." #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "Pokračovat v přehrávání" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "Pozastavit přehrávání" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "Export seznamu skladeb selhal!" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "Zahájit přehrávání" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "Hudební přehrávač Exaile" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "Nový _seznam skladeb" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "Otevřít U_RL" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "Otevřít složku" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "_Exportovat aktuální seznam skladeb" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "Restartovat" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "_Kolekce" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "_Fronta" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "_Obaly" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "_Panel utilit seznamu stop" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "_Sloupce" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "V_yčistit playlist" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "_Správce zařízení" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "Znovu naskenovat kolekci" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "Vlatnosti _skladby" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "Zrušit" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "Původní album" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "Textař" #: ../xlgui/properties.py:54 msgid "Website" msgstr "Webová stránka" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "Obal" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "Původní umělec" #: ../xlgui/properties.py:57 msgid "Author" msgstr "Autor" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "Původní datum" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "Aranžér" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "Dirigent" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "Umělec" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "Copyright" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "Texty" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "Skladba" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "Verze" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "ISRC" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "kódováno s" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "Organizace" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "Upraveno" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "Počet přehrání" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "Upravuji stopu %(current)d z %(total)d" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "%s:" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "z:" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "Obrázek JPEG" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "PNG obrázek" #: ../xlgui/properties.py:919 msgid "Image" msgstr "Obrázek" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "Podporované formáty obrázků" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "Použít aktuální hodnotu na všechny stopy" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "Zobrazit obaly" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "Stáhnout obal" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "Odebrat obal" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "Obal pro %s" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "Nastavení obalu pro %(artist)s - %(album)s" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "Načítání..." #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "Obal nenalezen." #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "Ikona" #: ../xlgui/devices.py:81 msgid "Device" msgstr "Zařízení" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "Ovladač" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "Prohledávám kolekci..." #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "Prohledávám %s…" #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "Zařadit do fronty" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "Zařadit položky" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "Vlastnosti" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "Nová stanice" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "Nový inteligentní seznam sladeb" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "Upravit" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "Export Playlistu" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "Export souborů" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "Smazat seznam skladeb" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "Vybrte adresář kam se mají soubory vyexportovat" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "Jste si jisti, že chcete smazat vybraný seznam skladeb?" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "Zadejte nový název pro Váš seznam skladeb" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "Přejmenovat seznam skladeb" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "Odstranit" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "Seznam skladeb %d" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "Přidat adresář" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "Adresář nebyl přidán." #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" "Složka je již ve vaší kolekci nebo nějaká podsložka jiné složky ve vaší " "kolekci." #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "Přenáším %s..." #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "Nahrávám streamy..." #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "Přidat rozhlasovou stanici" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "URL:" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "Uložit stanici" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "Vysílání rádií" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "Obnovit" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "Napiš jméno nového playlistu" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "Žánr - Interpret" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "Žánr - Album" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "Znovu prohledat" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "Velikost" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s KB" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "a" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "je" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "není" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "obsahuje" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "neobsahuje" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "nejméně" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "nejvíce" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "předtím" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "potom" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "mezi" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "větší než" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "menší než" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "poslední" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "ne v posledním" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "Hraje" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "Rok" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "%(first)s, %(second)s a jiné" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "%(first)s a %(second)s" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "Chytré seznamy skladeb" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "Vlastní playlist" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "Přidat inteligentní seznam skladeb" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "Upravit chytrý seznam skladeb" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "Exportuji %s" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "Přehrát" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "Zásuvné moduly" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "Nezařazeno" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "Nelze načíst informace o zásuvném modulu!" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "Selhal zásuvný modul: %s" msgstr[1] "Selhaly zásuvné moduly: %s" msgstr[2] "selhalo zásuvných modulů: %s" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "Nelze zakázat zásuvný modul!" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "Nelze povolit zásuvný modul!" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "Vybrat zásuvný modul" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "Modul Archiv" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "Instalace zásuvného modulu selhala!" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "Obaly" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "Vzhled" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "Kolekce" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "Obnovit výchozí hodnoty" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "Restartovat Exaile?" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "Chcete-li uplatnit změny, restartujte aplikaci." #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "Akce" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "Zkratka" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "Seznamy skladeb" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "O Exaile" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "© 2009-2012" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "Tento program je svobodný software; můžete jej šířit a modifikovat \n" "podle ustanovení GNU General Public License, vydávané \n" "Free Software Foundation; a to buď verze 2 této licence \n" "anebo (podle vlastního uvážení) kterékoliv pozdější verze.\n" "\n" "Tento program je rozšiřován v naději, že bude užitečný, \n" "avšak BEZ JAKÉKOLIV ZÁRUKY; neposkytují se ani odvozené \n" "záruky PRODEJNOSTI anebo VHODNOSTI PRO URČITÝ ÚČEL. \n" "Další podrobnosti hledejte v GNU General Public License.\n" "\n" "Kopii GNU General Public License jste měl(a) obdržet \n" "spolu s tímto programem; pokud se tak nestalo, \n" "napište o ni Free Software Foundation, Inc., 51 Franklin Street, \n" "Fifth Floor, Boston, MA 02110-1301, USA.\n" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "Neznámý překladatel" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "Správce obalů" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "Promíchat pořadí" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "Opakovat přehrávání" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "_Hledat:" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "Vyhledávač obalů" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "_Nastavit jako obal" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "_Soubor" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "Uprav_it" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "Zo_brazit" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "Nástro_je" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "_Nápověda" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "Předchozí skladba" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" "Zastavit přehrávání\n" "Pravým kliknutím se zastaví přehrávání po aktuální skladbě" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "Další skladba" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0:00 / 0:00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "Vlastnosti skladby" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "P_řidat značku" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "Odst_ranit štítek" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "ab → A_b" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "První písmeno velké u všech tagů" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "_Předchozí" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "_Následující" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "Obal (přední strana)" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "Obal (zadní strana)" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "Umělec/interpret" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "Skupina/Orchestr" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "Popis:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "Správce kolekce" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "Monitorován" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "Rádio" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "Připojit všechny skladby do seznamu skladeb" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "Importovat CD" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "Přidat stanici" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "Soubory" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "Předchozí navštívené složky" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "Další navštívená složka" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "O složku výše" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "Obnovit výpis adresáře" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "Domovská složka" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "Vyhledat: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "Vyčistit vyhledávací pole" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "Kolekce je prázdná." #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "Přidat hudbu" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" "Obnovit kolekci\n" "(držte klávesu SHIFT pro prohledání kolekce)" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "Hledat obal dle názvu, uvedeného v ID3 tagu" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "Použít obaly z místních souborů" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "Hledat obaly ve stejné složce,v níž je uložena hudba." #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "Získat obaly automaticky při začátku přehrávání" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "Pořadí hledání obalů:" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "(tažením přeskupovat)" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "Otevřít poslední seznam skladeb při startu" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "Okamžitě ukládat vlastní seznamy skladeb při vypnutí" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "Nahradit obsah panelu dvojklikem." #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" "Místo přidávání budou skladby přidávané poklepáním nahrazovat obsah " "současného playlistu." #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "Systém pro přehrávání: " #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "Použít přechody blednutí obrazu při činnosti uživatele." #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "Délka ztišení (ms):" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "Použití crossfadingu (EXPERIMENTÁLNÍ)" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "Prolínání skladeb (ms):" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "Audio kanál: " #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "Vlastní kanálový proud:" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "Obnovit přehrávání při startu" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "Obnovit přehrávání v pozastaveném stavu" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "Normální" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "Nestabilní" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "Zásuvný modul" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "Povoleno" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "Není vybrán modul" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "Instalované moduly" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "Autoři:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "Verze:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "Instalovat" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "Není vybrán modul" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "Dostupné zásuvné moduly" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "Instalovat aktualizace" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "Aktualizace" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "Instalovat zásuvný modul" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "Zobrazovat informační oblast" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "Informační oblast obsahuje obal alba a informace o skladbě" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "Vždycky zobrazovat lištu s panely" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "Umístění panelů:" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "Zobrazit celkový počet stop ve sbírce" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "Použít alpha průhlednost:" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" "Varování: tato volba může způsobit chyby při zobrazení pokud nepoužíváte " "kompozitního správce oken." #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "Zobrazit ikonu v systémové liště" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "Minimalizovat do systémové lišty" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "Minimalizovat do lišty" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "Přeskočit na vybranou skladbu" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "Zobrazit úvodní obrazovku při startu" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "Vlevo" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "Vpravo" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "Nahoru" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "Dolů" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "Předvolby" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" "Slova, která budou při třídění odebrána ze začátku tagu umělce (odděleny " "mezerou):" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "(Pravým kliknutím nastavíte původní hodnoty)" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "Použít detekci kompilace na základě souboru" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "Správce zařízení" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "Přidat zařízení" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "Typ zařízení:" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "Zjištěná zařízení:" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "Vlastní: " #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "Správce fronty" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "Hledat podle nálady..." #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "Nálada nalezena." #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "Nemohu načíst moodbar" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "Moodbar není nainstalován." #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "Moodbar" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "Chyba při rippování streamu" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "Uložit proud zvuku" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "Oblíbené skladby na Last.fm" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "API klíč je neplatný" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "Zkontrojte prosím, že zadaná data jsou správná." #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "Nelze spustit internetový prohlížeč" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" "Zkopírujte prosím následující odkaz a otevřete ho ve svém prohlížeči:\n" "{url}" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "Oblíbené" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "Oblíbené na Last.fm" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "Přidat do oblíbených" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "Odstranit z oblíbených" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "Budík" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "Hlavní menu" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "Připojuji se k Shoutcast serveru..." #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "Nemohu se připojit k Shoutcast serveru..." #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "Vložte hledané slovo" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "Shoutcast hledání" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "Výsledek hledání" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "Vyhledat" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "Nebyly nalezeny žádné texty." #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "Jdi na: " #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "Libovolné" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "Prohlížeč textů písní" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "AudioScrobbler" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "Ověření bylo úspěšné" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "Ověření selhalo" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "Povolit audioscrobbling" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "Ekvalizér" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "Vypnout po konci přehrání" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "Automatické vypnutí nastaveno" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "Na konci přehrávání bude počítač vypnut." #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "Počítač bude za chvíli vypnut" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "Počítač bude vypnut za %d sekund." #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "Vypnutí selhalo" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "Počítač nelze vypnout použitím D-Bus." #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "Notify-osd notifikace" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "%(title)s" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "od %(artist)s" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "z %(album)s" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "IPython konzole - Exaile" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "Zobrazit Python konzoli" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "IPython konzole" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "Oznámení" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" "od %(artist)s\n" "z %(album)s" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "Imporuji CD" #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "Audio disk" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "CD" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "Číslo skladby" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "Číslo disku" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "Počet přehrání" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "Umělec: " #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" "Věděli jste...?\n" "\n" "%s" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "Wikipedie" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "Opakuj úsek" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "Začátek opakování" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "Konec opakování" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "Mini Mod" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "$tracknumber - $title" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "$title od $artist" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "$title ($__length)" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "Předchozí" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "Přejít na předchozí skladbu" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "Předchozí skladba" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "Další" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "Přejít na další skladbu" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "Další skladba" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "Přehrát/Pozastavit" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "Spustit, pozastavit nebo vrátit přehrávání" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "Spustit přehrávání" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "Pokračovat v přehrávání" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "Pozastavit přehrávání" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "Zastavit" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "Zastavit přehrávání" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "Pokračovat s přehráváním po současné skladbě" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "Hlasitost" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "Změnit hlasitost" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "Obnovit" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "Obnov hlavní okno aplikace" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "Obnov hlavní okno aplikace" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "Vyberte ohodnocení současné skladby" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "Výběr písně" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "Jednoduchý výběr seznamu skladeb" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "Tlačítko seznamu skladeb" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "Zpřístupnit tento seznam" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "$title ($current_time / $total_time)" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "Stavové tlačítko" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "Stav přehrávání a přístup do tohoto seznamu" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "Ukazatel průběhu" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "Stav přehrávání a přetáčení" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "Skupina" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "Odstranit skupinu" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "Přidat novou kategorii" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "Odstranit kategorii" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "Přidat skupinu" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "Vybrané skladby" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "Zesílení přehrávání" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "Pro zvolení pustit" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "Přidat a přehrát" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "Přidat" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "Historie" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "Historie přehrávání" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "Vymazat uloženou historii?" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "Vymazat historii" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "Připraveno" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "Prohledávání katalogu Jamendo..." #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "Získávám informace o skladbě" #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "Zobrazení na obrazovce" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "Obaly z Amazonu" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "Podcasty" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "Podcast" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "Obnovit Podcast" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "Smazat" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "Pro přidání napište URL podcastu" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "Otevřít podcast" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "Načítá se %s..." #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "Chyba při načítání podcastu" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "Načítám podcast" #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "Nemohu načíst podcast" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "Obal na ploše" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "Multibudík" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "Kontext" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "Kontextová nápověda" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "Označ záložkou tuto nahrávku" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "Smazat záložku" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "Vyčistit záložky" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "Záložky" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "Zapauzovat při spořiči obrazovky" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "DAAP server" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "Klient DAAP" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "Manuálně..." #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "Zadejte IP adresu a port pro sdílení" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "Zadejte IP adresu a port." #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" "Tento server nepodporuje vícenásobné připojení.\n" "Než začnete stahovat musíte ukončit přehrávání." #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "Obnovit seznam serverů" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "Odpojeno od serveru" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "Zvolte umístění pro ukládání" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "Připojování k DAAP..." #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "Ztmavovat přehrávanou část" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "Úroveň ztmavení:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "Použít průběžný styl" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "Zobrazit jen průběh, ne způsob" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "Použít barevné téma " #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "Základní barva:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "Základní barva" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "Místo uložení:" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "Port přenosu:" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "Extrahovat do jednoho souboru" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "Smazat nekompletní soubory" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "API klíč:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "Tajná fráze:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "Požádat o povolení k přístupu" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" "Jděte na svůj API účet, kde získáte API key(API klíč) a secret(tajnou frázi) a " "zadejte je sem. Po zadání klikněte na \"požádat o povolení k přístupu\" a potvrďte." #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "Čas budíku" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "Pondělí" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "Úterý" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "Středa" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "Čtvrtek" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "Pátek" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "Sobota" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "Neděle" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "Denní výstraha" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "Použít přechod" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "Minimální hlasitost:" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "Maximální hlasitost:" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "Přírůstek:" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "Zobrazit přesah:" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "Zobrazit obaly" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "Kruhové zobrazení" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "Vypisuj procenta" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "Nic" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "Obnov texty" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "Odeslat skladby pomocí Audioscrobbleru" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "Zobrazit položku menu pro přepnutí odeslání" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "Heslo:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "Uživatelské jméno:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "předzesilovač" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "+12 dB" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "0" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "-24 dB" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "29" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "59" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "119" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "237" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "474" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "947" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "1.9K" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "3.8K" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "7.5k" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "15K" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "Na změnu skladby" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "Na start, pozastavení nebo zastavení přehrávání" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "Při změně značky" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "Při přechodu přes ikonu v Oznamovací oblasti" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "Je-li aktivní hlavní okno aplikace" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "Zobrazit" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "Použít obaly alb jako ikony" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "Použij ikony medií pro pozastavení, zastavení a znovuspuštění" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "Ikony" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "Řádka umělců" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" "Tagy \"%(title)s\", \"%(artist)s\", a \"%(album)s\" budou nahrazeny " "příslušnými hodnotami. Pokud je název prázdný, bude vyplněn jako \"Neznámý\"." "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "Shrnutí:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "Řádka alba" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "Obsah" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "Linux" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "Průhlednost terminálu:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "Písmo:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "Barva pozadí:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "Změnit velikost zobrazených obalů" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "Pouze umělec:" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "Pouze album:" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" "Zpráva která by měla být zobrazena v těle notifikace. V každém případě " "budou \"%(title)s\", \"%(artist)s\", a \"%(album)s\" nahrazeny příslušnými " "hodnotami. Pokud není tag známý, bude na jeho místě vyplněno \"Neznámý\"." #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "Obojí, umělec i album:" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr " Tělo zprávy: " #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "Ogg Vorbis" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "FLAC" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "AAC" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "MP3 (VBR)" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "MP3 (CBR)" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "WavPack" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "Formát importu: " #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "Kvalita importu: " #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "Cesta importu: " #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" "Každá značka může být zapsána jako $značka nebo ${značka}. " "Značky programu jako $__length musí začínat dvěma podtržítky." #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "Jazyk:" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "Zpět" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "Vpřed" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" "Pořadí ovládacích prvků může být změněno jejich tažením nahoru či dolů. " "(Anebo stisknutím Alt+Šipka nahoru/dolů.)" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "Ovládání" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "Formát názvu skladby" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "Vždy navrchu" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "Ukázat v seznamu úloh" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "Zobrazit dekorace oken" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "Zobrazit na všech pracovních plochách" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "Zobrazovat tlačítko v hlavním okně" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "Plné" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "Jednoduché" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "Upřednostňovat opravu na album" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "Upřednostnit ReplayGain opravu po albu oproti opravě po skladbě." #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "Použít ochranu ořezávání" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "Ochrana před přílišným zesílením" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "Další zesílení aplikovat na všechny songy" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "Další zesílení (dB):" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "Záložní korekce pro soubory které postrádají ReplayGain informaci" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "Úroveň záložní korekce (dB):" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "Setřídit podle:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "Způsob setřídění:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "Výsledky:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "Pokročilé" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "Sestupně" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "Vzestupně" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "Datum vydání" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "Hodnocení tento týden" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "Hodnocení tento měsíc" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "Počet sečtených seznamů skladeb" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "Počet stažení" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "Počet poslechnutí" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "Označené hvězdičkou" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "Datum hraní" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "Žánr" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" "Pro přihlášení se k Amazon AWS účtu a získání \n" "této informace navštivte http://aws." "amazon.com/" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "Přidat podcast" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "Kotva:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "Posun X:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "pixelů" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "Posun Y:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "Potlačit velikost obalu" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "Velikost:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "Použít slábnutí" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "Délka doznívání" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "ms" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "Vlevo nahoru" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "Vpravo nahoru" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "Vlevo dolů" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "Vpravo dolů" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "Přidat" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "Budíky" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "Povolit postupné zhlašování" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "Počáteční hlasitost:" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "Koncová hlasitost:" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "Přírůstek hlasitosti:" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "Délka zhlašování (s):" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "Znovu spustit seznam skladeb" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "Přehrávání" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "Prosím vložte vaše Last.fm ověření:" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "Přihlaste se k Last.fm" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "Použít obaly v nabídce záložek (projeví se až při příštím startu)" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "Název serveru:" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "Hostující server:" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "Port:" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "Server povolen" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "Aktuální skladba" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" "Nastavit status o současném přehrávání v Pidginu. Podporované služby " "naleznete na FAQ Pidginu." #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "Nahradit standardní progress bar moodbarem" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "GNOME Multimediální klávesy" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" "Přidá podporu pro kontrolu Exailu přes GNOME's multimedia key system. " "Kompatibilní s GNOME >= 2.20.x" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "Umožní nahrávat streamy přes streamripper" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" "Ukazuje oblíbené skladby a umožňuje jejich přidávání.\n" "\n" "Nezapomeňte zadat v nastavení zásuvného modulu funkční API klíč a tajnou " "frázi.\n" "\n" "Používá jméno a heslo ze zásuvného modulu \"AudioScrobbler\"." #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "Přehrává skladby v určitý čas.\n" "\n" "Berte na vědomí, že když přijde stanovený čas, tak Exaile stiskne tlačítko " "Přehrát, takže se ujistěte, že máte hudbu ve Vašem seznamu skladeb" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "Last.fm přebaly alb" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "Prohledat databázi přebalů alb na Last.fm" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "Nastavit obal a přidat nějaké položky menu do AWN pro Exaile" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "Shoutcast radio" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "Seznam Shoutcast rádií" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "Editor značek Ex Falso" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" "Integruje Ex Falso editor tagů s Exaile.\n" "Závisí na: Ex Falso" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "Přidává záložku pro zobrazení textu aktuálně přehrávané stopy." #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" "Předat informace o skladbách na Last.fm a podobné služby podporující " "AudioScrobbling" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "XKeys" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "Globální horké klávesy užívající xlib (mmkeys.so)" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "Multimediální klávesy pro Windows" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" "Přidává podporu multimediálních kláves (obsahuje je většina nových " "klávesnic) pro Exaile v Microsoft Windows.\n" "\n" "Vyžaduje: pyHook " #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "Desetipásmový ekvalizér" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "Lyrics Fly" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "Plugin k získání textů z lyricsfly.com" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "Librivox" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "Procházejte a poslouchejte audioknihy z Librivox.org." #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "Poskytuje možnost vypnutí počítače na konci přehrávání." #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "Podpora pro USB Mass Storage" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" "Podpora pro přístup k přenosným přehrávačům používajícím USB Mass Storage " "protokol" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "Zařízení" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "Last.fm dynamické seznamy skladeb" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "Last.fm backend pro dynamické seznamy skladeb" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" "Tento zásuvný modul zobrazí informační bublinu když píseň je přehrávána/" "obnovena/zastavena, buď s obalem nebo s ikonou média pro indikaci poslední " "akce.\n" "\n" "Závislosti: python-notify\n" "Doporučené: notify-osd" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" "Poskytuje Python konzoli, která může být použita k manipulování s Exaile." #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "Vyskočí okno, když začne hrát písnička" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "Přehrávání CD" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "Informace" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "Opakuj A-B" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "Nepřetržité opakování zvoleného úseku skladby." #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "Kompaktní mód Exailu s přizpůsobitelným vzhledem" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "Aktivuje podporu pro ReplayGain" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "Zahodit ikonu v panelu" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" "Poskytuje alternativní ikonu v oznamovací oblasti pro přetahování souborů.\n" "\n" "Závislosti: python-eggtrayicon" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "Jamendo" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "Umožňuje přístup do hudebního katalogu Jamendo." #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "Podpora pro iPod" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" "Zásuvný modul pro podporu iPodu. Momentálně jen pro čtení, nelze přenášet " "data.\n" "\n" "Závisí na python-gpod." #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" "Hledá obaly na Amazon\n" "\n" "Pro použití tohoto zásuvného modulu, je vyžadován klíč AWA API a tajný klíč." #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "Karaoke" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "Odebrat hlas z audia" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "Přidá jednoduchou podporu Podcastu" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "Zobraz aktuální přebal alba na ploše" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "Hello World" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "Jednoduchý zásuvný modul pro testování základního systému pluginů" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "Přehrává hudbu v určený datum a čas.\n" "Ujistěte se, že máte naplněný seznam skladeb." #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "Kontextuální informace" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" "Zobrazuje rozličné informace o aktuálně přehrávané stopě.\n" "Závislosti: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k." "a. PIL)" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "Umožňuje ukládání/načítání pozicí záložek v hudebních souborech." #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "Lyrics Wiki" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" "Tento zásuvný modul integruje spydaap (http://launchpad.net/spydaap) do " "Exaile. Kolekce pak může být sdílena přes DAAP." #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "Umožňuje přehravání hudby z DAAP." #~ msgid "Clear" #~ msgstr "Vyčistit" #~ msgid "Close" #~ msgstr "Zavřít" #~ msgid "Close tab" #~ msgstr "Zavřít panel" #~ msgid "Export as..." #~ msgstr "Exportovat jako..." #~ msgid "%d KB" #~ msgstr "%d KB" #~ msgid "© 2009-2010" #~ msgstr "© 2009-2010" #~ msgid "GNOME" #~ msgstr "GNOME" #~ msgid "ALSA" #~ msgstr "ALSA" #~ msgid "OSS" #~ msgstr "OSS" #~ msgid "PulseAudio" #~ msgstr "PulseAudio" #~ msgid "JACK" #~ msgstr "JACK" #~ msgid "AWN" #~ msgstr "AWN" #~ msgid "API Key:" #~ msgstr "API klíč:" #~ msgctxt "yes" #~ msgid "Monday" #~ msgstr "Pondělí" #~ msgctxt "yes" #~ msgid "Tuesday" #~ msgstr "Úterý" #~ msgctxt "yes" #~ msgid "Wednesday" #~ msgstr "Středa" #~ msgctxt "yes" #~ msgid "Thursday" #~ msgstr "Čtvrtek" #~ msgctxt "yes" #~ msgid "Friday" #~ msgstr "Pátek" #~ msgctxt "yes" #~ msgid "Saturday" #~ msgstr "Sobota" #~ msgctxt "yes" #~ msgid "Sunday" #~ msgstr "Neděle" #~ msgctxt "yes" #~ msgid "Use Fading" #~ msgstr "Použít prolínání" #~ msgctxt "yes" #~ msgid "Minimum volume:" #~ msgstr "Minimální hlasitost:" #~ msgctxt "yes" #~ msgid "Maximum volume:" #~ msgstr "Maximální hlasitost:" #~ msgctxt "yes" #~ msgid "Increment:" #~ msgstr "Vzestupně:" #~ msgctxt "yes" #~ msgid "Time per increment:" #~ msgstr "Časový přírůstek:" #~ msgid "Secret key:" #~ msgstr "Tajný klíč:" #~ msgid "Awn" #~ msgstr "Awn" #~ msgid "Vol:" #~ msgstr "Hlasitost:" #~ msgid "Alarm Days:" #~ msgstr "Aktivní dny:" #~ msgid "Relay Port:" #~ msgstr "Port:" #~ msgid "%(title)s (by %(artist)s)" #~ msgstr "%(title)s (od %(artist)s)" #~ msgid "by %s" #~ msgstr "od %s" #~ msgid "Stop Playback" #~ msgstr "Zastavit přehrávání" #~ msgid "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "Year - Artist\n" #~ "Year - Album\n" #~ "Artist - Year - Album" #~ msgstr "" #~ "Interpret\n" #~ "Album\n" #~ "Žánr - Interpret\n" #~ "Žánr - Album\n" #~ "Rok - Interpret\n" #~ "Rok - Album\n" #~ "Interpret - Rok - Album" #~ msgid "Playing %s" #~ msgstr "Přehrávám %s" #~ msgid "Select File Type (By Extension)" #~ msgstr "Vyberte typ souboru (podle přípony)" #~ msgid "File Type" #~ msgstr "Typ souboru" #~ msgid "Toggle: Stop after selected track" #~ msgstr "Přepínač: Zastavit po vybrané skladbě" #~ msgid "Export" #~ msgstr "Exportovat" #~ msgid "No covers found" #~ msgstr "Obaly nebyly nalezeny" #~ msgid "Display a progressbar in the OSD" #~ msgstr "Zobrazit processbar v OSD" #~ msgid "" #~ "OSD\n" #~ "Drag to the location you'd like the\n" #~ "OSD to appear" #~ msgstr "" #~ "OSD\n" #~ "Přesuňte vyskakovací okno na místo, \n" #~ "kde chcete, aby se objevovalo" #~ msgid " - " #~ msgstr " - " #~ msgid " + " #~ msgstr " + " #~ msgid "0/0 tracks" #~ msgstr "0/0 skladeb" #~ msgid "Add device" #~ msgstr "Přidat zařízení" #~ msgid "..." #~ msgstr "..." #~ msgid "Page 1" #~ msgstr "Strana 1" #~ msgid "Extension" #~ msgstr "Přípona" #~ msgid "0:00" #~ msgstr "0:00" #~ msgid "Invalid file extension, file not saved" #~ msgstr "Neplatná přípona, soubor neuložen" #~ msgid "Choose a file to open" #~ msgstr "Vyberte soubor pro otevření" #~ msgid "Location:" #~ msgstr "Umístění:" #~ msgid "Search:" #~ msgstr "Vyhledat:" #~ msgid "Select a save location" #~ msgstr "Vybrat místo uložení" #~ msgid "Genre:" #~ msgstr "Žánr:" #~ msgid "Neighbourhood" #~ msgstr "Okolí počítače" #~ msgid "Loved Tracks" #~ msgstr "Oblíbené skladby" #~ msgid "Part" #~ msgstr "Část" #~ msgid "Original Date" #~ msgstr "Datum" #~ msgid "Original Album" #~ msgstr "Album" #~ msgid "Original Artist" #~ msgstr "Interpret" #~ msgid "Encoded By" #~ msgstr "Od" #~ msgid "Title:" #~ msgstr "Název:" #~ msgid "Album:" #~ msgstr "Album:" #~ msgid "Track Number:" #~ msgstr "Číslo skladby:" #~ msgid "Import" #~ msgstr "Import" #~ msgid "Quit" #~ msgstr "Odejít" #~ msgid "Date Added" #~ msgstr "Datum přidání" #~ msgid "Last Played" #~ msgstr "Naposledy hráno" #~ msgid "Autosize" #~ msgstr "Automatická velikost" #~ msgid "Exaile" #~ msgstr "Exaile" #~ msgid "New Search" #~ msgstr "Nové hledání" #~ msgid "Opacity Level:" #~ msgstr "Úroveň:" #~ msgid "Resizable" #~ msgstr "Lze měnit velikost" #~ msgid "Show OSD on track change" #~ msgstr "Zobrazit OSD při změně skladby" #~ msgid "Start" #~ msgstr "Start" #~ msgid "Stopped" #~ msgstr "Zastaveno" #~ msgid "Text Color" #~ msgstr "Barva textu" #~ msgid "_Close" #~ msgstr "_Zavřít" #~ msgid "Window Height:" #~ msgstr "Výška okna:" #~ msgid "Window Width:" #~ msgstr "Šířka okna:" #~ msgid "Open" #~ msgstr "Otevřít" #~ msgid "Add Playlist" #~ msgstr "Přidat playlist" #~ msgid "Recommended" #~ msgstr "Doporučeno" #~ msgid "Personal" #~ msgstr "Osobní" #~ msgid "General" #~ msgstr "Obecné" #~ msgid " songs" #~ msgstr " skladby" #~ msgid "Add a directory" #~ msgstr "Přidat složku" #~ msgid "Choose a file" #~ msgstr "Vybrat soubor" #~ msgid "from %s" #~ msgstr "z %s" #~ msgid "Add to Playlist" #~ msgstr "Přidat do playlistu" #~ msgid "Number of Plays" #~ msgstr "Počet přehrání" #~ msgid "Close this dialog" #~ msgstr "Zavřít dialog" #~ msgid "Fading:" #~ msgstr "Přechod:" #~ msgid "Get rating for current song" #~ msgstr "Přidat hodnocení aktuální skladby" #~ msgid " New song, fetching cover." #~ msgstr " Nová skladba, hledám obal." #~ msgid "Streaming..." #~ msgstr "Streamuji..." #~ msgid "New playlist title:" #~ msgstr "Název pro nový seznam skladeb:" #~ msgid " (%(queue_count)d queued)" #~ msgstr " (%(queue_count)d ve frontě" #~ msgid "Add to custom playlist" #~ msgstr "Přidat do vlastního seznamu skladeb" #~ msgid "_Rename Playlist" #~ msgstr "Přejmenovat seznam skladeb" #~ msgid "C_lear All Tracks" #~ msgstr "S_mazat všechny skladby" #~ msgid "_Close Playlist" #~ msgstr "Zavřít seznam skladeb" #~ msgid "%(minutes)d:%(seconds)02d" #~ msgstr "%(minutes)d:%(seconds)02d" #~ msgid "Export current playlist..." #~ msgstr "Exportovat do aktuálního seznamu skladeb..." #~ msgid "Dynamically add similar tracks" #~ msgstr "Dynamicky přidávat podobné skladby" #~ msgid "© 2009" #~ msgstr "© 2009" #~ msgid "" #~ "Copyright (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "This program is free software; you can redistribute it and/or modify\n" #~ "it under the terms of the GNU General Public License as published by\n" #~ "the Free Software Foundation; either version 2 of the License, or\n" #~ "(at your option) any later version.\n" #~ "\n" #~ "This program is distributed in the hope that it will be useful,\n" #~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" #~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" #~ "GNU General Public License for more details.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along\n" #~ "with this program; if not, write to the Free Software Foundation, Inc.,\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ msgstr "" #~ "Copyright (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "Tento program je svobodný software; můžete jej šířit a modifikovat \n" #~ "podle ustanovení GNU General Public License, vydávané \n" #~ "Free Software Foundation; a to buď verze 2 této licence \n" #~ "anebo (podle vlastního uvážení) kterékoliv pozdější verze.\n" #~ "\n" #~ "Tento program je rozšiřován v naději, že bude užitečný, \n" #~ "avšak BEZ JAKÉKOLIV ZÁRUKY; neposkytují se ani odvozené \n" #~ "záruky PRODEJNOSTI anebo VHODNOSTI PRO URČITÝ ÚČEL. \n" #~ "Další podrobnosti hledejte v GNU General Public License.\n" #~ "\n" #~ "Kopii GNU General Public License jste měl(a) obdržet \n" #~ "spolu s tímto programem; pokud se tak nestalo, \n" #~ "napište o ni Free Software Foundation, Inc., 51 Franklin Street, \n" #~ "Fifth Floor, Boston, MA 02110-1301, USA.\n" #~ msgid "" #~ "Left\n" #~ "Right\n" #~ "Top\n" #~ "Bottom" #~ msgstr "" #~ "Vlevo\n" #~ "Vpravo\n" #~ "Nahoře\n" #~ "Dole" #~ msgid "Remove All" #~ msgstr "Odstranit vše" #~ msgid "" #~ "Automatic\n" #~ "GNOME\n" #~ "ALSA\n" #~ "OSS\n" #~ "PulseAudio\n" #~ "JACK" #~ msgstr "" #~ "Automaticky\n" #~ "GNOME\n" #~ "ALSA\n" #~ "OSS\n" #~ "PulseAudio\n" #~ "JACK" #~ msgid "Randomize the order of the current playlist" #~ msgstr "Náhodné pořadí aktuálního seznamu skladeb" #~ msgid "_Export current playlist" #~ msgstr "_Exportovat do aktuálního seznamu skladeb" #~ msgid "_Go to Playing Track" #~ msgstr "_Jdi na přehrávač skladeb" #~ msgid "Delete bookmark" #~ msgstr "Smazat záložku" #~ msgid "Clear bookmarks" #~ msgstr "Smazat záložky" #~ msgid "Restore Main Window" #~ msgstr "Obnovit hlavní okno" #~ msgid " & " #~ msgstr " & " #~ msgid "Alarm Time:" #~ msgstr "Čas budíku:" #~ msgid "Alarm:" #~ msgstr "Budík:" #~ msgid "Position" #~ msgstr "Pozice" #~ msgid "Horizontal:" #~ msgstr "Horizontálně:" #~ msgid "Vertical:" #~ msgstr "Vertikálně:" #~ msgid "A plugin with the name \"%s\" is already installed" #~ msgstr "Zásuvný modul \"%s\" je již nainstalován" #~ msgid "Choose a plugin" #~ msgstr "Vyberte zásuvný modul" #~ msgid "Plugin Manager" #~ msgstr "Správce zásuvných modulů" #~ msgid "Bookmark this track" #~ msgstr "Přidat do záložek" #~ msgid "LastFM Radio" #~ msgstr "LastFM rádio" #~ msgid "Minimum Volume:" #~ msgstr "Minimální hlasitost:" #~ msgid "Maximum Volume:" #~ msgstr "Maximální hlasitost:" #~ msgid "Save Location:" #~ msgstr "Místo uložení:" #~ msgid "" #~ "Exaile now uses absolute URI's, please delete/rename your %s directory" #~ msgstr "" #~ "Exaile nyní používá absolutní adresy, smažte či přejmenujte prosím " #~ "adresář %s" #~ msgid "Show a popup of the currently playing track" #~ msgstr "Zobrazit vyskakovací okno pro právě přehrávanou skladbu" #~ msgid "Toggle Play or Pause" #~ msgstr "Přehrát či pozastavit" #~ msgid "Set rating for current song" #~ msgstr "Ohodnotit tuto skladbu" #~ msgid "Decreases the volume by VOL%" #~ msgstr "Ztišit o VOL%" #~ msgid "Print the progress inside the current track as percentage" #~ msgstr "Zobrazit pozici v aktuální skladbě v procentech" #~ msgid "Device class does not support transfer." #~ msgstr "Zařízení nepodporuje přenos" #~ msgid "Plugin archive is not in the correct format" #~ msgstr "Plugin není ve správném formátu" #~ msgid "Save As..." #~ msgstr "Uložit jako…" #~ msgid "_Save Changes To Playlist" #~ msgstr "Uložit změny do seznamu skladeb" #~ msgid "_Save As..." #~ msgstr "_Uložit jako..." #~ msgid "_Save As Custom Playlist" #~ msgstr "Uložit jako vlastní seznam skladem" #~ msgid "Add To New Playlist..." #~ msgstr "Přidat do nového seznamu skladeb" #~ msgid "New custom playlist name:" #~ msgstr "Jméno nového vlastního seznamu skladeb" #~ msgid "Idle." #~ msgstr "Nečinný." #~ msgid "" #~ "This will permanantly delete the selected tracks from your disk, are you " #~ "sure you wish to continue?" #~ msgstr "Toto vymaže označenou skladbu z disku, opravdu chcete pokračovat?" #~ msgid "Move selected item up" #~ msgstr "Posunout označenou položku nahoru" #~ msgid "Move selected item down" #~ msgstr "Posunout označenou položku dolů" #~ msgid "Remove item" #~ msgstr "Odstranit položku" #~ msgid "Add item" #~ msgstr "Přidat položku" #~ msgid "Repeat playlist" #~ msgstr "Opakovat seznam skladeb" #~ msgid "Basic" #~ msgstr "Základní" #~ msgid "Date:" #~ msgstr "Datum:" #~ msgid "Details" #~ msgstr "Podrobnosti" #~ msgid "File Size:" #~ msgstr "Velikost souboru:" #~ msgid "Length:" #~ msgstr "Délka:" #~ msgid "Play Count:" #~ msgstr "Počet přehrání:" #~ msgid "Popup" #~ msgstr "Vyskakovací okno" #~ msgid "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgstr "Posuňte okno OSD na místo, kde chcete, aby se objevovalo" #~ msgid "Install plugin file" #~ msgstr "Instalovat soubor se zásuvným modulem" #~ msgid "Install a third party plugin from a file" #~ msgstr "Nainstalovat zásuvné moduly třetích stran ze souboru" #~ msgid "Track _properties" #~ msgstr "Nastavení skladby" #~ msgid "Selected controls" #~ msgstr "Vybrané ovládání" #~ msgid "Available controls" #~ msgstr "Dostupné ovládání" #~ msgid "Seeking: " #~ msgstr "Hledání: " #~ msgid "Streamripper can only record streams." #~ msgstr "Streamripper umí jen nahrávat streamy" #~ msgid "Enable Fading" #~ msgstr "Povolit přechody" #~ msgid "Restart Playlist" #~ msgstr "Restartovat seznam skladeb" #~ msgid "Name - Time" #~ msgstr "Jméno - Čas" #~ msgid "Summary" #~ msgstr "Souhrn" #~ msgid "Both artist and album" #~ msgstr "Oba umělec a album" #~ msgid "Only album" #~ msgstr "Jen album" #~ msgid "Terminal Opacity:" #~ msgstr "Průhlednost terminálu" #~ msgid "Display window decorations" #~ msgstr "Zobrazit dekoraci okna" #~ msgid "Creates an MPRIS D-Bus object to control Exaile" #~ msgstr "Vytvoří MPRIS D-Bus objekt, aby kontroloval Exaile" #~ msgid "Last.fm Dynamic Search" #~ msgstr "Dynamické hledání na Last.fm" #~ msgid "iPod support" #~ msgstr "Podpora iPodu" #~ msgid "A plugin for iPod support" #~ msgstr "Zásuvný modul pro podporu iPodu" #~ msgid "Could not enable plugin: %s" #~ msgstr "Nemohu použít zásuvný modul: %s" #~ msgid "Increases the volume by VOL%" #~ msgstr "Zesílit o VOL%" #~ msgid "Plugin archive contains an unsafe path" #~ msgstr "Zásuvný modul Archiv obsahuje nebezpečnou cestu" #~ msgid "Custom playlist name:" #~ msgstr "Vlastní jméno seznamu skladeb:" #~ msgid "Delete track" #~ msgstr "Smazat skladbu" #~ msgid "No track" #~ msgstr "Žádná skladba" #~ msgid "Enter the search text" #~ msgstr "Zadejte hledaný text" #~ msgid "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgstr "" #~ "{title}\n" #~ "{artist}\n" #~ "z {album} - {length}" #~ msgid "Artist:" #~ msgstr "Interpret:" #~ msgid "Only artist" #~ msgstr "Jen interpret" #~ msgid "%d covers to fetch" #~ msgstr "%d obalů stáhnuto" #~ msgid "" #~ "Exaile Music Player\n" #~ "Not playing" #~ msgstr "" #~ "Hudební přehrávač Exaile\n" #~ "Nepřehrává se" #~ msgid "Could not disable plugin: %s" #~ msgstr "Nemohu zastavit zásuvný modul: %s" #~ msgid "Remove current track from playlist" #~ msgstr "Odstranit skladbu z tohoto seznamu skladeb" #~ msgid "Bitrate:" #~ msgstr "Bitový tok:" #~ msgid "Use alpha transparency (if supported)" #~ msgstr "Použít alpha průhlednost (je-li podporována)" #~ msgid "Display OSD when hovering over tray icon" #~ msgstr "Zobrazit OSD společně se systémovou ikonou" #~ msgid "Text Font:" #~ msgstr "Písmo textu:" #~ msgid "Playback engine (requires restart): " #~ msgstr "Přehrávací engine (vyžaduje restart): " #~ msgid "Clear Playlist" #~ msgstr "Vyprázdnit seznam skladeb" #~ msgid "Start/Pause Playback" #~ msgstr "Spustit/Pozastavit přehrávání" #~ msgid "_Randomize Playlist" #~ msgstr "_Náhodný seznam skladeb" #~ msgid "Alarm Name:" #~ msgstr "Jméno budíku:" #~ msgid "Use Album Covers As Icons" #~ msgstr "Použít obaly alb jako ikony" #~ msgid "" #~ "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " #~ "replaced by their respective values. The title will be replaced by " #~ "\"Unknown\" if it is empty." #~ msgstr "" #~ "Značky \"%(title)s\", \"%(artist)s\" a \"%(album)s\" budou nahrazeny " #~ "svými hodnotami. Pokud jsou prázdné, budou nahrazeny \"Unknown\"." #~ msgid "Artist Line:" #~ msgstr "Řádek interpret:" #~ msgid "Album Line:" #~ msgstr "Řádek album:" #~ msgid "On Playback Start, Pause or Stop" #~ msgstr "Při zahájení/pozastavení/zastavení přehrávání" #~ msgid "Center vertically" #~ msgstr "Zarovnat vertikálně" #~ msgid "Center horizontally" #~ msgstr "Zarovnat horizontálně" #~ msgid "Track title format:" #~ msgstr "Formát zobrazení:" #~ msgid "Tag Covers" #~ msgstr "Značky obalů" #~ msgid "Plugin to fetch lyrics from lyricwiki.org" #~ msgstr "Modul pro získávání textů z lyricwiki.org" #~ msgid "Buffering: 100%..." #~ msgstr "Načítám: 100%..." #~ msgid "" #~ "Normal\n" #~ "Unified (unstable)" #~ msgstr "" #~ "Normální\n" #~ "Jednotný (nestabilní)" #~ msgid "In pause: %s" #~ msgstr "Pozastaveno: %s" #~ msgid "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager" #~ msgstr "" #~ "Mathias Brodala\n" #~ " \n" #~ " Manažér překladů" #~ msgid "%(year)d-%(month)02d-%(day)02d" #~ msgstr "%(year)d-%(month)02d-%(day)02d" #~ msgid "$title ($length)" #~ msgstr "$title ($length)" #~ msgid "Secret Key:" #~ msgstr "Tajný klíč:" #~ msgid "Print the position inside the current track as time" #~ msgstr "Zobrazit pozici uvnitř aktuální skladby jako čas" #~ msgid "order must be a list or tuple" #~ msgstr "pořadí musí být seznamem či logickým uspořádáním" #~ msgid "These options only affect the unified engine." #~ msgstr "Tato nastavení ovlivní pouze nestabilní engine." #~ msgid "On Track Change" #~ msgstr "Při změně skladby" #~ msgid "%(playlist_count)d showing, %(collection_count)d in collection" #~ msgstr "%(playlist_count)d zobrazeno, %(collection_count)d v kolekci." #~ msgid "" #~ "Path is already in your collection, or is a subdirectory of another path " #~ "in your collection" #~ msgstr "Tato cesta nebo její část se už nachází ve vaší kolekci." #~ msgid "Use Media Icons For Pause, Stop and Resume" #~ msgstr "Použít Media Ikony pro pauzu, stop a pokračování" #~ msgid "Pauses/resumes playback on screensaver start/stop" #~ msgstr "" #~ "Pozastavuje/pokračuje v přehrávání při zapnutí/vypnutí spořiče displeje." #~ msgid "" #~ "To sign up for an Amazon AWS account and get \n" #~ "this information visit http://aws.amazon.com/" #~ msgstr "" #~ "Pro registraci Amazon AWS účtu a získání informací, \n" #~ "navštivte http://aws.amazon.com" #~ msgid "" #~ "Adds support for playing audio CDs.\n" #~ "Requires python-cddb to look up tags." #~ msgstr "Přidat podporu pro přehrávání audio CD" dist/copy/po/PaxHeaders.26361/sv.po0000644000175000017500000000012312233027260015426 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 29 ctime=1382821553.04504693 exaile-3.3.2/po/sv.po0000644000000000000000000040201712233027260014373 0ustar00rootroot00000000000000# Swedish translation of exaile # # Daniel Nylander , 2007, 2007. msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2012-08-10 19:33+0000\n" "Last-Translator: Gustaf Gustafsson \n" "Language-Team: Swedish \n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-08-28 05:28+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "%d dag, " msgstr[1] "%d dagar, " #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "%d timme, " msgstr[1] "%d timmar, " #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "%d minut, " msgstr[1] "%d minuter, " #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d sekund" msgstr[1] "%d sekunder" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "%dd, " #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "%dt, " #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "%dm, " #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "%ds" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "%dd " #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "%d:%02d:%02d" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "%d:%02d" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "Aldrig" #: ../xl/formatter.py:702 msgid "Today" msgstr "Idag" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "Igår" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "Misslyckades med att migrera från 0.2.14" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "Användning: exaile [ALTERNATIV]... [URI]" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "Alternativ" #: ../xl/main.py:421 msgid "Playback Options" msgstr "Uppspelningsalternativ" #: ../xl/main.py:423 msgid "Play the next track" msgstr "Spela upp nästa spår" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "Spela upp föregående spår" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "Stoppa uppspelning" #: ../xl/main.py:429 msgid "Play" msgstr "Spela" #: ../xl/main.py:431 msgid "Pause" msgstr "Paus" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "Gör paus eller återuppta uppspelning" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "Stoppa uppspelning efter aktuellt spår" #: ../xl/main.py:440 msgid "Collection Options" msgstr "Samlingsalternativ" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "PLATS" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "Lägg till spår från PLATS till samlingen" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "Spellistealternativ" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "Exporterar aktuell spellista till LOCATION" #: ../xl/main.py:454 msgid "Track Options" msgstr "Spåralternativ" #: ../xl/main.py:456 msgid "Query player" msgstr "Query spelare" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "Visa en popup-ruta med information för det aktuella spåret" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "Visa titlen på nuvarande låt" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "Visa album för nuvarande låt" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "Visa artist för nuvarande låt" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "Visa längden på nuvarande låt" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "N" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "Ställ in betyg för aktuellt spår till N%" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "Erhåll betyg för aktuellt spår" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "Visa den aktuella uppspelningspositionen som tid" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "Visa det aktuella uppspelningsförloppet som procent" #: ../xl/main.py:490 msgid "Volume Options" msgstr "Volymalternativ" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "Öka volymen med N%" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "Sänk volymen med N%" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "Tystar eller aktiverar ljudet" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "Skriv ut procent för den aktuella volymen" #: ../xl/main.py:507 msgid "Other Options" msgstr "Övriga alternativ" #: ../xl/main.py:509 msgid "Start new instance" msgstr "Starta ny instans" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "Visa dett hjälpmeddelande och avsluta" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "Visa programmets versionsnummer och avsluta" #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "Starta minimerad (i aktivitetsfältet om möjligt)" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "Växla synligheten för gränssnittet (om möjligt)" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "Starta i säkert läge - ibland nyttigt om du stöter på problem" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" "Tvinga importering av gammal information från version 0.2.x (skriver över " "nuvarande information)" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "Importera inte gammal information från version 0.2.x" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" "Gör så att styralternativ som --play startar Exaile om det inte är igång" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "Utvecklings/felsöknings-alternativ" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "KATALOG" #: ../xl/main.py:536 msgid "Set data directory" msgstr "Ange datakatalog" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "MODUL" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "Begränsa loggutdata till MODUL" #: ../xl/main.py:543 msgid "LEVEL" msgstr "NIVÅ" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "Begränsa loggutdata till NIVÅ" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "Visa felsökningsutdata" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "Aktivera felsökning av xl.event. Skapar MASSOR av utdata" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "Lägg till trådnamn till loggmeddelanden." #: ../xl/main.py:555 msgid "TYPE" msgstr "TYP" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "Begränsa felsökningsutdata av xl.event till TYP" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "Minska mängden utdata" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "Inaktivera D-Bus-stöd" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "Inaktivera HAL-stöd" #: ../xl/main.py:580 msgid "Entire Library" msgstr "Hela biblioteket" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "Slumpa %d" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "Betyg större än %d" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" "Exaile är inte klar med inläsningen än. Du kanske borde lyssna efter " "exile_loaded-signalen?" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "Taggar" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "Insticksarkivet är inte i rätt format." #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "En insticksmodul med namnet \"%s\" är redan installerat." #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "Insticksarkivet innehåller en osäker sökväg." #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "Du angav inte en plats att läsa in databasen från" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "Du specifierade ingen plats att spara databasen på" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "Diverse artister" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "Okänd" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr " / " #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "%dk" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" "Vorbis är en ljudkodek för förluster och öppen källkod men högkvalitativ " "utmatning vid lägre filstorlek än MP3." #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" "Free Lossless Audio Codec (FLAC) är en kodek med öppen källkod som " "komprimerar utan att förlora ljudkvalitet." #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" "Apples proprietära ljudformat med förluster som ger bättre ljudkvalitet än " "MP3 vid lägre bitfrekvenser." #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" "Ett proprietärt och äldre, men också populärt, ljudformat med förluster. VBR " "ger högre kvalitet än CBR men kan vara inkompatibelt med vissa spelare." #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" "Ett proprietärt och äldre, men också populärt, ljudformat med förluster. CBR " "ger mindre kvalitet än VBR men är kompatibelt med alla spelare." #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "" "Ett mycket snabbt fritt och förlustfritt ljudformat med bra komprimering." #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "Automatisk" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "Anpassad" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "Spelar inte." #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" "status: %(status)s, titel: %(title)s, artist: %(artist)s, album: %(album)s, " "speltid: %(length)s, position: %(progress)s%% [%(position)s]" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "Inställningsversion är nyare än aktuell." #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "Vi vet inte hur man ska spara den sortens inställning: " #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "En okänd typ av inställning hittades!" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "Ogiltig typ av spellista." #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "Spellista" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "M3U-spellista" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "PLS-spellista" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "Ogiltigt format för %s." #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "Ostödd version %(version)s för %(type)s" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "ASX-spellista" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "XSPF-spellista" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "Blanda a_v" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "Blanda s_pår" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "Blanda a_lbum" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "Upprepning _av" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "Upprepa _alla" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "Upprepa _enstaka" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "Dynamik _av" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "Dynamik av liknande _artister" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "sekunder" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "minuter" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "timmar" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "dygn" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "veckor" #: ../xl/lyrics.py:305 msgid "Local" msgstr "Lokal" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "Kölägg" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "Ersätt nuvarande" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "Lägg till i aktuell" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "Öppna katalog" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" "Filerna kan inte flyttas till papperskorgen. Vill du ta bort dem permanent " "från disken?" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "Flytta till papperskorgen" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "_Visa spelande spår" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "Namn:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "Matchar något av kriterierna" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "Slumpmässiga resultat" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "Begränsa till: " #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr " spår" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "Ingen uppspelning" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "Söker: %s" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "Flytta" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "Ny markör" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "Tyst" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "%d%%" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "Full volym" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" "$title\n" "av $artist\n" "från $album" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "Diverse" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "%(track_count)d av totalt (%(total_duration)s)" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "%d i samlingen" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "%d visar" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "%d markerad" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "Kö" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "Kölägg (%d)" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "nr." #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "Spårnummer" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "Titel" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "Artist" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "Kompositör" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "Album" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "Speltid" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "Skiva" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "Skivnummer" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "Betyg" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "Datum" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "Genre" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "Bithastighet" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "Plats" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "Filnamn" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "Spelräknare" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "BPM" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "Senast spelad" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "Datum tillagd" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "_Storleksändringsbar" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "_Automatisk storlek" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "Betyg:" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "Blanda" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "Upprepa" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "Dynamisk" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "Ta bort nuvarande spår från spellista" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "Blanda spellistan" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "Ny spellista" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "Byt namn" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "Stoppa uppspelning efter detta spår" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "Fortsätt uppspelning efter detta spår" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "Erfodrar insticksmoduler som tillhandahåller dynamiska spellistor" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "Lägg dynamiskt till liknande spår till spellistan" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "Ange URL:en att öppna" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "Öppna URL" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "Välj filtyp (av filändelse)" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "Välj media att öppna" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "Filer som stöds" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "Musikfiler" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "Spellistefiler" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "Alla filer" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "Välj katalog att öppna" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "Exportera nuvarande spellista" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "Spelista sparad som %s." #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "Stäng %s" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "Spara ändringar till %s innan stängning?" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "Dina ändringar går förlorade om du inte sparar dem" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "Stäng utan att spara" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "Sparat %(count)s av %(total)s." #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "Du angav inte ett namn för din spellista" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "Namnet på spellistan som du angav används redan." #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "Stäng flik" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "$title (av $artist)" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "Stoppa efter valt spår" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "Uppspelningsfel har uppstått!" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "Buffrar: %d%%..." #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "Fortsätt uppspelning" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "Gör paus i uppspelning" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "Exportering av spellista misslyckades!" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "Starta uppspelning" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "Musikspelaren Exaile" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "_Ny spellista" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "Öppna _url" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "Öppna kataloger" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "_Exportera nuvarande spellista" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "Starta om" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "_Samling" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "_Kö" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "O_mslagsbilder" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "Verktygsrad för _spellista" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "_Kolumner" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "_Rensa spellista" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "E_nhetshanterare" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "Sök _igenom samlingen igen" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "Spår_egenskaper" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "Avbryt" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "Ursprungligt album" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "Textförfattare" #: ../xlgui/properties.py:54 msgid "Website" msgstr "Webbplats" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "Omslag" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "Ursprunglig artist" #: ../xlgui/properties.py:57 msgid "Author" msgstr "Upphovsman" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "Ursprungligt datum" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "Arrangemang" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "Dirigent" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "Artist" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "Copyright" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "Låttext" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "Spår" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "Version" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "ISRC" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "Kodad av" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "Organisation" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "Ändrad" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "Antal uppspelningar" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "Redigerar spår %(current)d av %(total)d" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "av:" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "Verkställ aktuellt värde till alla spår" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "Visa omslag" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "Hämta omslag" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "Ta bort omslag" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "Omslag för %s" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "Omslagsalternativ för %(artist)s - %(album)s" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "Inga omslagsbilder hittades." #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "Ikon" #: ../xlgui/devices.py:81 msgid "Device" msgstr "Enhet" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "Drivrutin" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "Söker av samling..." #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "Söker igenom %s..." #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "Växla kö" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "Lägg objekt i kö" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "Egenskaper" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "Ny station" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "Ny smart spellista" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "Redigera" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "Exportera spellista" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "Ta bort spellista" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "Är du säker på att du vill permanent ta bort den markerade spellistan?" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "Ange nya namnet för din spellista" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "Byt namn på spellista" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "Ta bort" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "Spellista %d" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "Lägg till en katalog" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "Katalog läggs inte till." #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" "Katalogen finns redan i din samling eller är den en underkatalog till en " "annan katalog i din samling." #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "Överför till %s..." #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "Läser in strömmar..." #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "Lägg till radiostation" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "URL:" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "Sparade stationer" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "Radioströmmar" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "Uppdatera" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "Ange namnet på din nya spellista" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "Genre - Artist" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "Genre - Album" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "Sök igenom samlingen igen" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "Storlek" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s KB" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "och" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "är" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "är inte" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "innehåller" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "innehåller inte" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "minst" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "som mest" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "före" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "efter" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "mellan" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "större än" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "mindre än" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "de senaste" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "inte de senaste" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "Spelar" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "År" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "%(first)s, %(second)s och övriga" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "%(first)s och %(second)s" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "Smarta spellistor" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "Anpassade spellistor" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "Lägg till smart spellista" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "Redigera smart spellista" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "Uppspelning" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "Insticksmoduler" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "Det gick inte att läsa in insticksinformation!" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "Misslyckad insticksmodul: %s" msgstr[1] "Misslyckade insticksmoduler: %s" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "Det gick inte att inaktivera insticksmodul!" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "Det gick inte att aktivera insticksmodul!" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "Välj en insticksmodul" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "Insticksarkiv" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "Installation av insticksfil misslyckades!" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "Omslagsbilder" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "Utseende" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "Samling" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "Återställ till standardvärden" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "Starta om Exaile?" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "En omstart krävs för den här ändringen ska få effekt." #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "Åtgärd" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "Genväg" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "Spellistor" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "Om Exaile" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "© 2009-2012" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" "Copyright ©2008-2010 Adam Olsen \n" "\n" "Följande text är en informell översättning som enbart tillhandahålls\n" "i informativt syfte. För alla juridiska tolkningar gäller den engelska\n" "originaltexten.\n" "\n" "Detta program är fri programvara. Du kan distribuera det och/eller\n" "modifiera det under villkoren i GNU General Public License, publicerad\n" "av Free Software Foundation, antingen version 2 eller (om du så vill)\n" "någon senare version.\n" "\n" "Detta program distribueras i hopp om att det ska vara användbart,\n" "men UTAN NÅGON SOM HELST GARANTI, även utan underförstådd\n" "garanti om SÄLJBARHET eller LÄMPLIGHET FÖR NÅGOT SPECIELLT\n" "ÄNDAMÅL. Se GNU General Public License för ytterligare information.\n" "\n" "Du bör ha fått en kopia av GNU General Public License tillsammans\n" "med detta program. Om inte, skriv till Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "Omslagshanterare" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "Blanda uppspelningsordningen" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "Upprepa uppspelning" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "Hitta omslagsbild" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "Ang_e som omslagsbild" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "_Arkiv" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "R_edigera" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "_Visa" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "Ver_ktyg" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "_Hjälp" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "Föregående spår" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" "Stoppa uppspelning\n" "\n" "Högerklicka för att stoppa efter spåret" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "Nästa spår" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0:00 / 0:00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "Spåregenskaper" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "Lä_gg till tagg" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "_Ta bort tagg" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "ab → A_b" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "Gör första bokstaven till versal i alla taggar" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "_Föregående" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "_Nästa" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "Beskrivning:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "Samlingshanterare" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "Övervakad" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "Radio" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "Lägg till alla spår till spellista" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "Importera CD" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "Lägg till station" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "Filer" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "Föregående besökta katalog" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "Nästa besökta katalog" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "Upp en katalog" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "Uppdatera kataloglistning" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "Hemkatalog" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "Sök: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "Rensa sökfält" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "Samlingen är tom." #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "Lägg till musik" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" "Uppdatera samlingsvyn\n" "(Håll ner Skift-tangenten för att uppdatera samlingen)" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "Använd omslagsbilder inbäddade i taggar" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "Använd omslagsbilder från lokala filer" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" "Det här alternativet kommer söka efter omslagsbilder i \n" "samma mapp som musikfilen finns." #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "Hämta automatiskt omslagsbilder vid uppspelning" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "Sökordning för omslag:" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "(dra för att sortera)" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "Öppna senaste spellistorna vid uppstart" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "Fråga om att spara anpassade spellistor vid stängning" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "Ersätt innehåll vid dubbelklick i sidopanel" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" "Istället för att lägga till, kommer spår tillagda via dubbelklick att " "ersätta innehållet i den nuvarande spellistan." #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "Uppspelningsmotor: " #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "Använd toningsövergångar vid användaråtgärder" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "Toningslängd (ms):" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "Använd korstoning (EXPERIMENTIELL)" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "Korstoningslängd (ms):" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "Ljudsink: " #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "Egen bakände:" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "Återuppta uppspelning vid start" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "Återuppta uppspelning i pausat tillstånd" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "Normal" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "Enhetlig (instabil)" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "Insticksmodul" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "Aktiverad" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "Ingen insticksmodul vald" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "Installerade insticksmoduler" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "Upphovsmän:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "Version:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "Installera" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "Ingen insticksmodul vald" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "Tillgängliga insticksmoduler" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "Installera uppdateringar" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "Uppdateringar" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "Installera insticksfil" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "Visa infoyta" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "Infoytan innehåller skivomslag och spårinformation" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "Visa alltid flikraden" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "Flikplacering:" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "Visa spårantal i samling" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "Använd alfagenomskinlighet:" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" "Varning: det här alternativet kan orsaka visningsfel om det används med en " "fönsterhanterare utan kompositeringsstöd." #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "Visa ikon i systembrickan" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "Minimera till aktivitetsfält" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "Stäng till notifieringsyta" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "Hoppa till aktuell låt vid spårbyte" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "Visa uppstartsbild vid uppstart" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "Vänster" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "Höger" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "Överkant" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "Nederkant" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "Inställningar" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" "Ord att bortse från i början av artisttaggar vid sortering (mellanslag " "separerar):" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "(Högerklicka för att återställa)" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "Använd filbaserad samlingsdetektering" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "Enhetshanterare" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "Lägg till enhet" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "Typ av enhet:" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "Upptäckta enheter:" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "Anpassad: " #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "Köhanterare" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "Söker efter stämning..." #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "Stämning hittades." #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "Kunde inte läsa stämningsrad." #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "Moodbar-programmet är inte tillgängligt." #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "Stämningsrad" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "Fel verkställande streamripper" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "Streamripper" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "API-nyckeln är ogiltig" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "Var säker på att inmatad data är korrekt." #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "Kunde in starta webbläsare" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" "Kopiera följande URL och öppna den med din webbläsare:\n" "{url}" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "Älskad" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "Älska denna sång" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "Alarmklocka" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "Kontaktar Shoutcast-server..." #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "Fel vid anslutning till Shoutcast-servern." #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "Ange sökordet" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "Shoutcast Sök" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "Sökresultat" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "Sök" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "Ingen låttext hittades." #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "Gå till: " #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "Vilken som helst" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "Låttextvisare" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "AudioScrobbler" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "Aktivera audioscrobbling" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "Equalizer" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "Stäng av efter uppspelning" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "Avstängning planerad" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "Datorn kommer att stängas av efter avslutad uppspelning." #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "Omedelbar avstängning" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "Datorn kommer att stängas av om %d sekunder." #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "Avstängning misslyckades" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "Det gick inte att stänga av datorn med hjälp av D-Bus." #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "Notify OSD-notifieringar" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "%(title)s" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "av %(artist)s" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "från %(album)s" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "IPython-konsoll - Exaile" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "Visa IPython-konsoll" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "IPython-konsoll" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "Notifiera" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" "av %(artist)s\n" "från %(album)s)" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "Importerar CD..." #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "Ljudskiva" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "CD" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "Spårnummer" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "Skivnummer" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "Spelräknare" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "Artist: " #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" "Visste du att...\n" "\n" "%s" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "Upprepningssegment" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "Upprepa början" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "Upprepa slut" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "Miniläge" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "$tracknumber - $title" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "$title av $artist" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "$title ($__length)" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "Föregående" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "Gå till föregående spår" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "Föregående spår" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "Nästa" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "Gå till nästa spår" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "Nästa spår" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "Spela/Paus" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "Starta, pausa eller återuppta uppspelningen." #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "Starta uppspelning" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "Fortsätt uppspelning" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "Gör paus i uppspelning" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "Stoppa" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "Stoppa uppspelningen" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "Fortsätt uppspelning efter nuvarande spår" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "Volym" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "Ändra volymen" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "Återställ" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "Återställ huvudfönstret" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "Återställ huvudfönster" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "Välj betyg för nuvarande spår" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "Spårväljare" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "Enkel spårlisteväljare" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "Spellisteknapp" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "Kom åt nuvarande spellista" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "$title ($current_time / $total_time)" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "Förloppknapp" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "Uppspelningsförlopp och åtkomst till nuvarande spellista" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "Förloppsmätare" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "Uppspelningsförlopp och sökning" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "ReplayGain" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "Släpp för att välja" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "Lägg till och spela upp" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "Lägg till" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "Redo" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "Söker i Jamendo-katalogen..." #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "Hämtar låtdata..." #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "Skärmtext" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "Omslag från Amazon" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "Poddsändningar" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "Poddsändning" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "Uppdatera poddsändning" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "Ta bort" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "Ange URL:en för poddsändningen att lägga till" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "Öppna poddsändning" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "Läser in %s..." #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "Fel vid inläsning av poddsändning." #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "Läser in poddsändningar..." #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "Kunde inte spara poddsändningsfilen" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "Skrivbordsomslag" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "Alarmklocka" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "Sammanhang" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "Omgivningsinformation" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "Bokmärk det här spåret" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "Ta bort bokmärke" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "Rensa bokmärken" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "Bokmärken" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "Paus vid skärmsläckare" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "DAAP-server" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "DAAP-klient" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "Manuellt..." #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "Ange IP-adress och port för utdelning" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "Ange IP-adress och port." #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" "Denna server saknar stöd för flera anslutningar.\n" "Du måste stoppa uppspelningen innan låtar hämtas ner." #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "Uppdatera serverlista" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "Koppla ifrån server" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "Välj en plats för sparning" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "Anslut till DAAP..." #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "Skugga spelat avsnitt istället för att använda markören" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "Mörkernivå:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "Använd vågformsstil" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "Visa bara vågform, inte humör" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "Använd färgtema " #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "Basfärg:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "Basfärg" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "Plats att spara:" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "Relä-port:" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "Rippa till enstaka fil" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "Ta bort ofullständiga filer" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "API-nyckel:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "Alarmtid" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "Måndag" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "Tisdag" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "Onsdag" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "Torsdag" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "Fredag" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "Lördag" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "Söndag" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "Alarmdagar" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "Använd toning" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "Ökning:" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "Visa överlappning:" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "Visa omslagsbild" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "Cirkelvisning" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "Textprocent" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "Ingen" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "Uppdatera låttext" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "Skicka in spår med Audioscrobbler" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "Visa menypost för att växla inskickande" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "Lösenord:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "Användarnamn:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "för" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "+12 dB" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "0" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "-24 dB" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "29" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "59" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "119" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "237" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "474" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "947" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "1,9K" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "3,8K" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "7,5K" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "15K" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "Vid spårbyte" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "Vid start, pause och stopp av uppspelning" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "Vid fokusering av notifieringsikon" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "När huvudfönstret är fokuserat" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "Visning" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "Använd omslagsbilder som ikoner" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "Använd mediaikoner för pause, stopp och återuppta" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "Ikoner" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "Aritistrad:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" "Taggarna \"%(title)s\", \"%(artist)s\" och \"%(album)s\" kommer att " "ersättas med deras respektive värden. Titeln kommer att ersättas med \"Okänd" "\" om den är tom." #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "Sammanfattning:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "Albumrad:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "Innehåll" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "Terminalopacitet:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "Typsnitt:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "Bakgrundsfärg:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "Ändra storlek på visade omslag" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "Endast artist:" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "Endast album:" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" "Meddelande som ska visas i notifieringen. Vid varje tillfälle kommer " "\"%(title)s\", \"%(artist)s\", och \"%(album)s\" ersättas med respektive " "värden. Om markeringen inte är känd kommer \"Okänd\" visas istället." #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "Både artist och album:" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "Meddelandetext" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "Ogg Vorbis" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "FLAC" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "AAC" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "MP3 (VBR)" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "MP3 (CBR)" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "WavPack" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "Importformat: " #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "Importkvalitet: " #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "Importsökväg: " #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "Alltid överst" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "Visa i uppgiftlista" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "Visa fönsterdekorationer:" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "Visa på alla skrivbord" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "Visa knapp i huvudfönstret" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "Fullständig" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "Enkel" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "Föredra per-album-korrektion" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "Föredra ReplayGains per-album-korrektion framför per-spår-korrektion." #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "Använd klippskydd" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "Skydda mot dåligt ljud orsakat av över-förstärkning" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "Ytterligare förstärkning för alla filer" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "Ytterligare förstärkning (dB):" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" "Korrektionsmetod att falla tillbaka på för filer som saknar ReplayGain-" "information" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "Korrektionsnivå (dB) för räddningsmetod:" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "Ordna efter:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "Sorteringsriktning:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "Resultat:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "Avancerat" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "Fallande" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "Stigande" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "Utgivningsdatum" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "Betyg denna vecka" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "Betyg denna månad" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "Antal nya poster i spellistan" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "Antal hämtningar" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "Antal lyssningar" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "Stjärnmärkta" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "Datum för betygsättning" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "Genre/Taggar" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" "För att registrera ett Amazon AWS-konto och få \n" "den här informationen, besök http://aws." "amazon.com/." #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "Lägg till poddsändning" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "Ankare:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "X-offset:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "bildpunkter" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "Y-offset:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "Åsidosätt omslagsstorlek" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "Storlek:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "Använd toning" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "Varaktighet för toning:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "ms" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "Överst till vänster" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "Överst till höger" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "Nederst till vänster" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "Nederst till höger" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "Lägg till" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "Starta om spellista" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "Ange din Last.fm-autentisering" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "Registrera dig på Last.fm" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "Använd omslag i bokmärkesmenyn (kräver omstart)" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "Servernamn:" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "Servervärd:" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "Port:" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "Server aktiverad" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "Aktuell låt" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" "Ställer in spelar nu-status i Pidgin. Läs Pidgins FAQ för att se vilka " "tjänster som stöds." #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "GNOME-multimediatangenter" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" "Lägger till stöd för att styra Exaile via GNOME:s multimediatangentsystem. " "Kompatibel med GNOME >= 2.20.x" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" "Låter dig spela in strömmar med streamripper.\n" "Beroende av: streamripper" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "Spelar musik på en särskild tidpunkt.\n" "\n" "Observera att när den angivna tiden kommer, kommer Exaile reagera precis som " "om du tryckte på Play-knappen, så se till att du har musiken du vill lyssna " "på i din spellista" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "Omslag från Last.fm" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "Söker på Last.fm efter omslagsbilder" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "Ställer in omslaget och infogar några menyposter till AWN för Exaile" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "Shoutcast-radio" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "Shoutcast Radio-lista" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "Ex Falso markerings-editor" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" "Integrerar Ex Falso markerings-editorn i Exaile.\n" "Beror på: Ex Falso" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" "Lägger till en flik på sidan för att visa texten för den nu spelade låten." #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" "Skickar in låtinformation till Last.fm och liknande tjänster som har stöd " "för AudioScrobbler" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "XKeys" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "Allmänna snabbtangenter med xlib (mmkeys.so)" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "Multimediatangenter i Windows" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "En 10-bands equalizer" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "Lyrics Fly" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "Insticksmodul för att hämta låttexter från lyricsfly.com" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "Librivox" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "Bläddra i och lyssna till ljudböcker från Librivox.org." #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "Möjliggör att stänga av datorn när uppspelningen är färdig." #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "USB-stöd för masslagrings-mediaspelare" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" "Stöd för tillgång till portabla mediaspelare som använder USB-protokollet " "för masslagring" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "Enheter" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "Dynamiska Last.fm-spellistor" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "Bakänden Last.fm för dynamiska spellistor" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" "Den här insticksmodulen visar notifikationsbubblor när en låt spelas/" "fortsätter/stoppas, antingen med omslaget eller en media-ikon för att visa " "den senaste handlingen.\n" "\n" "Beror på: python-notify\n" "Rekommenderar: notify-osd" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" "Tillhandahåller en IPython-kommandotolk som kan användas för att styra " "Exaile." #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "Visar en notifiering när uppspelningen av ett spår startas" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "Cd-uppspelning" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "Information" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "A-B upprepning" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "Upprepar kontinuerligt en del av ett spår." #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "Kompakt läge för Exaile med ett konfigurerbart utseende" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "Aktiverar stöd för ReplayGain" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" "Tillhandahåller en alternativ brickikon som tar emot släppta filer.\n" "\n" "Beror på: python-eggtrayicon" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "Jamendo" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "Ger tillgång till Jamendos musikkatalog." #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "iPod-stöd" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" "En insticksmodul för iPod-stöd. Bara läs-stöd i nuläget, ingen överföring.\n" "\n" "Beror på: python-gpod." #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" "Söker på Amazon efter omslag\n" "\n" "För att kunna använda denna insticksmodul krävs en nyckel till AWS API och " "ett lösenord." #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "Karaoke" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "Tar bort röster från ljudet" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "Ger basalt stöd för Poddradio" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "Visar den aktuella omslagsbilden för albumet på skrivbordet" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "Hej världen" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" "En enkel insticksmodul för att testa det grundläggande systemet för " "insticksmoduler" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "Spelar musik på särskilda tidpunkter och dagar.\n" "\n" "Observera att när den angivna tiden kommer, kommer Exaile reagera precis som " "om du tryckte på Play-knappen, så se till att du har musiken du vill lyssna " "på i din spellista" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "Sammanhangsinformation" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" "Visa blandad information om spåret som just nu spelas.\n" "Beror på: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (alias " "PIL)" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "Möjliggör att spara och fortsätta från punkter i ljudfiler." #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "Lyrics Wiki" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" "Den här insticksmodulen integrerar spydaap (http://launchpad.net/spydaap) " "med Exaile så att en samling kan delas över DAAP." #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "Tillåter uppspelning från DAAP-musikutdelningar." #~ msgid "Clear" #~ msgstr "Rensa" #~ msgid "Close" #~ msgstr "Stäng" #~ msgid "Close tab" #~ msgstr "Stäng flik" #~ msgid "Export as..." #~ msgstr "Exportera som..." #~ msgid "%d KB" #~ msgstr "%d KB" #~ msgid "© 2009-2010" #~ msgstr "© 2009-2010" #~ msgid "GNOME" #~ msgstr "GNOME" #~ msgid "ALSA" #~ msgstr "ALSA" #~ msgid "OSS" #~ msgstr "OSS" #~ msgid "PulseAudio" #~ msgstr "PulseAudio" #~ msgid "JACK" #~ msgstr "JACK" #~ msgid "AWN" #~ msgstr "AWN" #~ msgid "API Key:" #~ msgstr "API-nyckel:" #~ msgctxt "yes" #~ msgid "Monday" #~ msgstr "Måndag" #~ msgctxt "yes" #~ msgid "Tuesday" #~ msgstr "Tisdag" #~ msgctxt "yes" #~ msgid "Wednesday" #~ msgstr "Onsdag" #~ msgctxt "yes" #~ msgid "Thursday" #~ msgstr "Torsdag" #~ msgctxt "yes" #~ msgid "Friday" #~ msgstr "Fredag" #~ msgctxt "yes" #~ msgid "Saturday" #~ msgstr "Lördag" #~ msgctxt "yes" #~ msgid "Sunday" #~ msgstr "Söndag" #~ msgctxt "yes" #~ msgid "Use Fading" #~ msgstr "Använd toning" #~ msgctxt "yes" #~ msgid "Minimum volume:" #~ msgstr "Minimal volym:" #~ msgctxt "yes" #~ msgid "Maximum volume:" #~ msgstr "Maximal volym:" #~ msgctxt "yes" #~ msgid "Increment:" #~ msgstr "Ökning:" #~ msgctxt "yes" #~ msgid "Time per increment:" #~ msgstr "Tid för varje ökning:" #~ msgid "Secret key:" #~ msgstr "Hemlig nyckel:" #~ msgid "Awn" #~ msgstr "Awn" #~ msgid "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "Year - Artist\n" #~ "Year - Album\n" #~ "Artist - Year - Album" #~ msgstr "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "År - Artist\n" #~ "År - Album\n" #~ "Artist - År - Album" #~ msgid " songs" #~ msgstr " låtar" #~ msgid "Alarm Days:" #~ msgstr "Dagar med alarm:" #~ msgid "Opacity Level:" #~ msgstr "Opakhetsnivå:" #~ msgid "LastFM Radio" #~ msgstr "LastFM-radio" #~ msgid "Loved Tracks" #~ msgstr "Älskade spår" #~ msgid "Recommended" #~ msgstr "Rekommenderad" #~ msgid "Personal" #~ msgstr "Personligt" #~ msgid "Neighbourhood" #~ msgstr "Grannskap" #~ msgid "Select File Type (By Extension)" #~ msgstr "Välj filtyp (efter filändelse)" #~ msgid "File Type" #~ msgstr "Filtyp" #~ msgid "Extension" #~ msgstr "Filändelse" #~ msgid "Export" #~ msgstr "Exportera" #~ msgid "" #~ "OSD\n" #~ "Drag to the location you'd like the\n" #~ "OSD to appear" #~ msgstr "" #~ "Skärmtext\n" #~ "Dra till platsen som du vill att\n" #~ "skärmtexten ska visas" #~ msgid "No covers found" #~ msgstr "Inga omslag hittades" #~ msgid "Display a progressbar in the OSD" #~ msgstr "Visa en förloppsmätare i skärmtexten" #~ msgid "Invalid file extension, file not saved" #~ msgstr "Ogiltig filändelse, filen inte sparad" #~ msgid " - " #~ msgstr " - " #~ msgid " + " #~ msgstr " + " #~ msgid "0/0 tracks" #~ msgstr "0/0 spår" #~ msgid "Page 1" #~ msgstr "Sida 1" #~ msgid "Add device" #~ msgstr "Lägg till enhet" #~ msgid "..." #~ msgstr "..." #~ msgid "Toggle: Stop after selected track" #~ msgstr "Växla: Stoppa efter markerat spår" #~ msgid "0:00" #~ msgstr "0:00" #~ msgid "Choose a file to open" #~ msgstr "Välj en fil att öppna" #~ msgid "order must be a list or tuple" #~ msgstr "ordningen måste vara en lista eller en tupel" #~ msgid "Minimum Volume:" #~ msgstr "Lägsta volym" #~ msgid "Alarm:" #~ msgstr "Alarm:" #~ msgid "Alarm Time:" #~ msgstr "Larm tid:" #~ msgid "Get rating for current song" #~ msgstr "Få betyg för aktuella låten" #~ msgid "Streaming..." #~ msgstr "Streamar..." #~ msgid " New song, fetching cover." #~ msgstr " Ny låt, hämtar omslaget." #~ msgid "Plugin archive contains an unsafe path" #~ msgstr "Plugin-arkiv innehåller en farlig väg" #~ msgid "Buffering: 100%..." #~ msgstr "Bruffrat: 100%..." #~ msgid "%d covers to fetch" #~ msgstr "%d omfattar att hämta" #~ msgid "Streamripper can only record streams." #~ msgstr "Streamripper kan bara spela in strömmar." #~ msgid "Name - Time" #~ msgstr "Namn - Tid" #~ msgid "Enable Fading" #~ msgstr "Aktivera Fading" #~ msgid "Fading:" #~ msgstr "Fading:" #~ msgid "Alarm Name:" #~ msgstr "Alarm Namn:" #~ msgid "Maximum Volume:" #~ msgstr "Högsta volym:" #~ msgid "Restart Playlist" #~ msgstr "Starta om spelningslistan" #~ msgid "Choose a plugin" #~ msgstr "Välj en insticksmodul" #~ msgid "Close this dialog" #~ msgstr "Stäng den här dialogen" #~ msgid "" #~ "Exaile now uses absolute URI's, please delete/rename your %s directory" #~ msgstr "" #~ "Exaile använder nu absoluta URI:er, ta bort/byt namn på din %s-katalog" #~ msgid "New playlist title:" #~ msgstr "Ny titel för spellista:" #~ msgid "A plugin with the name \"%s\" is already installed" #~ msgstr "En insticksmodul med namnet \"%s\" är redan installerad" #~ msgid "Plugin archive is not in the correct format" #~ msgstr "Insticksarkivet är inte i det korrekta formatet" #~ msgid "Save Location:" #~ msgstr "Plats att spara på:" #~ msgid "Relay Port:" #~ msgstr "Reläport:" #~ msgid "Display window decorations" #~ msgstr "Visa fönsterdekorationer" #~ msgid "Center vertically" #~ msgstr "Centrera vertikalt" #~ msgid "Center horizontally" #~ msgstr "Centrera horisontellt" #~ msgid "Only artist" #~ msgstr "Endast artist" #~ msgid "Summary" #~ msgstr "Sammanfattning" #~ msgid "Both artist and album" #~ msgstr "Både artist och album" #~ msgid "Only album" #~ msgstr "Endast album" #~ msgid "Position" #~ msgstr "Position" #~ msgid "General" #~ msgstr "Allmänt" #~ msgid "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgstr "" #~ "Flytta skärmtextfönstret till den plats där du vill att den ska visas" #~ msgid "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgstr "" #~ "{title}\n" #~ "{artist}\n" #~ "från {album} - {length}" #~ msgid "Autosize" #~ msgstr "Ändra storlek automatiskt" #~ msgid "Clear Playlist" #~ msgstr "Töm spellista" #~ msgid "Display OSD when hovering over tray icon" #~ msgstr "Visa skärmtext när muspekaren är över ikonen" #~ msgid "Exaile" #~ msgstr "Exaile" #~ msgid "Location:" #~ msgstr "Plats:" #~ msgid "New Search" #~ msgstr "Ny sökning" #~ msgid "Popup" #~ msgstr "Popupp" #~ msgid "Resizable" #~ msgstr "Ändringsbar" #~ msgid "Search:" #~ msgstr "Sök:" #~ msgid "Show OSD on track change" #~ msgstr "Visa skärmtext vid spårbyte" #~ msgid "Start" #~ msgstr "Starta" #~ msgid "Stop Playback" #~ msgstr "Stoppa uppspelning" #~ msgid "Stopped" #~ msgstr "Stoppad" #~ msgid "Text Color" #~ msgstr "Textfärg" #~ msgid "Text Font:" #~ msgstr "Texttypsnitt:" #~ msgid "Vol:" #~ msgstr "Vol:" #~ msgid "Window Height:" #~ msgstr "Fönsterhöjd:" #~ msgid "Window Width:" #~ msgstr "Fönsterbredd:" #~ msgid "_Close" #~ msgstr "_Stäng" #~ msgid "Select a save location" #~ msgstr "Välj ett ställe att spara på" #~ msgid "Open" #~ msgstr "Öppna" #~ msgid "Bitrate:" #~ msgstr "Bithastighet:" #~ msgid "Genre:" #~ msgstr "Genre:" #~ msgid "Add Playlist" #~ msgstr "Lägg till spellista" #~ msgid "Enter the search text" #~ msgstr "Ange söktext" #~ msgid "Add a directory" #~ msgstr "Lägg till en katalog" #~ msgid "Choose a file" #~ msgstr "Välj en fil" #~ msgid "Part" #~ msgstr "Del" #~ msgid "Original Date" #~ msgstr "Ursprungligt datum" #~ msgid "Original Album" #~ msgstr "Ursprungligt album" #~ msgid "Original Artist" #~ msgstr "Ursprunglig artist" #~ msgid "Encoded By" #~ msgstr "Kodad av" #~ msgid "Title:" #~ msgstr "Titel:" #~ msgid "Artist:" #~ msgstr "Artist:" #~ msgid "Album:" #~ msgstr "Album:" #~ msgid "Track Number:" #~ msgstr "Spårnummer:" #~ msgid "" #~ "Path is already in your collection, or is a subdirectory of another path " #~ "in your collection" #~ msgstr "" #~ "Sökvägen är redan i din samling eller är en underkatalog till en annan " #~ "sökväg i din samling" #~ msgid "Plugin Manager" #~ msgstr "Instickshanterare" #~ msgid "%(title)s (by %(artist)s)" #~ msgstr "%(title)s (av %(artist)s)" #~ msgid "by %s" #~ msgstr "av %s" #~ msgid "from %s" #~ msgstr "från %s" #~ msgid "Playing %s" #~ msgstr "Spelar upp %s" #~ msgid "Import" #~ msgstr "Importera" #~ msgid "Add to Playlist" #~ msgstr "Lägg till i spellista" #~ msgid "Quit" #~ msgstr "Avsluta" #~ msgid "Number of Plays" #~ msgstr "Antal spelningar" #~ msgid "Date Added" #~ msgstr "Lades till den" #~ msgid "Last Played" #~ msgstr "Senast spelad" #~ msgid "Decreases the volume by VOL%" #~ msgstr "Sänker volymen med VOL%" #~ msgid "Increases the volume by VOL%" #~ msgstr "Ökar volymen med VOL%" #~ msgid "Print the position inside the current track as time" #~ msgstr "Skriv ut positionen inuti det aktuella spåret som tid" #~ msgid "Print the progress inside the current track as percentage" #~ msgstr "Skriv ut positionen inuti det aktuella spåret som procent" #~ msgid "%(minutes)d:%(seconds)02d" #~ msgstr "%(minutes)d:%(seconds)02d" #~ msgid "Save As..." #~ msgstr "Spara som..." #~ msgid "Custom playlist name:" #~ msgstr "Anpassat namn för spellista:" #~ msgid "" #~ "Exaile Music Player\n" #~ "Not playing" #~ msgstr "" #~ "Musikspelaren Exaile\n" #~ "Spelar inte" #~ msgid "In pause: %s" #~ msgstr "Gör paus: %s" #~ msgid " (%(queue_count)d queued)" #~ msgstr " (%(queue_count)d i kö)" #~ msgid "_Save As..." #~ msgstr "Spara so_m..." #~ msgid "No track" #~ msgstr "Inget spår" #~ msgid "Delete track" #~ msgstr "Ta bort spår" #~ msgid "Export current playlist..." #~ msgstr "Exportera aktuell spellista..." #~ msgid "_Close Playlist" #~ msgstr "S_täng spellista" #~ msgid "C_lear All Tracks" #~ msgstr "T_öm alla spår" #~ msgid "%(year)d-%(month)02d-%(day)02d" #~ msgstr "%(year)d-%(month)02d-%(day)02d" #~ msgid "%(playlist_count)d showing, %(collection_count)d in collection" #~ msgstr "%(playlist_count)d visas, %(collection_count)d i samling" #~ msgid "Idle." #~ msgstr "Overksam." #~ msgid "Add To New Playlist..." #~ msgstr "Lägg till i ny spellista..." #~ msgid "Move selected item down" #~ msgstr "Flytta markerat objekt neråt" #~ msgid "Remove item" #~ msgstr "Ta bort objekt" #~ msgid "Add item" #~ msgstr "Lägg till objekt" #~ msgid "Move selected item up" #~ msgstr "Flytta markerat objekt uppåt" #~ msgid "File Size:" #~ msgstr "Filstorlek:" #~ msgid "Length:" #~ msgstr "Speltid:" #~ msgid "Remove current track from playlist" #~ msgstr "Ta bort aktuellt spår från spellista" #~ msgid "Date:" #~ msgstr "Datum:" #~ msgid "Details" #~ msgstr "Detaljer" #~ msgid "Repeat playlist" #~ msgstr "Upprepa spellista" #~ msgid "Play Count:" #~ msgstr "Spelräknare:" #~ msgid "Dynamically add similar tracks" #~ msgstr "Lägg dynamiskt till liknande spår" #~ msgid "" #~ "Left\n" #~ "Right\n" #~ "Top\n" #~ "Bottom" #~ msgstr "" #~ "Vänster\n" #~ "Höger\n" #~ "Överkant\n" #~ "Nederkant" #~ msgid "© 2009" #~ msgstr "© 2009" #~ msgid "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager" #~ msgstr "" #~ "Mathias Brodala\n" #~ " \n" #~ " Översättningsansvarig" #~ msgid "Remove All" #~ msgstr "Ta bort alla" #~ msgid "" #~ "Automatic\n" #~ "GNOME\n" #~ "ALSA\n" #~ "OSS\n" #~ "PulseAudio\n" #~ "JACK" #~ msgstr "" #~ "Automatisk\n" #~ "GNOME\n" #~ "ALSA\n" #~ "OSS\n" #~ "PulseAudio\n" #~ "JACK" #~ msgid "Playback engine (requires restart): " #~ msgstr "Uppspelningsmotor (kräver omstart): " #~ msgid "Track _properties" #~ msgstr "Spår_egenskaper" #~ msgid "Install plugin file" #~ msgstr "Installera insticksfil" #~ msgid "Install a third party plugin from a file" #~ msgstr "Installera ett tredjepartsinstick från en fil" #~ msgid "Start/Pause Playback" #~ msgstr "Starta/Pausa uppspelning" #~ msgid "Randomize the order of the current playlist" #~ msgstr "Slumpa ordningen för aktuell spellista" #~ msgid "_Go to Playing Track" #~ msgstr "_Gå till uppspelat spår" #~ msgid "_Export current playlist" #~ msgstr "_Exportera aktuell spellista" #~ msgid "Bookmark this track" #~ msgstr "Bokmärk detta spår" #~ msgid "Delete bookmark" #~ msgstr "Ta bort bokmärke" #~ msgid "Restore Main Window" #~ msgstr "Återställ huvudfönstret" #~ msgid "$title ($length)" #~ msgstr "$title ($length)" #~ msgid " & " #~ msgstr " & " #~ msgid "Seeking: " #~ msgstr "Spolar: " #~ msgid "Artist Line:" #~ msgstr "Artistrad:" #~ msgid "Album Line:" #~ msgstr "Albumrad:" #~ msgid "On Track Change" #~ msgstr "Vid spårbyte" #~ msgid "On Playback Start, Pause or Stop" #~ msgstr "Vid start, paus eller stopp av uppspelning" #~ msgid "Secret Key:" #~ msgstr "Hemlig nyckel:" #~ msgid "Horizontal:" #~ msgstr "Horisontellt:" #~ msgid "Vertical:" #~ msgstr "Vertikalt:" #~ msgid "iPod support" #~ msgstr "iPod-stöd" #~ msgid "A plugin for iPod support" #~ msgstr "Ett instick för iPod-stöd" #~ msgid "" #~ "Show various informations about the track currently playing.\n" #~ "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2" #~ msgstr "" #~ "Visa diverse information om spåret som spelas upp.\n" #~ "Beroende av: libwebkit >= 1.0.1, python-webkit >= 1.1.2" #~ msgid "Tag Covers" #~ msgstr "Taggomslag" #~ msgid "Searches track tags for covers" #~ msgstr "Söker i spårtaggarna efter omslagsbilder" #~ msgid "Add to custom playlist" #~ msgstr "Lägg till i anpassad spellista" #~ msgid "_Rename Playlist" #~ msgstr "_Byt namn på spellista" #~ msgid "_Save As Custom Playlist" #~ msgstr "_Spara som anpassad spellista" #~ msgid "Basic" #~ msgstr "Grundläggande" #~ msgid "_Save Changes To Playlist" #~ msgstr "_Spara ändringar i spellista" #~ msgid "New custom playlist name:" #~ msgstr "Nytt namn på anpassad spellista:" #~ msgid "_Randomize Playlist" #~ msgstr "S_lumpmässig spellista" #~ msgid "Use Media Icons For Pause, Stop and Resume" #~ msgstr "Använd mediaikoner för paus, stoppa och återuppta" #~ msgid "When GUI is Focused" #~ msgstr "När grafiska gränssnittet har fokus" #~ msgid "" #~ "To sign up for an Amazon AWS account and get \n" #~ "this information visit http://aws.amazon.com/" #~ msgstr "" #~ "Besök http://aws.amazon.com/ för att registrera \n" #~ "ett Amazon AWS-konto och få denna information" #~ msgid "" #~ "Message that should be displayed in the body of the notification. In each " #~ "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced " #~ "by their respective values. If the tag is not known, \"Unknown\" will be " #~ "filled in its place" #~ msgstr "" #~ "Meddelande som ska visas i själva notifieringen. Texten \"%(title)s\", " #~ "\"%(artist)s\" och \"%(album)s\" kommer alltid att ersättas av sina " #~ "respektive värden. Om taggen inte är känd så kommer \"Okänd\" att skrivas " #~ "ut istället" #~ msgid "Track title format:" #~ msgstr "Format för spårtitel:" #~ msgid "Creates an MPRIS D-Bus object to control Exaile" #~ msgstr "Skapar ett MPRIS D-Bus-objekt för att styra Exaile" #~ msgid "" #~ "Adds support for playing audio CDs.\n" #~ "Requires python-cddb to look up tags." #~ msgstr "" #~ "Lägger till stöd för att spela upp ljudskivor.\n" #~ "Kräver python-cddb för att slå upp taggar." #~ msgid "Plugin to fetch lyrics from lyricwiki.org" #~ msgstr "Insticksmodul för att hämta låttexter från lyricwiki.org" #~ msgid "Could not enable plugin: %s" #~ msgstr "Kunde inte aktivera insticksmodul: %s" #~ msgid "Could not disable plugin: %s" #~ msgstr "Kunde inte inaktivera insticksmodul: %s" #~ msgid "Device class does not support transfer." #~ msgstr "Enhetsklassen saknar stöd för överföringar." #~ msgid "" #~ "This will permanantly delete the selected tracks from your disk, are you " #~ "sure you wish to continue?" #~ msgstr "" #~ "Detta kommer att permanent ta bort de markerade spåren från din disk. Är " #~ "du säker på att du vill fortsätta?" #~ msgid "" #~ "Copyright (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "This program is free software; you can redistribute it and/or modify\n" #~ "it under the terms of the GNU General Public License as published by\n" #~ "the Free Software Foundation; either version 2 of the License, or\n" #~ "(at your option) any later version.\n" #~ "\n" #~ "This program is distributed in the hope that it will be useful,\n" #~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" #~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" #~ "GNU General Public License for more details.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along\n" #~ "with this program; if not, write to the Free Software Foundation, Inc.,\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ msgstr "" #~ "Copyright ©2008-2009 Adam Olsen \n" #~ "\n" #~ "Följande text är en informell översättning som enbart tillhandahålls\n" #~ "i informativt syfte. För alla juridiska tolkningar gäller den engelska\n" #~ "originaltexten.\n" #~ "\n" #~ "Detta program är fri programvara. Du kan distribuera det och/eller\n" #~ "modifiera det under villkoren i GNU General Public License, publicerad\n" #~ "av Free Software Foundation, antingen version 2 eller (om du så vill)\n" #~ "någon senare version.\n" #~ "\n" #~ "Detta program distribueras i hopp om att det ska vara användbart,\n" #~ "men UTAN NÅGON SOM HELST GARANTI, även utan underförstådd\n" #~ "garanti om SÄLJBARHET eller LÄMPLIGHET FÖR NÅGOT SPECIELLT\n" #~ "ÄNDAMÅL. Se GNU General Public License för ytterligare information.\n" #~ "\n" #~ "Du bör ha fått en kopia av GNU General Public License tillsammans\n" #~ "med detta program. Om inte, skriv till Free Software Foundation, Inc.,\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ msgid "Use Album Covers As Icons" #~ msgstr "Använd albumomslag som ikoner" #~ msgid "" #~ "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " #~ "replaced by their respective values. The title will be replaced by " #~ "\"Unknown\" if it is empty." #~ msgstr "" #~ "Taggarna \"%(title)s\", \"%(artist)s\" och \"%(album)s\" kommer att " #~ "ersättas av sina respektive värden. Titeln kommer att ersättas med \"Okänd" #~ "\" om den är tom." #~ msgid "Use alpha transparency (if supported)" #~ msgstr "Använd alfatransparens (om det stöds)" #~ msgid "Selected controls" #~ msgstr "Valda kontroller" #~ msgid "Available controls" #~ msgstr "Tillgängliga kontroller" #~ msgid "Show a popup of the currently playing track" #~ msgstr "Visa ett popup-fönster för det nuvarande spåret" #~ msgid "Toggle Play or Pause" #~ msgstr "Växla mellan uppspelning eller pause" #~ msgid "Set rating for current song" #~ msgstr "Ange betyg för nuvarande låt" #~ msgid "Clear bookmarks" #~ msgstr "Rensa bokmärken" #~ msgid "Pauses/resumes playback on screensaver start/stop" #~ msgstr "Pausar/fortsätter uppspelning när skärmsläckaren startar/stannar" dist/copy/po/PaxHeaders.26361/ar.po0000644000175000017500000000012312233027260015400 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 29 ctime=1382821553.02904693 exaile-3.3.2/po/ar.po0000644000000000000000000036367612233027260014366 0ustar00rootroot00000000000000# Arabic translation for exaile # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2012-07-29 07:09+0000\n" "Last-Translator: Dustin Spicuzza \n" "Language-Team: Arabic \n" "Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n % 100 >= " "3 && n % 100 <= 10 ? 3 : n % 100 >= 11 && n % 100 <= 99 ? 4 : 5;\n" "X-Launchpad-Export-Date: 2012-08-28 05:24+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "أقل من ثانية" msgstr[1] "ثانية واحدة" msgstr[2] "ثانيتان" msgstr[3] "%d ثوان" msgstr[4] "%d ثوان" msgstr[5] "%d ثوان" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "" #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "" #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "" #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "" #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "أبداً" #: ../xl/formatter.py:702 msgid "Today" msgstr "اليوم" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "أمس" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "فشل في النزوح من 0.2.14" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "خيارات" #: ../xl/main.py:421 msgid "Playback Options" msgstr "خيارات التشغيل" #: ../xl/main.py:423 msgid "Play the next track" msgstr "تشغيل المسار التالي" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "تشغيل المسار السابق" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "إيقاف التشغيل" #: ../xl/main.py:429 msgid "Play" msgstr "تشغيل" #: ../xl/main.py:431 msgid "Pause" msgstr "وقف" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "اوقف التشغيل بعد الانتهاء من المقطع الحالي" #: ../xl/main.py:440 msgid "Collection Options" msgstr "مجموعة خيارات" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "موقع" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:454 msgid "Track Options" msgstr "خيارات المسار" #: ../xl/main.py:456 msgid "Query player" msgstr "أستفسار المشغل" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "طباعة عنوان المسار الحالي" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "طباعة الألبوم من المسار الحالي" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "طباعة الفنان من المقطع الحالي" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "طباعة الطول من المقطع الحالي" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "" #: ../xl/main.py:490 msgid "Volume Options" msgstr "خيارات حجم الصوت" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "كتم أو عدم كتم الصوت" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "طباعة النسبة المئوية للصوت الحالي" #: ../xl/main.py:507 msgid "Other Options" msgstr "خيارات أخرى" #: ../xl/main.py:509 msgid "Start new instance" msgstr "بداية نمودج جديد" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "اظهار رقم إصدارة التطبيق، ثم الخروج من التطبيق." #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "بداية مصغرا )الى شريط المهام,إن امكن(" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "تبديل عرض جي-او-اي )إن امكن(" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "البدء في الوضع الآمن -- من المفيد أحيانا اذا وقعت في مشاكل" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "خيارات التطوير/التصحيح" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "دليل" #: ../xl/main.py:536 msgid "Set data directory" msgstr "عين ملف البيانات" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "وحدة" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "" #: ../xl/main.py:543 msgid "LEVEL" msgstr "المستوى" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "إظهار التنقيح الناتج" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "تفعيل التنقيح حذث.xl .يولد الكثير من الناتج" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:555 msgid "TYPE" msgstr "النوع" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "خفض مستوى الانتاج" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "تعطيل دعم (د-بيس/ D-Bus )" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "تعطيل دعم (هال-HAL)" #: ../xl/main.py:580 msgid "Entire Library" msgstr "كامل المكتبة" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "عشوائي %d" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "تصنيف > %d" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "اكسايل لم يكمل التحميلة,ربما عليك الاستماع لإشارة exail_loaded؟" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "وسام" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "أرشيف الإضافة ليس في التنسيق الصحيح." #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "الإضافة المسماة بـ \"% s\" ، مثبتة مسبقاََ." #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "يحتوي أرشيف الإضافة على مسار غير آمن." #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "انت لم تحدد مكان لتحميل قاعدة البنات من" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "انت لم تحدد مكان لحفظ قاعدة البيانات" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "فنانين متنوعين" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "مجهول" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr "" #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" "(فوربيس-Vorbis) مفتوح المصدرة,المرمز الصوتي (لوسي-lossy) مع ناتج جودة عالية " "عند حجم ملف متدني بعد mp3" #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" "المرمز الصوتي الضائع الحر (FLAC) انه مرمز مفتوح المصدر للضغط لكنه لا يتلف " "جودة الصوت" #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "ملكية أبل لتنسيق صوتي ضعيف يصل لجودة صوتية أفضل من MP3 بمعدل أقل." #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" "ملكية و أكبر , لكن الأكثر شعبية,ضياع تنسيق الصوت.VBR يعطي جودة أعلى من CBR ," "لكنه قد لا يكون متوافقا مع بعض المشغلات." #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" "مملوك وقديم ,لكنه أكثر شعبية ,بنية الصوتي لوسي,CBR يعطيك نوعية أقل من VBR ," "لكنه متوافق مع اي مشغل." #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "سريع جدا نوع الصوت(lossless-لوسليس) مع ضغط جيد" #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "تلقائي" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "تخصيص" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "غير مشتغل." #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "نسخة الاعدادات أحدث من الحالية." #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "نحن لا نعرف كيفية تخزين هذا النوع من الاعدادات: " #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "نوع غير معروف من الإعدادات وجدت !" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "" #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "قائمة التشغيل" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "قائمة تشغيل M3U" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "قائمة تشغيل PLS" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "تنسيق غير صالح لـ %s ." #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "قائمة تشغيل ASX" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "قائمة تشغيل XSPF" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "خلط إيقاف" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "خلط المسارات" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "خلط الالبومات" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "ثواني" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "دقائق" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "ساعات" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "ايام" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "أسابيع" #: ../xl/lyrics.py:305 msgid "Local" msgstr "محلي" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "إرفاق الى الحالي" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "فتح دليل" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "نقل الى سلة المهملات" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "الاسم:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "نسق اي معيير" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "نتائج عشوائية" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "حدد الى: " #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr "" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "غير مشغل" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "نقل" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "صامت" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "أعلى مستوى" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "متفرّقة" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "%d تم اختياره" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "#" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "رقم المسار" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "عنوان" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "فنّان" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "المؤلف" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "ألبوم" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "طول" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "قرص" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "رقم القرص" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "تصنيف" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "تاريخ" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "نوع" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "معدل البت" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "المكان" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "إسم الملف" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "عدد التشغيل" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "BPM" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "اخر مشغلة" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "تمت إضافة التاريخ" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "_قابلة للتحجيم" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "_تحجيم تلقائي" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "تصنيف:" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "تبديل" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "تكرار" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "قائمة تشغيل عشوائية" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "قائمة تشغيل جديدة" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "تسمية" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "يتطلب توفير إضافات قائمة التشغيل ديناميكية" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "ديناميكي إضافة المسارات المماثلة إلى قائمة التشغيل" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "إدخل العنوان لفتحه" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "إفتح عنوان" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "الملفات مدعومة" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "ملفات موسيقى" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "ملفات قائمة التشغيل" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "كل الملفات" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "اختيار دليل لفتحه" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "إغلاق %s" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "حفظ التغيير الى %s قبل الاغلاق?" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "تغيراتك ستهمل إذا لم تحفظها" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "غلق بدون حفظ" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "" #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "انت لم تدخل اسم قائمة تشغيلك" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "اسم قائمة التشغيل الذي ادخلته مستعمل بلفعل" #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "إغلاق لسان" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "فاصلة:%d%%..." #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "إكمال إعادة التشغيل" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "وقف إعادة التشغيل" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "بداية إعادة التشغيل" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "مشغل الموسيقى إكسايل" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "_قائمة تشغيل جديدة" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "إفتح عنوان" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "إعادة تشغيل" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "_مجموعة" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "_صف" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "غ_لاف" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "_أعمدة" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "_مدير الأجهزة" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "إعادة_مسح المجموعة" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "إلغاﺀ" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "الكاتب" #: ../xlgui/properties.py:54 msgid "Website" msgstr "الموقع" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "الغلاف" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "" #: ../xlgui/properties.py:57 msgid "Author" msgstr "مؤلف" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "التاريخ الأصلي" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "منظم" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "مايستر" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "المؤدّي" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "حقوق النشر" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "الكلمات" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "مسار" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "الإصدار" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "إي اس ار سي" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "المنظّمة" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "معدل" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "تحرير المسار %(current)d من %(total)d" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "من:" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "تطبيق القيمة الحالية لكل المسارات" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "عرض الغلاف" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "جلب الغلاف" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "حذف الغلاف" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "غلاف لـ %s" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "لم إيجاد أي غلاف" #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "الأيقونة" #: ../xlgui/devices.py:81 msgid "Device" msgstr "جهاز" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "التعريف" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "فحص المجموعة...." #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "يفحص %s..." #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "تبديل الصف" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "طابور متعلقات" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "الخصائص" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "محطة جديدة" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "قائمة تشغيل ناشطة جديدة" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "تحرير" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "احذف قائمة التشغيل" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "هل انت متأكد في إستمرارك حذف قائمة التشغيل المحددة" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "ادخل الاسم المطلوب الجديد لقائمة تشغيلك" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "إعادة تسمية قائمة التشغيل" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "حذف" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "قائمة التشغيل %d" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "إضافة دليل (مسار)" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "الدليل (المسار) لم يضاف." #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" "الدليل (المسار) بالفعل موجود في المجموعة الخاصة بك أو دليل (مسار) فرعي من " "دليل (مسار) آخر في المجموعة الخاصة بك." #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "%sجاري النقل إلى" #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "شحن تيارات..." #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "أضف قناة راديو" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "العنوان:" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "المحطات محفوظة" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "تيارات الراديو" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "تحديث" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "ادخل الاسم المراد لقائمة تشغيلك الجديدة" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "اسلوب - فنان" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "اسلوب - البوم" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "إعادة فحص المجموعة" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "الحجم" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s ك/ب" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "و" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "هو" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "ليس" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "يحتوي" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "لا يحتوي" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "على الأقل" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "على الأكثر" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "قبل" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "بعد" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "بين" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "أكبر من" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "أقل من" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "مشغلات" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "سنة" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "قائمة التشغيل ذكية" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "قائمة تشغيل مخصصة" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "إضافة قائمة تشغيل ذكية" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "تحرير قائمة التشغيل الذكية" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "إعادة التشغيل" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "كمليات" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "تعذر تحميل معلومات الاضافة!" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "" msgstr[1] "" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "لم يتمكن من تعطيل الاضافة!" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "لم يتمكن من تفعيل الاضافة!" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "اختيار الاضافة" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "حزم الكمليات" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "فشل تثبيت ملف الاضافة!" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "الأغلفة" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "المظهر" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "مجموعة" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "أل ال" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "إعادة التعيين على الإعدادات الافتراضية" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "إعادة تشغيل مطلوبة من أجل تفعيل التغيرات." #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "الإجراء" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "إختصار" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "قوائم التشغيل" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "عن (Exaile-إكسيال)" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" "حقوق المؤلف(c) ادام ويلسون \n" "هذا البرنامج من البرمجيات الحرة:يمكنك إعادة توزيعه و/او تعديل\n" "انه تحت رخصة فريق (جنو)الرخصة العمومية العامة من\n" "البرامج الحرة الاساسية:كما النسخة 2 من رخصة ,او\n" "(عند خياراتك)واي نسخة لاحقة\n" "\n" "هذا البرنامج وزع لأمل الافادة\n" "لكن بدون اي ضمنات:بدون حتي مفهوم ضمنيا من الضمان\n" "التجاري او الملاءمة لغرض معين.انظر \n" "(جنو)الرخصة العمومية العامة لتفاصيل اكثر\n" "\n" "يجب عليك استلام نسخة من (جنو)الرخصة العمومية العامة مرفقة\n" "مع هذا البرنامج;إن لم تستلم, راسل مقر البرامج الحرة ,\n" "51 شارع فرانكلين(Franklin),الطابق الخامس,بوسطن, ام 02110-1301 و م أ -" "الولايات المتحدة الامريكية\n" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "مدير الغلاف" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "ضم ترتيب إعادة التشغيل" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "مستكشف الاغلفة" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "_ملف" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "_تحرير" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "_عرض" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "_ادوات" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "_مساعدة" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "المسار السابق" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" "وقف قائمة التشغيل\n" "\n" "نقر يمينا لوقف بعد ميزات المسار" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "المسار التالي" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0:00 / 0:00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "خصائص المسار" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "إ_ضافة وسم" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "_حذف الوسام" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "ab → A_b" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "تكبير اول حرف لكل الاوسمة" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "_سابق" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "_التالي" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "الوصف" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "مدير المجموعات" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "راديو" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "إلحاق كل المسارات الى قائمة التشغيل" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "استيراد القرص" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "إضافه محطه" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "الملفات" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "مجلد الزيارة السابقة" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "مجلد الزيارة القادمة" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "أعلى ملف واحد" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "تجديد قائمة المجلدات" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "المجلد المنزلي" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "بحث: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "مسح حقل البحث" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "المجموعة فارغة." #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "إضافة موسيقى" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" "انعاش منظر المجموعة\n" "(اضغط مفتاح شيفت إعادة مسح المجموعة)" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "ترتيب بحث الأغلفة" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "سحب إلى التصنيف" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "إفتح أخر قائمة تشغيل عند بدأ البرنامج" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "حث لحفظ خصائص قائمة التشغيل عند الإغلاق" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "إستعمل التحويلات المتلاشية عند اجراءات المستخدم" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "مدة التضاؤل(مث):" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "إستعمل التلاشي المتبادل(تجريبي)" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "مدة سير التلاشي (م ث):" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "اختراق صوتي: " #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "إستئناف قائمة التشغيل عند البداية" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "إستئناف قائمة التشغيل عند حالة الوقف" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "عادي" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "موحد)متقلب(" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "كمليات" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "ممكن" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "لم تحدد أي اضافة" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "الكمليات المثبتة" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "المؤلفون:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "الإصدارة:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "نصب" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "لا كمليات مختارة" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "الكمليات المتوفرة" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "تثبيت التحديثات" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "تحديثات" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "تثبيت ملف الاضافة" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "عرض دائم عارضة تاب" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "وضعية تاب" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "أظهر أيقونة الجانبية" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "تصغير إلى شريط المهام" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "قفز الى الاغنية الحالية عند تغيير المسار" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "أظهر شاشة الترحيب في بداية التشغيل" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "يسار" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "يمين" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "أعلى" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "القاع" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "التفضيلات" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr ")نقر بليمين لإعادة لاإفتراضات((" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "استعمل الملف القاعدي لكشف المجموعات" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "مدير الأجهزة" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "اضافة جهاز" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "نوع الجهاز :" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "الأجهزة المرصودة:" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "تخصيص : " #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "مدير الصفوف" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "بحث للطبع..." #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "إيجاد الطبع" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "لا يمكن قراءة عارضة الطباع" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "شريط الازاحة التنفيذي غير متوفر," #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "ساعة منبهة" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "" #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "أدخل مفتاح الكلمة الباحثة" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "نتائج البحث" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "البحث" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "اذهب إلى: " #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "عارض الكلمات" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "AudioScrobbler" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "تفعيل audioscrobbling" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "موازن" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "بلاغ-او اس دي إخطارات" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "من %(album)s" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "إنذار" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "إستيراد القرص المدمج...." #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "قرص صوتي" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "قرص مدمج" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "رقم المسار" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "رقم القرص" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "عدد التشغيلات" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "تنسيق مصغر" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "السابق" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "اذهب إلى المقطوعة السابقة" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "المقطوعة السابقة" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "التالي" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "اذهب إلى المقطوعة التالية" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "المقطوعة التالية" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "تشغيل/وقف" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "قف" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "حجم الصوت" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "تغيير حجم الصوت" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "إستعادة" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "استعادة النافذة الرئيسية" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "استعادة نافذة رئيسية" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "حدد تصنيف القطوعة الحالية" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "محدد المسار" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "شريط التقدم" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "كسب التشغيل" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "إغفال إختيار" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "إلحاق و تشغيل" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "إلحاق" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "جاهز" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "بحث في فهرس Jamendo" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "إستقبال بينات الأغنية..." #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "عرض على الشاشة" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "أغلفة Amazon" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "النشرات الصوتية" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "النشرة الصوتية" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "حذف" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "أدخل عنوان النشرة الصوتية للإضافة" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "تحميل %s..." #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "خطأ تحميل نشرة صوتية." #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "تحميل نشرة صوتية..." #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "غلاف سطح المكتب" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "ساعة متعدد -الإنذار" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "السياق" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "معلومات السياق" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "وضع علامة لهذه المقطوعة" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "إحذف العلامة" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "امسح العلامات." #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "الحافظة" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "يدوي..." #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "ادخل عنوان الإيبي و البوابة للمشاركة" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "ادخل عنوان الإيبي و البوابة" #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" "هذا الخادم لا يدعم اتصالات متعددة.\n" "يجب إيقاف تشغيل قبل تحميل الأغاني." #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "قطع الاتصال مع ملقم (الخادم)" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "تحديد موقع لحفظ" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "DAAP ....إتصال الى" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "موقع الحفظ:" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "حذف الملفات الغير مكتملة" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "الإثنين" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "الثلاثاء" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "الأربعاء" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "الخميس" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "الجمعة" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "السبت" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "الأحد" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "إستعمل تضاؤل" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "التزايد" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "لا شيء" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "كلمة السر :" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "إسم المستخدم:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "0" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "٢٩" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "٥٩" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "١١٩" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "٢٣٧" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "٤٧٤" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "٩٤٧" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "عرض" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "أيقونات" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "ملخص" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "محتوى" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "شفافية الطرفية:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "الخط:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "لون الخلفية:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "تغيير حجم عارضة الغلاف" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "مضمون الرسالة" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "دائما في القمة" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "اظهار قائمة المهام" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "عرض الكل في سطح مكتب" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "كامل" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "بسيط" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "استعمل محمي القصاصات" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "مستوى التصحيح الاحتياطي (dB):" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "رتّب حسب:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "النتائج:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "متقدم" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "تنازلياً" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "تصاعدياً" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "تاريخ الإصدار" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "تصنيف هذا الأسبوع" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "تصنيف هذا الشهر" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "عدد التحميلات" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "الحجم:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "مدة التلاشي:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "أعلى اليسار" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "أعلى اليمين" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "أسفل اليسار" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "أسفل اليمين" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "إضافة" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "إستعمال الاغلفة في قائمة الحافظة (خد تأثير في البداية القادمة)" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "اسم الخادم:" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "الملقم (الخادم) المضيف:" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "المنفذ:" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "الملقم (الخادم) مٌفعّل" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "مرحبا يا العالم" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "إضافة بسيطة لإختبار نظام الإضافات الأساسي" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "معلومات السياق" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "موسوعة المنشورات" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" #~ msgid "Show a popup of the currently playing track" #~ msgstr "إظهار الائحة على المسار المشغل حاليا" #~ msgid "Clear" #~ msgstr "مسح" #~ msgid "Close" #~ msgstr "إغلاق" #~ msgid "Close tab" #~ msgstr "غلق اللسان" #~ msgid "Export as..." #~ msgstr "تصدير ك.." #~ msgid "%d KB" #~ msgstr "%d ك.ب." #~ msgid "GNOME" #~ msgstr "جنوم" #~ msgid "ALSA" #~ msgstr "ا ل اس ا" #~ msgid "OSS" #~ msgstr "او اس اس" #~ msgid "PulseAudio" #~ msgstr "بليساوديو" #~ msgid "JACK" #~ msgstr "جاك" #~ msgid "AWN" #~ msgstr "AWN" #~ msgctxt "yes" #~ msgid "Monday" #~ msgstr "الاثنين" #~ msgctxt "yes" #~ msgid "Tuesday" #~ msgstr "الثلاثاء" #~ msgctxt "yes" #~ msgid "Wednesday" #~ msgstr "الاربعاء" #~ msgctxt "yes" #~ msgid "Thursday" #~ msgstr "الخميس" #~ msgctxt "yes" #~ msgid "Friday" #~ msgstr "الجمعة" #~ msgctxt "yes" #~ msgid "Saturday" #~ msgstr "السبت" #~ msgctxt "yes" #~ msgid "Sunday" #~ msgstr "الأحد" #~ msgctxt "yes" #~ msgid "Minimum volume:" #~ msgstr "الحد الأدنى للحجم الصوت:" #~ msgctxt "yes" #~ msgid "Maximum volume:" #~ msgstr "الحد الأقصى للحجم الصوت:" #~ msgid "Secret key:" #~ msgstr "المفتاح السري:" #~ msgid "Clear Playlist" #~ msgstr "مسح قائمة الاغاني" #~ msgid "Add Playlist" #~ msgstr "أضف قائمة تشغيل" #~ msgid "Number of Plays" #~ msgstr "عدد مرات التشغيل" #~ msgid "Add to Playlist" #~ msgstr "أضف إلى قائمه" #~ msgid "Choose a file" #~ msgstr "إختر ملف" #~ msgid "Get rating for current song" #~ msgstr "الحصول على التصنيف الحالي للأغنية" #~ msgid "Increases the volume by VOL%" #~ msgstr "زد شدّة الصوت بVOL%" #~ msgid "Playing %s" #~ msgstr "جاري تشغيل %s" #~ msgid "Toggle Play or Pause" #~ msgstr "إرجاع التشغيل او تشغيل" #~ msgid "order must be a list or tuple" #~ msgstr "الترتيب يجب ان يكون قائمة او نضد" #~ msgid " New song, fetching cover." #~ msgstr " أغنية جديدة, جلب الغلاف" #~ msgid "A plugin with the name \"%s\" is already installed" #~ msgstr "الملحقة مع الاسم %s منصبة بالفعل" #~ msgid "Plugin archive is not in the correct format" #~ msgstr "حزمة الكمليات ليست في الصفة الصحيحة" #~ msgid "Plugin archive contains an unsafe path" #~ msgstr "محتوى حزمة الملحقات في مسار حرج" #~ msgid "Streaming..." #~ msgstr "تدفق" #~ msgid "New playlist title:" #~ msgstr "عنوان جديد لقائمة التشغيل" #~ msgid "Buffering: 100%..." #~ msgstr "فاصلة:100%.." #~ msgid "Stopped" #~ msgstr "موقف" #~ msgid "Toggle: Stop after selected track" #~ msgstr "متناوب:توقف بعد تحديد المسار" #~ msgid "by %s" #~ msgstr "ب %s" #~ msgid "Save Location:" #~ msgstr "حفظ الموقع:" #~ msgid "Relay Port:" #~ msgstr "تعاقب المنفذ:" #~ msgid "Vertical:" #~ msgstr "عمودي:" #~ msgid "Display window decorations" #~ msgstr "عرض نافدة الديكور" #~ msgid "Center vertically" #~ msgstr "الوسط العمودي" #~ msgid "Horizontal:" #~ msgstr "أفقي:" #~ msgid "Center horizontally" #~ msgstr "الوسط الافقي" #~ msgid "Only artist" #~ msgstr "الفنان فقط" #~ msgid "Both artist and album" #~ msgstr "كلا الفنان و الالبوم" #~ msgid "Summary" #~ msgstr "الملخص" #~ msgid "Only album" #~ msgstr "ألأبوم فقط" #~ msgid "Position" #~ msgstr " الوضعية" #~ msgid "Use Album Covers As Icons" #~ msgstr "إستعمل غلاف الالبوم كأيقونة" #~ msgid "On Track Change" #~ msgstr "في المسار غير" #~ msgid "Use Media Icons For Pause, Stop and Resume" #~ msgstr "إستعمل رمز الوسط للوقف ,توقف و استئناف" #~ msgid "Artist Line:" #~ msgstr "خط الفنان :" #~ msgid "Album Line:" #~ msgstr "خط ألبوم:" #~ msgid "Restart Playlist" #~ msgstr "إعادة قائمة التشغيل" #~ msgid "Name - Time" #~ msgstr "إسم-الزمن" #~ msgid "Timer per Increment:" #~ msgstr "المؤقت الكلي خاطئ" #~ msgid "Time per Increment:" #~ msgstr "وقت لكل خاطئ" #~ msgid "Minimum Volume:" #~ msgstr "أدنى مستوى الصوت" #~ msgid "Enable Fading" #~ msgstr "تفعيل التلاشي" #~ msgid "Fading:" #~ msgstr "التلاشي:" #~ msgid "Alarm:" #~ msgstr "إنذار" #~ msgid "Alarm Name:" #~ msgstr "إسم الانذار :" #~ msgid "Alarm Time:" #~ msgstr "وقت الإنذار:" #~ msgid "Maximum Volume:" #~ msgstr "أعلى مستوى الصوت" #~ msgid " & " #~ msgstr " و " #~ msgid "Alarm Days:" #~ msgstr "إنذار يومي" #~ msgid "Restore Main Window" #~ msgstr "إستعادة النافذة الرئيسية" #~ msgid "Selected controls" #~ msgstr "الرقابة محددة" #~ msgid "Available controls" #~ msgstr "الرقابة موفرة" #~ msgid "Loved Tracks" #~ msgstr "المسارات المفضلة" #~ msgid "Personal" #~ msgstr "شخصي" #~ msgid "Recommended" #~ msgstr "مستحسن" #~ msgid "Neighbourhood" #~ msgstr "جواري" #~ msgid "LastFM Radio" #~ msgstr "آخر أف أم أذاع" #~ msgid "Delete bookmark" #~ msgstr "حفظ الحافظة" #~ msgid "Bookmark this track" #~ msgstr "إحفظ هذا المسار" #~ msgid "Clear bookmarks" #~ msgstr "مسح الحافظة" #~ msgid "General" #~ msgstr "عام" #~ msgid "_Go to Playing Track" #~ msgstr "_إذهب إلى الملف المشتغل" #~ msgid "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "Year - Artist\n" #~ "Year - Album\n" #~ "Artist - Year - Album" #~ msgstr "" #~ "فنان \n" #~ "ألبوم\n" #~ "نوع-فنان\n" #~ "نوع-ألبوم\n" #~ "سنة-فنان\n" #~ "سنة -ألبوم\n" #~ "فنان-سنة-ألبوم" #~ msgid "Resizable" #~ msgstr "قابل للتحجيم" #~ msgid "Stop Playback" #~ msgstr "إيقاف إعادة التشغيل" #~ msgid "_Export current playlist" #~ msgstr "_تصدير قائمة التشغيل الحالية" #~ msgid "Randomize the order of the current playlist" #~ msgstr "عشوائية ترتيب قائمة التشغيل الحالية" #~ msgid "Autosize" #~ msgstr "حجم تلقائي" #~ msgid "Page 1" #~ msgstr "صفحة 1" #~ msgid " - " #~ msgstr " - " #~ msgid " + " #~ msgstr " + " #~ msgid "0/0 tracks" #~ msgstr "0/0مسار" #~ msgid "These options only affect the unified engine." #~ msgstr "هؤلاء الخيارات تؤثر فقط عند عامل موحد" #~ msgid "Remove All" #~ msgstr "إزالة الكل" #~ msgid "" #~ "Automatic\n" #~ "GNOME\n" #~ "ALSA\n" #~ "OSS\n" #~ "PulseAudio\n" #~ "JACK" #~ msgstr "" #~ "تلقائي \n" #~ "جنوم\n" #~ "ألسا\n" #~ "أو أس أس\n" #~ "بليسأوديو\n" #~ "جاك" #~ msgid "" #~ "Normal\n" #~ "Unified (unstable)" #~ msgstr "" #~ "عادي\n" #~ "موحد(غير مستقر)" #~ msgid "" #~ "Exaile Music Player\n" #~ "Not playing" #~ msgstr "" #~ "(Exaile-اكسايل) مشغل المسيقى \n" #~ "غير مشتغل" #~ msgid "Add to custom playlist" #~ msgstr "إضافة الى قائمة التشغيل الخاصة" #~ msgid "_Rename Playlist" #~ msgstr "_تسمية قائمة التشغيل" #~ msgid "In pause: %s" #~ msgstr "موقف :%s" #~ msgid "from %s" #~ msgstr "من %s" #~ msgid "_Close Playlist" #~ msgstr "_غلق قائمة التشغيل" #~ msgid "_Save As Custom Playlist" #~ msgstr "_حفظ كقائمة تشغيل خاصة" #~ msgid "Open" #~ msgstr "فتح" #~ msgid "Export" #~ msgstr "تصدير" #~ msgid "Start" #~ msgstr "ابدأ" #~ msgid "%d covers to fetch" #~ msgstr "%d اغلفة لجلب" #~ msgid "No covers found" #~ msgstr "لاوجود للاغلفة" #~ msgid "Enter the search text" #~ msgstr "ادخل نص البحث" #~ msgid "Choose a file to open" #~ msgstr "اختيار ملف للفتح" #~ msgid "Export current playlist..." #~ msgstr "تصدير قائمة التشغيل الحالية.." #~ msgid "Invalid file extension, file not saved" #~ msgstr "امتداد الملف لايصلح , الملف لم يحفظ" #~ msgid "" #~ "Path is already in your collection, or is a subdirectory of another path " #~ "in your collection" #~ msgstr "المسار بالفعل موجود في المجموعة ,او في مسار فرعي اخر لمجموعتك" #~ msgid "Select File Type (By Extension)" #~ msgstr "اختار نوع الملف (حسب الامتداد)" #~ msgid "File Type" #~ msgstr "نوع الملف" #~ msgid "Extension" #~ msgstr "الامتداد" #~ msgid "Add a directory" #~ msgstr "اضافة مستند" #~ msgid "0:00" #~ msgstr "0:00" #~ msgid "Choose a plugin" #~ msgstr "إختر كملية" #~ msgid " songs" #~ msgstr " الاغاني" #~ msgid "Remove current track from playlist" #~ msgstr "إزالة المسار الحالي من قائمة التشغيل" #~ msgid "Repeat playlist" #~ msgstr "كرر قائمة التشغيل" #~ msgid "Dynamically add similar tracks" #~ msgstr "ديناميكي إضافة المسارات المماثلة" #~ msgid "Add device" #~ msgstr "إضافة جهاز" #~ msgid "Quit" #~ msgstr "إغلاق" #~ msgid "..." #~ msgstr "..." #~ msgid "" #~ "Left\n" #~ "Right\n" #~ "Top\n" #~ "Bottom" #~ msgstr "" #~ "يسار\n" #~ "يمين\n" #~ "اعلى\n" #~ "اسفل" #~ msgid "" #~ "Copyright (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "This program is free software; you can redistribute it and/or modify\n" #~ "it under the terms of the GNU General Public License as published by\n" #~ "the Free Software Foundation; either version 2 of the License, or\n" #~ "(at your option) any later version.\n" #~ "\n" #~ "This program is distributed in the hope that it will be useful,\n" #~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" #~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" #~ "GNU General Public License for more details.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along\n" #~ "with this program; if not, write to the Free Software Foundation, Inc.,\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ msgstr "" #~ "حقوق المؤلف(c) ادام ويلسون \n" #~ "هذا البرنامج من البرمجيات الحرة:يمكنك إعادة توزيعه و/او تعديل\n" #~ "انه تحت رخصة فريق (جنو)الرخصة العمومية العامة من\n" #~ "البرامج الحرة الاساسية:كما النسخة 2 من رخصة ,او\n" #~ "(عند خياراتك)واي نسخة لاحقة\n" #~ "\n" #~ "هذا البرنامج وزع لأمل الافادة\n" #~ "لكن بدون اي ضمنات:بدون حتي مفهوم ضمنيا من الضمان\n" #~ "التجاري او الملاءمة لغرض معين.انظر \n" #~ "(جنو)الرخصة العمومية العامة لتفاصيل اكثر\n" #~ "\n" #~ "يجب عليك استلام نسخة من (جنو)الرخصة العمومية العامة مرفقة\n" #~ "مع هذا البرنامج;إن لم تستلم, راسل مقر البرامج الحرة ,\n" #~ "51 شارع فرانكلين(Franklin),الطابق الخامس,بوسطن, ام 02110-1301 و م أ -" #~ "الولايات المتحدة الامريكية\n" #~ msgid "© 2009" #~ msgstr "© 2009" #~ msgid "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager" #~ msgstr "" #~ "ماتيس برودالا\n" #~ " \n" #~ " مدير الترجمة" #~ msgid "New Search" #~ msgstr "بحث جديد" #~ msgid "_Close" #~ msgstr "_إغلاق" #~ msgid "" #~ "OSD\n" #~ "Drag to the location you'd like the\n" #~ "OSD to appear" #~ msgstr "" #~ "OSD\n" #~ "اسحب الى مكان الذي تريده\n" #~ "سيظهر OSD" #~ msgid "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgstr "" #~ "{عنوان}\n" #~ "{فنان}\n" #~ "في {البوم} - {طول}" #~ msgid "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgstr "حرك داخل شاشة العرض النافذة إلى مكان الذي اردت ظهورها فيه" #~ msgid "Display OSD when hovering over tray icon" #~ msgstr "عرض OSD عند المرور فوق الرمز الجانبي" #~ msgid "Popup" #~ msgstr "منبثقة" #~ msgid "Window Height:" #~ msgstr "إرتفاع النافذة" #~ msgid "Window Width:" #~ msgstr "عرض النافذة" #~ msgid "Opacity Level:" #~ msgstr "مستوى الشفافية" #~ msgid "Display a progressbar in the OSD" #~ msgstr "عرض عارضة التقدم في OSD" #~ msgid "Text Font:" #~ msgstr "خط النص:" #~ msgid "Text Color" #~ msgstr "لون النص" #~ msgid "Show OSD on track change" #~ msgstr "عرض OSD عند تغيير المسار" #~ msgid "Close this dialog" #~ msgstr "غلق هذه العلبة" #~ msgid "Plugin Manager" #~ msgstr "مدير الكمليات" #~ msgid "" #~ "Exaile now uses absolute URI's, please delete/rename your %s directory" #~ msgstr "مستعملي Exaile الان كامل URI ,من فضلك حذف/تسمية %s مستنداتك" #~ msgid "Device class does not support transfer." #~ msgstr "فئة الجهاز لا تدعم النقل." #~ msgid "On Playback Start, Pause or Stop" #~ msgstr "" #~ "في إعادة التشغيل شغل,وقف أو توقف\n" #~ "لا" #~ msgid "Original Album" #~ msgstr "الألبوم الأصلي" #~ msgid "Original Artist" #~ msgstr "الفنان الأصلي" #~ msgid "Delete track" #~ msgstr "إحذف المسار" #~ msgid "Add item" #~ msgstr "أضف عنصرا" #~ msgid "Plugin to fetch lyrics from lyricwiki.org" #~ msgstr "إضافة لجلب نشرات من lyricwiki.org" #~ msgid "Filter event debug output" #~ msgstr "مرشح أحدث التنقيح الناتج" #~ msgid "Original Date" #~ msgstr "معلومات اصلية" #~ msgid "Encoded By" #~ msgstr "مرمز بي" #~ msgid "Date Added" #~ msgstr "تاريخ الإضافة" #~ msgid "Save As..." #~ msgstr "احفظ باسم..." #~ msgid "Last Played" #~ msgstr "المُشغّلة مؤخراً" #~ msgid "Custom playlist name:" #~ msgstr "تخصيص اسم قائمة التشغيل :" #~ msgid "_Save As..." #~ msgstr "_حفظ كـ..." #~ msgid "_Save Changes To Playlist" #~ msgstr "_حفظ التغييرات الى قائمة التشغيل" #~ msgid "C_lear All Tracks" #~ msgstr "مسح كل المسارات" #~ msgid "New custom playlist name:" #~ msgstr "اسم قائمة تشغيل مخصصة جديدة" #~ msgid "Add To New Playlist..." #~ msgstr "إضافة إلى قائمة التشغيل الجديدة ..." #~ msgid "" #~ "This will permanantly delete the selected tracks from your disk, are you " #~ "sure you wish to continue?" #~ msgstr "" #~ "هذا حذف دائم للمسارات المحددة من القرص ، هل أنت متأكد من أنك ترغب في " #~ "الاستمرار؟" #~ msgid "Move selected item up" #~ msgstr "تحريك العنصر المحدد للأعلى" #~ msgid "Move selected item down" #~ msgstr "تحريك العنصر المحدد للأسفل" #~ msgid "Remove item" #~ msgstr "حذف عنصر" #~ msgid "Track _properties" #~ msgstr "مسار خصائص" #~ msgid "_Randomize Playlist" #~ msgstr "_قائمة عشوائية" #~ msgid "Start/Pause Playback" #~ msgstr "بداية/توقيف مجموعة التشغيل" #~ msgid "Install plugin file" #~ msgstr "تنصيب ملف الإضافات" #~ msgid "Install a third party plugin from a file" #~ msgstr "تنصيب ثالث قسم الإضافات من ملف" #~ msgid "Playback engine (requires restart): " #~ msgstr "محرك قائمة التشغيل)يتطلب إعادة التشغيل( " #~ msgid "Use alpha transparency (if supported)" #~ msgstr "استخدم شفافية الفا )إن أعتمد(" #~ msgid "Select a save location" #~ msgstr "حدد موقع حفظ" #~ msgid "Print the position inside the current track as time" #~ msgstr "طباعة التموضع داخل المقطع الحالي كوقت" #~ msgid "Print the progress inside the current track as percentage" #~ msgstr "طباعة التموضع داخل المقطع الحالي كنسبة" #~ msgid "Set rating for current song" #~ msgstr "حدد التصنيف للأغنية الحالية" #~ msgid "Decreases the volume by VOL%" #~ msgstr "نقصان الصوت ب VOL%" #~ msgid "No track" #~ msgstr "لايوجد مقطع" #~ msgid "%(year)d-%(month)02d-%(day)02d" #~ msgstr "%(year)d-%(month)02d-%(day)02d" #~ msgid "Search:" #~ msgstr "البحث عن:" dist/copy/po/PaxHeaders.26361/nb.po0000644000175000017500000000012412233027260015376 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.073046931 exaile-3.3.2/po/nb.po0000644000000000000000000033534612233027260014354 0ustar00rootroot00000000000000# Norwegian Bokmal translation for exaile # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2012-07-29 07:17+0000\n" "Last-Translator: Simen Heggestøyl \n" "Language-Team: Norwegian Bokmal \n" "Language: nb\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-08-28 05:27+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "%d dag, " msgstr[1] "%d dager, " #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "%d time, " msgstr[1] "%d timer, " #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "%d minutt, " msgstr[1] "%d minutter, " #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d sekund" msgstr[1] "%d sekunder" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "%dd, " #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "%dt, " #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "%dm, " #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "%ds" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "%dd " #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "%d:%02d:%02d" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "%d:%02d" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "Aldri" #: ../xl/formatter.py:702 msgid "Today" msgstr "I dag" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "I går" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "Mislyktes i å migrere fra 0.2.14" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "Instillinger" #: ../xl/main.py:421 msgid "Playback Options" msgstr "Avspillings valg" #: ../xl/main.py:423 msgid "Play the next track" msgstr "Spill neste spor" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "Spill forrige spor" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "Stopp avspilling" #: ../xl/main.py:429 msgid "Play" msgstr "Spill" #: ../xl/main.py:431 msgid "Pause" msgstr "Pause" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "Pause eller fortsett avspilling" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "Stopp avspilling etter gjeldende spor" #: ../xl/main.py:440 msgid "Collection Options" msgstr "Samlingsinnstillinger" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "PLASERING" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:454 msgid "Track Options" msgstr "Sporinnstillinger" #: ../xl/main.py:456 msgid "Query player" msgstr "Spør spiller" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "Skriv tittelen på gjeldende spor" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "Skriv albumet fra gjeldende spor" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "Skriv artist fra gjeldende spor" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "Skriv lengden på gjeldenende spor" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "N" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "" #: ../xl/main.py:490 msgid "Volume Options" msgstr "Voluminnstillinger" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "Øker volumet med N%" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "Demp eller slå på lyden" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "Skriv ut nåværende volumprosent" #: ../xl/main.py:507 msgid "Other Options" msgstr "Andre valg" #: ../xl/main.py:509 msgid "Start new instance" msgstr "Start ny instans" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "Vis denne hjelpemeldingen og avslutt" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "Vis programmets versjonnummer og avslutt." #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "Start minimert (i systemkurven, hvis mulig)" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "Skift synlighet av vindu (hvis mulig)" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "Start i sikkermodus - kan være nyttig når du støter på problemer" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "Ikke importer gammel data fra version 0.2.x" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "KATALOG" #: ../xl/main.py:536 msgid "Set data directory" msgstr "Sett datakatalog" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "" #: ../xl/main.py:543 msgid "LEVEL" msgstr "" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "Vis feilsøkingsresultater" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "Aktiver avlusing av xl.event. Genererer MYE utdata" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:555 msgid "TYPE" msgstr "TYPE" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "Reduser utdatanivået" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "Deaktiver D-Bus-støtte" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "Deaktiver HAL-støtte." #: ../xl/main.py:580 msgid "Entire Library" msgstr "Hele biblioteket" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "Tilfeldig %d" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "Rangering > %d" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" "Exaile er ikke ferdig med å laste. Kanskje du burde se etter exaile_loaded " "signalet?" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "Knagger" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "" #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "Du har ikke spesifisert hvor db skal hentes fra" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "Du har ikke spesifisert plassering for å lagre db" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "Diverse artister" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "Ukjent" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr " / " #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" "Free Lossless Audio Codec (FLAC) er en åpen kodek som komprimerer uten å " "degradere lydkvaliteten." #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" "Apples proprietære, kvalitetstapende lydformat som oppnår bedre lydkvalitet " "enn MP3 ved lavere bitrater." #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" "Et proprietært og eldre, men også populært, kvalitetstapende lydformat. VBR " "gir høyere kvalitet enn CBR, men kan være ukompatible med noen avspillere." #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" "Et proprietært og eldre, men også populært, kvalitetstapende lydformat. CBR " "gir lavere kvalitet enn VBR, men er kompatibel med alle avspillere." #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "Et veldig raskt Fritt tapsfritt lydformat med god kompresjon." #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "Automatisk" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "Egendefinert" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "Spiller ikke." #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" "status: %(status)s, tittel: %(title)s, artist: %(artist)s, album: %(album)s, " "lengde: %(length)s, posisjon: %(progress)s%% [%(position)s]" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "Innstillingsversjon er nyere enn eksisterende." #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "Vi vet ikke hvordan vi skal lagre den type innstilling: " #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "En ukjent type innstilling ble funnet!" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "Ugyldig spillelistetype." #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "Spilleliste" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "M3U Spilleliste" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "PLS Spilleliste" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "" #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "ASX Spilleliste" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "XSPF Spilleliste" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "Omstokk A_v" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "Omstokk _Spor" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "Omstokk _Album" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "sekunder" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "minutter" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "timer" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "dager" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "uker" #: ../xl/lyrics.py:305 msgid "Local" msgstr "Lokal" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "Føy til nåverende" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "Åpne mappe" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "Navn:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "Oppfyll ett av disse kriteriene" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "Tilfeldiggjør resultater" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "Avgrens til: " #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr " spor" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "Spiller ikke" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "Flytt" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "Dempet" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "%d%%" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "Fullt Volum" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "Forskjellig" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "%d valgt" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "Kø (%d)" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "#" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "Spornummer" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "Tittel" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "Artist" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "Komponist" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "Album" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "Lengde" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "Plate" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "Platenummer" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "Rangering" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "Dato" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "Sjanger" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "Bitrate" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "Plassering" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "Filnavn" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "Ganger spilt" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "BPM" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "Sist spilt" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "Dato lagt til" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "Rangering:" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "Tilfeldig" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "Repeter" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "Dynamisk" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "Tilfeldiggjør Spilleliste" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "Ny spilleliste" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "Gi nytt navn" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "Legg til lignende spor i spillelisten dynamisk" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "Åpne nettadresse" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "Støttede filer" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "Musikkfiler" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "Spillelistefiler" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "Alle Filer" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "Lukk %s" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "Lagre endringer i %s før lukking?" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "Endringene dine vil gå tapt hvis du ikke lagrer dem" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "Lukk uten a lagre" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "Lagret %(count)s av %(total)s." #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "Du oppgav ikke noe navn for spillelisten din" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "Spillelistenavnet du oppgav er allerede i bruk." #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "Lukk fane" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "Bufrer: %d%%..." #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "Fortsett Avspilling" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "Pause Avspilling" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "Start Avspilling" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "Exaile Musikkavspiller" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "_Ny spilleliste" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "Åpne _URL" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "Omstart" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "_Samling" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "_Kø" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "_Omslag" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "_Kolonner" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "_Enhetsbehandler" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "_Søk igjennom samlingen på nytt" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "Avbryt" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "Originalt album" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "Lyriker" #: ../xlgui/properties.py:54 msgid "Website" msgstr "Nettsted" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "Omslag" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "Original artist" #: ../xlgui/properties.py:57 msgid "Author" msgstr "Forfatter" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "Original dato" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "Arrangør" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "Dirigent" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "Artist" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "Opphavsrett" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "Sangtekst" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "Spor" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "Versjon" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "ISRC" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "Kodet av" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "Organisasjon" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "Endret" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "Ganger spilt av" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "Redigerer spor %(current)d av %(total)d" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "av:" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "Gi alle spor denne verdien" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "Vis omslag" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "Hent omslag" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "Fjern omslag" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "Omslag for %s" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "Omslagsinnstillinger for %(artist)s - %(album)s" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "Fant ingen omslag." #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "Ikon" #: ../xlgui/devices.py:81 msgid "Device" msgstr "Enhet" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "Driver" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "Skanner samlingen..." #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "Søker %s..." #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "Endre kø" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "Køliste" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "Egenskaper" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "Ny Stasjon" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "Ny Smart Spilleliste" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "Rediger" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "Slett spilleliste" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "Er du sikker på at du vil slette den valgte spillelisten permanent?" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "Oppgi det nye navnet du ønsker for spillelisten din" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "Gi nytt navn til spilleliste" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "Fjern" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "Spilleliste %d" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "Legg til en katalog" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "Overfører til %s..." #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "Laster inn strømmer..." #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "Legg til Radiostasjon" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "STI:" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "Lagrede stasjoner" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "Radiostrømmer" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "Oppdater" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "Skriv inn navnet til den nye spillelisten" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "Sjanger - Artist" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "Sjanger - Album" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "Søk igjennom samlingen igjen" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "Størrelse" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s KB" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "og" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "er" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "er ikke" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "inneholder" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "inneholder ikke" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "minst" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "høyst" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "før" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "etter" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "mellom" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "større enn" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "mindre enn" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "Spiller" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "År" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "Smarte spillelister" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "Egne spillelister" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "Ny smart spilleliste" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "Rediger smart spilleliste" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "Avspilling" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "Programtillegg" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "" msgstr[1] "" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "Programtilleggsarkiv" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "Omslag" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "Utseende" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "Samling" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "Tilbakestill til standard" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "Restart Exaile?" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "Handling" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "Snarvei" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "Spillelister" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "Om Exaile" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "Omslagsbehandler" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "Stokk om avspillingsrekkefølgen" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "Gjenta avspilling" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "Omslagsfinner" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "_Fil" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "_Rediger" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "_Visning" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "_Verktøy" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "_Hjelp" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "Forrige spor" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "Neste spor" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0:00 / 0:00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "Sporegenskaper" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "L_egg til knagg" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "_Fjern knagg" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "Stor forbokstav på alle knagger" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "_Forrige" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "_Neste" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "Beskrivelse:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "Samlingshåndterer" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "Radio" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "Legg alle spor til på Spillelisten" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "Importer CD" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "Legg til stasjon" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "Filer" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "Forrige besøkte katalog" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "Neste besøkte katalog" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "Opp en katalog" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "Oppdater katalogliste" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "Hjemmekatalog" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "Søk: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "Tøm søkefeltet" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "Tom samling." #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "Legg til Musikk" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "Bruk omslag fra lokale filer" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "Søkerekkefølge på omslag:" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "(Dra for å bytte posisjon)" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "Åpne siste spilleliste ved oppstart" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "Spør om endret spilleliste skal lagres ved lukking" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "" #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "Fortsett avspilling ved start" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "Fortsett avspilling i pausemodus" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "Normal" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "Tillegg" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "Aktivert" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "Installerte programtillegg" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "Forfattere:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "Versjon:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "Installér" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "Ingen tillegg er valgt" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "Tilgjengelige tillegg" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "Installér oppdateringer" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "Oppdateringer" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "Vis alltid fanelinja" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "Faneplassering:" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "Vis systemkurvikon" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "Minimer til systemkurv" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "Hopp til gjeldene sang ved sporbytte" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "Vis oppstartsskjermbilde ved oppstart" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "Venstre" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "Høyre" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "Øverst" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "Nederst" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "Innstillinger" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "(Høyreklikk for å gjenopprette standardinnstillinger)" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "Bruk filbasert gjenkjenning av samlealbum" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "Enhetsbehandler" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "Legg til enhet" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "Enhetstype:" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "Oppdagete enheter:" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "Egendefinert: " #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "Købehandler" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "Søker etter stemning..." #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "Stemning funnet." #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "Kunne ikke lese stemningslinje." #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "Stemningslinje" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "Alarmklokke" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "" #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "Skriv inn nøkkelord for søk" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "Søkeresultater" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "Søk" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "Ingen sangtekst funnet" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "Gå til: " #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "Hvilken som helst" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "Audioscrobbler" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "Aktiver audioscrobbling" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "Lydbalanse" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "Avslutt etter avspilling" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "Datamaskinen vil avsluttes etter avspillingen" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "%(title)s" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "av %(artist)s" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "fra %(album)s" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "Varsle" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" "av %(artist)s\n" "fra %(album)s" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "Importerer CD..." #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "CD-plate" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "CD" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "Spornummer" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "Plate nummer" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "Avspillingsteller" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "Forrige" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "Neste" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "Spill/Pause" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "Stopp" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "Volum" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "Gjenopprett" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "Sporvelger" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "Spillelisteknapp" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "Fremgangslinje" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "Klar" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "Søker i Jamendo-katalogen..." #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "" #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "Skjermvisning" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "Podkaster" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "Podkast" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "Oppdater Podkast" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "Slett" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "Åpne Podkast" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "Laster %s..." #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "Laster Podkaster..." #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "Kunne ikke lagre podkastfil" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "Multialarmklokke" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "Kontekst" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "Slett Bokmerke" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "Bokmerker" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "Manuelt..." #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "Oppgi IP-adresse og port." #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" "Denne serveren støtter ikke flere tilkoblinger.\n" "Du må stoppe avspillingen før du laster ned sanger." #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "Koble til DAAP..." #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "Bruk bølgeformstil" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "Vis kun bølgeform, ikke stemning" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "Bruk fargetema " #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "Basisfarge:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "Basisfarge" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "Lagre til:" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "Slett ufullstendige filer" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "API-nøkkel:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "Mandag" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "Tirsdag" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "Onsdag" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "Torsdag" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "Fredag" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "Lørdag" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "Søndag" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "Bruk overganger" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "Vis omslag" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "Ingen" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "Passord:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "Brukernavn:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "+12 dB" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "0" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "-24 dB" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "29" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "59" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "119" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "237" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "474" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "947" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "1.9K" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "3.8K" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "7.5K" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "15K" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "Ved sporskifte" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "Når hovedvinduet er fokusert" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "Ikoner" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "Sammendrag:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "Innhold" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "Skrifttype:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "Bakgrunnsfarge:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "Bare artist:" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "Bare album:" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "Både artist og album:" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "Ogg Vorbis" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "FLAC" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "AAC" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "MP3 (VBR)" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "WavPack" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "Importformat: " #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "Importkvalitet: " #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "Importsti: " #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "Alltid øverst" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "Vis på alle skrivebord" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "Full" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "Enkelt" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "Sorter etter:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "Resultater:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "Avansert" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "Synkende" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "Stigende" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "Utgivelsesdato" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "Rangering denne uken" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "Rangering denne måneden" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "Antall nedlastinger" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "Sjanger/Knagger" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "Legg til podcast" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "Anker:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "X-forskyvning:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "piksler" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "Y-forskyvning:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "Størrelse:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "Bruk overganger" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "Overgangsvarighet" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "ms" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "Øverst til venstre" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "Øverst til høyre" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "Nede til venstre" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "Nede til høyre" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "Legg til" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "Restart spillelisten" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "Meld deg på Last.fm" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "Navn på tjener:" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "Port:" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "Globale snarveier som bruker xlib (mmkeys.so)" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "LibriVox" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "CD-Avspilling" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "Jamendo" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "Tillater tilgang til Jamendo-katalogen." #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "iPod Support" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "Karaoke" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "Hallo Verden" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" #~ msgid "Close" #~ msgstr "Lukk" #~ msgid "Close tab" #~ msgstr "Lukk fane" #~ msgid "Export as..." #~ msgstr "Eksporter som..." #~ msgid "%d KB" #~ msgstr "%d KB" #~ msgid "GNOME" #~ msgstr "GNOME" #~ msgid "ALSA" #~ msgstr "ALSA" #~ msgid "OSS" #~ msgstr "OSS" #~ msgid "PulseAudio" #~ msgstr "PulseAudio" #~ msgid "JACK" #~ msgstr "JACK" #~ msgid "AWN" #~ msgstr "AWN" #~ msgctxt "yes" #~ msgid "Monday" #~ msgstr "Mandag" #~ msgctxt "yes" #~ msgid "Tuesday" #~ msgstr "Tirsdag" #~ msgctxt "yes" #~ msgid "Wednesday" #~ msgstr "Onsdag" #~ msgctxt "yes" #~ msgid "Thursday" #~ msgstr "Torsdag" #~ msgctxt "yes" #~ msgid "Friday" #~ msgstr "Fredag" #~ msgctxt "yes" #~ msgid "Saturday" #~ msgstr "Lørdag" #~ msgctxt "yes" #~ msgid "Sunday" #~ msgstr "Søndag" #~ msgctxt "yes" #~ msgid "Use Fading" #~ msgstr "Bruk overganger" #~ msgid "Secret key:" #~ msgstr "Hemmelig nøkkel:" #~ msgid "Awn" #~ msgstr "Awn" #~ msgid "General" #~ msgstr "Generelt" #~ msgid "Autosize" #~ msgstr "Autojuster" #~ msgid "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "Year - Artist\n" #~ "Year - Album\n" #~ "Artist - Year - Album" #~ msgstr "" #~ "Artist\n" #~ "Album\n" #~ "Sjanger - Artist\n" #~ "Sjanger - Album\n" #~ "År - Artist\n" #~ "År - Album\n" #~ "Artist - År - Album" #~ msgid "Popup" #~ msgstr "Popup" #~ msgid "Resizable" #~ msgstr "Justerbar" #~ msgid "Show OSD on track change" #~ msgstr "Vis OSD ved sporbytte" #~ msgid "Start" #~ msgstr "Start" #~ msgid "Stopped" #~ msgstr "Stoppet" #~ msgid "Stop Playback" #~ msgstr "Stopp Avspilling" #~ msgid "Text Font:" #~ msgstr "Skrifttype:" #~ msgid "Text Color" #~ msgstr "Tekstfarge" #~ msgid "Vol:" #~ msgstr "Vol:" #~ msgid "_Close" #~ msgstr "_Lukk" #~ msgid "Alarm Days:" #~ msgstr "Alarm Dager:" #~ msgid "Open" #~ msgstr "Åpne" #~ msgid "Add Playlist" #~ msgstr "Legg til Spilleliste" #~ msgid "Playing %s" #~ msgstr "Spiller %s" #~ msgid "from %s" #~ msgstr "fra %s" #~ msgid "Choose a file" #~ msgstr "Velg en fil" #~ msgid "Quit" #~ msgstr "Avslutt" #~ msgid "Relay Port:" #~ msgstr "Relé port:" #~ msgid "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgstr "Flytt skjermvinduet til hvor du vil det skal vises." #~ msgid "Display OSD when hovering over tray icon" #~ msgstr "Vis informasjon når musen er over systemkurv-ikonet" #~ msgid " songs" #~ msgstr " sanger" #~ msgid "" #~ "Path is already in your collection, or is a subdirectory of another path " #~ "in your collection" #~ msgstr "" #~ "Mål er allerede i samlingen din, eller er en undermappe allerede i " #~ "samlingen." #~ msgid "Number of Plays" #~ msgstr "Ganger avspilt" #~ msgid "LastFM Radio" #~ msgstr "LastFM Radio" #~ msgid "Personal" #~ msgstr "Personlig" #~ msgid "Neighbourhood" #~ msgstr "Nabolag" #~ msgid "Loved Tracks" #~ msgstr "Elskede spor" #~ msgid "Recommended" #~ msgstr "Anbefalt" #~ msgid "File Type" #~ msgstr "Filtype" #~ msgid "Extension" #~ msgstr "Utvidelse" #~ msgid "Export" #~ msgstr "Eksporter" #~ msgid "Page 1" #~ msgstr "Side 1" #~ msgid "Add device" #~ msgstr "Legg til enhet" #~ msgid "A plugin with the name \"%s\" is already installed" #~ msgstr "Et tillegg med samme navn \"%s\" er allerede installert" #~ msgid "Plugin archive is not in the correct format" #~ msgstr "Arkivet for tillegg er ikke i riktig format" #~ msgid " New song, fetching cover." #~ msgstr " Ny sang, henter omslag." #~ msgid "Decreases the volume by VOL%" #~ msgstr "Senker volumet med VOL%" #~ msgid "Increases the volume by VOL%" #~ msgstr "Øker volumet med VOL%" #~ msgid "%d covers to fetch" #~ msgstr "%d omslag å hente" #~ msgid "Invalid file extension, file not saved" #~ msgstr "Ugyldig filendelse, fil ikke lagret" #~ msgid "No covers found" #~ msgstr "Fant ingen omslag" #~ msgid "Repeat playlist" #~ msgstr "Gjenta spilleliste" #~ msgid "Add a directory" #~ msgstr "Legg til en katalog" #~ msgid "Choose a file to open" #~ msgstr "Velg en fil som skal åpnes" #~ msgid "0:00" #~ msgstr "0:00" #~ msgid "New playlist title:" #~ msgstr "Ny spillelistetittel:" #~ msgid "Window Width:" #~ msgstr "Vindusbredde:" #~ msgid "Window Height:" #~ msgstr "Vindushøyde:" #~ msgid "Close this dialog" #~ msgstr "Lukk denne dialogen" #~ msgid "..." #~ msgstr "..." #~ msgid " - " #~ msgstr " - " #~ msgid " + " #~ msgstr " + " #~ msgid "0/0 tracks" #~ msgstr "0/0 spor" #~ msgid "Restart Playlist" #~ msgstr "Start Spilleliste på nytt" #~ msgid "Name - Time" #~ msgstr "Navn - Tid" #~ msgid "Only artist" #~ msgstr "Kun artist" #~ msgid "Both artist and album" #~ msgstr "Både artist og album" #~ msgid "Only album" #~ msgstr "Kun album" #~ msgid "Show a popup of the currently playing track" #~ msgstr "Vis spillende spor i et sprettoppvindu" #~ msgid "" #~ "Exaile now uses absolute URI's, please delete/rename your %s directory" #~ msgstr "" #~ "Exaile bruker nå kun absolutte URI-er, vennligst slett/endre navnet på %s " #~ "katalogen din" #~ msgid "%(title)s (by %(artist)s)" #~ msgstr "%(title)s (av %(artist)s)" #~ msgid "by %s" #~ msgstr "av %s" #~ msgid "Export current playlist..." #~ msgstr "Eksporter nåværende spilleliste..." #~ msgid "Remove current track from playlist" #~ msgstr "Fjern spillende spor fra spillelisten" #~ msgid "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgstr "" #~ "{title}\n" #~ "{artist}\n" #~ "på {album} - {length}" #~ msgid "Add to Playlist" #~ msgstr "Legg til spilleliste" #~ msgid "Clear Playlist" #~ msgstr "Tøm Spilleliste" #~ msgid "Enter the search text" #~ msgstr "Skriv inn søketeksten" #~ msgid "Exaile" #~ msgstr "Exaile" #~ msgid "New Search" #~ msgstr "Nytt søk" #~ msgid "Opacity Level:" #~ msgstr "Gjennomsiktighetsnivå:" #~ msgid "Save As..." #~ msgstr "Lagre Som..." #~ msgid "Custom playlist name:" #~ msgstr "Egendefinert spillelistenavn:" #~ msgid " (%(queue_count)d queued)" #~ msgstr " (%(queue_count)d lagt i kø)" #~ msgid "Add to custom playlist" #~ msgstr "Legg til i egendefinert spilleliste" #~ msgid "_Close Playlist" #~ msgstr "_Lukk Spilleliste" #~ msgid "_Save As..." #~ msgstr "Lagre _Som..." #~ msgid "_Save As Custom Playlist" #~ msgstr "Lagre _Som Egendefinert Spilleliste" #~ msgid "Delete track" #~ msgstr "Slett spor" #~ msgid "No track" #~ msgstr "Ikke noe spor" #~ msgid "New custom playlist name:" #~ msgstr "Navn på ny egendefinert spilleliste:" #~ msgid "Add To New Playlist..." #~ msgstr "Legg Til Ny Spilleliste..." #~ msgid "Idle." #~ msgstr "Inaktiv." #~ msgid "" #~ "This will permanantly delete the selected tracks from your disk, are you " #~ "sure you wish to continue?" #~ msgstr "" #~ "Dette vil slette de valgte sporene permanent fra disken din, er du sikker " #~ "på at du vil fortsette?" #~ msgid "Move selected item up" #~ msgstr "Flytt valgt element opp" #~ msgid "Move selected item down" #~ msgstr "Flytt valgt element ned" #~ msgid "Remove item" #~ msgstr "Fjern element" #~ msgid "Add item" #~ msgstr "Legg til element" #~ msgid "File Size:" #~ msgstr "Filstørrelse:" #~ msgid "Date:" #~ msgstr "Dato:" #~ msgid "Details" #~ msgstr "Detaljer" #~ msgid "Bitrate:" #~ msgstr "Bitrate:" #~ msgid "Genre:" #~ msgstr "Sjanger:" #~ msgid "Album:" #~ msgstr "Album:" #~ msgid "Artist:" #~ msgstr "Artist:" #~ msgid "Title:" #~ msgstr "Tittel:" #~ msgid "Length:" #~ msgstr "Lengde:" #~ msgid "© 2009" #~ msgstr "© 2009" #~ msgid "" #~ "Automatic\n" #~ "GNOME\n" #~ "ALSA\n" #~ "OSS\n" #~ "PulseAudio\n" #~ "JACK" #~ msgstr "" #~ "Automatisk\n" #~ "GNOME\n" #~ "ALSA\n" #~ "OSS\n" #~ "PulseAudio\n" #~ "JACK" #~ msgid "" #~ "Left\n" #~ "Right\n" #~ "Top\n" #~ "Bottom" #~ msgstr "" #~ "Venstre\n" #~ "Høyre\n" #~ "Topp\n" #~ "Bunn" #~ msgid "Playback engine (requires restart): " #~ msgstr "Avspillingsmotor (krever omstart): " #~ msgid "Start/Pause Playback" #~ msgstr "Start/Pause Avspilling" #~ msgid "Delete bookmark" #~ msgstr "Slett bokmerke" #~ msgid " & " #~ msgstr " & " #~ msgid "Minimum Volume:" #~ msgstr "Minimalt Volum:" #~ msgid "Maximum Volume:" #~ msgstr "Maksimalt Volum:" #~ msgid "Summary" #~ msgstr "Sammendrag" #~ msgid "Center vertically" #~ msgstr "Sentrer vertikalt" #~ msgid "Center horizontally" #~ msgstr "Sentrer horisontalt" #~ msgid "Position" #~ msgstr "Posisjon" #~ msgid "Print the position inside the current track as time" #~ msgstr "Vis avspillingsposisjon i tid" #~ msgid "Print the progress inside the current track as percentage" #~ msgstr "Vis avspillingsposisjon i prosent" #~ msgid "Filter event debug output" #~ msgstr "Filtrer avlusingshendelse for utdata" #~ msgid "Plugin archive contains an unsafe path" #~ msgstr "Plugginn arkiv inneholder en usikker bane" #~ msgid "Device class does not support transfer." #~ msgstr "Enhetsklassen støtter ikke overføring." #~ msgid "Buffering: 100%..." #~ msgstr "Buffer: 100%" #~ msgid "" #~ "Exaile Music Player\n" #~ "Not playing" #~ msgstr "Exaile Musikkavspiller" #~ msgid "_Rename Playlist" #~ msgstr "_Omdøpe Spilleliste" #~ msgid "_Save Changes To Playlist" #~ msgstr "_Lagre endringer til Spillelisten" #~ msgid "%(playlist_count)d showing, %(collection_count)d in collection" #~ msgstr "%(playlist_count)d viser, %(collection_count)d i samling" #~ msgid "C_lear All Tracks" #~ msgstr "F_jern alle spor" #~ msgid "Could not enable plugin: %s" #~ msgstr "Kunne ikke aktivere programtillegg: %s" #~ msgid "Play Count:" #~ msgstr "Avspillingsteller:" #~ msgid "Could not disable plugin: %s" #~ msgstr "Kunne ikke deaktivere programtillegg: %s" #~ msgid "Dynamically add similar tracks" #~ msgstr "Legg til lignende spor dynamisk" #~ msgid "Track Number:" #~ msgstr "Spor Nummer:" #~ msgid "Use alpha transparency (if supported)" #~ msgstr "Bruk alfagjennomsiktighet (hvis det støttes)" #~ msgid "Remove All" #~ msgstr "Fjern alle" #~ msgid "Randomize the order of the current playlist" #~ msgstr "Stokk om på rekkefølgen i gjeldende spilleliste" #~ msgid "Install plugin file" #~ msgstr "Installer programtilleggsfil" #~ msgid "Install a third party plugin from a file" #~ msgstr "Installer tredjeparts programtillegg fra fil" #~ msgid "Track _properties" #~ msgstr "Spor_Egenskaper" #~ msgid "_Randomize Playlist" #~ msgstr "_Stokk om på Spilleliste" #~ msgid "_Export current playlist" #~ msgstr "_Eksporter gjeldende spilleliste" #~ msgid "_Go to Playing Track" #~ msgstr "_Gå til spillende spor" #~ msgid "Bookmark this track" #~ msgstr "Sett bokmerke på dette sporet" #~ msgid "Clear bookmarks" #~ msgstr "Fjern bokmerkene" #~ msgid "Choose a plugin" #~ msgstr "Velg et programtillegg" #~ msgid "Part" #~ msgstr "Del" #~ msgid "Last Played" #~ msgstr "Sist spilt" #~ msgid "Original Date" #~ msgstr "Original Dato" #~ msgid "Original Artist" #~ msgstr "Original Artist" #~ msgid "Encoded By" #~ msgstr "Kodet Av" #~ msgid "Select a save location" #~ msgstr "Velg sted for lagring" #~ msgid "Restore Main Window" #~ msgstr "Gjenopprett hovedvindu" #~ msgid "Available controls" #~ msgstr "Tilgjengelige kontroller" #~ msgid "Alarm:" #~ msgstr "Alarm" #~ msgid "Alarm Name:" #~ msgstr "Navn på alarm" #~ msgid "Alarm Time:" #~ msgstr "Tid for alarm" #~ msgid "Track title format:" #~ msgstr "Format på sportittel:" #~ msgid "Toggle Play or Pause" #~ msgstr "Start/pause avspilling" #~ msgid "In pause: %s" #~ msgstr "Pauset: %s" #~ msgid "Selected controls" #~ msgstr "Valgte kontroller" #~ msgid "Set rating for current song" #~ msgstr "Ranger spillende sang" #~ msgid "Get rating for current song" #~ msgstr "Hent rangering av spillende sang" #~ msgid "order must be a list or tuple" #~ msgstr "rekkefølge må være en liste eller tuppel" #~ msgid "iPod support" #~ msgstr "iPod-støtte" #~ msgid "A plugin for iPod support" #~ msgstr "Et programtillegg for iPod-støtte" #~ msgid "%(minutes)d:%(seconds)02d" #~ msgstr "%(minutes)d:%(seconds)02d" #~ msgid "%(year)d-%(month)02d-%(day)02d" #~ msgstr "%(year)d-%(month)02d-%(day)02d" #~ msgid "Fading:" #~ msgstr "Overgang:" #~ msgid "Search:" #~ msgstr "Søk:" dist/copy/po/PaxHeaders.26361/ms.po0000644000175000017500000000012312233027260015415 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 29 ctime=1382821553.03304693 exaile-3.3.2/po/ms.po0000644000000000000000000041427112233027260014367 0ustar00rootroot00000000000000# Malay translation for exaile # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2012-07-29 07:16+0000\n" "Last-Translator: Ibrahim Elias \n" "Language-Team: Malay \n" "Language: ms\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-08-28 05:27+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "%d hari, " msgstr[1] "%d hari, " #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "%d jam, " msgstr[1] "%d jam, " #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "%d minit, " msgstr[1] "%d minit, " #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d saat" msgstr[1] "%d saat" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "%dd, " #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "%dh, " #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "%dm, " #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "%ds" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "%dd " #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "%d:%02d:%02d" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "%d:%02d" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "Tidak pernah" #: ../xl/formatter.py:702 msgid "Today" msgstr "Hari ini" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "Semalam" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "Gagal pindah dari 0.2.14" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "Penggunaan: exaile [OPTION]... [URI]" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "Pilihan" #: ../xl/main.py:421 msgid "Playback Options" msgstr "Pilihan Main Balik" #: ../xl/main.py:423 msgid "Play the next track" msgstr "Main trek berikut" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "Main trek sebelum" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "Henti main balik" #: ../xl/main.py:429 msgid "Play" msgstr "Main" #: ../xl/main.py:431 msgid "Pause" msgstr "Jeda" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "Jeda atau sambung semula main balik" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "Henti main balik selepas trek semasa" #: ../xl/main.py:440 msgid "Collection Options" msgstr "Pilihan Koleksi" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "LOKASI" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "Tambah trek dari LOCATION ke dalam koleksi" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "Pilihan Senarai Main" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "Eksport senarai main ke LOKASI" #: ../xl/main.py:454 msgid "Track Options" msgstr "Pilihan Trek" #: ../xl/main.py:456 msgid "Query player" msgstr "Tanya pemain" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "FORMAT" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "Dapatkan keadaan main balik semasa dan jejak maklumat sebagai FORMAT" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "TAGS" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "TAGS untuk diperoleh dari trek semasa, guna dengan --format-query" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "Papar dialog timbul dengan data trek semasa" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "Cetak judul trek semasa" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "Cetak album trek semasa" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "Cetak artis trek semasa" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "Cetak panjang trek semasa" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "N" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "Tetapkan penarafan untuk trek semasa ke N%" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "Dapatkan penarafan untuk trek semasa" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "Cetak kedudukan main balik semasa sebagai masa" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "Cetak kemajuan main balik semasa dalam peratus" #: ../xl/main.py:490 msgid "Volume Options" msgstr "Pilihan Volum" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "Tingkatkan volum sebanyak N%" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "Kurangkan volum sebanyak N%" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "Bisu atau suarakan volum" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "Cetak peratusan volum semasa" #: ../xl/main.py:507 msgid "Other Options" msgstr "Pilihan Lain" #: ../xl/main.py:509 msgid "Start new instance" msgstr "Mulakan tika baru" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "Papar mesej bantuan ini dan keluar" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "Papar versi perisian dan keluar." #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "Mula diminimumkan (ke talam, sekiranya boleh)" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "Togol kebolehlihatan GUI (jika boleh)" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "" "Mula dalam mod selamat - kadang-kala berguna apabila anda hadapi masalah" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "Import secara paksa data lama dari versi 0.2.x (Tindih data semasa)" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "Jangan import data lama dari versi 0.2.x" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" "Jadikan pilihan kawalan seperti --play mulakan Exaile jika ia tidak " "dijalankan" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "Pilihan Nyahpepijat/Pembangunan" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "DIREKTORI" #: ../xl/main.py:536 msgid "Set data directory" msgstr "Tetapkan direktori data" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "Tetapkan direktori data dan konfig" #: ../xl/main.py:540 msgid "MODULE" msgstr "MODUL" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "Hadkan output log ke MODUL" #: ../xl/main.py:543 msgid "LEVEL" msgstr "ARAS" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "Hadkan output log ke ARAS" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "Papar output penyahpepijat" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "Benarkan penyahpepijat xl.event. Janakan TERLALU BANYAK output" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "Tambah nama bebenang ke mesej daftar masuk." #: ../xl/main.py:555 msgid "TYPE" msgstr "JENIS" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "Hadkan nyahpepijat xl.event ke output bagi JENIS" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "Kurangkan aras output" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "Lumpuhkan sokongan D-Bus" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "Lumpuhkan sokongan Hal" #: ../xl/main.py:580 msgid "Entire Library" msgstr "Keseluruhan Pustaka" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "Rawak %d" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "Penarafan > %d" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" "Exaile belum selesai dimuatkan. Mungkin anda patut dengari isyarat exaile " "dimuatkan?" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "Tag" #: ../xl/covers.py:505 msgid "Local file" msgstr "Fail setempat" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "Arkib pemalam bukan dalam format yang betul." #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "Pemalam bernama \"%s\" sudah pun dipasang." #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "Arkib pemalam mengandungi laluan tidak selamat." #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "Anda tidak tentukan lokasi untuk muatkan db" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "Anda tidak tetapkan lokasi untuk simpan db" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "Pelbagai Artis" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "Tidak Ketahui" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr " / " #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "%dk" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" "Vorbis merupakan kodeks sumber terbuka, audio hilang dengan kualiti output " "tinggi pada saiz fail yang rendah dari MP3." #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" "Kodeks Audio Tidak Hilang Percuma (FLAC) merupakan kodeks sumber terbuka " "yang dimampatkan tidak menjejaskan kualiti audio." #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" "Format hilang proprietari Apple yang mempunyai kualiti bunyi yang lebih " "baik dari MP3 berkadar bit rendah." #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" "Proprietari dan lebih berusia, tetapi format audio hilang yang popular. VBR " "berikan kualiti lebih rendah dari CBR tetapi tidak serasi dengan beberapa " "pemain." #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" "Proprietari dan lebih berusia, tetapi format audio hilang yang popular. CBR " "berikan kualiti lebih rendah dari VBR, tetapi serasi dengan mana-mana pemain." #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "" "Format audio tidak hilang Percuma yang sangat pantas dengan pemampatan yang " "baik." #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "Automatik" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "Suai" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "Automatik" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "Tidak dimainkan" #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" "status: %(status)s, tajuk: %(title)s, artis: %(artist)s, album: %(album)s, " "panjang: %(length)s, kedudukan: %(progress)s%% [%(position)s]" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "Versi tetapan lebih baru dari semasa." #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "Kami tidak tahu bagaimana hendak simpan jenis tetapan: " #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "Tetapan jenis Tidak diketahui ditemui!" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "jenis senarai main tidak sah." #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "Senarai Main" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "Senarai Main M3U" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "Senarai Main PLS" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "Format tidak sah untuk %s" #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "Versi tidak disokong %(version)s untuk %(type)s" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "Senarai Main ASX" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "Senarai Main XSPF" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "Kocok _Mati" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "Kocok _Trek" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "Kocok _Album" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "Ulang _Mati" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "Ulang _Semua" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "Ulang _Sekali" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "Dinamik _Mati" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "Dinamik berdasarkan _Artis yang Serupa" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "saat" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "minit" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "jam" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "hari" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "minggu" #: ../xl/lyrics.py:305 msgid "Local" msgstr "lokal" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "Baris Gilir" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "Gantikan Semasa" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "Tambah ke Semasa" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "Buka Direktori" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" "Fail tidak dapat dialih ke Tong Sampah. Padamnya secara kekal dari cakera?" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "Alih ke Tong Sampah" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "_Papar Trek yang Dimainkan" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "Nama:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "Padan sebarang kriteria" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "Rawakkan hasil" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "Hadkan ke: " #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr " trek" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "Tidak Dimainkan" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "Menjangkau: %s" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "Alih" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "Penanda Baru" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "Dibisukan" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "%d%%" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "Volum Penuh" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" "$title\n" "oleh $artist\n" "dari $album" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "Pelbagai" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "%(track_count)d dari sejumlah (%(total_duration)s)" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "%d dalam koleksi" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "%d dipaparkan" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "%d dipilih" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "Baris Gilir" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "Baris Gilir (%d)" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "#" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "Nombor Trek" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "Judul" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "Artis" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "Penggubah" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "Album" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "Panjang" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "Cakera" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "Nombor Cakera" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "Penarafan" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "Tarikh" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "Genre" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "Kadar Bit" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "Lokasi" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "Nama Fail" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "Kiraan Main" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "BPM" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "Terakhir dimainkan" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "Tarikh ditambah" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "Jadual" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "Ulasan" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "Pengumpulan" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "Boleh Disai_z Semula" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "S_aiz-sendiri" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "Penarafan:" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "Kocok" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "Ulang" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "Dinamik" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "Buang Trek Semasa dari Senarai Main" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "Rawakkan Senarai Main" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "Rawakkan Pemilihan" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "Senarai Main Baru" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "Namakan Semula" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "Henti Main Balik Selepas Trek Ini" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "Teruskan Main Balik Selepas Trek Ini" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "Perlukan pemalam yang menyediakan senarai main dinamik" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "Tambah trek seumpama ke senarai main secara dinamik" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "Masukkan URL untuk dibuka" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "Buka URL" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "Pilih Jenis Fail (mengikut Sambungan)" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "Pilih Media untuk Buka" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "Fail yang Disokong" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "Fail Muzik" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "Fail Senarai Main" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "Semua Fail" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "Pilih Direktori untuk Buka" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "Import Senarai Main" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "Eksport Senarai Main Semasa" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "Guna laluan relatif ke trek" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "Simpan senarai main sebagai %s." #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "Tutup %s" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "Simpan perubahan ke %s sebelum tutup?" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "Perubahan anda akan hilang jika anda tidak simpankannya" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "Tutup Tanpa Simpan" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "Ya untuk semua" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "Bukan untuk semua" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "%(count)s disimpan dari %(total)s." #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "Ralat berlaku semasa menyalin %s: %s" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "Fail wujud, tulis ganti %s ?" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "Nama senarai main:" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "Tambah senarai main baru..." #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "Anda tidak masukkan nama untuk senarai main anda" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "Nama senarai main yang anda masukkan telah gunakan." #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "Tutup Tab" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "$title (oleh $artist)" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "Togol: henti selepas Trek Pilihan" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "Ralat main balik dihadapi!" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "Menimbal: %d%%..." #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "Teruskan Main Balik" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "Jeda Main Balik" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "Eksport senarai main gagal!" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "Mula Main Balik" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "Pemain Muzik Exaile" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "_Senarai Main Baru" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "Buka _URL" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "Buka Direktori" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "_Eskport Senarai Main Semasa" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "Mula Semula" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "_Koleksi" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "Baris _Gilir" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "K_ulit Album" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "Palang Utiliti Senarai _Main" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "_Lajur" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "K_osongkan senarai main" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "_Pengurus Peranti" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "Imbas_semula Koleksi" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "Ciri-ciri _Trek" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "Batal" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "Album asal" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "Penulis lirik" #: ../xlgui/properties.py:54 msgid "Website" msgstr "Laman sesawang" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "Kulit Album" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "Artis asal" #: ../xlgui/properties.py:57 msgid "Author" msgstr "Pengarang" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "Tarikh asal" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "Penyusun" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "Penggubah" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "Penghibur" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "Hakcipta" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "Lirik" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "Trek" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "Versi" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "ISRC" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "Dienkod oleh" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "Organisasi" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "Diubahsuai" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "Bilangan kali dimainkan" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "Penulisan tag gagal" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" "Tag tidak dapat ditulis ke fail berikut:\n" "{files}" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "Menyunting trek %(current)d dari %(total)d" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "Laksana perubahan sebelum menutup?" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "Perubahan akan hilang jika anda tidak laksana ia sekarang." #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "%s:" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "dari:" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "Imej JPEG" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "Imej PNG" #: ../xlgui/properties.py:919 msgid "Image" msgstr "Imej" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "Imej terpaut" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "{width}x{height} piksel" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "{format} ({width}x{height} piksel)" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "Pilih imej untuk ditetapkan sebagai kulit album" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "Format imej disokong" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "Laksana nilai semasa ke semua trek" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "{outstanding} kulit album berbaki untuk diperoleh" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "Semua kulit album diperoleh" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "Mengutip album dan kulit album..." #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "Papar Kulit Album" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "Ambil Kulit Album" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "Buang Kulit Album" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "Kulit album untuk %s" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "Pilihan kulit album untuk %(artist)s - %(album)s" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "Memuatkan..." #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "Tiada kulit album ditemui." #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" "Tiada sumber yang dibenarkan mempunyai kulit album untuk trek ini, cuba " "benarkan sumber lain." #: ../xlgui/devices.py:76 msgid "Icon" msgstr "Ikon" #: ../xlgui/devices.py:81 msgid "Device" msgstr "Peranti" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "Pemacu" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "Mengimbas koleksi..." #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "Mengimbas %s..." #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "Togol Baris Gilir" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "Baris Gilir Item" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "Ciri-ciri" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "Stesen Baru" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "Senarai Main Pintar Baru" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "Sunting" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "Eksport Senarai Main" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "Eksport Fail" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "Padam Senarai Main" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "Pilih direktori untuk mengeksport fail" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "Anda pasti ingin memadam senarai main yang dipilih?" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "Masukkan nama baru untuk senarai main anda" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "Namakan Semula Senarai Main" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "Buang" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "Lepas disini untuk cipta senarai main baru" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "Tab Yang Baru Ditutup" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "Senarai Main %d" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "{playlist_name} ({track_count} trek, ditutup {minutes} min yang lalu)" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "{playlist_name} ({track_count} trek, ditutup {seconds} saat yang lalu)" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "Tambah Direktori" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "Direktori tidak ditambah." #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" "Direktori sudah berada didalam koleksi anda atau merupakan sub-direktori " "dari direktori lain dalam koleksi anda." #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "Memindahkan ke %s..." #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "Memuatkan strim..." #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "Tambah Stesen Radio" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "URL:" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "Stesen yang Disimpan" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "Strim Radio" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "Segar Semula" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "Masukkan nama yang anda mahu untuk senarai main baru anda" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "Genre - Artis" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "Genre - Album" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "Tarikh - Artis" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "Tarikh - Album" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "Artis - (Tarikh - Album)" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "Imbas Semula Koleksi" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "Saiz" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s KB" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "dan" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "adalah" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "bukan" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "ditetapkan" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "tidak ditetapkan" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "mengandungi" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "tidak mengandungi" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "ungkapan nalar" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "bukan ungkapan nalar" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "sekurang-kurangnya" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "selebih-lebihnya" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "sebelum" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "selepas" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "antara" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "lebih dari" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "kurang dari" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "paling akhir" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "bukan yang terakhir" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "Dimainkan" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "Tahun" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "%(first)s, %(second)s dan lain-lain" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "%(first)s dan %(second)s" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "Senarai Main Pintar" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "Senarai Main Suai" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "Tambah Senarai Main Pintar" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "Sunting Senarai Main Pintar" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "Mengeksport %s" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "Main Balik" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "Pemalam" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "Tidak Dikategorikan" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "Tidak dapat muatkan maklumat pemalam!" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "Pemalam gagal: %s" msgstr[1] "Pemalam gagal: %s" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "Tidak dapat lumpuhkan pemalam!" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "Tidak dapat membenarkan pemalam!" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "Pilih Pemalam" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "Arkib Pemalam" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "Pemasangan fail pemalam telah gagal!" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "Kulit Album" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "Penampilan" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "Koleksi" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "'" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "Tetapkan semula kepada sediaan" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "Mula Semula Exaile?" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "Mula semula diperlukan supaya perubahan ini berkesan." #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "Tindakan" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "Pintasan" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "Senarai main" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "Perihal Exaile" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "© 2009-2012" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" "Hakcipta (C) 2008-2010 Adam Olsen \n" "\n" "Program ini adalah perisian percuma; anda boleh edar semula dan/atau " "ubahkannya\n" "dibawah syarat-syarat GNU General Public License sebagaimana yang " "diterbitkan oleh\n" "Free Software Foundation; sama ada versi 2 Lesen tersebut, atau\n" "(pilihan anda) mana-mana versi terbaru.\n" "\n" "Program ini diedarkan dengan harapan ianya akan berguna, TANPA\n" "SEBARANG JAMINAN; termasuk juga KESESUAIAN UNTUK DIPASARKAN\n" "JAMINAN KUALITI, atau JAMINAN ATAS APA JUA SEBAB. Sila lihat GNU\n" "General Public License untuk maklumat lanjut.\n" "\n" "Anda seharusnya menerima satu salinan Lesen Awam Am GNU\n" "bersama-sama dengan program ini; jika tidak, laporkannya ke Free Software\n" "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-130159, " "USA.\n" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "Penterjemah tidak diketahui" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "Pengurus Kulit Album" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "_Dapatkan Kulit Album" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "Kocok tertib main balik" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "Ulang main balik" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "_Gelintar:" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "Pencari Kulit Album" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "Asal kulit album ini" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "_Tetapkan sebagai Kulit Album" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "_Fail" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "_Sunting" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "_Lihat" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "_Alat" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "_Bantuan" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "Trek terdahulu" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" "Henti Main Balik\n" "\n" "Klik Kanan untuk Hentikan Selepas Fitur Trek" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "Trek Seterusnya" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0:00 / 0:00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "Ciri-ciri Trek" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "Tam_bah tag" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "B_uang tag" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "ab → A_b" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "Besarkan huruf pertama bagi setiap tag" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "_Undur" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "_Maju" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "Lain-lain" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "'ikon fail' 32x32 piksel (PNG sahaja)" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "Lain-lain ikon fail" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "Kulit Album (hadapan)" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "Kulit Album (belakang)" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "Halaman risalah" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "Media (iaitu sisi label CD)" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "Artis utama/penghibur utama/penyanyi solo" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "Artis/penghibur" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "Kumpulan/Orkestra" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "Penulis lirik/penulis teks" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "Lokasi Rakaman" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "Semasa rakaman" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "Semasa persembahan" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "Tangkapan skrin cereka/video" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "Ikan yang berwarna terang" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "Ilustrasi" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "Logotip kumpulan/artis" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "Logotip penerbit/studio" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "Klik atau seret fail disini untuk menukar imej kulit album" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "Jenis:" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "Keterangan:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "Pengurus Koleksi" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "Dipantau" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "Radio" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "Tambah Semua Trek ke Senarai Main" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "Import CD" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "Tambah Stesen" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "Fail" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "Direktori yang dilawati sebelum" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "Direktori yang dilawati berikutnya" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "Keatas satu direktori" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "Segar semula senarai direktori" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "Direktori rumah" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "Gelintar: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "Kosongkan medan gelintar" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "Koleksi kosong." #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "Tambah Muzik" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" "Segar semula paparan koleksi\n" "(Tekan kekunci Shift untuk imbas semula koleksi)" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "Guna kulit album yang dibenamkan didalam tag" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "Guna kulit album dari fail setempat" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" "Pilihan ini akan menggelintar fail imej kulit album\n" "dalam folder yang sama dengan fail muzik." #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "Nama fail digemari:" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "Senarai dipisah-tanda-koma bagi nama fail tanpa sambungan fail" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "Dapatkan kulit album secara automatik bila mula main balik" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "Tertib Gelintar Kulit Album:" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "(seret untuk tertibkan semula)" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "Buka senarai main terakhir semasa permulaan" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "Maklum untuk penyimpanan senarai main suai ketika tutup" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "Ganti kandungan dengan dwi-klikkan anak tetingkap sisi" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" "Selain dari menambah, trek ditambah melalui dwi-klik didalam anak tetingkap " "akan gantikan kandugan senarai main semasa." #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "Menambah/Mengganti melalui item menu memicu main balik" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" "Bila menggunakan item menu untuk tambah/ganti trek dalam senarai main, mula " "main balik jika terdapat trek yang sedang bermain. Pilihan ini adalah " "kelakuan lalai sebelum Exaile 0.3.3" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "Baris gilir trek secara lalai selain dari memainkannya" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" "Bila anda dwi-klik atau tekan enter untuk main trek dalam senarai main, " "baris gilirkan trek selain dari memainkannya" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "Enjin main balik: " #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "Use peralihan resap pada tindakan pengguna" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "Jangkamasa resap (ms):" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "Guna resap-silang (PERCUBAAN)" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "Jangkamasa resap-silang (ms):" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "Sinki Audio: " #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "Peranti: " #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "Garis paip sinki suai:" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "Sambung main balik semasa permulaan" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "Sambung main balik dalam keadaan jeda" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "Menambah item pada baris gilir kosong akan mulakan main balik" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "Buang trek dari baris gilir semasa main balik" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "Lanjut ke trek berikut secara automatik" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "Biasa" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "Terpadu (tidak stabil)" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "Pemalam" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "Dibenarkan" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "Tiada Pemalam Dipilih" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "Pemalam Dipasang" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "Pengarang:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "Versi:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "Pasang" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "Tiada Pemalam Dipilih" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "Pemalam yang Ada" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "Pasang Kemaskini" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "Kemaskini" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "Pasang Fail Pemalam" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "Papar kawasan maklumat" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "Kawasan maklumat yang mengandungi seni kulit album dan maklumat trek" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "Papar seni kulit album dalam kawasan maklumat" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "Sentiasa papar palang tab" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "Penempatan tab:" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "Fon senarai main:" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "Tetap semula fon sistem" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "Papar kiraan trek dalam koleksi" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "Guna kelutsinaran alfa:" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" "Amaran: pilihan ini boleh menyebabkan ralat paparan jika digunakan dengan " "pengurus tetingkap tanpa sokongan komposisi." #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "Papar talam ikon" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "Minimakan ke talam" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "Tutup ke talam" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "Lompat ke lagu semasa perubahan trek" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "Papar percikan skrin ketika permulaan" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "Kiri" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "Kanan" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "Atas" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "Bawah" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "Keutamaan" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "Perkataan untuk dijalurkan pada permulaan tag artis semasa mengisih:" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "(Klik kanan untuk tetap semula ke lalai)" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "Guna fail berasaskan pengesanan kompilasi" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "Pengurus Peranti" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "Tambah Peranti" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "Jenis peranti:" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "Peranti yang dikesan:" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "Suai: " #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "Pengurus Baris Gilir" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "Mencari mood..." #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "Mood dijumpai." #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "Tidak dapat baca moodbar." #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "Boleh laku Moodbar tidak didapati." #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "Moodbar" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "Ralat melakukan streamripper" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "Streamripper" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "Trek Diminati dari Last.fm" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "Kunci API tidak sah." #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "Sila pastikan data yang dimasukkan adalah tepat." #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "Tidak boleh mulakan pelayar sesawang" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" "Sila salin URL berikut dan bukakannya didalam pelayar sesawang anda:\n" "{url}" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "Kesayangan" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "Last.fm Disayang" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "Suka Trek Ini" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "Benci Trek Ini" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "Jam Penggera" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "Pemalam ini perlukan sekurang-kurangnya PyGTK 2.22 dan GTK 2.20." #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "Menu Utama" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "Menyambung pelayan Shoutcast..." #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "Ralat menyambung ke pelayan Shoutcast." #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "Masukkan kata kunci gelintar" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "Gelintar Shoutcast" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "Hasil Gelintar" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "Gelintar" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "Tiada lirik ditemui." #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "Pergi ke: " #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "Mana-mana" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "Pelihat Lirik" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "AudioScrobbler" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "Pengesahan berjaya" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "Pengesahan gagal" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "Benarkan audioscrobbling" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "Penyama" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "Matikan selepas Main balik" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "Matikan terjadual" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "Komputer akan dimatikan pada akhir main balik." #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "Matikan Serta Merta" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "Komputer akan dimatikan dalam tempoh %d saat." #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "Matikan gagal" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "Komputer tidak dapat dimatikan menggunakan D-Bus." #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "Pratonton Peranti" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "Pratonton Pemain" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "Pratonton" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "Pemberitahuan notify-osd" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "%(title)s" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "oleh %(artist)s" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "dari %(album)s" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "Konsol IPython - Exaile" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "Papar Konsol IPython" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "Konsol IPython" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "Maklumkan" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" "oleh %(artist)s\n" "dari %(album)s" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "Mengimport CD..." #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "Cakera Audio" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "CD" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "Nombor trek" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "Nombor cakera" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "Kiraan main" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "Artis: " #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" "Tahukah anda...\n" "\n" "%s" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "Wikipedia" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "Papar halaman Wikipedia mengenai penghibur semasa." #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "Ulang Segmen" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "Ulang Permulaan" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "Ulang Penghujung" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "Mod Mini" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "$tracknumber - $title" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "$title oleh $artist" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "$title ($__length)" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "Sebelum" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "Pergi ke trek sebelumnya" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "Trek terdahulu" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "Seterusnya" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "Pergi ke trek berikutnya" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "Trek berikutnya" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "Main/Jeda" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "Mula, jeda atau sambung main balik" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "Mulakan main balik" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "Teruskan main balik" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "Jeda main balik" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "Henti" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "Henti main balik" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "Teruskan main balik selepas trek semasa" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "Volum" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "Ubah volum" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "Pulih" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "Pulihkan tetingkap utama" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "Pulihkan tetingkap utama" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "Pilih penarafan trek semasa" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "Pemilih trek" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "Pemilih senarai trek mudah" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "Butang senarai main" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "Capai senarai main semasa" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "$title ($current_time / $total_time)" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "Butang kemajuan" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "Kemajuan dan capaian main balik ke senarai main semasa" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "Palang kemajuan" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "Kemasjuan dan jangkauan main balik" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "Pengetag Kumpulan" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "Dapatkan semua tag dari koleksi" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "Papar trek dengan semua tag" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "Papar trek dengan tag (suai)" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "Papar trek yang terpilih" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "Papar trek bertag dengan \"%s\"" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "Papar trek dengan semua terpilih" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "Kumpulan" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "Tambah kumpulan baru" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "Padam kumpulan" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "Tambah kategori baru" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "Buang kategori" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "Papar trek dengan terpilih (suai)" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "Nilai tag baru?" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "Masukkan nilai tag baru" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "Kategori Baru?" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "Masukkan nama kategori kumpulan baru" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "Tambah Kumpulan" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "Tambah terpilih ke pilihan" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "Papar trek dengan kumpulan" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "Mesti mempunyai tag ini [AND]" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "Mungkin mempunyai tag ini [OR]" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "Mesti tidak mempunyai tag ini [NOT]" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "Diabaikan" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "Trek Terpilih" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "Gandaan Main Semula" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "Lepas untuk Pilih" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "Tambah dan Main" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "Tambah" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "Sejarah" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "Sejarah main balik" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "Padam sejarah tersimpan?" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "Simpan Sejarah" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "Kosongkan Sejarah" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "Sedia" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "Menggelintar katalog Jamendo..." #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "Memperoleh data lagu" #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "Paparan Atas Skrin" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" "$title\n" "oleh $artist\n" "dari $album" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" "$title\n" "oleh $artist\n" "dari $album" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "Kulit Depan Amazon" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "Podcasts" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "Podcast" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "Segar Semula Podcast" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "Padam" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "Masuk URL podcast untuk ditambahkan" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "Buka Podcast" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "Memuatkan %s..." #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "Ralat memuatkan podcast." #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "Memuatkan Podcasts..." #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "Tidak dapat simpan fail podcast" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "Kulit Depan Desktop" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "Jam Berbilang-Penggera" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "Konteks" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "Maklumat Konteks" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "Tanda Buku Trek Ini" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "Padam Tanda Buku" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "Kosongkan Tanda Buku" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "Tanda Buku" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "Jeda bila Penyelamat Skrin Aktif" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "Pelayan DAAP" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "Kiraan BPM" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "Tetapkan BPM %d pada %s?" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "Klien DAAP" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "Secara Manual..." #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "Masukkan alamat dan port alamat untuk dikongsikan" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "Masukkan alamat dan port IP." #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" "Pelayan ini tidak menyokong sambungan berbilang.\n" "Anda mesti hentikan main balik sebelum memuat turun\n" "lagu." #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "Segar Semula Senarai Pelayan" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "Diputuskan daripada pelayan" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "Pilih Lokasi untuk Menyimpan" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "Sambung ke DAAP..." #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "Gelapkan bahagian telah dimainkan selain menggunakan kursor" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "Aras kegelapan:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "Guna gaya waveform" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "Papar waveform sahaja, bukan mood" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "Guna tema warna " #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "Warna asas:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "Warna asas" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "Simpan lokasi:" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "Port relay:" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "Rip ke fail tunggal" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "Padam fail tidak selesai" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "Kunci API:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "Rahsia:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "Pinta Keizinan Capaian" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" "Pergi ke halaman Akaun API " "Anda untuk dapatkan Kunci API dan secara rahsia serta " "masukkannya disini. Selepas anda masukkannya, pohon keizinan capaian " "dan sahkan untuk selesaikan persediaan." #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "Masa penggera" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "Isnin" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "Selasa" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "Rabu" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "Khamis" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "Jumaat" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "Sabtu" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "Ahad" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "Hari penggera" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "Use Fading" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "Volum minimum:" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "Volum maksimum:" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "Kenaikan:" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "Masa per tokokan:" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "Papar tindihan atas:" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "Papar kulit album" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "Bulatan paparan" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "Peratus teks" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "Tiada" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "Fon lirik:" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "Segar Semula Lirik" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "Serah trek menggunakan Audioscrobbler" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "Papar item menu untuk togolkan penyerahan" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "Kata laluan:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "Nama pengguna:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "Sahkan Data Daftar Masuk" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "pra" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "+12 dB" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "0" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "-24 dB" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "29" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "59" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "119" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "237" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "474" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "947" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "1.9K" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "3.8K" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "7.5K" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "15K" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "Bila trek berubah" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "Bila main balik mula, jeda atau henti" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "Bila tag berubah" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "Bila ikon talam diapungkan" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "Bila tetingkap utama difokus" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "Paparan" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "Guna kulit album sebagai ikon" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "Guna ikon media untuk jeda, henti dan sambung" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "Ikon" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "Baris artis:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" "Tag \"%(title)s\", \"%(artist)s\", dan \"%(album)s\" akan diganti dengan " "nilai masing-masing. Tajuk akan diganti dengan \"Tidak Diketahui\" jika ia " "kosong." #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "Ringkasan:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "Baris album:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "Kandungan" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "Linux" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "LightBG" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "NoColor" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "Kelegapan terminal:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "Fon:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "Warna Teks" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "Warna Latar Belakang:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "Tema Warna IPython:" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "Saiz semula kulit album yang dipapar" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "Hanya artis:" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "Hanya album:" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" "Mesej yang patut dipaparkan didalam badan pemberitahuan. Didalam setiap " "kes, \"%(title)s\", \"%(artist)s\", dan \"%(album)s\" akan digantikan dengan " "nilai masing-masing. Jika tag tidak diketahui, \"Tidak Diketahui\" akan " "digantikan." #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "Kedua-dua artis dan album:" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "Mesej Badan" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "Ogg Vorbis" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "FLAC" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "AAC" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "MP3 (VBR)" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "MP3 (CBR)" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "WavPack" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "Format import: " #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "Kualiti import: " #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "Laluan import: " #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" "Setiap tag boleh digunakan degan $tag atau ${tag}. Tag dalaman " "seperti $__length perlu ditentukan dengan dua tanda underscore." #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "Kod ringkas versi bahasa Wikipedia (ms, en, id, ...)" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "Bahasa:" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "Rumah" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "Undur" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "Maju" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" "Tertib kawalan boleh diubah hanya dengan menyeretnya keatas atau kebawah. " "(Atau tekan Alt+Atas/Bawah)" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "Kawalan" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "Formal Tajuk Trek" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "Sentiasa di atas" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "Papar dalam senarai task" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "Papar hiasan tetingkap:" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "Papar atas semua desktop" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "Papar butang di tetingkap utama" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "Penuh" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "Ringkas" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "Fon kumpulan/kategori:" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "Utamakan pembetulan per-album" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" "Utamakan pembetulan Gandaan Main Semula per-album terhadap pembetul per-trek." #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "Guna perlindungan keratan" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "Lindungi terhadap hingar yang disebabkan oleh terlebih-amplifikasi" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "Amplifikasi tambahan yang dilaksanakan kesemua fail" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "Amplifikasi tambahan (dB):" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" "Pembetulan jatuh-balik bagi fail yang mengalami kekurangan maklumat Gandaan " "Main Semula" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "Aras pembetulan jatuh-balik (dB):" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "Teruskan sejarah selepas pemain ditutup" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "Panjang sejarah:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "Tertib berdasarkan:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "Arah tertib:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "Keputusan:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "Lanjutan" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "Menurun" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "Menaik" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "Tarikh pelepasan" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "Penarafan minggu Ini" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "Penarafan bulan ini" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "Bilangan tambahan senarai main" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "Bilangan muat turun" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "Bilangan diddengari" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "Dibintang" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "Tarikh dibintang" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "Genre/Tag" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" "Setiap tag boleh digunakan dengan $tag atau ${tag}. Tag " "dalaman seperti $__length perlu dinyatakan denga dua tanda " "underscores.\n" "Penanda Atribut Teks Pango disokong." #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "Format Paparan" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "Jangkamasa paparan:" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "Latar Belakang:" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "Papar palang kemajuan" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "Jejari sempadan:" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" "Untuk mendaftar baru ke akaun Amazon AWS dan dapatkan \n" "maklumat ini dengan lawati http://aws." "amazon.com/" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "Tambah Podcast" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "Sauh:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "Ofset X:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "piksel" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "Ofset Y:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "Batalkan saiz kulit album" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "Saiz:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "Guna peresapan" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "Tempoh peresapan:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "ms" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "Atas kiri" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "Atas kanan" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "Bawah kiri" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "Bawah kanan" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "Tambah" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "Penggera" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "Benarkan resap-masuk volum" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "Volum mula resap:" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "Volum henti resap:" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "Tokokan Resap:" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "Masa Resap (s):" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "Mula semula senarai main" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "Main Balik" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "Sila masukkan pengesahihan Last.fm anda:" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "Daftar masuk Last.fm" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" "Guna kulit album dalam menu tanda buku (berkesan pada permulaan berikut)" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "Jangan jeda bila penyelamat skrin tamat" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "Nama pelayan:" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "Hos pelayan :" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "Port:" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "Pelayan dibenarkan" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "Papar pelayan ipv6 (Percubaan)" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "Ingat pelayan DAAP terkini" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "Lagu Semasa" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" "Tetapkan status main didalam Pidgin. Semaka FAQ Pidgin untuk memperoleh " "perkhidmatan yang disokong.‮" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "Pemberitahuan" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" "Menggantikan palang kemajuan piawai dengan moodbar.\n" "Perlukan: moodbar" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "GUI" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "kekunci Multimedia GNOME" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" "Tambah sokongan untuk mengawal Exaile melalui sistem kekunci multimedia " "GNOME's. Serasi dengan GNOME >= 2.20.x" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "Kekunci Panas" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" "Membenarkan anda rekod stream dengan streamripper.\n" "Memerlukan: streamripper" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "Output" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "Kulit Album MusicBrainz" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "Sepadukan MusicBrainz untuk penggelintaran kulit album" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" "Papar trek yang disukai dan benarkan trek untuk trek kegemaran.\n" "\n" "Pastikan kunci API yang sah dan rahsia didalam keutamaan pemalam.\n" "\n" "Perlukan pemalam \"AudioScrobbler\" untuk nama pengguna dan kata laluan." #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "Pengetagan" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "Main muzik pada masa tertentu.\n" "\n" "Perhatian, bila masa yang ditentukan tiba, Exaile akan bertindak sebagaimana " "anda menekan butang main, oleh itu pastikan anda mempunyai muzik yang anda " "mahu dengar dalam senarai main anda" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "Utiliti" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "Butang Menu Utama" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" "Alih menu utama kedalam butang diatas panel.\n" "Perlukan: PyGTK >= 2.22, GTK >= 2.20" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "Kulit Album Last.fm" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "Gelintar Last.fm untuk kulit album" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "Tetapkan kulit album dan tambah beberapa item menu ke AWN" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "Radio Shoutcast" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "Senarai Radio Shoutcast" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "Sumber Media" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "Penyunting tag Ex Falso" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" "Integrasikan penyunting tag Ex Falso dengan Exaile.\n" "Perlukan: Ex Falso." #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "Tambah tab sisi yang paparkan lirik ke trek semasa." #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" "Serah maklumat dengar ke Last.fm dan perkhidmatan seumpama yang menyokong " "AudioSrobbler" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "XKeys" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "Kekunci panas sejagat menggunakan xlib (mmkeys.so)" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "Kekunci multimedia untuk Windows" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" "Tambah sokongan untuk kekunci multimedia (ada dalam kebanyakan papan kekunci " "baru) bila jalankan Exaile\n" "didalam Microsoft Windows.\n" "\n" "Perlukan: pyHook " #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "Penyama 10-jalur" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "Kesan" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "Lyrics Fly" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "Pemalam untuk ambil lirik dari lyricsfly.com" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "Rencat Tangguh" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "Halang Sesi Pengguna daripada menangguh semasa muzik dimainkan" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "Librivox" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "Layari dan dengar buku-audio dari Librivox.org." #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "Benarkan komputer dimatikan pada akhir main balik." #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "Sokongan Pemain Media Storan USB" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" "Sokongan untuk mencapai pemain media mudah alih menggunakan protokol Storan " "USB" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "Peranti" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" "Benarkan memainkan audio melalui peranti sekunder (klik kanan pada senarai " "main dan pilih 'pratonton'). Berguna untuk DJ." #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "Senarai Main Dinamik Last.fm" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "Bahagian belakang Last.fm untuk senarai main dinamik" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "Senarai Main Dinamik" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" "Pemalam ini memaparkan buih pemberitahuan bila lagu dimainkan/sambung/" "berhenti, dengan kulit album lagu atau ikon media bagi menunjukkan tindakan " "terbaru.\n" "\n" "\n" "Perlukan: python-notify\n" "Saranan: notify-osd" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "Menyediakan konsol IPython yang boleh memanipulasi Exaile." #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "Pembangunan" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "Tinbulkan pemberitahuan bila main balik trek bermula" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "Main Balik CD" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" "Tambah sokongan untuk memainkan CD audio.\n" "\n" "Perlukan HAL untuk kesan-sendiri CD\n" "Perlukan cddb-py (http://cddb-py.sourceforge.net/) untuk mencari tag." #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" "Sediakan maklumat Wikipedia mengenai artis semasa.\n" "Perlukan: python-webkit" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "Maklumat" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "Ulang A-B" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "Ulang segmen trek secara berterusan." #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "Mod padat Exaile dengan antaramuka boleh konfigur" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "Pengetag Kumpulan" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" "Pemudah kategorikan muzik anda dengan mengurus tag pengelumpukan/kategori " "dalam fail audio" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "Enable sokongan Gandaan Main Semula" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "Lepaskan Ikon talam" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" "Menyediakan ikon talam alternatif yang mana menerima fail yang dilepaskan.\n" "\n" "Perlukan: python-eggtrayicon" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" "Laksana antaramuka DBUD MPRIS (org.freedesktop.MediaPlayer) untuk mengawal " "Exaile." #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "Jamendo" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "Benarkan capaian ke katalog muzik Jamendo." #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "Tetingkap timbul yang memaparkan maklumat trek yang kini dimainkan." #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "Sokong iPod" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" "Pemalam untuk sokongan iPod. Hanya baca-sahaja buat masa ini, tiada " "pemindahan.\n" "\n" "Perlukan python-gpod." #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" "Gelintar Amazon untuk kulit album\n" "\n" "Untuk gunakan pemalam ini, kunci AWS API dan kunci rahsia diperlukan." #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "Karaoke" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "Buang suara dari audio" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "Tambah Sokongan Podcast Mudah" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "Papar kulit album semasa atas desktop" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "Hello World" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "Pemalam mudah untuk menguji sistem pemalam asas" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "Main muzik pada masa dan hari tertentu.\n" "\n" "Perhatian, bila masa yang ditentukan tiba, Exaile akan bertindak sebagaimana " "anda menekan butang main, oleh itu pastikan anda mempunyai muzik yang anda " "mahu dengar dalam senarai main anda" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "Maklumat Konteksual" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" "Papar pelbagai maklumat tentang trek yang sedang dimainkan.\n" "Memerlukan: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k." "a. PIL)" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "Benarkan simpan/sambung kedudukan tanda buku dalam fail audio." #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" "Jedakan (dan sambung semula secara pilihan) main balik berasaskan status " "penyelamat skrin.\n" "\n" "Perlukan: Penyelamat Skrin GNOME atau KDE (tidak menyokong XScreenSaver " "ataupun XLockMore)" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "Lyrics Wiki" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" "Pemalam untuk dapatkan lirik dari lyrics.wikia.com\n" "Perlukan: python-beautifulsoup" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" "Pemalam ini integrasikan spydaap (http://launchpad.net/spydaap) kedalam " "Exaile supaya koleksi boleh dikongsi melalui DAAP." #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "Benarkan main perkongsian muzik DAAP." #~ msgid "Clear" #~ msgstr "Kosongkan" #~ msgid "Close" #~ msgstr "Tutup" #~ msgid "Close tab" #~ msgstr "Tutup tab" #~ msgid "Export as..." #~ msgstr "Eksport sebagai..." #~ msgid "%d KB" #~ msgstr "%d KB" #~ msgid "© 2009-2010" #~ msgstr "© 2009-2010" #~ msgid "GNOME" #~ msgstr "GNOME" #~ msgid "ALSA" #~ msgstr "ALSA" #~ msgid "OSS" #~ msgstr "OSS" #~ msgid "PulseAudio" #~ msgstr "PulseAudio" #~ msgid "JACK" #~ msgstr "JEK" #~ msgid "AWN" #~ msgstr "AWN" #~ msgid "API Key:" #~ msgstr "Kunci API:" #~ msgctxt "yes" #~ msgid "Monday" #~ msgstr "Isnin" #~ msgctxt "yes" #~ msgid "Tuesday" #~ msgstr "Tuesday" #~ msgctxt "yes" #~ msgid "Wednesday" #~ msgstr "Wednesday" #~ msgctxt "yes" #~ msgid "Thursday" #~ msgstr "Khamis" #~ msgctxt "yes" #~ msgid "Friday" #~ msgstr "Jumaat" #~ msgctxt "yes" #~ msgid "Saturday" #~ msgstr "Sabtu" #~ msgctxt "yes" #~ msgid "Sunday" #~ msgstr "Ahad" #~ msgctxt "yes" #~ msgid "Use Fading" #~ msgstr "Guna Peresapan" #~ msgctxt "yes" #~ msgid "Minimum volume:" #~ msgstr "Volum minimum:" #~ msgctxt "yes" #~ msgid "Maximum volume:" #~ msgstr "Volum maksimum:" #~ msgctxt "yes" #~ msgid "Increment:" #~ msgstr "Tokokan:" #~ msgctxt "yes" #~ msgid "Time per increment:" #~ msgstr "Masa per tokokan:" #~ msgid "Secret key:" #~ msgstr "Kunci rahsia:" #~ msgid "Awn" #~ msgstr "Awn" #~ msgid "Set rating for current song" #~ msgstr "Set rating bagi lagu semasa" #~ msgid "Get rating for current song" #~ msgstr "Dapatkan rating bagi lagu semasa" #~ msgid " New song, fetching cover." #~ msgstr " Lagu baru, mengambil cover." #~ msgid "Streaming..." #~ msgstr "Streaming..." #~ msgid "%(minutes)d:%(seconds)02d" #~ msgstr "%(minutes)d:%(seconds)02d" #~ msgid "New playlist title:" #~ msgstr "Judul playlist baru:" #~ msgid "0:00" #~ msgstr "0:00" #~ msgid "Buffering: 100%..." #~ msgstr "Buffering: 100%..." #~ msgid "" #~ "Exaile Music Player\n" #~ "Not playing" #~ msgstr "" #~ "Exaile Music Player\n" #~ "Not playing" #~ msgid "Stopped" #~ msgstr "Dihentikan" #~ msgid "Save As..." #~ msgstr "Simpan Sebagai..." #~ msgid "Toggle: Stop after selected track" #~ msgstr "Toggle: Berhenti selepas trek dipilih" #~ msgid "by %s" #~ msgstr "oleh %s" #~ msgid "from %s" #~ msgstr "dari %s" #~ msgid "_Save As..." #~ msgstr "_Simpan Sebagai..." #~ msgid "C_lear All Tracks" #~ msgstr "B_ersih Semua Trek" #~ msgid "_Close Playlist" #~ msgstr "_Tutup Playlist" #~ msgid "Delete track" #~ msgstr "Hapus trek" #~ msgid "Export" #~ msgstr "Eksport" #~ msgid "Open" #~ msgstr "Buka" #~ msgid "Start" #~ msgstr "Mula" #~ msgid "No covers found" #~ msgstr "Tiada cover dijumpai" #~ msgid "Enter the search text" #~ msgstr "Masuk teks carian" #~ msgid "Choose a file to open" #~ msgstr "Pilih fail untuk dibuka" #~ msgid "No track" #~ msgstr "Tiada trek" #~ msgid "Export current playlist..." #~ msgstr "Eksport playlist semasa..." #~ msgid "Invalid file extension, file not saved" #~ msgstr "File extension tidak sah, fail tidak disimpan" #~ msgid "Select File Type (By Extension)" #~ msgstr "Pilih Jenis Fail (By Extension)" #~ msgid "File Type" #~ msgstr "Jenis Fail" #~ msgid "Add a directory" #~ msgstr "Tambah direktori" #~ msgid " songs" #~ msgstr " lagu-lagu" #~ msgid "Add To New Playlist..." #~ msgstr "Tambah Ke Playlist Baru..." #~ msgid "Idle." #~ msgstr "Idle." #~ msgid "" #~ "This will permanantly delete the selected tracks from your disk, are you " #~ "sure you wish to continue?" #~ msgstr "" #~ "Ini akan hapuskan trek yang dipilih dari disk anda, adakah anda pasti " #~ "mahu teruskan?" #~ msgid "Move selected item up" #~ msgstr "Alih item dipilih ke atas" #~ msgid "Remove item" #~ msgstr "Buang item" #~ msgid "Could not enable plugin: %s" #~ msgstr "Tidak boleh enable plugin: %s" #~ msgid "Could not disable plugin: %s" #~ msgstr "Tidak boleh disable plugin: %s" #~ msgid "Add item" #~ msgstr "Tambah item" #~ msgid "Move selected item down" #~ msgstr "Alih item dipilih ke bawah" #~ msgid "Remove current track from playlist" #~ msgstr "Buang trek semasa dari playlist" #~ msgid "Add device" #~ msgstr "Tambah device" #~ msgid "Repeat playlist" #~ msgstr "Ulang playlist" #~ msgid "..." #~ msgstr "..." #~ msgid "New Search" #~ msgstr "Carian Baru" #~ msgid "Album:" #~ msgstr "Album:" #~ msgid "Artist:" #~ msgstr "Artis:" #~ msgid "Basic" #~ msgstr "Asas" #~ msgid "Title:" #~ msgstr "Judul:" #~ msgid "File Size:" #~ msgstr "Saiz fail:" #~ msgid "Length:" #~ msgstr "Panjang:" #~ msgid "Date:" #~ msgstr "Tarikh:" #~ msgid "Location:" #~ msgstr "Lokasi:" #~ msgid "Details" #~ msgstr "Perincian" #~ msgid "Play Count:" #~ msgstr "Bilangan Main:" #~ msgid "Bitrate:" #~ msgstr "Bitrate:" #~ msgid "Genre:" #~ msgstr "Genre:" #~ msgid "Track Number:" #~ msgstr "Nombor Trek:" #~ msgid "" #~ "Left\n" #~ "Right\n" #~ "Top\n" #~ "Bottom" #~ msgstr "" #~ "Kiri\n" #~ "Kanan\n" #~ "Atas\n" #~ "Bawah" #~ msgid "" #~ "Copyright (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "This program is free software; you can redistribute it and/or modify\n" #~ "it under the terms of the GNU General Public License as published by\n" #~ "the Free Software Foundation; either version 2 of the License, or\n" #~ "(at your option) any later version.\n" #~ "\n" #~ "This program is distributed in the hope that it will be useful,\n" #~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" #~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" #~ "GNU General Public License for more details.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along\n" #~ "with this program; if not, write to the Free Software Foundation, Inc.,\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ msgstr "" #~ "Hakcipta (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "Program ini adalah perisian percuma; anda boleh edar semula dan/atau " #~ "ubahkannya\n" #~ "dibawah syarat-syarat GNU General Public License sebagaimana yang " #~ "diterbitkan oleh\n" #~ "Free Software Foundation; sama ada versi 2 Lesen tersebut, atau\n" #~ "(pilihan anda) mana-mana versi terbaru.\n" #~ "\n" #~ "This program is distributed in the hope that it will be useful,\n" #~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" #~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" #~ "GNU General Public License for more details.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along\n" #~ "with this program; if not, write to the Free Software Foundation, Inc.,\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ msgid "© 2009" #~ msgstr "© 2009" #~ msgid "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager" #~ msgstr "" #~ "Mathias Brodala\n" #~ " \n" #~ " Pengurus Terjemahan" #~ msgid "_Close" #~ msgstr "_Tutup" #~ msgid "Use alpha transparency (if supported)" #~ msgstr "Guna alpha transparency (jika disokong)" #~ msgid "Window Height:" #~ msgstr "Tinggi Tetingkap:" #~ msgid "Window Width:" #~ msgstr "Lebar Tetingkap:" #~ msgid "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgstr "" #~ "{judul}\n" #~ "{artis}\n" #~ "dalam {album} - {panjang}" #~ msgid "Opacity Level:" #~ msgstr "Kadar Kelegapan:" #~ msgid "Text Color" #~ msgstr "Warna Teks" #~ msgid "Show OSD on track change" #~ msgstr "Papar OSD ketika trek berubah" #~ msgid "Remove All" #~ msgstr "Buang Semua" #~ msgid "" #~ "Automatic\n" #~ "GNOME\n" #~ "ALSA\n" #~ "OSS\n" #~ "PulseAudio\n" #~ "JACK" #~ msgstr "" #~ "Automatic\n" #~ "GNOME\n" #~ "ALSA\n" #~ "OSS\n" #~ "PulseAudio\n" #~ "JACK" #~ msgid "" #~ "Normal\n" #~ "Unified (unstable)" #~ msgstr "" #~ "Normal\n" #~ "Unified (unstable)" #~ msgid "Close this dialog" #~ msgstr "Tutup dialog ini" #~ msgid "Toggle Play or Pause" #~ msgstr "Toggle Play atau Pause" #~ msgid "Print the progress inside the current track as percentage" #~ msgstr "Cetak progres di dalam trek semasa sebagai peratusan" #~ msgid "" #~ "Exaile now uses absolute URI's, please delete/rename your %s directory" #~ msgstr "" #~ "Exaile sekarang menggunakan URI mutlak, sila hapus/rename direktori %s " #~ "anda" #~ msgid "Print the position inside the current track as time" #~ msgstr "Cetak posisi di dalam trek semasa sebagai masa" #~ msgid "Add to custom playlist" #~ msgstr "Tambah ke custom playlist" #~ msgid "_Rename Playlist" #~ msgstr "_Rename Playlist" #~ msgid "%(title)s (by %(artist)s)" #~ msgstr "%(title)s (by %(artist)s)" #~ msgid "In pause: %s" #~ msgstr "In pause: %s" #~ msgid "_Save Changes To Playlist" #~ msgstr "_Simpan Perubahan Ke Playlist" #~ msgid " (%(queue_count)d queued)" #~ msgstr " (%(queue_count)d queued)" #~ msgid "_Save As Custom Playlist" #~ msgstr "_Simpan sebagai Custom Playlist" #~ msgid "Playing %s" #~ msgstr "Playing %s" #~ msgid "Install plugin file" #~ msgstr "Install fail plugin" #~ msgid " + " #~ msgstr " + " #~ msgid "0/0 tracks" #~ msgstr "0/0 tracks" #~ msgid " - " #~ msgstr " - " #~ msgid "Page 1" #~ msgstr "Halaman 1" #~ msgid "Clear Playlist" #~ msgstr "Bersih Playlist" #~ msgid "Vol:" #~ msgstr "Vol:" #~ msgid "Start/Pause Playback" #~ msgstr "Start/Pause Playback" #~ msgid "_Export current playlist" #~ msgstr "_Eksport playlist semasa" #~ msgid "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "Year - Artist\n" #~ "Year - Album\n" #~ "Artist - Year - Album" #~ msgstr "" #~ "Artis\n" #~ "Album\n" #~ "Genre - Artis\n" #~ "Genre - Album\n" #~ "Tahun - Artis\n" #~ "Tahun - Album\n" #~ "Artis - Tahun - Album" #~ msgid "General" #~ msgstr "Umum" #~ msgid "Clear bookmarks" #~ msgstr "Bersih tanda buku" #~ msgid "Delete bookmark" #~ msgstr "Hapus tanda buku" #~ msgid "Stop Playback" #~ msgstr "Stop Playback" #~ msgid " & " #~ msgstr " & " #~ msgid "Alarm:" #~ msgstr "Penggera:" #~ msgid "Alarm Days:" #~ msgstr "Hari Penggera:" #~ msgid "Alarm Name:" #~ msgstr "Nama Penggera:" #~ msgid "Alarm Time:" #~ msgstr "Waktu Penggera:" #~ msgid "Restart Playlist" #~ msgstr "Restart Playlist" #~ msgid "Name - Time" #~ msgstr "Nama - Masa" #~ msgid "Decreases the volume by VOL%" #~ msgstr "Turun volume dengan VOL%" #~ msgid "Increases the volume by VOL%" #~ msgstr "Naik volume dengan VOL%" #~ msgid "Show a popup of the currently playing track" #~ msgstr "Papar popup trek yang sedang dimainkan" #~ msgid "Plugin archive is not in the correct format" #~ msgstr "Arkib plugin bukan dalam format yang betul" #~ msgid "A plugin with the name \"%s\" is already installed" #~ msgstr "Plugin dengan nama \"%s\" sudah diinstall" #~ msgid "%(year)d-%(month)02d-%(day)02d" #~ msgstr "%(year)d-%(month)02d-%(day)02d" #~ msgid "Install a third party plugin from a file" #~ msgstr "Install plugin third party dari fail" #~ msgid "Bookmark this track" #~ msgstr "Tanda buku trek ini" #~ msgid "Restore Main Window" #~ msgstr "Restore Tetingkap Utama" #~ msgid "$title ($length)" #~ msgstr "$title ($length)" #~ msgid "Seeking: " #~ msgstr "Mencari: " #~ msgid "Streamripper can only record streams." #~ msgstr "Streamripper hanya boleh rakam stream." #~ msgid "Maximum Volume:" #~ msgstr "Volume Maksima:" #~ msgid "Minimum Volume:" #~ msgstr "Volume Minima:" #~ msgid "Album Line:" #~ msgstr "Album Line:" #~ msgid "Use Media Icons For Pause, Stop and Resume" #~ msgstr "Guna Ikon Media Untuk Jeda, Berhenti dan Resume" #~ msgid "Use Album Covers As Icons" #~ msgstr "Guna Cover Album Sebagai Ikon" #~ msgid "Artist Line:" #~ msgstr "Artist Line:" #~ msgid "" #~ "To sign up for an Amazon AWS account and get \n" #~ "this information visit http://aws.amazon.com/" #~ msgstr "" #~ "Untuk sign up akaun Amazon AWS dan peroleh \n" #~ "maklumat ini lawati http://aws.amazon.com/" #~ msgid "Secret Key:" #~ msgstr "Kunci Rahsia:" #~ msgid "Both artist and album" #~ msgstr "Kedua-dua artis dan album" #~ msgid "Only artist" #~ msgstr "Hanya artis" #~ msgid "Summary" #~ msgstr "Ringkasan" #~ msgid "Only album" #~ msgstr "Hanya album" #~ msgid "Terminal Opacity:" #~ msgstr "Kelegapan Terminal:" #~ msgid "Display window decorations" #~ msgstr "Papar hiasan tetingkap" #~ msgid "Save Location:" #~ msgstr "Lokasi simpan:" #~ msgid "Relay Port:" #~ msgstr "Port Relay:" #~ msgid "Track title format:" #~ msgstr "Format judul trek:" #~ msgid "Last.fm Dynamic Search" #~ msgstr "Carian Dinamik Last.fm" #~ msgid "iPod support" #~ msgstr "sokongan iPod" #~ msgid "A plugin for iPod support" #~ msgstr "Plugin untuk sokong iPod" #~ msgid "Tag Covers" #~ msgstr "Cover Tag" #~ msgid "Plugin to fetch lyrics from lyricwiki.org" #~ msgstr "Plugin untuk ambil lirik dari lyricwiki.org" #~ msgid "Plugin archive contains an unsafe path" #~ msgstr "Arkib plugin mengandungi path yang tidak selamat" #~ msgid "" #~ "Path is already in your collection, or is a subdirectory of another path " #~ "in your collection" #~ msgstr "" #~ "Path sudah dalam koleksi anda, atau merupakan subdirektori path lain " #~ "dalam koleksi anda" #~ msgid "Custom playlist name:" #~ msgstr "Nama playlist custom:" #~ msgid "%(playlist_count)d showing, %(collection_count)d in collection" #~ msgstr "%(playlist_count)d showing, %(collection_count)d in collection" #~ msgid "Playback engine (requires restart): " #~ msgstr "Enjin Playback (perlu restart): " #~ msgid "Display OSD when hovering over tray icon" #~ msgstr "Papar OSD ketika hover atas ikon tray" #~ msgid "Track _properties" #~ msgstr "Perihal _trek" #~ msgid "_Go to Playing Track" #~ msgstr "_Pergi ke Trek dimainkan" #~ msgid "Selected controls" #~ msgstr "Selected controls" #~ msgid "Available controls" #~ msgstr "Available controls" #~ msgid "Enable Fading" #~ msgstr "Enable Fading" #~ msgid "Fading:" #~ msgstr "Fading:" #~ msgid "Show Menuitem to toggle Submission" #~ msgstr "Show Menuitem to toggle Submission" #~ msgid "Timer per Increment:" #~ msgstr "Timer per Increment:" #~ msgid "Time per Increment:" #~ msgstr "Time per Increment:" #~ msgid "On Tray Icon Hover" #~ msgstr "On Tray Icon Hover" #~ msgid "On Track Change" #~ msgstr "On Track Change" #~ msgid "On Playback Start, Pause or Stop" #~ msgstr "On Playback Start, Pause or Stop" #~ msgid "Creates an MPRIS D-Bus object to control Exaile" #~ msgstr "Cipta objek MPRIS D-Bus untuk kawal Exaile" #~ msgid "" #~ "Adds support for playing audio CDs.\n" #~ "Requires python-cddb to look up tags." #~ msgstr "" #~ "Tambah sokongan untuk memain CD audio.\n" #~ "Memerliukan python-cddb to look up tags." #~ msgid "Filter event debug output" #~ msgstr "Filter event debug output" #~ msgid "order must be a list or tuple" #~ msgstr "order must be a list or tuple" #~ msgid "Device class does not support transfer." #~ msgstr "Kelas peranti tidak sokong pindah." #~ msgid "These options only affect the unified engine." #~ msgstr "Pilihan ini hanya terkesan untuk unified engine." #~ msgid "Dynamically add similar tracks" #~ msgstr "Tambah trek seumpama secara dinamik" #~ msgid "Searches track tags for covers" #~ msgstr "Cari tag ter untuk cover" #~ msgid "When GUI is Focused" #~ msgstr "Apabila GUI difokus" #~ msgid "" #~ "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " #~ "replaced by their respective values. The title will be replaced by " #~ "\"Unknown\" if it is empty." #~ msgstr "" #~ "Tag \"%(title)s\", \"%(artist)s\", and \"%(album)s\" akan diganti dengan " #~ "value berkenaan. Judul akan digantikan dengan \"Unknown\" sekiranya " #~ "kosong." #~ msgid "" #~ "Message that should be displayed in the body of the notification. In each " #~ "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced " #~ "by their respective values. If the tag is not known, \"Unknown\" will be " #~ "filled in its place" #~ msgstr "" #~ "Message that should be displayed in the body of the notification. In each " #~ "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced " #~ "by their respective values. If the tag is not known, \"Unknown\" will be " #~ "filled in its place" #~ msgid "MPRIS" #~ msgstr "MPRIS" #~ msgid "Vertical:" #~ msgstr "Menegak:" #~ msgid "Center horizontally" #~ msgstr "Ditengah mendatar" #~ msgid "Center vertically" #~ msgstr "Ditengah menegak" #~ msgid "Horizontal:" #~ msgstr "Mendatar:" #~ msgid "Position" #~ msgstr "Kedudukan" #~ msgid "" #~ "Show various informations about the track currently playing.\n" #~ "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2" #~ msgstr "" #~ "Paparkan pelbagai maklumat mengenai lagu yang sedang dimainkan.\n" #~ "Kebergantungan: libwebkit >= 1.0.1, python-webkit >= 1.1.2" #~ msgid "%d covers to fetch" #~ msgstr "%d kulit album untuk diambil" #~ msgid "Extension" #~ msgstr "Sambungan" #~ msgid "New custom playlist name:" #~ msgstr "Nama senarai main suai baru:" #~ msgid "Randomize the order of the current playlist" #~ msgstr "Rawakkan tertib senarai main semasa" #~ msgid "_Randomize Playlist" #~ msgstr "_Rawakkan Senarai Main" #~ msgid "Search:" #~ msgstr "Gelintar:" #~ msgid "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgstr "" #~ "Alih tetingkap Paparan Atas Skrin ke lokasi yang anda mahu ianya " #~ "muncul" #~ msgid "Display a progressbar in the OSD" #~ msgstr "Papar palang kemajuan didalam OSD" #~ msgid "Text Font:" #~ msgstr "Fon Teks:" #~ msgid "" #~ "OSD\n" #~ "Drag to the location you'd like the\n" #~ "OSD to appear" #~ msgstr "" #~ "OSD\n" #~ "Seret ke lokasi yang anda mahu\n" #~ "OSD muncul" #~ msgid "Popup" #~ msgstr "Dialog Timbul" #~ msgid "Pauses/resumes playback on screensaver start/stop" #~ msgstr "Jeda/sambung main balik ketika penyelamat skrin mula/berhenti" #~ msgid "Choose a plugin" #~ msgstr "Pilih pemalam" dist/copy/po/PaxHeaders.26361/ja.po0000644000175000017500000000012312233027260015370 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 29 ctime=1382821553.04904693 exaile-3.3.2/po/ja.po0000644000000000000000000032124212233027260014335 0ustar00rootroot00000000000000# Japanese translation for exaile # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2012-07-29 07:14+0000\n" "Last-Translator: Bluish \n" "Language-Team: Japanese \n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Launchpad-Export-Date: 2012-08-28 05:27+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "%d 日, " #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "%d 時間, " #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "%d 分, " #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d 秒" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "%d日, " #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "%d時間, " #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "%d分, " #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "%d秒" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "" #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "" #: ../xl/formatter.py:702 msgid "Today" msgstr "今日" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "昨日" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "0.2.14からの移行に失敗しました" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "設定" #: ../xl/main.py:421 msgid "Playback Options" msgstr "" #: ../xl/main.py:423 msgid "Play the next track" msgstr "次の曲の演奏を開始します" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "前の曲の演奏を開始します" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "再生を停止します" #: ../xl/main.py:429 msgid "Play" msgstr "再生" #: ../xl/main.py:431 msgid "Pause" msgstr "一時停止" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "再生/一時停止" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "現在の曲の演奏終了後に停止します" #: ../xl/main.py:440 msgid "Collection Options" msgstr "コレクションの設定" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:454 msgid "Track Options" msgstr "トラックの設定" #: ../xl/main.py:456 msgid "Query player" msgstr "" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "現在演奏中のトラックのデータをポップアップで表示する" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "現在演奏中のトラックのレーティングを取得する" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "" #: ../xl/main.py:490 msgid "Volume Options" msgstr "音量の設定" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "ミュート/ミュート解除" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "現在の音量を表示する" #: ../xl/main.py:507 msgid "Other Options" msgstr "その他の設定" #: ../xl/main.py:509 msgid "Start new instance" msgstr "" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "" #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "最小化して開始する (可能ならトレイに)" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "" "セーフモードで起動します(通常起動で問題がある場合に効果があることがありま" "す)" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" "バージョン 0.2.x から古いデータを強制的にインポートする (現在のデータを上書き" "します)" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "バージョン 0.2.x から古いデータをインポートしない" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "開発/デバッグの設定" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "ディレクトリ" #: ../xl/main.py:536 msgid "Set data directory" msgstr "" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "" #: ../xl/main.py:543 msgid "LEVEL" msgstr "" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "デバッグ出力を表示する" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:555 msgid "TYPE" msgstr "" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "D-Bus サポートを無効にする" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "HAL サポートを無効にする" #: ../xl/main.py:580 msgid "Entire Library" msgstr "ライブラリ全体" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "ランダム %d" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "レーティング > %d" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "タグ" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "" #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "データベースをロードする場所が設定されていません" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "データベースを保存する場所が設定されていません" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "複数のアーティスト" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "不明" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr " / " #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" "Vorbis はオープンソースの非可逆音声コーデックで、ファイルサイズが小さいときの" "音質が MP3 より優れています。" #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" "Free Lossless Audio Codec (FLAC) はオープンソースの可逆圧縮コーデックで、音質" "の劣化がありません。" #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" "アップルのプロプライエタリ非可逆音声フォーマットで、低ビットレート時の音質が " "MP3 より優れています。" #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" "プロプライエタリで旧式ですが、また一般的でもある非可逆音声フォーマットです。" "VBR は CBR より音質に優れますが、一部のプレイヤで互換性がないかもしれません。" #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" "プロプライエタリで旧式ですが、また一般的でもある非可逆音声フォーマットです。" "CBR は VBR より音質は劣りますが、いずれのプレイヤとも互換性があります。" #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "非常に高速でフリーな可逆音声フォーマットで、圧縮率も優れています。" #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "自動" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "カスタム" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "再生しない" #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "" #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "" #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "" #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "プレイリスト" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "M3U プレイリスト" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "PLS プレイリスト" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "" #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "ASX プレイリスト" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "XSPF プレイリスト" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "シャッフル-トラック(_T)" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "シャッフル-アルバム(_A)" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "リピート-オフ(_O)" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "リピート-ALL(_A)" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "秒" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "分" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "時間" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "日" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "週" #: ../xl/lyrics.py:305 msgid "Local" msgstr "ローカル" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "キューに追加" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "現在のプレイリストに追加" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "ディレクトリを開く" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "ごみ箱に移動" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "名前:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "すべての条件にマッチする" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "結果をランダムにする" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "曲数制限: " #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr "" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "再生していません" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "最大音量" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "%d トラックがコレクションされています" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "%d トラック表示中" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "キュー" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "#" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "トラックナンバー" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "タイトル" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "アーティスト" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "作曲者" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "アルバム" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "長さ" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "ディスク" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "ディスクナンバー" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "評価" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "日付" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "ジャンル" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "ビットレート" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "ロケーション" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "ファイル名" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "再生数" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "拍/分" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "前回再生" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "サイズ変更可(_R)" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "評価:" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "シャッフル" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "繰り返し" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "ダイナミック" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "プレイリストをランダムにする" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "新規プレイリスト" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "名前の変更" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "URLを入力してください" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "URLを指定して開く" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "サポートされているファイル" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "音楽ファイル" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "プレイリストファイル" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "全てのファイル" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "%s は変更されています。閉じる前に保存しますか?" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "これらを保存しないと変更は失われます" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "保存せずに閉じる" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "" #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "プレイリスト名が入力されていません" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "" #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "タブを閉じる" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "バッファリング: %d%%..." #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "再生を続ける" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "一時停止する" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "プレイリストのエキスポートに失敗しました" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "再生を開始します" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "Exaile ミュージックプレイヤ" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "新規プレイリスト(_N)" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "URLを開く(_U)" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "ディレクトリを開く" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "現在のプレイリストをエクスポートする(_E)" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "コレクション(_C)" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "キュー(_Q)" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "カラム(_C)" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "キャンセル" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "作詞家" #: ../xlgui/properties.py:54 msgid "Website" msgstr "ウェブサイト" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "カバー" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "" #: ../xlgui/properties.py:57 msgid "Author" msgstr "作者" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "編曲者" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "指揮者" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "演奏者" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "著作権" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "歌詞" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "トラック" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "バージョン" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "ISRC" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "~エンコード" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "組織" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "ジャケットを表示する" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "ジャケットを取得する" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "ジャケットを削除" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "ジャケットが見つかりませんでした" #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "アイコン" #: ../xlgui/devices.py:81 msgid "Device" msgstr "" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "コレクションを取り込んでいます..." #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "%sを取り込んでいます..." #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "トグル: キューに入れる" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "このアイテムをキューに入れる" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "新しいステーション" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "編集" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "プレイリストのエクスポート" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "プレイリストの削除" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "選択されたプレイリストを永久に削除しますか?" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "プレイリストの名前を入力してください" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "プレイリスト名の変更" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "削除" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "プレイリスト %d" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "" #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "ストリーミングをロードしています..." #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "ラジオ局を追加する" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "URL:" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "保存されたステーション" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "ストリーミングラジオ" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "更新" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "新しいプレイリスト名を入力してください" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "コレクションを再スキャン" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "サイズ" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s KB" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "かつ" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "一致" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "除く" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "含む" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "含まない" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "最小" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "最大" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "前" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "後" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "間" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "より大きい" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "より小さい" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "以前" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "以後" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "年" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "スマートプレイリスト" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "カスタムプレイリスト" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "スマートプレイリストの追加" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "スマートプレイリストの編集" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "再生" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "プラグイン" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "" msgstr[1] "" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "プラグインを選択して下さい。" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "カバー" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "外観" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "コレクション" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "Exaileを再起動しますか?" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "変更を適用するためには再起動する必要があります" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "ショートカット" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "プレイリスト" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "Exaile について" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "ジャケットファインダ" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "ファイル(_F)" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "編集(_E)" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "表示(_V)" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "ツール(_T)" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "ヘルプ(_H)" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "前のトラック" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "次のトラック" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0:00 / 0:00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "トラックのプロパティ" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "説明:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "コレクションマネージャ" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "ラジオ" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "CD のインポート" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "ステーションの追加" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "ファイル" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "ホームディレクトリ" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "検索: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "コレクションは空です." #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "音楽を追加 \tする" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "ジャケット検索順:" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "(ドラッグで順序を変更します)" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "起動時に最後のプレイリストを開く" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "フェード期間(ミリ秒)" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "クロスフェード期間(ミリ秒)" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "" #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "プラグイン" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "有効" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "プラグインが選択されていません" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "インストール済みのプラグイン" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "作者:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "バージョン:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "インストール" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "プラグインが選択されていません" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "有効なプラグイン" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "アップデート" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "アップデート" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "トレイアイコンを表示する" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "トレイに最小化" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "現在の曲が終了後このトラックを再生する" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "起動時にスプラッシュスクリーンを表示する" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "設定" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "デバイスマネージャ" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "デバイスのタイプ:" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "検出されたデバイス:" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "カスタム: " #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "キュー・マネージャー" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "" #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "アラーム時計" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "" #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "検索" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "" #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "" #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "オーディオ CD" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "ディスク番号" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "演奏回数" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "アーティスト: " #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" "知ってますか...\n" "\n" "%s" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "ミニモード" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "前" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "次" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "再生/一時停止" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "停止" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "グループ" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "" #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "オンスクリーンディスプレイ (OSD)" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "ポッドキャスト" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "ポッドキャスト" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "ポッドキャストをリフレッシュする" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "" #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "" #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "デスクトップカバー" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "マルチ-アラーム時計" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "その曲の演奏をブックマークする" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "手動で..." #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "共有している IP アドレスとポート番号を入力してください" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "IP アドレスとポート番号の入力" #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" "このサーバは複数接続をサポートしていません。\n" "楽曲をダウンロードする前に再生を止めなければなりません。" #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "DAAPに接続する..." #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "月" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "火" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "水" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "木" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "金" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "土" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "日" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "フェードする" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "なし" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "パスワード:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "ユーザ名:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "0" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "3.8K" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "15K" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "背景色:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "MP3 (VBR)" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "インポート質 " #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "常に前面に配置" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "ソート基準:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "詳細" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "ダウンロードの数" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "ジャンル/タグ" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "追加" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "ポート:" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "Shoutcast ラジオ" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "再生終了後コンピュータをシャットダウンする" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "デバイス" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "情報" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "再生中のアルバムのジャケットをデスクトップに表示します" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" #~ msgid "Clear" #~ msgstr "消去" #~ msgid "Close" #~ msgstr "閉じる" #~ msgid "Close tab" #~ msgstr "タブを閉じる" #~ msgid "%d KB" #~ msgstr "%d KB" #~ msgid "ALSA" #~ msgstr "ALSA" #~ msgid "AWN" #~ msgstr "AWN" #~ msgid "General" #~ msgstr "全般" #~ msgid "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgstr "" #~ "表示させたい所へオンスクリーンディスプレイをドラッグしてください" #~ msgid "Autosize" #~ msgstr "自動調整" #~ msgid "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "Year - Artist\n" #~ "Year - Album\n" #~ "Artist - Year - Album" #~ msgstr "" #~ "アーティスト\n" #~ "アルバム\n" #~ "ジャンル - アーティスト\n" #~ "ジャンル - アルバム\n" #~ "年 - アーティスト\n" #~ "年 - アルバム\n" #~ "アーティスト - 年 - アルバム" #~ msgid "Display OSD when hovering over tray icon" #~ msgstr "" #~ "トレイアイコンにカーソルを合わせたとき、オンスクリーンディスプレイを表示す" #~ "る" #~ msgid "New Search" #~ msgstr "新規検索" #~ msgid "Popup" #~ msgstr "ポップアップ" #~ msgid "Resizable" #~ msgstr "サイズ変更可能" #~ msgid "Show OSD on track change" #~ msgstr "トラックの変化時にオンスクリーンディスプレイを表示" #~ msgid "Start" #~ msgstr "スタート" #~ msgid "Stopped" #~ msgstr "停止" #~ msgid "Text Color" #~ msgstr "テキストの色" #~ msgid "Window Height:" #~ msgstr "ウインドウの高さ:" #~ msgid "Window Width:" #~ msgstr "ウインドウの幅:" #~ msgid "_Close" #~ msgstr "閉じる(_C)" #~ msgid "Alarm Days:" #~ msgstr "アラームの日付" #~ msgid "Open" #~ msgstr "開く" #~ msgid "Add Playlist" #~ msgstr "プレイリストに追加" #~ msgid "LastFM Radio" #~ msgstr "LastFM ラジオ" #~ msgid "Enter the search text" #~ msgstr "検索文字を入力してください" #~ msgid "Choose a file" #~ msgstr "ファイルを選択してください" #~ msgid "Quit" #~ msgstr "終了" #~ msgid "Number of Plays" #~ msgstr "再生数" # Log message #~ msgid "Playing %s" #~ msgstr "Playing %s" #~ msgid " songs" #~ msgstr " 曲" #~ msgid "Toggle: Stop after selected track" #~ msgstr "トグル: 選択されたトラックの再生後に停止" #~ msgid "%(title)s (by %(artist)s)" #~ msgstr "%(title)s (by %(artist)s)" #~ msgid "by %s" #~ msgstr "by %s" #~ msgid "from %s" #~ msgstr "from %s" #~ msgid "Add a directory" #~ msgstr "フォルダの追加" #~ msgid "" #~ "Path is already in your collection, or is a subdirectory of another path " #~ "in your collection" #~ msgstr "" #~ "パスはすでにコレクションにあるか、またはコレクションの他のパスのサブフォル" #~ "ダです" #~ msgid "Select File Type (By Extension)" #~ msgstr "ファイルタイプの選択 (拡張子)" #~ msgid "File Type" #~ msgstr "ファイルタイプ" #~ msgid "Extension" #~ msgstr "拡張子" #~ msgid "Add to Playlist" #~ msgstr "プレイリストに追加" #~ msgid "Export" #~ msgstr "エクスポート" #~ msgid "Invalid file extension, file not saved" #~ msgstr "不正な拡張子です。ファイルは保存されません。" #~ msgid "No covers found" #~ msgstr "ジャケットが見つかりませんでした" # Never change any variables such as {title}, {artist}... #~ msgid "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgstr "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgid "Display a progressbar in the OSD" #~ msgstr "オンスクリーンディスプレイにプログレスバーを表示する" #~ msgid "Opacity Level:" #~ msgstr "不透明度:" #~ msgid "Text Font:" #~ msgstr "テキストのフォント:" #~ msgid "" #~ "OSD\n" #~ "Drag to the location you'd like the\n" #~ "OSD to appear" #~ msgstr "" #~ "OSD\n" #~ "オンスクリーンディスプレイを表示したい\n" #~ "場所にドラッグしてください" #~ msgid " + " #~ msgstr " + " #~ msgid " - " #~ msgstr " - " #~ msgid "0/0 tracks" #~ msgstr "0/0 トラック" #~ msgid "Stop Playback" #~ msgstr "再生を停止します" #~ msgid "..." #~ msgstr "..." #~ msgid "Add device" #~ msgstr "デバイスの追加" #~ msgid "Vol:" #~ msgstr "ボリューム:" #~ msgid "Clear Playlist" #~ msgstr "プレイリストを消去します" #~ msgid "Exaile" #~ msgstr "Exaile" #~ msgid "Location:" #~ msgstr "保存するフォルダ:" #~ msgid "Search:" #~ msgstr "検索:" #~ msgid "Select a save location" #~ msgstr "保存場所を選択してください" #~ msgid "Bitrate:" #~ msgstr "ビットレート:" #~ msgid "Genre:" #~ msgstr "ジャンル:" #~ msgid "Original Date" #~ msgstr "オリジナルの" #~ msgid "Original Album" #~ msgstr "オリジナルのアルバム" #~ msgid "Original Artist" #~ msgstr "オリジナルのアーティスト" #~ msgid "Encoded By" #~ msgstr "エンコード" #~ msgid "Title:" #~ msgstr "タイトル:" #~ msgid "Artist:" #~ msgstr "アーティスト:" #~ msgid "Album:" #~ msgstr "アルバム名:" #~ msgid "Track Number:" #~ msgstr "トラックナンバー:" #~ msgid "Plugin Manager" #~ msgstr "プラグインマネージャ" #~ msgid "Import" #~ msgstr "インポート" #~ msgid "Date Added" #~ msgstr "追加時期" #~ msgid "Last Played" #~ msgstr "最後に再生" #~ msgid "Install a third party plugin from a file" #~ msgstr "ファイルから第三者プラグイン をインストールする" #~ msgid "Fading:" #~ msgstr "フェーディング" #~ msgid "Alarm:" #~ msgstr "アラーム:" #~ msgid "Streaming..." #~ msgstr "ストリーミング..." #~ msgid "Choose a file to open" #~ msgstr "開くファイルを選択" #~ msgid "No track" #~ msgstr "トラックがありません" #~ msgid "Move selected item down" #~ msgstr "選択したアイテムを下に移動" #~ msgid "Add item" #~ msgstr "項目の追加" dist/copy/po/PaxHeaders.26361/gu.po0000644000175000017500000000012412233027260015412 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.065046931 exaile-3.3.2/po/gu.po0000644000000000000000000026734512233027260014373 0ustar00rootroot00000000000000# Gujarati translation for exaile # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2011-09-22 20:13+0000\n" "Last-Translator: Mukunda Panchal \n" "Language-Team: Gujarati \n" "Language: gu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-08-28 05:26+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "" #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "" #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "" #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "" #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "" #: ../xl/formatter.py:702 msgid "Today" msgstr "" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "વપરાશ: exaile [વિકલ્પ] ... [યુઆરઆઇ]" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "વિકલ્પો" #: ../xl/main.py:421 msgid "Playback Options" msgstr "પ્લેયબેક ઓપ્શન્સ [પ્લેયબેક = પાર્શ્વગાયક | ઓપ્શન = વિકલ્પો]" #: ../xl/main.py:423 msgid "Play the next track" msgstr "આગામી ટ્રેક વગાડો" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "પહેલાંના ટ્રેક વગાડો" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "પ્લેબેક રોકો. [સ્ટોપ = બંધ, રોકવા, અટકાવવા]" #: ../xl/main.py:429 msgid "Play" msgstr "વગાડો કે ચલાવો. [પ્લે = રમો, વગાડો, ચલાવો]" #: ../xl/main.py:431 msgid "Pause" msgstr "" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "" #: ../xl/main.py:440 msgid "Collection Options" msgstr "" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:454 msgid "Track Options" msgstr "" #: ../xl/main.py:456 msgid "Query player" msgstr "" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "" #: ../xl/main.py:490 msgid "Volume Options" msgstr "" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "" #: ../xl/main.py:507 msgid "Other Options" msgstr "" #: ../xl/main.py:509 msgid "Start new instance" msgstr "" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "" #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "" #: ../xl/main.py:536 msgid "Set data directory" msgstr "" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "" #: ../xl/main.py:543 msgid "LEVEL" msgstr "" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:555 msgid "TYPE" msgstr "" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "" #: ../xl/main.py:580 msgid "Entire Library" msgstr "" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "" #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr "" #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "" #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "સ્વચલિત" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "" #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "" #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "" #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "" #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "" #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "" #: ../xl/lyrics.py:305 msgid "Local" msgstr "" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "" #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr "" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "" #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "" #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "" #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "" #: ../xlgui/properties.py:54 msgid "Website" msgstr "" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "" #: ../xlgui/properties.py:57 msgid "Author" msgstr "" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "" #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "" #: ../xlgui/devices.py:81 msgid "Device" msgstr "" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "" #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "" #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "" #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "" #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "" msgstr[1] "" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "" #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "" #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "" #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "" #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "" #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "" #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "" #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "" #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "" #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "" #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "" #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "" #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "" #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" dist/copy/po/PaxHeaders.26361/ca.po0000644000175000017500000000012312233027260015361 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 29 ctime=1382821553.04904693 exaile-3.3.2/po/ca.po0000644000000000000000000031060612233027260014330 0ustar00rootroot00000000000000# Catalan translation for exaile # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2012-07-29 07:11+0000\n" "Last-Translator: Siegfried Gevatter \n" "Language-Team: Catalan \n" "Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-08-28 05:24+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "" #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "" #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "" #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "" #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "%d:%02d" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "" #: ../xl/formatter.py:702 msgid "Today" msgstr "" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "No s'ha pogut migrar des de la versió 0.2.14" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "" #: ../xl/main.py:421 msgid "Playback Options" msgstr "" #: ../xl/main.py:423 msgid "Play the next track" msgstr "Reprodueix la pista següent" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "Reprodueix la pista anterior" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "Atura la reproducció" #: ../xl/main.py:429 msgid "Play" msgstr "Reprodueix" #: ../xl/main.py:431 msgid "Pause" msgstr "Pausa" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "Atura la reproducció després de la peça actual" #: ../xl/main.py:440 msgid "Collection Options" msgstr "" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:454 msgid "Track Options" msgstr "" #: ../xl/main.py:456 msgid "Query player" msgstr "" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "Mostra el títol de la peça actual" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "Mostra l'àlbum de la peça actual" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "Mostra l'artista de la peça actual" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "Mostra la durada de la peça actual" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "" #: ../xl/main.py:490 msgid "Volume Options" msgstr "" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "" #: ../xl/main.py:507 msgid "Other Options" msgstr "" #: ../xl/main.py:509 msgid "Start new instance" msgstr "Inicia una instància nova" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "" #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "Inicia en mode segur - a vegades és útil si us trobeu amb problemes" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "" #: ../xl/main.py:536 msgid "Set data directory" msgstr "Estableix el directori de dades" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "" #: ../xl/main.py:543 msgid "LEVEL" msgstr "" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "Mostra la sortida de depuració" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "Activa la depuració de xl.event. Això generarà MOLTES sortides" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:555 msgid "TYPE" msgstr "" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "Redueix el nivell de sortida" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "Desactiva la compatibilitat amb D-Bus" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "Desactiva la compatibilitat amb HAL." #: ../xl/main.py:580 msgid "Entire Library" msgstr "Tota la biblioteca" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "Aleatori %d" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "Puntuació > %d" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "" #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "No heu especificat cap ubicació on desar la base de dades" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "Artistes diversos" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "Desconegut" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr "" #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" "Vorbis es un còdec de compressió d'àudio amb pèrdua i de codi obert que " "proporciona un so de gran qualitat amb una mida d'arxiu inferior al d'un MP3." #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" "Free Lossless Audio Codec (FLAC) és un còdec d'àudio de codi obert que " "comprimeix sense pèrdua de qualitat en el so." #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" "Format d'àudio propietari de Apple que aconsegueix millor qualitat de so que " "un MP3, però amb menys taxes de bits." #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" "Format d'àudio propietari amb pèrdua i antic, però que també és força " "popular. El format VBR proporciona una qualitat d'àudio superior respecte al " "format CBR, encara que pot ser incompatible amb alguns reproductors." #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" "Format d'àudio propietari amb pèrdua i antic, però que també és força " "popular. El format CBR proporciona una qualitat d'àudio inferior respecte al " "format VBR, però és compatible amb qualsevol reproductor." #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "" "Format d'àudio sense pèrdua, molt ràpid i amb bon nivell de compressió." #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "Automàtic" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "" #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "" #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "No sabem com emmagatzemar aquest tipus de paràmetre: " #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "S'ha trobat un tipus de paràmetre desconegut!" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "" #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "Llista de reproducció M3U" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "Llista de reproducció PLS" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "" #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "Llista de reproducció ASX" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "Llista de reproducció XSPF" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "segons" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "minuts" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "hores" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "dies" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "setmanes" #: ../xl/lyrics.py:305 msgid "Local" msgstr "" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "Afegeix a l'actual" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "Nom:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "Mescla aleatòriament els resultats" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "Limita a: " #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr "" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "No s'està reproduint" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "#" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "Número de la peça" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "Títol" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "Artista" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "Compositor" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "Àlbum" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "Durada" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "Disc" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "Número del disc" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "Puntuació" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "Data" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "Gènere" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "Ràtio de bits" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "Ubicació" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "Nom del fitxer" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "Recompte de reproduccions" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "Mescla" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "Repeteix" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "Dinamic" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "Nova Llista de Reproducció" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "Canvia el nom" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "Afegeix dinàmicament pises similars a la llista de reproducció" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "Obre URL" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "Fitxers suportats" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "Fitxers de música" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "Tots els fitxers" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "Voleu desar els canvis a %s abans de tancar?" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "Els canvis es perdràn si no els deseu" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "Tanca sense desar" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "" #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "No heu introduït el nom de la llista de reproducció" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "" #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "Tanca la pestanya" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "" #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "Reproductor de música Exaile" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "Obre l'_URL" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "_Columnes" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "Cancel·la" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "" #: ../xlgui/properties.py:54 msgid "Website" msgstr "" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "" #: ../xlgui/properties.py:57 msgid "Author" msgstr "" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "Mostra la caràtula" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "Recupera la caràtula" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "Esborra la caràtula" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "" #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "" #: ../xlgui/devices.py:81 msgid "Device" msgstr "" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "S'està escanejant la coŀlecció..." #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "" #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "Activa/Desactiva la cua" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "Elements llistats" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "Edita" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "Suprimeix la llista de reproducció" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "" "Esteu segur de voler eliminar permanentment la llista de reproducció " "seleccionada?" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "Introduïu el nou nom per a la llista de reproducció" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "Canvia el nom de la llista de reproducció" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "Esborra" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "" #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "S'estan carregant els fluxes..." #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "Emissores desades" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "Fluxos de ràdio" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "Refresca" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "Introduïu el nom de la nova llista de reproducció" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "Mida" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s KB" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "i" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "és" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "no és" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "conté" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "no conté" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "com a mínim" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "com a molt" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "abans de" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "després" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "entre" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "Any" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "Llistes de reproducció personalitzades" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "Connectors" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "" msgstr[1] "" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "Col·lecció" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "Llistes de reproducció" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "Quant a" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "Cercador de Cobertes" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "_Fitxer" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "_Edita" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "_Visualitza" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "_Eines" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "_Ajuda" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "Pista anterior" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "Pista següent" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0:00 / 0:00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "Descripció:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "Ràdio" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "Afegeix emisora" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "Fitxers" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "Anterior directori visitat" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "Següent directori visitat" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "Puja un directori" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "Refresca la llista de directoris" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "Carpeta d'inici" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "Cerca: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "" #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "Ordre de cerca de caràtules:" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "(arrastreu per a reordenar)" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "Obre les últimes llistes de reproducció en iniciar" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "" #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "Reprèn la reproducció en iniciar" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "Reprèn la reproducció" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "Connector" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "Habilitat" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "Connectors instaŀlats" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "Autors:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "Versió:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "Instal·la" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "No s'ha seleccionat cap connector" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "Connectors disponibles" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "Instal·la les actualitzacions" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "Actualitzacions" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "Mostrar la icona de l'àrea de notificació" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "Salta a la cançó actual quan hi hagi un canvi de peça" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "Mostrar la pantalla d'inici a l'inici" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "Preferències" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "Administrador de dispositius" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "Tipus de dispositiu:" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "Dispositius detectats" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "Personalitzat: " #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "" #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "" #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "Introduïu els termes de cerca" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "Resultats de la cerca" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "Cerca" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "" #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "per %(artist)s" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "de %(album)s" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "" #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "Anterior" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "Següent" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "Atura" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "" #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "Esborra" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "" #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "" #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "" #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "" #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "Dilluns" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "Dimarts" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "Dimecres" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "Dijous" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "Divendres" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "Dissabte" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "Diumenge" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "Contrasenya:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "Nom d'usuari:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "Color de fons:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "Part superior a l'esquerra" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "Part superior a la dreta" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "Part inferior a l'esquerra" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "Part inferior a la dreta" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "Afegeix" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" #~ msgid "General" #~ msgstr "General" #~ msgid "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "Year - Artist\n" #~ "Year - Album\n" #~ "Artist - Year - Album" #~ msgstr "" #~ "Artista\n" #~ "Àlbum\n" #~ "Gènere - Artista\n" #~ "Gènere - Àlbum\n" #~ "Any - Artista\n" #~ "Any - Àlbum\n" #~ "Artista - Any - Àlbum" #~ msgid "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgstr "" #~ "{títol}\n" #~ "{artista}\n" #~ "a {àlbum} - {durada}" #~ msgid "Popup" #~ msgstr "Emergent" #~ msgid "Text Color" #~ msgstr "Color del text" #~ msgid "Autosize" #~ msgstr "Mida automàtica" #~ msgid "Opacity Level:" #~ msgstr "Nivell d'opacitat" #~ msgid "Resizable" #~ msgstr "Redimensionable" #~ msgid "Show OSD on track change" #~ msgstr "Mostra el OSD quan canvii la pista" #~ msgid "Start" #~ msgstr "Inicia" #~ msgid "Window Width:" #~ msgstr "Amplada de finestra:" #~ msgid "Window Height:" #~ msgstr "Alçada de finestra:" #~ msgid "Vol:" #~ msgstr "Vol:" #~ msgid "Add Playlist" #~ msgstr "Afegeix llista de reproducció" #~ msgid "Quit" #~ msgstr "Sortir" #~ msgid "from %s" #~ msgstr "de %s" #~ msgid "Playing %s" #~ msgstr "Reproduïnt %s" #~ msgid "Add to Playlist" #~ msgstr "Afegeix a la llista de reproducció" #~ msgid "Choose a file" #~ msgstr "Selecciona un arxiu" #~ msgid "0:00" #~ msgstr "0:00" #~ msgid "Name - Time" #~ msgstr "Nom - Temps" #~ msgid "Alarm:" #~ msgstr "Alarma:" #~ msgid "Personal" #~ msgstr "Personal" #~ msgid "Recommended" #~ msgstr "Recomanat" #~ msgid "..." #~ msgstr "..." #~ msgid "Page 1" #~ msgstr "Pàgina 1" #~ msgid " - " #~ msgstr " - " #~ msgid " + " #~ msgstr " + " #~ msgid "Export" #~ msgstr "Exporta" #~ msgid "LastFM Radio" #~ msgstr "LastFM Radio" #~ msgid "Show a popup of the currently playing track" #~ msgstr "Mostra una notificació emergent amb la peça que s'està reproduïnt" #~ msgid "Set rating for current song" #~ msgstr "Puntua la peça actual" #~ msgid "Get rating for current song" #~ msgstr "Recupera la puntuació de la peça actual" #~ msgid "order must be a list or tuple" #~ msgstr "l'ordre ha de ser una llista o una tupla" #~ msgid " New song, fetching cover." #~ msgstr " Nova peça, s'està obtenint la caràtula" #~ msgid "Toggle: Stop after selected track" #~ msgstr "Atura/Continua després de la peça seleccionada" #~ msgid "Select File Type (By Extension)" #~ msgstr "Seleccioneu el tipus de fitxer (per extensió)" #~ msgid "Extension" #~ msgstr "Extensió" #~ msgid "File Type" #~ msgstr "Tipus de fitxer" #~ msgid "Number of Plays" #~ msgstr "Número de reproduccions" #~ msgid "No covers found" #~ msgstr "No s'han trobat caràtules" #~ msgid "Enter the search text" #~ msgstr "Introduïu el text de cerca" #~ msgid "" #~ "Path is already in your collection, or is a subdirectory of another path " #~ "in your collection" #~ msgstr "" #~ "El camí ja està a la col·lecció o és un subdirectori d'un altre camí de " #~ "la col·lecció" #~ msgid "" #~ "OSD\n" #~ "Drag to the location you'd like the\n" #~ "OSD to appear" #~ msgstr "" #~ "OSD\n" #~ "Arrosegueu a la posició on vulgueu\n" #~ "que aparegui l'OSD" #~ msgid "Stop Playback" #~ msgstr "Atura la reproducció" #~ msgid "Loved Tracks" #~ msgstr "Peces preferides" #~ msgid "Display a progressbar in the OSD" #~ msgstr "Mostra una barra de progrés a l'OSD" #~ msgid "Restart Playlist" #~ msgstr "Reinicia la llista de reproducció" #~ msgid "Exaile" #~ msgstr "Exaile" #~ msgid "Streaming..." #~ msgstr "Llegint el flux de dades..." #~ msgid "Stopped" #~ msgstr "Aturat" #~ msgid "by %s" #~ msgstr "per %s" #~ msgid "Open" #~ msgstr "Obre" #~ msgid "Choose a file to open" #~ msgstr "Escolliu un fitxer per a obrir" #~ msgid "Invalid file extension, file not saved" #~ msgstr "El fitxer no s'ha desat perquè l'extensió no és vàlida" #~ msgid "Add a directory" #~ msgstr "Afegeix un directori" #~ msgid " songs" #~ msgstr " cançons" #~ msgid "Add device" #~ msgstr "Afegeix un dispositiu" #~ msgid "New Search" #~ msgstr "Nova cerca" #~ msgid "_Close" #~ msgstr "_Tanca" #~ msgid "Text Font:" #~ msgstr "Tipografia del text" #~ msgid "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgstr "Moveu la pantalla de selecció al lloc on voleu que aparegui" #~ msgid "0/0 tracks" #~ msgstr "0/0 pistes" #~ msgid "Alarm Name:" #~ msgstr "Nom de l'alarma:" #~ msgid "Alarm Time:" #~ msgstr "Temps de l'alarma:" #~ msgid "Clear Playlist" #~ msgstr "Neteja la llista de reproducció" #~ msgid "Toggle Play or Pause" #~ msgstr "Reprodueix/Pausa" #~ msgid "Display OSD when hovering over tray icon" #~ msgstr "" #~ "Mostra l'OSD en mantenir el ratolí sobre la icona de l'àrea de notificació" #~ msgid "%d covers to fetch" #~ msgstr "hi ha %d caràtules per a recollir" #~ msgid "%(title)s (by %(artist)s)" #~ msgstr "%(title)s (per %(artist)s)" dist/copy/po/PaxHeaders.26361/en_CA.po0000644000175000017500000000012312233027260015743 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 29 ctime=1382821553.02904693 exaile-3.3.2/po/en_CA.po0000644000000000000000000034760512233027260014723 0ustar00rootroot00000000000000# English (Canada) translation for exaile # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2009-09-21 16:13+0000\n" "Last-Translator: Aren Olson \n" "Language-Team: English (Canada) \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-08-28 05:29+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "" #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "" #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "" #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "" #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "%d:%02d" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "Never" #: ../xl/formatter.py:702 msgid "Today" msgstr "Today" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "Yesterday" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "Failed to migrate from 0.2.14" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "" #: ../xl/main.py:421 msgid "Playback Options" msgstr "" #: ../xl/main.py:423 msgid "Play the next track" msgstr "Play the next track" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "Play the previous track" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "Stop playback" #: ../xl/main.py:429 msgid "Play" msgstr "Play" #: ../xl/main.py:431 msgid "Pause" msgstr "Pause" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "Stop playback after current track" #: ../xl/main.py:440 msgid "Collection Options" msgstr "" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:454 msgid "Track Options" msgstr "" #: ../xl/main.py:456 msgid "Query player" msgstr "Query player" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "Print the title of current track" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "Print the album of current track" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "Print the artist of current track" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "Print the length of current track" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "" #: ../xl/main.py:490 msgid "Volume Options" msgstr "" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "Print the current volume percentage" #: ../xl/main.py:507 msgid "Other Options" msgstr "" #: ../xl/main.py:509 msgid "Start new instance" msgstr "Start new instance" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "" #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "Start minimized (to tray, if possible)" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "" "Start in safe mode - sometimes useful when you're running into problems" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "" #: ../xl/main.py:536 msgid "Set data directory" msgstr "Set data directory" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "" #: ../xl/main.py:543 msgid "LEVEL" msgstr "" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "Show debugging output" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "Enable debugging of xl.event. Generates LOTS of output" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:555 msgid "TYPE" msgstr "" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "Reduce level of output" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "Disable D-Bus support" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "Disable HAL support." #: ../xl/main.py:580 msgid "Entire Library" msgstr "Entire Library" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "Random %d" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "Rating > %d" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "" #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "You did not specify a location to load the db from" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "You did not specify a location to save the db" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "Various Artists" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "Unknown" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr "" #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "A very fast Free lossless audio format with good compression." #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "Automatic" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "Not playing." #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "Settings version is newer than current." #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "Error storing setting: " #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "Error reading setting" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "" #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "Playlist" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "M3U Playlist" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "PLS Playlist" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "" #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "ASX Playlist" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "XSPF Playlist" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "seconds" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "minutes" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "hours" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "days" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "weeks" #: ../xl/lyrics.py:305 msgid "Local" msgstr "" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "Append to Current" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "Name:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "Match any of the criteria" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "Randomize results" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "Limit to: " #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr "" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "Not Playing" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "#" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "Track Number" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "Title" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "Artist" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "Composer" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "Album" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "Length" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "Disc" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "Disc Number" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "Rating" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "Date" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "Genre" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "Bitrate" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "Location" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "Filename" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "Playcount" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "BPM" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "Last played" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "_Resizable" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "_Autosize" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "Rating:" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "Shuffle" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "Repeat" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "Dynamic" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "New Playlist" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "Rename" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "Dynamically add similar tracks to the playlist" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "Enter the URL to open" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "Open URL" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "Supported Files" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "Music Files" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "Playlist Files" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "All Files" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "Close %s" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "Save changes to %s before closing?" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "Your changes will be lost if you don't save them" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "Close Without Saving" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "" #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "You did not enter a name for your playlist" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "The playlist name you entered is already in use." #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "Close Tab" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "Buffering: %d%%..." #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "Continue Playback" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "Pause Playback" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "Start Playback" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "Exaile Music Player" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "_New Playlist" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "Open _URL" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "_Collection" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "_Queue" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "C_overs" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "_Columns" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "_Device Manager" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "Re_scan Collection" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "Cancel" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "" #: ../xlgui/properties.py:54 msgid "Website" msgstr "" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "" #: ../xlgui/properties.py:57 msgid "Author" msgstr "" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "Version" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "Show Cover" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "Fetch Cover" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "Remove Cover" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "" #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "Icon" #: ../xlgui/devices.py:81 msgid "Device" msgstr "Device" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "Driver" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "Scanning collection..." #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "Scanning %s..." #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "Toggle Queue" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "Queue Items" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "Properties" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "New Station" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "New Smart Playlist" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "Edit" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "Delete Playlist" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "Are you sure you want to permanently delete the selected playlist?" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "Enter the new name you want for your playlist" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "Rename Playlist" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "Remove" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "Playlist %d" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "Transferring to %s..." #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "Loading streams..." #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "Add Radio Station" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "URL:" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "Saved Stations" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "Radio Streams" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "Refresh" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "Enter the name you want for your new playlist" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "Re-scan Collection" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "Size" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s kB" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "and" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "is" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "is not" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "contains" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "does not contain" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "at least" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "at most" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "before" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "after" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "between" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "greater than" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "less than" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "Plays" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "Year" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "Smart Playlists" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "Custom Playlists" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "Add Smart Playlist" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "Edit Smart Playlist" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "Playback" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "Plug-ins" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "" msgstr[1] "" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "Plug-in Archives" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "Covers" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "Appearance" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "Collection" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "Action" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "Shortcut" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "Playlists" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "About Exaile" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "Cover Manager" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "Shuffle playback order" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "Cover Finder" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "_File" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "_Edit" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "_View" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "_Tools" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "_Help" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "Previous Track" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "Next Track" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0:00 / 0:00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "Track Properties" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "Description:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "Collection Manager" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "Radio" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "Append All Tracks to Playlist" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "Import CD" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "Add Station" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "Files" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "Previous visited directory" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "Next visited directory" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "Up one directory" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "Refresh directory listing" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "Home directory" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "Search: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "Collection is empty." #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "Add Music" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "Cover Search Order:" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "(drag to reorder)" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "Open last playlists on startup" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "Prompt for saving custom playlists on close" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "Use fade transitions on user actions" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "Fade duration (ms):" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "Use crossfading (EXPERIMENTAL)" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "Crossfade duration (ms):" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "Audio Sink: " #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "Resume playback on start" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "Resume playback in paused state" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "Plug-in" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "Enabled" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "Installed Plug-ins" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "Authors:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "Version:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "Install" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "No Plug-in Selected" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "Available Plug-ins" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "Install Updates" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "Updates" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "Always show tab bar" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "Tab placement:" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "Show tray icon" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "Minimize to tray" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "Jump to current song on track change" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "Show splash screen on startup" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "Preferences" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "Device Manager" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "Type of device:" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "Detected devices:" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "Custom: " #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "Queue Manager" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "" #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "Moodbar executable is not available." #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "Moodbar" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "Error executing streamripper" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "Streamripper" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "Alarm Clock" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "Contacting Shoutcast server..." #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "Error connecting to Shoutcast server." #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "Enter the search keywords" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "Shoutcast Search" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "Search Results" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "Search" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "" #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "AudioScrobbler" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "Enable audioscrobbling" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "Notify-osd notifications" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "%(title)s" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "by %(artist)s" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "from %(album)s" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "IPython Console - Exaile" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "Show IPython Console" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "IPython Console" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "Notify" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" "by %(artist)s\n" "from %(album)s" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "Importing CD..." #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "Audio Disc" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "CD" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "Track number" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "Disc number" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "Play count" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "Mini Mode" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "$tracknumber - $title" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "$title by $artist" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "Previous" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "Next" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "Play/Pause" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "Stop" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "Volume" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "Restore" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "Track selector" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "Playlist button" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "Progress bar" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "ReplayGain" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "" #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "On Screen Display" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "Amazon Covers" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "Podcasts" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "Podcast" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "Refresh Podcast" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "Delete" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "Enter the URL of the podcast to add" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "Open Podcast" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "Loading %s..." #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "Error loading podcast." #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "Loading Podcasts..." #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "Could not save podcast file" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "Desktop Cover" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "Multi-Alarm Clock" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "Context" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "Bookmarks" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "Pause on Screensaver" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "" #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "" #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "Monday" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "Tuesday" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "Wednesday" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "Thursday" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "Friday" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "Saturday" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "Sunday" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "Use Fading" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "Increment:" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "Submit tracks using Audioscrobbler" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "Password:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "Username:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "Display" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "Icons" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "Summary:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "Content" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "Font:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "Background Colour:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "Resize displayed covers" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "Body Message" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "Import format: " #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "Import quality: " #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "Import path: " #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "Always on top" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "Show in tasklist" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "Show on all desktops" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "Prefer per-album correction" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "Prefer ReplayGain's per-album correction over per-track correction." #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "Use clipping protection" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "Protect against noise caused by over-amplification" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "Additional amplification to apply to all files" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "Additional amplification (dB):" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "Fallback correction for files that lack ReplayGain information" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "Fallback correction level (dB):" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "Add Podcast" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "Top left" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "Top right" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "Bottom left" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "Bottom right" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "Add" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "Use covers in the bookmarks menu (takes effect on next start)" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "GNOME Multimedia Keys" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "Last.fm Covers" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "Searches Last.fm for covers" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "Shoutcast Radio" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "Shoutcast Radio list" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "Lyrics Fly" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "Plug-in to fetch lyrics from lyricsfly.com" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "Librivox" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "Browse and listen to audiobooks from Librivox.org." #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "USB Mass Storage Media Player Support" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" "Support for accessing portable media players using the USB Mass Storage " "protocol" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "The Last.fm backend for dynamic playlists" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" "This plug-ins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "Provides an IPython console that can be used to manipulate Exaile." #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "Pops up a notification when playback of a track starts" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "CD Playback" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "Compact mode for Exaile with a configurable interface" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "Enables ReplayGain support" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" "Searches Amazon for covers\n" "\n" "To be able to use this plug-in, an AWS API key and secret key are required." #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "Adds Simple Podcast Support" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "Displays the current album cover on the desktop" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "Hello World" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "A simple plug-in for testing the basic plug-in system" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "Contextual Info" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "Allows saving/resuming bookmark positions in audio files." #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "Lyrics Wiki" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" #~ msgid "Close tab" #~ msgstr "Close tab" #~ msgid "Export as..." #~ msgstr "Export as..." #~ msgid "GNOME" #~ msgstr "GNOME" #~ msgid "ALSA" #~ msgstr "ALSA" #~ msgid "OSS" #~ msgstr "OSS" #~ msgid "PulseAudio" #~ msgstr "PulseAudio" #~ msgid "JACK" #~ msgstr "JACK" #~ msgid "API Key:" #~ msgstr "API Key:" #~ msgid "General" #~ msgstr "General" #~ msgid "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgstr "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgid "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgstr "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgid "Autosize" #~ msgstr "Autosize" #~ msgid "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "Year - Artist\n" #~ "Year - Album\n" #~ "Artist - Year - Album" #~ msgstr "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "Year - Artist\n" #~ "Year - Album\n" #~ "Artist - Year - Album" #~ msgid "Display OSD when hovering over tray icon" #~ msgstr "Display OSD when hovering over tray icon" #~ msgid "New Search" #~ msgstr "New Search" #~ msgid "Opacity Level:" #~ msgstr "Opacity Level:" #~ msgid "Popup" #~ msgstr "Popup" #~ msgid "Resizable" #~ msgstr "Resizable" #~ msgid "Stop Playback" #~ msgstr "Stop Playback" #~ msgid "Start" #~ msgstr "Start" #~ msgid "Stopped" #~ msgstr "Stopped" #~ msgid "Show OSD on track change" #~ msgstr "Show OSD on track change" #~ msgid "Text Font:" #~ msgstr "Text Font:" #~ msgid "Text Color" #~ msgstr "Text Colour" #~ msgid "Vol:" #~ msgstr "Vol:" #~ msgid "Window Height:" #~ msgstr "Window Height:" #~ msgid "Window Width:" #~ msgstr "Window Width:" #~ msgid "_Close" #~ msgstr "_Close" #~ msgid "Alarm Days:" #~ msgstr "Alarm Days:" #~ msgid "Open" #~ msgstr "Open" #~ msgid "Add Playlist" #~ msgstr "Add Playlist" #~ msgid "LastFM Radio" #~ msgstr "LastFM Radio" #~ msgid "Neighbourhood" #~ msgstr "Neighbourhood" #~ msgid "Loved Tracks" #~ msgstr "Loved Tracks" #~ msgid "Personal" #~ msgstr "Personal" #~ msgid "Recommended" #~ msgstr "Recommended" #~ msgid "Relay Port:" #~ msgstr "Relay Port:" #~ msgid "Enter the search text" #~ msgstr "Enter the search text" #~ msgid " songs" #~ msgstr " songs" #~ msgid "Add a directory" #~ msgstr "Add a directory" #~ msgid "Choose a file" #~ msgstr "Choose a file" #~ msgid "" #~ "Path is already in your collection, or is a subdirectory of another path " #~ "in your collection" #~ msgstr "" #~ "Path is already in your collection, or is a subdirectory of another path " #~ "in your collection" #~ msgid "%(title)s (by %(artist)s)" #~ msgstr "%(title)s (by %(artist)s)" #~ msgid "Playing %s" #~ msgstr "Playing %s" #~ msgid "by %s" #~ msgstr "by %s" #~ msgid "Add to Playlist" #~ msgstr "Add to Playlist" #~ msgid "Quit" #~ msgstr "Quit" #~ msgid "Number of Plays" #~ msgstr "Number of Plays" #~ msgid "from %s" #~ msgstr "from %s" #~ msgid "Toggle: Stop after selected track" #~ msgstr "Toggle: Stop after selected track" #~ msgid "File Type" #~ msgstr "File Type" #~ msgid "Select File Type (By Extension)" #~ msgstr "Select File Type (By Extension)" #~ msgid "No covers found" #~ msgstr "No covers found" #~ msgid "Export" #~ msgstr "Export" #~ msgid "Extension" #~ msgstr "Extension" #~ msgid " - " #~ msgstr " - " #~ msgid " + " #~ msgstr " + " #~ msgid "Page 1" #~ msgstr "Page 1" #~ msgid "Invalid file extension, file not saved" #~ msgstr "Invalid file extension, file not saved" #~ msgid "0/0 tracks" #~ msgstr "0/0 tracks" #~ msgid "0:00" #~ msgstr "0:00" #~ msgid "Add device" #~ msgstr "Add device" #~ msgid "..." #~ msgstr "..." #~ msgid "Display a progressbar in the OSD" #~ msgstr "Display a progressbar in the OSD" #~ msgid "Choose a file to open" #~ msgstr "Choose a file to open" #~ msgid "Show a popup of the currently playing track" #~ msgstr "Show a popup of the currently playing track" #~ msgid "Toggle Play or Pause" #~ msgstr "Toggle Play or Pause" #~ msgid "order must be a list or tuple" #~ msgstr "order must be a list or tuple" #~ msgid "Streaming..." #~ msgstr "Streaming..." #~ msgid " New song, fetching cover." #~ msgstr " New song, fetching cover." #~ msgid "Buffering: 100%..." #~ msgstr "Buffering: 100%..." #~ msgid "%d covers to fetch" #~ msgstr "%d covers to fetch" #~ msgid "Streamripper can only record streams." #~ msgstr "Streamripper can only record streams." #~ msgid "Alarm Name:" #~ msgstr "Alarm Name:" #~ msgid "Alarm Time:" #~ msgstr "Alarm Time:" #~ msgid "Maximum Volume:" #~ msgstr "Maximum Volume:" #~ msgid "Restart Playlist" #~ msgstr "Restart Playlist" #~ msgid "Minimum Volume:" #~ msgstr "Minimum Volume:" #~ msgid "Name - Time" #~ msgstr "Name - Time" #~ msgid "Enable Fading" #~ msgstr "Enable Fading" #~ msgid "Fading:" #~ msgstr "Fading:" #~ msgid "Alarm:" #~ msgstr "Alarm:" #~ msgid "Set rating for current song" #~ msgstr "Set rating for current song" #~ msgid "Get rating for current song" #~ msgstr "Get rating for current song" #~ msgid "Clear Playlist" #~ msgstr "Clear Playlist" #~ msgid "Exaile" #~ msgstr "Exaile" #~ msgid "_Go to Playing Track" #~ msgstr "_Go to Playing Track" #~ msgid "" #~ "Exaile now uses absolute URI's, please delete/rename your %s directory" #~ msgstr "" #~ "Exaile now uses absolute URI's, please delete/rename your %s directory" #~ msgid "Print the position inside the current track as time" #~ msgstr "Print the position inside the current track as time" #~ msgid "Print the progress inside the current track as percentage" #~ msgstr "Print the progress inside the current track as percentage" #~ msgid "Increases the volume by VOL%" #~ msgstr "Increases the volume by VOL%" #~ msgid "Decreases the volume by VOL%" #~ msgstr "Decreases the volume by VOL%" #~ msgid "Filter event debug output" #~ msgstr "Filter event debug output" #~ msgid "Device class does not support transfer." #~ msgstr "Device class does not support transfer." #~ msgid "Plugin archive is not in the correct format" #~ msgstr "Plug-in archive is not in the correct format" #~ msgid "A plugin with the name \"%s\" is already installed" #~ msgstr "A plug-in with the name \"%s\" is already installed" #~ msgid "Plugin archive contains an unsafe path" #~ msgstr "Plug-in archive contains an unsafe path" #~ msgid "%(minutes)d:%(seconds)02d" #~ msgstr "%(minutes)d:%(seconds)02d" #~ msgid "New playlist title:" #~ msgstr "New playlist title:" #~ msgid "Custom playlist name:" #~ msgstr "Custom playlist name:" #~ msgid "Save As..." #~ msgstr "Save As..." #~ msgid "%(playlist_count)d showing, %(collection_count)d in collection" #~ msgstr "%(playlist_count)d showing, %(collection_count)d in collection" #~ msgid " (%(queue_count)d queued)" #~ msgstr " (%(queue_count)d queued)" #~ msgid "" #~ "Exaile Music Player\n" #~ "Not playing" #~ msgstr "" #~ "Exaile Music Player\n" #~ "Not playing" #~ msgid "In pause: %s" #~ msgstr "In pause: %s" #~ msgid "Add to custom playlist" #~ msgstr "Add to custom playlist" #~ msgid "_Rename Playlist" #~ msgstr "_Rename Playlist" #~ msgid "_Save As Custom Playlist" #~ msgstr "_Save As Custom Playlist" #~ msgid "_Save Changes To Playlist" #~ msgstr "_Save Changes To Playlist" #~ msgid "_Save As..." #~ msgstr "_Save As…" #~ msgid "C_lear All Tracks" #~ msgstr "C_lear All Tracks" #~ msgid "_Close Playlist" #~ msgstr "_Close Playlist" #~ msgid "Delete track" #~ msgstr "Delete track" #~ msgid "No track" #~ msgstr "No track" #~ msgid "Export current playlist..." #~ msgstr "Export current playlist..." #~ msgid "%(year)d-%(month)02d-%(day)02d" #~ msgstr "%(year)d-%(month)02d-%(day)02d" #~ msgid "New custom playlist name:" #~ msgstr "New custom playlist name:" #~ msgid "Add To New Playlist..." #~ msgstr "Add To New Playlist..." #~ msgid "Idle." #~ msgstr "Idle" #~ msgid "" #~ "This will permanantly delete the selected tracks from your disk, are you " #~ "sure you wish to continue?" #~ msgstr "" #~ "This will permanently delete the selected tracks from your disk; are you " #~ "sure you want to continue?" #~ msgid "Choose a plugin" #~ msgstr "Choose a plug-in" #~ msgid "Could not enable plugin: %s" #~ msgstr "Could not enable plug-in: %s" #~ msgid "Could not disable plugin: %s" #~ msgstr "Could not disable plug-in: %s" #~ msgid "Add item" #~ msgstr "Add item" #~ msgid "Remove item" #~ msgstr "Remove item" #~ msgid "Move selected item up" #~ msgstr "Move selected item up" #~ msgid "Move selected item down" #~ msgstr "Move selected item down" #~ msgid "Repeat playlist" #~ msgstr "Repeat playlist" #~ msgid "Dynamically add similar tracks" #~ msgstr "Dynamically add similar tracks" #~ msgid "Remove current track from playlist" #~ msgstr "Remove current track from playlist" #~ msgid "Album:" #~ msgstr "Album:" #~ msgid "Artist:" #~ msgstr "Artist:" #~ msgid "Basic" #~ msgstr "Basic" #~ msgid "Bitrate:" #~ msgstr "Bitrate:" #~ msgid "Date:" #~ msgstr "Date:" #~ msgid "Details" #~ msgstr "Details" #~ msgid "File Size:" #~ msgstr "File Size:" #~ msgid "Genre:" #~ msgstr "Genre:" #~ msgid "Length:" #~ msgstr "Length:" #~ msgid "Location:" #~ msgstr "Location:" #~ msgid "Play Count:" #~ msgstr "Play Count:" #~ msgid "Title:" #~ msgstr "Title:" #~ msgid "Track Number:" #~ msgstr "Track Number:" #~ msgid "© 2009" #~ msgstr "© 2009" #~ msgid "" #~ "Copyright (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "This program is free software; you can redistribute it and/or modify\n" #~ "it under the terms of the GNU General Public License as published by\n" #~ "the Free Software Foundation; either version 2 of the License, or\n" #~ "(at your option) any later version.\n" #~ "\n" #~ "This program is distributed in the hope that it will be useful,\n" #~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" #~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" #~ "GNU General Public License for more details.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along\n" #~ "with this program; if not, write to the Free Software Foundation, Inc.,\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ msgstr "" #~ "Copyright (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "This program is free software; you can redistribute it and/or modify\n" #~ "it under the terms of the GNU General Public License as published by\n" #~ "the Free Software Foundation; either version 2 of the License, or\n" #~ "(at your option) any later version.\n" #~ "\n" #~ "This program is distributed in the hope that it will be useful,\n" #~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" #~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" #~ "GNU General Public License for more details.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along\n" #~ "with this program; if not, write to the Free Software Foundation, Inc.,\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ msgid "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager" #~ msgstr "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager" #~ msgid "" #~ "Left\n" #~ "Right\n" #~ "Top\n" #~ "Bottom" #~ msgstr "" #~ "Left\n" #~ "Right\n" #~ "Top\n" #~ "Bottom" #~ msgid "Use alpha transparency (if supported)" #~ msgstr "Use alpha transparency (if supported)" #~ msgid "" #~ "OSD\n" #~ "Drag to the location you'd like the\n" #~ "OSD to appear" #~ msgstr "" #~ "OSD\n" #~ "Drag to the location you would like the\n" #~ "OSD to appear" #~ msgid "Remove All" #~ msgstr "Remove All" #~ msgid "" #~ "Automatic\n" #~ "GNOME\n" #~ "ALSA\n" #~ "OSS\n" #~ "PulseAudio\n" #~ "JACK" #~ msgstr "" #~ "Automatic\n" #~ "GNOME\n" #~ "ALSA\n" #~ "OSS\n" #~ "PulseAudio\n" #~ "JACK" #~ msgid "" #~ "Normal\n" #~ "Unified (unstable)" #~ msgstr "" #~ "Normal\n" #~ "Unified (unstable)" #~ msgid "Playback engine (requires restart): " #~ msgstr "Playback engine (requires restart): " #~ msgid "These options only affect the unified engine." #~ msgstr "These options only affect the unified engine." #~ msgid "Install a third party plugin from a file" #~ msgstr "Install a third party plug-in from a file" #~ msgid "Install plugin file" #~ msgstr "Install plug-in file" #~ msgid "Randomize the order of the current playlist" #~ msgstr "Randomize the order of the current playlist" #~ msgid "Start/Pause Playback" #~ msgstr "Start/Pause Playback" #~ msgid "Track _properties" #~ msgstr "Track _properties" #~ msgid "_Export current playlist" #~ msgstr "_Export current playlist" #~ msgid "_Randomize Playlist" #~ msgstr "_Randomize Playlist" #~ msgid "Bookmark this track" #~ msgstr "Bookmark this track" #~ msgid "Delete bookmark" #~ msgstr "Delete bookmark" #~ msgid "Clear bookmarks" #~ msgstr "Clear bookmarks" #~ msgid "Restore Main Window" #~ msgstr "Restore Main Window" #~ msgid "Available controls" #~ msgstr "Available controls" #~ msgid "Selected controls" #~ msgstr "Selected controls" #~ msgid "$title ($length)" #~ msgstr "$title ($length)" #~ msgid "Seeking: " #~ msgstr "Seeking: " #~ msgid " & " #~ msgstr " & " #~ msgid "Time per Increment:" #~ msgstr "Time per Increment:" #~ msgid "Timer per Increment:" #~ msgstr "Timer per Increment:" #~ msgid "Album Line:" #~ msgstr "Album Line:" #~ msgid "Artist Line:" #~ msgstr "Artist Line:" #~ msgid "On Playback Start, Pause or Stop" #~ msgstr "On Playback Start, Pause or Stop" #~ msgid "On Track Change" #~ msgstr "On Track Change" #~ msgid "On Tray Icon Hover" #~ msgstr "On Tray Icon Hover" #~ msgid "" #~ "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " #~ "replaced by their respective values. The title will be replaced by " #~ "\"Unknown\" if it is empty." #~ msgstr "" #~ "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " #~ "replaced by their respective values. The title will be replaced by " #~ "\"Unknown\" if it is empty." #~ msgid "Use Album Covers As Icons" #~ msgstr "Use Album Covers As Icons" #~ msgid "Use Media Icons For Pause, Stop and Resume" #~ msgstr "Use Media Icons For Pause, Stop and Resume" #~ msgid "When GUI is Focused" #~ msgstr "When GUI is Focused" #~ msgid "Secret Key:" #~ msgstr "Secret Key:" #~ msgid "" #~ "To sign up for an Amazon AWS account and get \n" #~ "this information visit http://aws.amazon.com/" #~ msgstr "" #~ "To sign up for an Amazon AWS account and get \n" #~ "this information visit http://aws.amazon.com/" #~ msgid "Both artist and album" #~ msgstr "Both artist and album" #~ msgid "" #~ "Message that should be displayed in the body of the notification. In each " #~ "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced " #~ "by their respective values. If the tag is not known, \"Unknown\" will be " #~ "filled in its place" #~ msgstr "" #~ "Message that should be displayed in the body of the notification. In each " #~ "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced " #~ "by their respective values. If the tag is not known, \"Unknown\" will be " #~ "filled in its place" #~ msgid "Only album" #~ msgstr "Only album" #~ msgid "Only artist" #~ msgstr "Only artist" #~ msgid "Summary" #~ msgstr "Summary" #~ msgid "Terminal Opacity:" #~ msgstr "Terminal Opacity:" #~ msgid "Position" #~ msgstr "Position" #~ msgid "Center horizontally" #~ msgstr "Center horizontally" #~ msgid "Center vertically" #~ msgstr "Center vertically" #~ msgid "Display window decorations" #~ msgstr "Display window decorations" #~ msgid "Horizontal:" #~ msgstr "Horizontal:" #~ msgid "Track title format:" #~ msgstr "Track title format:" #~ msgid "Vertical:" #~ msgstr "Vertical:" #~ msgid "Save Location:" #~ msgstr "Save Location:" #~ msgid "" #~ "Adds support for playing audio CDs.\n" #~ "Requires python-cddb to look up tags." #~ msgstr "" #~ "Adds support for playing audio CDs.\n" #~ "Requires python-cddb to look up tags." #~ msgid "MPRIS" #~ msgstr "MPRIS" #~ msgid "Creates an MPRIS D-Bus object to control Exaile" #~ msgstr "Creates an MPRIS D-Bus object to control Exaile" #~ msgid "Last.fm Dynamic Search" #~ msgstr "Last.fm Dynamic Search" #~ msgid "iPod support" #~ msgstr "iPod support" #~ msgid "A plugin for iPod support" #~ msgstr "A plug-in for iPod support" #~ msgid "Pauses/resumes playback on screensaver start/stop" #~ msgstr "Pauses/resumes playback on screensaver start/stop" #~ msgid "Tag Covers" #~ msgstr "Tag Covers" #~ msgid "Searches track tags for covers" #~ msgstr "Searches track tags for covers" #~ msgid "" #~ "Show various informations about the track currently playing.\n" #~ "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2" #~ msgstr "" #~ "Show various informations about the track currently playing.\n" #~ "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2" #~ msgid "Plugin to fetch lyrics from lyricwiki.org" #~ msgstr "Plug-in to fetch lyrics from lyricwiki.org" dist/copy/po/PaxHeaders.26361/zh.po0000644000175000017500000000012412233027260015420 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.453046943 exaile-3.3.2/po/zh.po0000644000000000000000000034316712233027260014376 0ustar00rootroot00000000000000# Simplified Chinese translation for exaile # Copyright (c) 2009 Free Software Foundation, Inc. # This file is distributed under the same license as the exaile package. # Aron Xu , 2009. # fujianwzh , 2009. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2012-11-01 11:38+0100\n" "Last-Translator: Mathias Brodala \n" "Language-Team: Simplified Chinese \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2009-08-19 14:52+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:600 #, fuzzy, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "分" msgstr[1] "分" #: ../xl/formatter.py:601 #, fuzzy, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "秒" msgstr[1] "秒" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "" #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "" #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "" #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "" #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 #: ../xl/formatter.py:696 msgid "Never" msgstr "" #: ../xl/formatter.py:702 msgid "Today" msgstr "" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "从 0.2.14 迁移失败" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "" #: ../xl/main.py:417 #: ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "" #: ../xl/main.py:421 msgid "Playback Options" msgstr "" #: ../xl/main.py:423 msgid "Play the next track" msgstr "播放下一音轨" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "播放上一音轨" #: ../xl/main.py:427 #: ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "停止回放" #: ../xl/main.py:429 msgid "Play" msgstr "播放" #: ../xl/main.py:431 msgid "Pause" msgstr "暂停" #: ../xl/main.py:434 #, fuzzy msgid "Pause or resume playback" msgstr "暂停回放" #: ../xl/main.py:437 #: ../plugins/minimode/controls.py:365 #, fuzzy msgid "Stop playback after current track" msgstr "打印当前音轨的专辑名称" #: ../xl/main.py:440 #, fuzzy msgid "Collection Options" msgstr "音乐库" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 #: ../xl/main.py:450 msgid "LOCATION" msgstr "" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "" #: ../xl/main.py:447 #, fuzzy msgid "Playlist Options" msgstr "播放列表文件" #: ../xl/main.py:451 #, fuzzy msgid "Exports the current playlist to LOCATION" msgstr "导出当前播放列表(_E)" #: ../xl/main.py:454 msgid "Track Options" msgstr "" #: ../xl/main.py:456 msgid "Query player" msgstr "询问播放器" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 #, fuzzy msgid "Show a popup with data of the current track" msgstr "显示当前播放音轨的弹出窗" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "打印当前音轨的标题" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "打印当前音轨的专辑名称" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "打印当前音轨的艺人" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "打印当前音轨的长度" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 #: ../xl/main.py:493 #: ../xl/main.py:497 msgid "N" msgstr "" #: ../xl/main.py:479 #, fuzzy msgid "Set rating for current track to N%" msgstr "为当前曲目评级" #: ../xl/main.py:481 #, fuzzy msgid "Get rating for current track" msgstr "获取当前曲目评级情况" #: ../xl/main.py:484 #, fuzzy msgid "Print the current playback position as time" msgstr "打印当前音量百分比" #: ../xl/main.py:486 #, fuzzy msgid "Print the current playback progress as percentage" msgstr "打印当前音量百分比" #: ../xl/main.py:490 msgid "Volume Options" msgstr "" #: ../xl/main.py:494 #, fuzzy msgid "Increases the volume by N%" msgstr "增大音量至 VOL%" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 #, fuzzy msgid "Decreases the volume by N%" msgstr "减小音量至 VOL%" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "打印当前音量百分比" #: ../xl/main.py:507 msgid "Other Options" msgstr "" #: ../xl/main.py:509 msgid "Start new instance" msgstr "启动新的实例" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "" #: ../xl/main.py:516 #, fuzzy msgid "Start minimized (to tray, if possible)" msgstr "如果可能,启动 Exaile 时最小化到托盘" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "安全模式启动 - 当有运行问题时非常有用" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "" #: ../xl/main.py:536 #: ../xl/main.py:538 msgid "DIRECTORY" msgstr "" #: ../xl/main.py:536 msgid "Set data directory" msgstr "设置数据目录" #: ../xl/main.py:538 #, fuzzy msgid "Set data and config directory" msgstr "设置数据目录" #: ../xl/main.py:540 msgid "MODULE" msgstr "" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "" #: ../xl/main.py:543 msgid "LEVEL" msgstr "" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "显示调试输出" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "启用 xl.event 调试。产生大量的输出" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:555 msgid "TYPE" msgstr "" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "降低输出水平" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "禁用 D-Bus 支持" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "禁用 HAL 支持" #: ../xl/main.py:580 msgid "Entire Library" msgstr "整个音乐库" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "随机 %d" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "评级 > %d" #: ../xl/main.py:695 msgid "Exaile is not yet finished loading. Perhaps you should listen for the exaile_loaded signal?" msgstr "" #: ../xl/covers.py:466 #: ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 #, fuzzy msgid "Plugin archive is not in the correct format." msgstr "插件包格式错误" #: ../xl/plugins.py:101 #, fuzzy, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "插件\"%s\"已安装" #: ../xl/plugins.py:106 #, fuzzy msgid "Plugin archive contains an unsafe path." msgstr "插件包包含不安全的路径" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "您没有指定载入数据库的位置" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "你未指定保存数据库的位置" #: ../xl/trax/track.py:65 #: ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "多位艺人" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 #: ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "未知" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 #, fuzzy msgid " / " msgstr " + " #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 #: ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "" #: ../xl/transcoder.py:56 msgid "Vorbis is an open source, lossy audio codec with high quality output at a lower file size than MP3." msgstr "Vorbis 是一个开放源码的、有损的音频编解码器,具备高品质的输出并且文件体积比 MP3 更小。" #: ../xl/transcoder.py:66 msgid "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but does not degrade audio quality." msgstr "FLAC 是一个开源的压缩编解码器,不会降低音质。" #: ../xl/transcoder.py:78 msgid "Apple's proprietary lossy audio format that achieves better sound quality than MP3 at lower bitrates." msgstr "在低比特率的情况下,Apple 特有的音频格式比 MP3 格式的音质更好。" #: ../xl/transcoder.py:89 msgid "A proprietary and older, but also popular, lossy audio format. VBR gives higher quality than CBR, but may be incompatible with some players." msgstr "一个特有且旧的音频格式,但是也很流行。VBR 格式的音质比 CBR 格式更好,但它与某些播放软件不兼容。" #: ../xl/transcoder.py:100 msgid "A proprietary and older, but also popular, lossy audio format. CBR gives less quality than VBR, but is compatible with any player." msgstr "一个特有且旧的音频格式,但是也很流行。CBR 格式的音质不如 VBR 格式好,但它与所有播放软件兼容。" #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "一种非常快速、自由、具备良好压缩率的无损音频格式。" #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "自动" #: ../xl/player/pipe.py:340 #: ../xl/player/pipe.py:365 #: ../xl/player/pipe.py:386 #, fuzzy msgid "Custom" msgstr "自定义: " #: ../xl/player/pipe.py:441 #: ../plugins/previewdevice/previewprefs.py:76 #, fuzzy msgid "Auto" msgstr "自适应大小" #: ../xl/xldbus.py:117 #: ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "未播放。" #: ../xl/xldbus.py:498 #, python-format msgid "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "设置的版本比当前版本更新。" #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "Exaile 不知道如何存储这样的设置: " #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "发现未知类型的设置!" #: ../xl/playlist.py:152 #: ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "" #: ../xl/playlist.py:173 #: ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "播放列表" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "M3U 播放列表" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "PLS 播放列表" #: ../xl/playlist.py:517 #: ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "" #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "ASX 播放列表" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "XSPF 播放列表" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "" #: ../xl/playlist.py:879 #, fuzzy msgid "Repeat _All" msgstr "循环播放列表" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:883 #, fuzzy msgid "Dynamic by Similar _Artists" msgstr "自动添加相似音轨" #: ../xl/playlist.py:1824 #: ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 #: ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "秒" #: ../xl/playlist.py:1825 #: ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "分" #: ../xl/playlist.py:1826 #: ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "小时" #: ../xl/playlist.py:1827 #: ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "天" #: ../xl/playlist.py:1828 #: ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "星期" #: ../xl/lyrics.py:305 #, fuzzy msgid "Local" msgstr "位置" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "" #: ../xlgui/widgets/menuitems.py:118 #: ../xlgui/oldmenu.py:116 #, fuzzy msgid "Replace Current" msgstr "追加到当前播放列表" #: ../xlgui/widgets/menuitems.py:122 #: ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "追加到当前播放列表" #: ../xlgui/widgets/menuitems.py:145 #: ../xlgui/properties.py:1135 #, fuzzy msgid "Open Directory" msgstr "返回上级目录" #: ../xlgui/widgets/menuitems.py:167 msgid "The files cannot be moved to the Trash. Delete them permanently from the disk?" msgstr "" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "" #: ../xlgui/widgets/menuitems.py:193 #, fuzzy msgid "_Show Playing Track" msgstr "转到当前播放音轨(_G)" #: ../xlgui/widgets/filter.py:62 #: ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "名称:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "匹配任何标准" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "随机结果" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "限定在: " #: ../xlgui/widgets/filter.py:104 #, fuzzy msgid " tracks" msgstr "0/0 个音轨" #: ../xlgui/widgets/playback.py:95 #: ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "未播放" #: ../xlgui/widgets/playback.py:744 #, fuzzy, python-format msgid "Seeking: %s" msgstr "正在查找:" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "" #: ../xlgui/widgets/playback.py:1166 #, fuzzy msgid "New Marker" msgstr "新建搜索" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "" #: ../xlgui/widgets/playback.py:1274 #, fuzzy msgid "Full Volume" msgstr "最大音量:" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 #, fuzzy msgid "Various" msgstr "上一首" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, fuzzy, python-format msgid "%d in collection" msgstr "正在载入音乐库..." #: ../xlgui/widgets/info.py:624 #: ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "" #: ../xlgui/widgets/info.py:628 #: ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "" #: ../xlgui/widgets/queue.py:87 #, fuzzy msgid "Queue" msgstr "将项目加入队列" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 #: ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "序号" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "音轨编号" #: ../xlgui/widgets/playlist_columns.py:225 #: ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 #: ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 #: ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "标题" #: ../xlgui/widgets/playlist_columns.py:232 #: ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 #: ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 #: ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "艺人" #: ../xlgui/widgets/playlist_columns.py:239 #: ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 #: ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "作曲" #: ../xlgui/widgets/playlist_columns.py:246 #: ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 #: ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 #: ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "专辑" #: ../xlgui/widgets/playlist_columns.py:253 #: ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 #: ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "时长" #: ../xlgui/widgets/playlist_columns.py:260 #: ../xlgui/properties.py:75 msgid "Disc" msgstr "盘片" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "盘片编号" #: ../xlgui/widgets/playlist_columns.py:268 #: ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 #: ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "评级" #: ../xlgui/widgets/playlist_columns.py:312 #: ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "日期" #: ../xlgui/widgets/playlist_columns.py:318 #: ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 #: ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "流派" #: ../xlgui/widgets/playlist_columns.py:325 #: ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "比特率" #: ../xlgui/widgets/playlist_columns.py:332 #: ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 #: ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "位置" #: ../xlgui/widgets/playlist_columns.py:339 #: ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "文件名" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "播放计数" #: ../xlgui/widgets/playlist_columns.py:353 #: ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 #: ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "BPM" #: ../xlgui/widgets/playlist_columns.py:360 #: ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 #: ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 #, fuzzy msgid "Last played" msgstr "LastFM 广播" #: ../xlgui/widgets/playlist_columns.py:366 #: ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 #: ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 #: ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 #, fuzzy msgid "_Resizable" msgstr "可变大小" #: ../xlgui/widgets/playlist_columns.py:624 #, fuzzy msgid "_Autosize" msgstr "自适应大小" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "评级:" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "" #: ../xlgui/widgets/playlist.py:152 #, fuzzy msgid "Remove Current Track From Playlist" msgstr "将当前音轨从播放列表中删除" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "随机播放列表" #: ../xlgui/widgets/playlist.py:185 #, fuzzy msgid "Randomize Selection" msgstr "随机结果" #: ../xlgui/widgets/playlist.py:206 #: ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 #: ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "新建播放列表" #: ../xlgui/widgets/playlist.py:226 #: ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "重命名" #: ../xlgui/widgets/playlist.py:266 #, fuzzy msgid "Stop Playback After This Track" msgstr "停止回放" #: ../xlgui/widgets/playlist.py:273 #, fuzzy msgid "Continue Playback After This Track" msgstr "继续回放" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "" #: ../xlgui/widgets/playlist.py:538 #: ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "动态添加相似音轨到播放列表" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "输入要打开的 URL" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "打开 URL" #: ../xlgui/widgets/dialogs.py:552 #, fuzzy msgid "Select File Type (by Extension)" msgstr "选择文件类型 (按扩展名)" #: ../xlgui/widgets/dialogs.py:608 #, fuzzy msgid "Choose Media to Open" msgstr "选择一个要打开的文件" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "支持的文件" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "音乐文件" #: ../xlgui/widgets/dialogs.py:623 #: ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "播放列表文件" #: ../xlgui/widgets/dialogs.py:625 #: ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "所有文件" #: ../xlgui/widgets/dialogs.py:699 #, fuzzy msgid "Choose Directory to Open" msgstr "选择一个要打开的文件" #: ../xlgui/widgets/dialogs.py:770 #: ../xlgui/menu.py:87 #: ../xlgui/oldmenu.py:192 #, fuzzy msgid "Import Playlist" msgstr "智能播放列表" #: ../xlgui/widgets/dialogs.py:863 #, fuzzy msgid "Export Current Playlist" msgstr "导出当前播放列表(_E)" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "" #: ../xlgui/widgets/dialogs.py:943 #, fuzzy, python-format msgid "Close %s" msgstr "关闭(_C)" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "关闭前保存更改到 %s?" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "如果不保存,您的更改将丢失。" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "不保存关闭" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 #: ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "" #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, fuzzy, python-format msgid "File exists, overwrite %s ?" msgstr "文件不存在:%s" #: ../xlgui/widgets/dialogs.py:1516 #, fuzzy msgid "Playlist name:" msgstr "播放列表" #: ../xlgui/widgets/dialogs.py:1517 #, fuzzy msgid "Add new playlist..." msgstr "添加智能播放列表" #: ../xlgui/widgets/dialogs.py:1526 #: ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "您未给播放列表输入名称" #: ../xlgui/widgets/dialogs.py:1529 #: ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 #: ../xlgui/panel/playlists.py:845 #, fuzzy msgid "The playlist name you entered is already in use." msgstr "您指定的播放列表名称已存在。" #: ../xlgui/widgets/notebook.py:146 #: ../xlgui/menu.py:115 #, fuzzy msgid "Close Tab" msgstr "关闭标签" #: ../xlgui/main.py:111 #, fuzzy msgid "$title (by $artist)" msgstr "%(title)s - %(artist)s" #: ../xlgui/main.py:466 #, fuzzy msgid "Toggle: Stop after Selected Track" msgstr "锁定:选中音乐后停止" #: ../xlgui/main.py:569 #: ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "正在缓冲:%d%%..." #: ../xlgui/main.py:628 #: ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "继续回放" #: ../xlgui/main.py:632 #: ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "暂停回放" #: ../xlgui/main.py:774 #: ../xlgui/menu.py:103 #, fuzzy msgid "Playlist export failed!" msgstr "播放列表文件" #: ../xlgui/main.py:832 #: ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "开始回放" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "Exaile 音乐播放器" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "新建播放列表(_N)" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "打开 _URL" #: ../xlgui/menu.py:81 #, fuzzy msgid "Open Directories" msgstr "返回上级目录" #: ../xlgui/menu.py:109 #, fuzzy msgid "_Export Current Playlist" msgstr "导出当前播放列表(_E)" #: ../xlgui/menu.py:124 #: ../xlgui/preferences/widgets.py:70 #, fuzzy msgid "Restart" msgstr "恢复" #: ../xlgui/menu.py:147 #, fuzzy msgid "_Collection" msgstr "音乐库" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "" #: ../xlgui/menu.py:190 #, fuzzy msgid "_Playlist Utilities Bar" msgstr "播放列表文件" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "列(_C)" #: ../xlgui/menu.py:199 #, fuzzy msgid "C_lear playlist" msgstr "循环播放列表" #: ../xlgui/menu.py:215 #, fuzzy msgid "_Device Manager" msgstr "设备管理器" #: ../xlgui/menu.py:218 #, fuzzy msgid "Re_scan Collection" msgstr "重新扫描音乐库" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "取消" #: ../xlgui/properties.py:51 #, fuzzy msgid "Original album" msgstr "仅专辑" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "" #: ../xlgui/properties.py:54 msgid "Website" msgstr "" #: ../xlgui/properties.py:55 #: ../xlgui/cover.py:793 #, fuzzy msgid "Cover" msgstr "显示封面" #: ../xlgui/properties.py:56 #, fuzzy msgid "Original artist" msgstr "仅艺人" #: ../xlgui/properties.py:57 #, fuzzy msgid "Author" msgstr "作者:" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "" #: ../xlgui/properties.py:66 #: ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 #: ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "" #: ../xlgui/properties.py:67 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:20 #, fuzzy msgid "Track" msgstr "下一音轨" #: ../xlgui/properties.py:68 #: ../data/ui/preferences/plugin.ui.h:2 #, fuzzy msgid "Version" msgstr "版本:" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "" #: ../xlgui/properties.py:438 #, fuzzy msgid "Apply changes before closing?" msgstr "关闭前保存更改到 %s?" #: ../xlgui/properties.py:439 #, fuzzy msgid "Your changes will be lost if you do not apply them now." msgstr "如果不保存,您的更改将丢失。" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 #: ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 #, fuzzy msgid "Supported image formats" msgstr "支持的文件" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "" #: ../xlgui/cover.py:112 #, fuzzy msgid "{outstanding} covers left to fetch" msgstr "取得 %d 个封面" #: ../xlgui/cover.py:113 #, fuzzy msgid "All covers fetched" msgstr "取得 %d 个封面" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "显示封面" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "获取封面" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "删除封面" #: ../xlgui/cover.py:795 #, fuzzy, python-format msgid "Cover for %s" msgstr "从 %s 找到封面" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "" #: ../xlgui/cover.py:990 #, fuzzy msgid "Loading..." msgstr "正在加载插件..." #: ../xlgui/cover.py:1062 #, fuzzy msgid "No covers found." msgstr "未找到封面" #: ../xlgui/cover.py:1063 msgid "None of the enabled sources has a cover for this track, try enabling more sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "" #: ../xlgui/devices.py:81 #, fuzzy msgid "Device" msgstr "添加设备" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "正在扫描音乐库..." #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "正在扫描 %s..." #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "切换队列" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "将项目加入队列" #: ../xlgui/oldmenu.py:121 #: ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "新电台" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "新建智能播放列表" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "编辑" #: ../xlgui/oldmenu.py:249 #, fuzzy msgid "Export Playlist" msgstr "智能播放列表" #: ../xlgui/oldmenu.py:251 #, fuzzy msgid "Export Files" msgstr "支持的文件" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "删除播放列表" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 #: ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "您确定要永久性删除选中的播放列表?" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "输入播放列表的新名称" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "重命名播放列表" #: ../xlgui/oldmenu.py:331 #: ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "删除" #: ../xlgui/playlist.py:77 #, fuzzy msgid "Drop here to create a new playlist" msgstr "输入新建播放列表的名称" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "播放列表 %d" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 #, fuzzy msgid "Add a Directory" msgstr "添加目录" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "" #: ../xlgui/collection.py:135 #, fuzzy msgid "The directory is already in your collection or is a subdirectory of another directory in your collection." msgstr "路径已存在于您的音乐库,或者是音乐库中另一路径的子目录" #: ../xlgui/panel/device.py:137 #, fuzzy, python-format msgid "Transferring to %s..." msgstr "正在扫描 %s..." #: ../xlgui/panel/radio.py:126 #: ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "正在载入流..." #: ../xlgui/panel/radio.py:198 #, fuzzy msgid "Add Radio Station" msgstr "已保存电台" #: ../xlgui/panel/radio.py:201 #: ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "URL:" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "已保存电台" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "电台流媒体" #: ../xlgui/panel/radio.py:304 #: ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "刷新" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "输入新建播放列表的名称" #: ../xlgui/panel/collection.py:179 #, fuzzy msgid "Genre - Artist" msgstr "艺人" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "" #: ../xlgui/panel/collection.py:185 #, fuzzy msgid "Date - Artist" msgstr "艺人" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "重新扫描音乐库" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "大小" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s KB" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "和" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "是" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "不是" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 #, fuzzy msgid "is not set" msgstr "不是" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "包含" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "不包含" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "至少" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "至多" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "早于" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "晚于" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "介于" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "播放" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "年份" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 #: ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 #: ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, fuzzy, python-format msgid "%(first)s and %(second)s" msgstr "%(minutes)d:%(seconds)02d" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "智能播放列表" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "自定义播放列表" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "添加智能播放列表" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "编辑智能播放列表" #: ../xlgui/panel/playlists.py:1125 #, fuzzy, python-format msgid "Exporting %s" msgstr "导出" #: ../xlgui/preferences/playback.py:35 #, fuzzy msgid "Playback" msgstr "停止回放" #: ../xlgui/preferences/plugin.py:40 #: ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "插件" #: ../xlgui/preferences/plugin.py:92 #: ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 #, fuzzy msgid "Could not load plugin info!" msgstr "无法启用插件。" #: ../xlgui/preferences/plugin.py:137 #, fuzzy, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "已加载 %s 插件" msgstr[1] "已加载 %s 插件" #: ../xlgui/preferences/plugin.py:167 #: ../xlgui/preferences/plugin.py:261 #, fuzzy msgid "Could not disable plugin!" msgstr "无法禁用插件。" #: ../xlgui/preferences/plugin.py:177 #: ../xlgui/preferences/plugin.py:255 #, fuzzy msgid "Could not enable plugin!" msgstr "无法启用插件。" #: ../xlgui/preferences/plugin.py:185 #, fuzzy msgid "Choose a Plugin" msgstr "选择插件" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "插件包" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "" #: ../xlgui/preferences/cover.py:38 #: ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 #: ../plugins/amazoncovers/PLUGININFO:5 #, fuzzy msgid "Covers" msgstr "显示封面" #: ../xlgui/preferences/appearance.py:34 #: ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "" #: ../xlgui/preferences/collection.py:23 #: ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "音乐库" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "" #: ../xlgui/preferences/widgets.py:66 #, fuzzy msgid "Restart Exaile?" msgstr "重启动播放列表" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "" #: ../xlgui/preferences/widgets.py:619 #, fuzzy msgid "Action" msgstr "位置" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "" #: ../xlgui/preferences/playlists.py:34 #: ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "播放列表" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "关于 Exaile" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "© 2009-2012" #: ../data/ui/about_dialog.ui.h:3 #, fuzzy msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" "版权所有 (C) 2008-2009 Adam Olsen \n" "\n" "本程序为自由软件;您可以在自由软件基金会所发布的 GNU 通用公共许可证 (GPL) 第二版或之后任意版本之下自由修改/重发布此软件。\n" "\n" "分发此软件是希望它能够有一些用处,但是我们对它不做任何保证,无论是关于其适销性还是对特定用途的适用性。请查看 GNU 通用公共许可证以了解详情。\n" "您应当随此程序获得 GNU 通用公共许可证的一个副本;如果没有,请致函自由软件基金会:\n" "Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "封面管理器" #: ../data/ui/covermanager.ui.h:2 #, fuzzy msgid "_Fetch Covers" msgstr "获取封面" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "打乱回放顺序" #: ../data/ui/playlist.ui.h:2 #, fuzzy msgid "Repeat playback" msgstr "循环播放列表" #: ../data/ui/playlist.ui.h:4 #, fuzzy msgid "_Search:" msgstr "搜索: " #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "专辑封面查找器" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 #, fuzzy msgid "_Set as Cover" msgstr "获取封面" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "文件(_F)" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "编辑(_E)" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "查看(_V)" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "工具(_T)" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "帮助(_H)" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "上一音轨" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "下一音轨" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0:00 / 0:00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:3 #, fuzzy msgid "_Remove tag" msgstr "删除" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:8 #, fuzzy msgid "_Previous" msgstr "上一首" #: ../data/ui/trackproperties_dialog.ui.h:9 #, fuzzy msgid "_Next" msgstr "下一首" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 #, fuzzy msgid "Recording Location" msgstr "重新扫描音乐库" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "描述:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "音乐库管理" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 #: ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "电台广播" #: ../data/ui/panel/flatplaylist.ui.h:2 #, fuzzy msgid "Append All Tracks to Playlist" msgstr "添加到自定义播放列表" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "" #: ../data/ui/panel/radio.ui.h:2 #, fuzzy msgid "Add Station" msgstr "新电台" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "文件" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "上一个已查看的目录" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "下一个已查看的目录" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "返回上级目录" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "刷新目录列表" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "主目录" #: ../data/ui/panel/files.ui.h:7 #: ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "搜索: " #: ../data/ui/panel/files.ui.h:8 #: ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "" #: ../data/ui/panel/collection.ui.h:3 #, fuzzy msgid "Add Music" msgstr "添加设备" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 #, fuzzy msgid "Preferred file names:" msgstr "首选项" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "封面搜索顺序:" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "(拖动以调整顺序)" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "启动时打开最近的播放列表" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "Instead of appending, tracks added via double click in the panes will replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "When using a menu item to add/replace tracks on the playlist, start playback if there is track currently playing. This option was the default behavior before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "When you double click or press enter to play a track in a playlist, queue the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 #, fuzzy msgid "Playback engine: " msgstr "回放引擎(需要重新启动程序): " #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "用户操作时使用匀滑转换" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "淡入淡出持续时间(毫秒):" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "使用匀滑转换(实验性)" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "匀滑转换持续时间(毫秒):" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "音频接收器: " #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 #, fuzzy msgid "Device: " msgstr "设备管理器" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "启动时继续上次播放" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "继续已暂停的播放" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 #, fuzzy msgid "Remove track from queue upon playback" msgstr "将当前音轨从播放列表中删除" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 #, fuzzy msgid "Unified (unstable)" msgstr "" "普通\n" "Unified(不稳定)" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "插件" #: ../data/ui/preferences/plugin.ui.h:3 #: ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "已启用" #: ../data/ui/preferences/plugin.ui.h:4 #, fuzzy msgid "No Plugin Selected" msgstr "没有选定插件" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "已安装插件" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "作者:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "版本:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "安装" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "没有选定插件" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "可用插件" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "安装更新" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "更新" #: ../data/ui/preferences/plugin.ui.h:14 #, fuzzy msgid "Install Plugin File" msgstr "已安装插件" #: ../data/ui/preferences/appearance.ui.h:1 #, fuzzy msgid "Show info area" msgstr "在面版上显示" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "始终显示标签栏" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "标签位置:" #: ../data/ui/preferences/appearance.ui.h:6 #, fuzzy msgid "Playlist font:" msgstr "播放列表" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "Warning: this option can cause display errors if used with a window manager without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "显示托盘图标" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:14 #, fuzzy msgid "Close to tray" msgstr "关闭标签" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "当音轨改变时跳转到当前曲目" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "启动时显示飞溅屏幕" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "首选项" #: ../data/ui/preferences/collection.ui.h:1 msgid "Words to strip from the beginning of artist tags when sorting (space separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "设备管理器" #: ../data/ui/device_manager.ui.h:2 #, fuzzy msgid "Add Device" msgstr "添加设备" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "设备类型:" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "检测到的设备:" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "自定义: " #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "队列管理器" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "正在搜索 mood..." #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "Mood 已找到。" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "无法读取 moodbar 。" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "Moodbar 可执行程序不存在。" #: ../plugins/moodbar/moodbarprefs.py:23 #: ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "提取流媒体时出错" #: ../plugins/streamripper/srprefs.py:22 #: ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 #, fuzzy msgid "Could not start web browser" msgstr "无法读取 moodbar 。" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:186 #, fuzzy msgid "Love This Track" msgstr "上一音轨" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 #: ../plugins/alarmclock/PLUGININFO:3 #, fuzzy msgid "Alarm Clock" msgstr "多点闹钟" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 #: ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 #: ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "" #: ../plugins/shoutcast/__init__.py:120 #: ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 #: ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 #: ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "输入要搜索的关键字" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "SHOUTcast 搜索" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "搜索结果" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "搜索" #: ../plugins/lyricsviewer/__init__.py:278 #, fuzzy msgid "No lyrics found." msgstr "未找到封面" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "" #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 #, fuzzy msgid "Enable audioscrobbling" msgstr "启用渐变" #: ../plugins/equalizer/__init__.py:127 #: ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "" #: ../plugins/shutdown/__init__.py:38 #: ../plugins/shutdown/PLUGININFO:3 #, fuzzy msgid "Shutdown after Playback" msgstr "开始回放" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 #, fuzzy msgid "Preview" msgstr "上一首" #: ../plugins/notifyosd/notifyosdprefs.py:22 #: ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "%(title)s" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "艺人:%(artist)s" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "专辑:%(album)s" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "IPython 控制台 - Exaile" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "显示 IPython 控制台" #: ../plugins/ipconsole/ipconsoleprefs.py:22 #: ../plugins/ipconsole/PLUGININFO:3 #, fuzzy msgid "IPython Console" msgstr "显示 IPython 控制台" #: ../plugins/notify/notifyprefs.py:22 #: ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" "艺人:%(artist)s\n" "专辑:%(album)s" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "" #: ../plugins/cd/__init__.py:122 #: ../plugins/cd/__init__.py:200 #, fuzzy msgid "Audio Disc" msgstr "音频接收器: " #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "" #: ../plugins/cd/cdprefs.py:105 #: ../plugins/minimode/minimode_preferences.py:92 #, fuzzy msgid "Track number" msgstr "音轨编号" #: ../plugins/cd/cdprefs.py:111 #: ../plugins/minimode/minimode_preferences.py:98 #, fuzzy msgid "Disc number" msgstr "盘片编号" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 #, fuzzy msgid "Play count" msgstr "播放计数" #: ../plugins/wikipedia/plugin.py:305 #, fuzzy msgid "Artist: " msgstr "艺人" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:134 #: ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 #: ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "迷你模式" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 #: ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 #, fuzzy msgid "$title by $artist" msgstr "%(title)s - %(artist)s" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "上一首" #: ../plugins/minimode/controls.py:222 #, fuzzy msgid "Go to the previous track" msgstr "播放上一音轨" #: ../plugins/minimode/controls.py:228 #, fuzzy msgid "Previous track" msgstr "上一音轨" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "下一首" #: ../plugins/minimode/controls.py:242 #, fuzzy msgid "Go to the next track" msgstr "播放下一音轨" #: ../plugins/minimode/controls.py:248 #, fuzzy msgid "Next track" msgstr "下一音轨" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "播放/暂停" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 #, fuzzy msgid "Start playback" msgstr "开始回放" #: ../plugins/minimode/controls.py:287 #, fuzzy msgid "Continue playback" msgstr "继续回放" #: ../plugins/minimode/controls.py:290 #, fuzzy msgid "Pause playback" msgstr "暂停回放" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "停止" #: ../plugins/minimode/controls.py:329 #, fuzzy msgid "Stop the playback" msgstr "停止回放" #: ../plugins/minimode/controls.py:363 #, fuzzy msgid "Continue playback after current track" msgstr "打印当前音轨的专辑名称" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "恢复" #: ../plugins/minimode/controls.py:490 #, fuzzy msgid "Restore the main window" msgstr "恢复主窗口" #: ../plugins/minimode/controls.py:498 #, fuzzy msgid "Restore main window" msgstr "恢复主窗口" #: ../plugins/minimode/controls.py:528 #, fuzzy msgid "Select rating of the current track" msgstr "为当前曲目评级" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "音轨选取器" #: ../plugins/minimode/controls.py:546 #, fuzzy msgid "Simple track list selector" msgstr "音轨选取器" #: ../plugins/minimode/controls.py:698 #, fuzzy msgid "Playlist button" msgstr "播放列表" #: ../plugins/minimode/controls.py:699 #, fuzzy msgid "Access the current playlist" msgstr "导出当前播放列表(_E)" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 #, fuzzy msgid "Progress button" msgstr "进度条" #: ../plugins/minimode/controls.py:1019 #, fuzzy msgid "Playback progress and access to the current playlist" msgstr "随机改变当前播放列表顺序" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "进度条" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 #: ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 #, fuzzy msgid "Add new category" msgstr "添加目录" #: ../plugins/grouptagger/gt_widgets.py:162 #, fuzzy msgid "Remove category" msgstr "删除封面" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 #, fuzzy msgid "Selected Tracks" msgstr "已选中控制" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 #, fuzzy msgid "Drop to Choose" msgstr "选择" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 #: ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "" #: ../plugins/jamendo/__init__.py:88 #, fuzzy msgid "Searching Jamendo catalogue..." msgstr "正在搜索 mood..." #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "" #: ../plugins/osd/osd_preferences.py:29 #: ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 #, fuzzy msgid "Amazon Covers" msgstr "删除封面" #: ../plugins/podcasts/__init__.py:55 #: ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:81 #, fuzzy msgid "Refresh Podcast" msgstr "刷新" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "" #: ../plugins/podcasts/__init__.py:120 #, fuzzy msgid "Enter the URL of the podcast to add" msgstr "输入要打开的 URL" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:154 #, fuzzy, python-format msgid "Loading %s..." msgstr "正在载入 Exaile %s..." #: ../plugins/podcasts/__init__.py:182 #, fuzzy msgid "Error loading podcast." msgstr "载入面板首选项出错" #: ../plugins/podcasts/__init__.py:198 #, fuzzy msgid "Loading Podcasts..." msgstr "正在加载设备..." #: ../plugins/podcasts/__init__.py:229 #, fuzzy msgid "Could not save podcast file" msgstr "无法禁用插件。" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "桌面封面" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "多点闹钟" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 #, fuzzy msgid "Bookmark This Track" msgstr "将此音轨加入书签" #: ../plugins/bookmarks/__init__.py:106 #, fuzzy msgid "Delete Bookmark" msgstr "删除书签" #: ../plugins/bookmarks/__init__.py:108 #, fuzzy msgid "Clear Bookmarks" msgstr "清空书签" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 #: ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "书签" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "" #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "" #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" #: ../plugins/daapclient/__init__.py:646 #, fuzzy msgid "Refresh Server List" msgstr "刷新目录列表" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "" #: ../plugins/daapclient/__init__.py:714 #, fuzzy msgid "Connect to DAAP..." msgstr "已连接至 HAL" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 #, fuzzy msgid "Base color" msgstr "文本颜色" #: ../plugins/streamripper/streamripper.ui.h:1 #, fuzzy msgid "Save location:" msgstr "保存位置:" #: ../plugins/streamripper/streamripper.ui.h:2 #, fuzzy msgid "Relay port:" msgstr "中继端口:" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "Go to Your API Account page to get an API key and secret and enter them here. After you have entered these, request access permission and confirm to complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 #, fuzzy msgid "Alarm time" msgstr "提醒时间:" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "星期一" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "星期二" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "星期三" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "星期四" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "星期五" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "星期六" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "星期日" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 #, fuzzy msgid "Alarm Days" msgstr "提醒日:" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "使用渐变" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 #, fuzzy msgid "Minimum volume:" msgstr "最小音量:" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 #, fuzzy msgid "Maximum volume:" msgstr "最大音量:" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "增量:" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 #, fuzzy msgid "Time per increment:" msgstr "时间每次增量:" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 #, fuzzy msgid "Display covers" msgstr "缩放已显示的封面" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 #, fuzzy msgid "Refresh Lyrics" msgstr "刷新" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "使用 Audioscrobbler 提交音轨" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "密码:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "用户名:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 #, fuzzy msgid "On track change" msgstr "当音轨发生变更时" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 #, fuzzy msgid "On playback start, pause or stop" msgstr "当回放开始、暂停或停止时" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 #, fuzzy msgid "On tag change" msgstr "当音轨发生变更时" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 #, fuzzy msgid "On tray icon hover" msgstr "托盘图标上悬停" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "显示" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 #, fuzzy msgid "Use album covers as icons" msgstr "使用专辑封面作为图标" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 #, fuzzy msgid "Use media icons for pause, stop and resume" msgstr "为暂停、停止和恢复使用媒体图标" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "图标" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 #, fuzzy msgid "Artist line:" msgstr "艺人:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, fuzzy, python-format msgid "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by their respective values. The title will be replaced by \"Unknown\" if it is empty." msgstr "\"%(title)s\",\"%(artist)s\" 和 \"%(album)s\" 三个标签将被其相应值替代。如果标题为空则用 \"Unknown\" 替换。" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "概览" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 #, fuzzy msgid "Album line:" msgstr "专辑:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "内容" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 #, fuzzy msgid "Font:" msgstr "文本字体:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 #, fuzzy msgid "Text Color:" msgstr "文本颜色" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "背景色:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 #, fuzzy msgid "IPython Color Theme:" msgstr "显示 IPython 控制台" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "缩放已显示的封面" #: ../plugins/notify/notifyprefs_pane.ui.h:3 #, fuzzy msgid "Only artist:" msgstr "仅艺人" #: ../plugins/notify/notifyprefs_pane.ui.h:4 #, fuzzy msgid "Only album:" msgstr "仅专辑" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, fuzzy, python-format msgid "Message that should be displayed in the body of the notification. In each case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by their respective values. If the tag is not known, \"Unknown\" will be filled in its place." msgstr "信息将被显示于通知窗主体位置。任何情况下,\"%(title)s\", \"%(artist)s\", 和 \"%(album)s\" 将被他们各自的值替换。如果标签未知,则用 \"Unknown\" 替代" #: ../plugins/notify/notifyprefs_pane.ui.h:7 #, fuzzy msgid "Both artist and album:" msgstr "艺人和专辑" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "主体信息" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "Every tag can be used with $tag or ${tag}. Internal tags like $__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "The order of controls can be changed by simply dragging them up or down. (Or press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 #, fuzzy msgid "Track Title Format" msgstr "音轨选取器" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "前端显示" #: ../plugins/minimode/minimode_preferences.ui.h:6 #, fuzzy msgid "Show in tasklist" msgstr "在面版上显示" #: ../plugins/minimode/minimode_preferences.ui.h:8 #, fuzzy msgid "Display window decorations:" msgstr "显示窗口装饰" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "在所有桌面上显示" #: ../plugins/minimode/minimode_preferences.ui.h:10 #, fuzzy msgid "Show button in main window" msgstr "迷你模式下主窗口按钮" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "喜欢逐一专辑校正" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "使用裁剪保护" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "回落校正水平(dB):" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 #, fuzzy msgid "Order direction:" msgstr "主目录" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 #, fuzzy msgid "Results:" msgstr "搜索结果" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 #, fuzzy msgid "Descending" msgstr "使用渐变" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 #, fuzzy msgid "Ascending" msgstr "使用渐变" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 #, fuzzy msgid "Starred" msgstr "开始" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 #, fuzzy msgid "Genre/Tags" msgstr "流派" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like $__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 #, fuzzy msgid "Display Format" msgstr "显示窗口装饰" #: ../plugins/osd/osd_preferences.ui.h:4 #, fuzzy msgid "Display duration:" msgstr "显示窗口装饰" #: ../plugins/osd/osd_preferences.ui.h:5 #, fuzzy msgid "Background:" msgstr "背景色:" #: ../plugins/osd/osd_preferences.ui.h:6 #, fuzzy msgid "Show progress bar" msgstr "进度条" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon.com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 #, fuzzy msgid "Size:" msgstr "大小" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 #, fuzzy msgid "Use fading" msgstr "使用渐变" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 #, fuzzy msgid "Fading duration:" msgstr "淡入淡出持续时间(毫秒):" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:3 #, fuzzy msgid "Alarms" msgstr "显示" #: ../plugins/multialarmclock/malrmclk.ui.h:4 #, fuzzy msgid "Enable volume fade-in" msgstr "启用渐变" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 #, fuzzy msgid "Fade Increment:" msgstr "增量:" #: ../plugins/multialarmclock/malrmclk.ui.h:8 #, fuzzy msgid "Fade Time (s):" msgstr "淡入淡出持续时间(毫秒):" #: ../plugins/multialarmclock/malrmclk.ui.h:9 #, fuzzy msgid "Restart playlist" msgstr "重启动播放列表" #: ../plugins/multialarmclock/malrmclk.ui.h:10 #, fuzzy msgid "Playback" msgstr "显示" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "在书签菜单中显示封面(下次启动时生效)" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 #, fuzzy msgid "Server name:" msgstr "用户名:" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 #, fuzzy msgid "Port:" msgstr "中继端口:" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "" #: ../plugins/currentsong/PLUGININFO:4 msgid "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 #: ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 #: ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 #, fuzzy msgid "Notifications" msgstr "位置" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 #: ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 #: ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 #: ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "Adds support for controlling Exaile via GNOME's multimedia key system. Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 #: ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 #: ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 #: ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you pressed the play button, so be sure you have the music you want to hear in your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 #: ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 #: ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 #: ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 #: ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 #, fuzzy msgid "Shoutcast Radio" msgstr "SHOUTcast 搜索" #: ../plugins/shoutcast/PLUGININFO:4 #, fuzzy msgid "Shoutcast Radio list" msgstr "SHOUTcast 搜索" #: ../plugins/shoutcast/PLUGININFO:5 #: ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 #: ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 #: ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 #, fuzzy msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "显示当前播放音轨的弹出窗" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "Submits listening information to Last.fm and similar services supporting AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 #: ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 #: ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "" #: ../plugins/massstorage/PLUGININFO:4 msgid "Support for accessing portable media players using the USB Mass Storage protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 #: ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "Allows playing audio over a secondary device (right click on playlist and select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 #, fuzzy msgid "Last.fm Dynamic Playlists" msgstr "自定义播放列表" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 #, fuzzy msgid "Dynamic Playlists" msgstr "重命名播放列表" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/stopped, with either the song cover or a media icon to indicate the latest action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 #: ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 #, fuzzy msgid "CD Playback" msgstr "停止回放" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 #: ../plugins/contextinfo/PLUGININFO:5 #, fuzzy msgid "Information" msgstr "位置" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "Facilitates categorizing your music by managing the grouping/category tag in audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:3 #, fuzzy msgid "Drop Trayicon" msgstr "显示托盘图标" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 #, fuzzy msgid "A popup window showing information of the currently playing track." msgstr "显示当前播放音轨的弹出窗" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "" #: ../plugins/karaoke/PLUGININFO:4 #, fuzzy msgid "Removes voice from audio" msgstr "从队列中删除歌曲" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you pressed the play button, so be sure you have the music you want to hear in your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. PIL)" msgstr "" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" #~ msgid "GNOME" #~ msgstr "GNOME" #~ msgid "ALSA" #~ msgstr "ALSA" #~ msgid "OSS" #~ msgstr "OSS" #~ msgid "PulseAudio" #~ msgstr "PulseAudio" #~ msgid "JACK" #~ msgstr "JACK" #~ msgid "Could not set parameter %(parameter)s for %(sink)s" #~ msgstr "无法为 %(sink)s 设定参数 %(parameter)s" #~ msgid "Normal playback engine selected." #~ msgstr "已选择普通回放引擎" #~ msgid "Unified playback engine selected." #~ msgstr "已选择 Unified 回放引擎。" #~ msgid "Buffering complete" #~ msgstr "缓冲完成" #~ msgid "" #~ "Exaile now uses absolute URI's, please delete/rename your %s directory" #~ msgstr "Exaile 现在使用绝对 URI,请删除/重命名您的 %s 目录" #~ msgid "Playing %s" #~ msgstr "现在播放 %s" #~ msgid "Couldn't send seek event" #~ msgstr "无法发送查找事件" #~ msgid "Loading settings..." #~ msgstr "正在加载设置..." #~ msgid "Safe mode enabled, not loading plugins." #~ msgstr "安全模式启用,不载入插件。" #~ msgid "Loading interface..." #~ msgstr "正在载入界面..." #~ msgid "Toggle Play or Pause" #~ msgstr "切换播放或暂停" #~ msgid "Print the position inside the current track as a percentage" #~ msgstr "打印当前音轨的进度百分比" #~ msgid "Exaile is shutting down..." #~ msgstr "Exaile 正在关闭..." #~ msgid "Saving state..." #~ msgstr "正在保存状态..." #~ msgid "Bye!" #~ msgstr "再见!" #~ msgid "CoverDB: set cover %(cover)s for '%(album)s - %(artist)s'" #~ msgstr "封面数据库:为 \"%(album)s - %(artist)s\" 选取封面 %(cover)s" #~ msgid "order must be a list or tuple" #~ msgstr "order 必须是一个列表或数组" #~ msgid "Attempting to find covers for %s" #~ msgstr "正在尝试找到 %s 的封面" #~ msgid "%s method doesn't support searching, skipping" #~ msgstr "%s 方式不支持搜索,跳过" #~ msgid "" #~ "Could not import tag %(tag)s from file %(location)s because of possible " #~ "conflict, please adjust your tags if you want to import this." #~ msgstr "" #~ "无法从文件 %(location)s 导入标签 %(tag)s,如果您仍想导入它们请调整您的标签" #~ "以解决可能存在的冲突" #~ msgid "Failed to load HAL devices for %s" #~ msgstr "为 %s 加载 HAL 设备失败" #~ msgid "Failed to connect to HAL, autodetection of devices will be disabled." #~ msgstr "连接 HAL 失败,自动检测设备将被禁用。" #~ msgid "Found no HAL device handler for %s" #~ msgstr "找不到处理 %s 的 HAL 设备" #~ msgid "Failed to create device for %s" #~ msgstr "为 %s 创建设备失败" #~ msgid "Found new %(handler)s device at %(device_udi)s" #~ msgstr "在 %(device_udi)s 发现新的 %(handler)s 设备" #~ msgid " New song, fetching cover." #~ msgstr " 新歌曲,正在获取封面。" #~ msgid "File count: %d" #~ msgstr "文件计数:%d" #~ msgid "Watching directory: %s" #~ msgstr "监视目录:%s" #~ msgid "Location deleted: %s" #~ msgstr "位置已删除: %s" #~ msgid "Location modified: %s" #~ msgstr "位置已修改: %s" #~ msgid "PyInotify not installed or not supported. " #~ msgstr "PyInotify 未安装或不支持。 " #~ msgid "Not watching library: %s" #~ msgstr "没有监视音乐库: %s" #~ msgid "Encoding error, skipping compilation check" #~ msgstr "编码错误,跳过编辑检查" #~ msgid "Compilation detected: %s" #~ msgstr "编辑检查发现: %s" #~ msgid "Scanning library: %s" #~ msgstr "正在扫描媒体库:%s" #~ msgid "Provider %(provider)s registered for service %(service)s" #~ msgstr "提供者 %(provider)s 已注册 %(service)s 服务" #~ msgid "Provider %(provider)s unregistered from service %(service)s" #~ msgstr "提供者 %(provider)s 未注册 %(service)s 服务" #~ msgid "Unable to enable plugin %s" #~ msgstr "无法启用 %s 插件" #~ msgid "Unable to fully disable plugin %s" #~ msgstr "无法完全关闭插件 %s" #~ msgid "Ran out of tracks to shuffle" #~ msgstr "随机播放音轨" #~ msgid "Searching for %(limit)s tracks related to %(track)s" #~ msgstr "正在搜索与 %(track)s 关联的 %(limit)s 首音轨" #~ msgid "Added %s tracks." #~ msgstr "添加 %s 音轨。" #~ msgid "Stopping IdleManager thread..." #~ msgstr "正在停止 IdleManager 线程..." #~ msgid "Sent '%(type)s' event from '%(object)s' with data '%(data)s'." #~ msgstr "从 '%(object)s' 发出 '%(type)s' 事件和 '%(data)s' 数据。" #~ msgid "Failed to open music DB." #~ msgstr "打开音乐数据库失败。" #~ msgid "Saving %(name)s DB to %(location)s." #~ msgstr "保存 %(name)s 数据库到 %(location)s。" #~ msgid "Failed to open music DB for write." #~ msgstr "打开音乐数据库失败。" #~ msgid "bad search token" #~ msgstr "错误的搜索指令" #~ msgid "Streaming..." #~ msgstr "滚动..." #~ msgid "New playlist title:" #~ msgstr "新建的播放列表标题:" #~ msgid "%(playlist_count)d showing, %(collection_count)d in collection" #~ msgstr "当前显示 %(playlist_count)d 首,音乐库中共 %(collection_count)d 首" #~ msgid " (%(queue_count)d queued)" #~ msgstr " (%(queue_count)d 首已排队)" #~ msgid "Buffering: 100%..." #~ msgstr "正在缓冲:100%" #~ msgid "Stopped" #~ msgstr "已停止" #~ msgid "" #~ "Exaile Music Player\n" #~ "Not playing" #~ msgstr "" #~ "Exaile 音乐播放器\n" #~ "未播放" #~ msgid "by %s" #~ msgstr "艺人:%s" #~ msgid "from %s" #~ msgstr "- %s" #~ msgid "In pause: %s" #~ msgstr "暂停:%s" #~ msgid "Set Rating" #~ msgstr "评级" #~ msgid "_Rename Playlist" #~ msgstr "重命名播放列表(_P)" #~ msgid "_Save As Custom Playlist" #~ msgstr "另存为自定义播放列表(_S)" #~ msgid "C_lear All Tracks" #~ msgstr "清除所有音轨*_L(" #~ msgid "_Close Playlist" #~ msgstr "关闭播放列表(_C)" #~ msgid "Open" #~ msgstr "打开" #~ msgid "Export as..." #~ msgstr "导出..." #~ msgid "No cover found" #~ msgstr "未找到封面" #~ msgid "Saving cover database" #~ msgstr "正在保存封面数据库" #~ msgid "Enter the search text" #~ msgstr "输入要搜索的内容" #~ msgid "Export current playlist..." #~ msgstr "导出当前播放列表..." #~ msgid "Invalid file extension, file not saved" #~ msgstr "无效的文件扩展名,文件未保存" #~ msgid "Tracks did not change, no need to update" #~ msgstr "音轨未改变,不需要更新" #~ msgid "Gave an invalid number to remove" #~ msgstr "要删除的编号无效" #~ msgid "File Type" #~ msgstr "文件类型" #~ msgid "Extension" #~ msgstr "扩展名" #~ msgid "0:00" #~ msgstr "0:00" #~ msgid " songs" #~ msgstr " 首" #~ msgid "The selected plugin doesn't have any configuration options" #~ msgstr "已选中的插件没有配置选项" #~ msgid "adding %(column_id)s column to %(preference)s" #~ msgstr "正在添加 %(column_id)s 列到 %(preference)s" #~ msgid "removing %(column_id)s column from %(preference)s" #~ msgstr "正在从 %(preference)s 删除 %(column_id)s 列" #~ msgid "Confirm Close" #~ msgstr "确认关闭" #~ msgid "Save" #~ msgstr "保存" #~ msgid "Quit" #~ msgstr "退出" #~ msgid "..." #~ msgstr "..." #~ msgid "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager" #~ msgstr "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager\n" #~ "Aron Xu\n" #~ " \n" #~ " Simplified Chinese translator\n" #~ "fujianwzh\n" #~ " \n" #~ " Simplified Chinese translator" #~ msgid "" #~ "Left\n" #~ "Right\n" #~ "Top\n" #~ "Bottom" #~ msgstr "" #~ "左\n" #~ "右\n" #~ "上\n" #~ "下" #~ msgid "" #~ "OSD\n" #~ "Drag to the location you'd like the\n" #~ "OSD to appear" #~ msgstr "" #~ "OSD\n" #~ "拖动 OSD 到您希望的位置" #~ msgid "Popup" #~ msgstr "弹出" #~ msgid "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgstr "移动屏幕上显示的窗口到指定位置" #~ msgid "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgstr "" #~ "{title}\n" #~ "艺人:{artist}\n" #~ "专辑:{album} - {length}" #~ msgid "Display OSD when hovering over tray icon" #~ msgstr "鼠标在托盘图标悬停时显示 OSD" #~ msgid "Display a progressbar in the OSD" #~ msgstr "在 OSD 上显示进度条" #~ msgid "Opacity Level:" #~ msgstr "透明度:" #~ msgid "Show OSD on track change" #~ msgstr "当音轨改变时显示 OSD" #~ msgid "Window Height:" #~ msgstr "窗口高度:" #~ msgid "Window Width:" #~ msgstr "窗口宽度" #~ msgid "Plugin Manager" #~ msgstr "插件管理器" #~ msgid "Close this dialog" #~ msgstr "关闭此对话框" #~ msgid "Move song down in queue" #~ msgstr "在队列中下移歌曲" #~ msgid "Move song to bottom of queue" #~ msgstr "移动歌曲到队列尾部" #~ msgid "Move song to top in queue" #~ msgstr "移动歌曲到队列首部" #~ msgid "Move song up in queue" #~ msgstr "在队列中前移歌曲" #~ msgid "Queue Manager - Exaile" #~ msgstr "队列管理器 - Exaile" #~ msgid "Remove All" #~ msgstr "全部删除" #~ msgid "" #~ "Automatic\n" #~ "GNOME\n" #~ "ALSA\n" #~ "OSS\n" #~ "PulseAudio\n" #~ "JACK" #~ msgstr "" #~ "自动\n" #~ "GNOME\n" #~ "ALSA\n" #~ "OSS\n" #~ "PulseAudio\n" #~ "JACK" #~ msgid "These options only affect the unified engine." #~ msgstr "这些选项只影响 unified 引擎。" #~ msgid " - " #~ msgstr " - " #~ msgid "Page 1" #~ msgstr "第1页" #~ msgid "Pl_ugins" #~ msgstr "插件(_U)" #~ msgid "Vol:" #~ msgstr "音量:" #~ msgid "_Collection Manager" #~ msgstr "音乐库管理器(_C)" #~ msgid "_Cover Manager" #~ msgstr "封面管理器(_C)" #~ msgid "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "Year - Artist\n" #~ "Year - Album\n" #~ "Artist - Year - Album" #~ msgstr "" #~ "艺人\n" #~ "专辑\n" #~ "流派 - 艺人\n" #~ "流派 - 专辑\n" #~ "年份 - 艺人\n" #~ "年份 - 专辑\n" #~ "艺人 - 年份 - 专辑" #~ msgid "General" #~ msgstr "常规" #~ msgid "Personal" #~ msgstr "私人的" #~ msgid "Recommended" #~ msgstr "推荐的" #~ msgid "Neighbourhood" #~ msgstr "邻近的" #~ msgid "LastFM: %s" #~ msgstr "LastFM:%s" #~ msgid "Available controls" #~ msgstr "可用控制" #~ msgid " & " #~ msgstr " & " #~ msgid "Streamripper can only record streams." #~ msgstr "媒体流提取程序只能记录流媒体。" #~ msgid "Alarm Name:" #~ msgstr "提醒名称:" #~ msgid "Alarm:" #~ msgstr "提醒:" #~ msgid "Fading:" #~ msgstr "渐变:" #~ msgid "Name - Time" #~ msgstr "名称 - 时间" #~ msgid "Timer per Increment:" #~ msgstr "定时器每次增量:" #~ msgid "Pre-amp (dB):" #~ msgstr "前置放大器(dB):" #~ msgid "Summary" #~ msgstr "概览" #~ msgid "Position" #~ msgstr "位置" #~ msgid "Center horizontally" #~ msgstr "水平居中" #~ msgid "Center vertically" #~ msgstr "竖直居中" #~ msgid "Horizontal:" #~ msgstr "水平:" #~ msgid "Track selector title:" #~ msgstr "音轨选择器标题:" #~ msgid "Vertical:" #~ msgstr "竖直:" dist/copy/po/PaxHeaders.26361/fy.po0000644000175000017500000000012412233027260015415 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.377046941 exaile-3.3.2/po/fy.po0000644000000000000000000027350112233027260014365 0ustar00rootroot00000000000000# Frisian translation for exaile # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2011. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-08-25 20:55+0200\n" "PO-Revision-Date: 2011-12-29 19:20+0000\n" "Last-Translator: Foppe Hemminga \n" "Language-Team: Frisian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-08-28 05:25+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "" #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "" #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "" #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "" #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "" #: ../xl/formatter.py:690 ../xl/formatter.py:695 msgid "Never" msgstr "" #: ../xl/formatter.py:701 msgid "Today" msgstr "" #: ../xl/formatter.py:703 msgid "Yesterday" msgstr "" #: ../xl/main.py:191 msgid "Failed to migrate from 0.2.14" msgstr "Koe net oersette fan 0.2.14" #: ../xl/main.py:406 msgid "Usage: exaile [OPTION]... [URI]" msgstr "Sa brûke: exaile [OPSJE]... [URI]" #: ../xl/main.py:407 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "Opsjes" #: ../xl/main.py:411 msgid "Playback Options" msgstr "Ofspyl opsjes" #: ../xl/main.py:413 msgid "Play the next track" msgstr "Spylje it oare nûmer" #: ../xl/main.py:415 msgid "Play the previous track" msgstr "Spylje it foarrige nûmer" #: ../xl/main.py:417 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "Stop ôfspylje" #: ../xl/main.py:419 msgid "Play" msgstr "Ofspylje" #: ../xl/main.py:421 msgid "Pause" msgstr "" #: ../xl/main.py:424 msgid "Pause or resume playback" msgstr "Wachtsje of trochgean mei ôfspylje" #: ../xl/main.py:427 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "Stop ôfspylje nei dit nûmer" #: ../xl/main.py:430 msgid "Collection Options" msgstr "Opsjes foar kolleksje" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:433 ../xl/main.py:440 msgid "LOCATION" msgstr "LOCATION" #: ../xl/main.py:433 msgid "Add tracks from LOCATION to the collection" msgstr "Heakje nûmers fan LOCATION ta oan kolleksje" #: ../xl/main.py:437 msgid "Playlist Options" msgstr "Opsjes foar ôfspylliste" #: ../xl/main.py:441 msgid "Exports the current playlist to LOCATION" msgstr "Fier dizze ôfspylliste út nei LOCATION" #: ../xl/main.py:444 msgid "Track Options" msgstr "Opsjes foar nûmer" #: ../xl/main.py:446 msgid "Query player" msgstr "Befreegje de spyler" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:449 msgid "FORMAT" msgstr "" #: ../xl/main.py:450 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:453 msgid "TAGS" msgstr "" #: ../xl/main.py:454 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:457 msgid "Show a popup with data of the current track" msgstr "Lit in skerm sjen mei gegevens fan dit nûmer" #: ../xl/main.py:459 msgid "Print the title of current track" msgstr "Druk de titel fan dit nûmer ôf" #: ../xl/main.py:461 msgid "Print the album of current track" msgstr "Druk it album fan dit nûmer ôf" #: ../xl/main.py:463 msgid "Print the artist of current track" msgstr "Druk de spyler fan dit nûmer ôf" #: ../xl/main.py:465 msgid "Print the length of current track" msgstr "Druk de tiid fan dit nûmer ôf" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:468 ../xl/main.py:483 ../xl/main.py:487 msgid "N" msgstr "N" #: ../xl/main.py:469 msgid "Set rating for current track to N%" msgstr "Set de" #: ../xl/main.py:471 msgid "Get rating for current track" msgstr "" #: ../xl/main.py:474 msgid "Print the current playback position as time" msgstr "Printsje fan dit nûmer de posysje as tiid ôf" #: ../xl/main.py:476 msgid "Print the current playback progress as percentage" msgstr "Printsje fan dit nûmer de foargang as persintaazje ôf" #: ../xl/main.py:480 msgid "Volume Options" msgstr "Opsjes foar gelûdssterkte" #: ../xl/main.py:484 msgid "Increases the volume by N%" msgstr "Set it gelûd hurder mei N%" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:489 msgid "Decreases the volume by N%" msgstr "Set it gelûd sefter mei N%" #: ../xl/main.py:492 msgid "Mutes or unmutes the volume" msgstr "" #: ../xl/main.py:494 msgid "Print the current volume percentage" msgstr "Printsje it notiidse gelûdsnifo ôf" #: ../xl/main.py:497 msgid "Other Options" msgstr "Oare Opsjes" #: ../xl/main.py:499 msgid "Start new instance" msgstr "Start in nei eksimplaar" #: ../xl/main.py:501 msgid "Show this help message and exit" msgstr "Ton dizze hulp boadskip en ferlit vit pregramma" #: ../xl/main.py:503 msgid "Show program's version number and exit." msgstr "Lit it ferzjenûmer sjen en felit dit pregramma" #: ../xl/main.py:506 msgid "Start minimized (to tray, if possible)" msgstr "Start minimalisearre (sa mooglik yn taakbalke)" #: ../xl/main.py:509 msgid "Toggle visibility of the GUI (if possible)" msgstr "" #: ../xl/main.py:511 msgid "" "Start in safe mode - sometimes useful when you're running into problems" msgstr "" "Start yn feilige mode - somtiiden handich as jo oare preblemen ûnderfine" #: ../xl/main.py:514 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" #: ../xl/main.py:517 msgid "Do not import old data from version 0.2.x" msgstr "Gjin âlde gegevens van ferzje 0.2.x ynportearje" #: ../xl/main.py:520 msgid "Make control options like --play start Exaile if it is not running" msgstr "" #: ../xl/main.py:524 msgid "Development/Debug Options" msgstr "" #: ../xl/main.py:526 ../xl/main.py:528 msgid "DIRECTORY" msgstr "DIRECTORY" #: ../xl/main.py:526 msgid "Set data directory" msgstr "Set triemtafel foar gegevens" #: ../xl/main.py:528 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:530 msgid "MODULE" msgstr "MODULE" #: ../xl/main.py:531 msgid "Limit log output to MODULE" msgstr "Behein log útfier nei MODULE" #: ../xl/main.py:533 msgid "LEVEL" msgstr "LEVEL" #: ../xl/main.py:534 msgid "Limit log output to LEVEL" msgstr "Behein log útfier nei LEVEL" #: ../xl/main.py:537 msgid "Show debugging output" msgstr "" #: ../xl/main.py:539 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "" #: ../xl/main.py:542 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:545 msgid "TYPE" msgstr "TYPE" #: ../xl/main.py:546 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:548 msgid "Reduce level of output" msgstr "" #: ../xl/main.py:552 msgid "Disable D-Bus support" msgstr "" #: ../xl/main.py:554 msgid "Disable HAL support." msgstr "" #: ../xl/main.py:570 msgid "Entire Library" msgstr "" #: ../xl/main.py:576 #, python-format msgid "Random %d" msgstr "" #: ../xl/main.py:584 #, python-format msgid "Rating > %d" msgstr "" #: ../xl/main.py:685 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "" #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "" #: ../xl/trax/trackdb.py:246 msgid "You did not specify a location to save the db" msgstr "" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr "" #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "" #: ../xl/player/pipe.py:309 ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Automatic" msgstr "Automatysk" #: ../xl/player/pipe.py:345 ../data/ui/preferences/playback.ui.h:21 #: ../plugins/previewdevice/previewprefs.ui.h:16 msgid "Custom" msgstr "Oanpast" #: ../xl/player/pipe.py:400 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "" #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "" #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "" #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "" #: ../xl/playlist.py:173 msgid "Playlist" msgstr "" #: ../xl/playlist.py:279 ../xlgui/oldmenu.py:269 msgid "M3U Playlist" msgstr "" #: ../xl/playlist.py:379 ../xlgui/oldmenu.py:270 msgid "PLS Playlist" msgstr "" #: ../xl/playlist.py:472 ../xl/playlist.py:488 #, python-format msgid "Invalid format for %s." msgstr "" #: ../xl/playlist.py:483 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "" #: ../xl/playlist.py:543 ../xlgui/oldmenu.py:271 msgid "ASX Playlist" msgstr "" #: ../xl/playlist.py:714 ../xlgui/oldmenu.py:272 msgid "XSPF Playlist" msgstr "" #: ../xl/playlist.py:829 msgid "Shuffle _Off" msgstr "" #: ../xl/playlist.py:830 msgid "Shuffle _Tracks" msgstr "" #: ../xl/playlist.py:830 msgid "Shuffle _Albums" msgstr "" #: ../xl/playlist.py:834 msgid "Repeat _Off" msgstr "" #: ../xl/playlist.py:834 msgid "Repeat _All" msgstr "" #: ../xl/playlist.py:834 msgid "Repeat O_ne" msgstr "" #: ../xl/playlist.py:838 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:838 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1779 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "" #: ../xl/playlist.py:1780 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "" #: ../xl/playlist.py:1781 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "" #: ../xl/playlist.py:1782 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "" #: ../xl/playlist.py:1783 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "" #: ../xl/lyrics.py:305 msgid "Local" msgstr "" #: ../xlgui/widgets/menuitems.py:93 msgid "Enqueue" msgstr "" #: ../xlgui/widgets/menuitems.py:115 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "" #: ../xlgui/widgets/menuitems.py:119 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "" #: ../xlgui/widgets/menuitems.py:129 ../xlgui/widgets/playlist.py:309 #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "" #: ../xlgui/widgets/menuitems.py:142 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "" #: ../xlgui/widgets/menuitems.py:164 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" #: ../xlgui/widgets/menuitems.py:179 msgid "Move to Trash" msgstr "" #: ../xlgui/widgets/menuitems.py:190 msgid "_Show Playing Track" msgstr "" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "" #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr "" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "" #: ../xlgui/widgets/queue.py:41 ../xlgui/widgets/playlist.py:208 #: ../xlgui/playlist.py:130 msgid "Clear" msgstr "" #: ../xlgui/widgets/queue.py:44 ../xlgui/widgets/playlist.py:211 #: ../plugins/history/__init__.py:239 msgid "Close" msgstr "" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:204 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "" #: ../xlgui/widgets/playlist_columns.py:205 msgid "Track Number" msgstr "" #: ../xlgui/widgets/playlist_columns.py:212 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "" #: ../xlgui/widgets/playlist_columns.py:219 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:171 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "" #: ../xlgui/widgets/playlist_columns.py:226 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "" #: ../xlgui/widgets/playlist_columns.py:233 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:174 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "" #: ../xlgui/widgets/playlist_columns.py:240 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "" #: ../xlgui/widgets/playlist_columns.py:247 ../xlgui/properties.py:75 msgid "Disc" msgstr "" #: ../xlgui/widgets/playlist_columns.py:248 msgid "Disc Number" msgstr "" #: ../xlgui/widgets/playlist_columns.py:255 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "" #: ../xlgui/widgets/playlist_columns.py:299 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "" #: ../xlgui/widgets/playlist_columns.py:305 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "" #: ../xlgui/widgets/playlist_columns.py:319 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "" #: ../xlgui/widgets/playlist_columns.py:326 ../xlgui/panel/files.py:147 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "" #: ../xlgui/widgets/playlist_columns.py:333 msgid "Playcount" msgstr "" #: ../xlgui/widgets/playlist_columns.py:340 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "" #: ../xlgui/widgets/playlist_columns.py:347 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "" #: ../xlgui/widgets/playlist_columns.py:359 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:478 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:487 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:606 msgid "_Resizable" msgstr "" #: ../xlgui/widgets/playlist_columns.py:611 msgid "_Autosize" msgstr "" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "" #: ../xlgui/widgets/playlist.py:126 msgid "Shuffle" msgstr "" #: ../xlgui/widgets/playlist.py:130 msgid "Repeat" msgstr "" #: ../xlgui/widgets/playlist.py:134 msgid "Dynamic" msgstr "" #: ../xlgui/widgets/playlist.py:149 msgid "Remove Current Track From Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:179 msgid "Randomize Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:203 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "" #: ../xlgui/widgets/playlist.py:246 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:253 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:302 ../xlgui/oldmenu.py:352 #: ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "" #: ../xlgui/widgets/playlist.py:499 msgid "Requires plugins providing dynamic playlists" msgstr "" #: ../xlgui/widgets/playlist.py:503 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "" #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/notebook.py:136 msgid "Close tab" msgstr "" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "" #: ../xlgui/main.py:463 msgid "Toggle: Stop after Selected Track" msgstr "" #: ../xlgui/main.py:566 ../plugins/previewdevice/__init__.py:354 msgid "Playback error encountered!" msgstr "" #: ../xlgui/main.py:573 #, python-format msgid "Buffering: %d%%..." msgstr "" #: ../xlgui/main.py:625 ../plugins/previewdevice/__init__.py:365 msgid "Continue Playback" msgstr "" #: ../xlgui/main.py:629 ../xlgui/main.py:817 #: ../plugins/previewdevice/__init__.py:336 #: ../plugins/previewdevice/__init__.py:369 msgid "Pause Playback" msgstr "" #: ../xlgui/main.py:771 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "" #: ../xlgui/main.py:829 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:347 msgid "Start Playback" msgstr "" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "" #: ../xlgui/menu.py:115 msgid "Close Tab" msgstr "" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "" #: ../xlgui/properties.py:54 msgid "Website" msgstr "" #: ../xlgui/properties.py:55 ../xlgui/cover.py:777 msgid "Cover" msgstr "" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "" #: ../xlgui/properties.py:57 msgid "Author" msgstr "" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1096 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "" #: ../xlgui/cover.py:111 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:112 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:137 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:477 msgid "Show Cover" msgstr "" #: ../xlgui/cover.py:478 msgid "Fetch Cover" msgstr "" #: ../xlgui/cover.py:479 msgid "Remove Cover" msgstr "" #: ../xlgui/cover.py:779 #, python-format msgid "Cover for %s" msgstr "" #: ../xlgui/cover.py:949 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "" #: ../xlgui/cover.py:982 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1054 msgid "No covers found." msgstr "" #: ../xlgui/cover.py:1055 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "" #: ../xlgui/devices.py:81 msgid "Device" msgstr "" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "" #: ../xlgui/__init__.py:289 msgid "Scanning collection..." msgstr "" #: ../xlgui/__init__.py:373 #, python-format msgid "Scanning %s..." msgstr "" #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "" #: ../xlgui/oldmenu.py:264 msgid "Export as..." msgstr "" #: ../xlgui/oldmenu.py:289 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:299 ../xlgui/panel/playlists.py:1197 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "" #: ../xlgui/oldmenu.py:312 msgid "Enter the new name you want for your playlist" msgstr "" #: ../xlgui/oldmenu.py:313 msgid "Rename Playlist" msgstr "" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "" #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "" #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "" #: ../xlgui/panel/collection.py:177 msgid "Genre - Artist" msgstr "" #: ../xlgui/panel/collection.py:180 msgid "Genre - Album" msgstr "" #: ../xlgui/panel/collection.py:183 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:186 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:189 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:312 msgid "Rescan Collection" msgstr "" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:171 msgid "Size" msgstr "" #: ../xlgui/panel/files.py:433 #, python-format msgid "%d KB" msgstr "" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "" #: ../xlgui/panel/playlists.py:276 msgid "Playlist name:" msgstr "" #: ../xlgui/panel/playlists.py:277 msgid "Add new playlist..." msgstr "" #: ../xlgui/panel/playlists.py:286 ../xlgui/panel/playlists.py:768 #: ../xlgui/panel/playlists.py:851 msgid "You did not enter a name for your playlist" msgstr "" #: ../xlgui/panel/playlists.py:289 ../xlgui/panel/playlists.py:349 #: ../xlgui/panel/playlists.py:774 ../xlgui/panel/playlists.py:858 msgid "The playlist name you entered is already in use." msgstr "" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:443 ../xlgui/panel/playlists.py:457 #: ../xlgui/panel/playlists.py:471 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:448 ../xlgui/panel/playlists.py:462 #: ../xlgui/panel/playlists.py:476 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:688 msgid "Smart Playlists" msgstr "" #: ../xlgui/panel/playlists.py:691 msgid "Custom Playlists" msgstr "" #: ../xlgui/panel/playlists.py:746 msgid "Add Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:821 msgid "Edit Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:1144 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "" msgstr[1] "" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2010" msgstr "" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "" #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "" #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "" #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "GNOME" msgstr "" #: ../data/ui/preferences/playback.ui.h:16 #: ../plugins/previewdevice/previewprefs.ui.h:11 msgid "ALSA" msgstr "" #: ../data/ui/preferences/playback.ui.h:17 #: ../plugins/previewdevice/previewprefs.ui.h:12 msgid "OSS" msgstr "" #: ../data/ui/preferences/playback.ui.h:18 #: ../plugins/previewdevice/previewprefs.ui.h:13 msgid "PulseAudio" msgstr "" #: ../data/ui/preferences/playback.ui.h:19 #: ../plugins/previewdevice/previewprefs.ui.h:14 msgid "JACK" msgstr "" #: ../data/ui/preferences/playback.ui.h:20 #: ../plugins/previewdevice/previewprefs.ui.h:15 msgid "DirectSound" msgstr "" #: ../data/ui/preferences/playback.ui.h:22 #: ../plugins/previewdevice/previewprefs.ui.h:17 msgid "Normal" msgstr "" #: ../data/ui/preferences/playback.ui.h:23 #: ../plugins/previewdevice/previewprefs.ui.h:18 msgid "Unified (unstable)" msgstr "" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Always show tab bar" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Tab placement:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:6 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:9 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "Show tray icon" msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Minimize to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:15 msgid "Jump to current song on track change" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Show splash screen on startup" msgstr "" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Left" msgstr "" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Right" msgstr "" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Top" msgstr "" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Bottom" msgstr "" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "" #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "" #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "" #: ../plugins/streamripper/__init__.py:64 msgid "Error executing streamripper" msgstr "" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:185 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:204 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/awn/awn_prefs.py:32 msgid "AWN" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "" #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "" #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:155 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:161 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "" #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:130 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:95 #: ../plugins/grouptagger/__init__.py:112 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:106 #: ../plugins/grouptagger/gt_widgets.py:688 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:117 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:121 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:652 #: ../plugins/grouptagger/gt_widgets.py:753 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:512 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:709 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:735 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:746 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:746 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:746 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:746 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:754 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "" #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:356 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "" #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "" #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "" #: ../plugins/contextinfo/__init__.py:1127 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "" #: ../plugins/bpm/__init__.py:78 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:238 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "" #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "" #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 msgid "API Key:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgctxt "yes" msgid "Monday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgctxt "yes" msgid "Tuesday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgctxt "yes" msgid "Wednesday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgctxt "yes" msgid "Thursday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgctxt "yes" msgid "Friday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgctxt "yes" msgid "Saturday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgctxt "yes" msgid "Sunday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgctxt "yes" msgid "Use Fading" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgctxt "yes" msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgctxt "yes" msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgctxt "yes" msgid "Increment:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgctxt "yes" msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by " "\"Unknown\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango" " Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret key:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon.com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "" #: ../plugins/awn/PLUGININFO:3 msgid "Awn" msgstr "" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is " "played/resumed/stopped, with either the song cover or a media icon to " "indicate the latest action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides contextual wikipedia information.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" dist/copy/po/PaxHeaders.26361/fo.po0000644000175000017500000000012412233027260015403 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.377046941 exaile-3.3.2/po/fo.po0000644000000000000000000027310112233027260014347 0ustar00rootroot00000000000000# Faroese translation for exaile # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-08-25 20:55+0200\n" "PO-Revision-Date: 2010-04-28 21:11+0000\n" "Last-Translator: Gunleif Joensen \n" "Language-Team: Faroese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-08-28 05:25+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "%d dagur, " msgstr[1] "%d dagar, " #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "%d tími, " msgstr[1] "%d tímar, " #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "%d minuttur, " msgstr[1] "%d minuttir, " #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d sekund" msgstr[1] "%d sekund" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "%dd, " #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "" #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "" #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "" #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "" #: ../xl/formatter.py:690 ../xl/formatter.py:695 msgid "Never" msgstr "Ongantíð" #: ../xl/formatter.py:701 msgid "Today" msgstr "Í dag" #: ../xl/formatter.py:703 msgid "Yesterday" msgstr "Í gjár" #: ../xl/main.py:191 msgid "Failed to migrate from 0.2.14" msgstr "Miseydnaðist at flyta frá 0.2.14" #: ../xl/main.py:406 msgid "Usage: exaile [OPTION]... [URI]" msgstr "" #: ../xl/main.py:407 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "" #: ../xl/main.py:411 msgid "Playback Options" msgstr "Avspælingarkostir" #: ../xl/main.py:413 msgid "Play the next track" msgstr "Spæl næsta lagið" #: ../xl/main.py:415 msgid "Play the previous track" msgstr "Spæl fyrra lagið" #: ../xl/main.py:417 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "Stoppa avspæling" #: ../xl/main.py:419 msgid "Play" msgstr "Avspæl" #: ../xl/main.py:421 msgid "Pause" msgstr "" #: ../xl/main.py:424 msgid "Pause or resume playback" msgstr "Steðga ella halt á við avspæling" #: ../xl/main.py:427 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "Stoppa avspæling aftaná núverandi lagið" #: ../xl/main.py:430 msgid "Collection Options" msgstr "" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:433 ../xl/main.py:440 msgid "LOCATION" msgstr "" #: ../xl/main.py:433 msgid "Add tracks from LOCATION to the collection" msgstr "" #: ../xl/main.py:437 msgid "Playlist Options" msgstr "" #: ../xl/main.py:441 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:444 msgid "Track Options" msgstr "Lag kostir" #: ../xl/main.py:446 msgid "Query player" msgstr "Spyr avspælaran" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:449 msgid "FORMAT" msgstr "" #: ../xl/main.py:450 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:453 msgid "TAGS" msgstr "" #: ../xl/main.py:454 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:457 msgid "Show a popup with data of the current track" msgstr "Vís eina støkkmynd við upplýsingum um núverandi lag" #: ../xl/main.py:459 msgid "Print the title of current track" msgstr "Skriva heiti á núvernadi lagi" #: ../xl/main.py:461 msgid "Print the album of current track" msgstr "Skriva albumsheiti á núverandi lagi" #: ../xl/main.py:463 msgid "Print the artist of current track" msgstr "Skriva navn á listafólki fyri núverandi lag" #: ../xl/main.py:465 msgid "Print the length of current track" msgstr "Skriva longd á núverandi lagi" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:468 ../xl/main.py:483 ../xl/main.py:487 msgid "N" msgstr "" #: ../xl/main.py:469 msgid "Set rating for current track to N%" msgstr "" #: ../xl/main.py:471 msgid "Get rating for current track" msgstr "Fá metingar á núverandi lagi" #: ../xl/main.py:474 msgid "Print the current playback position as time" msgstr "Skriva núverandi avspælingarstað sum tíð" #: ../xl/main.py:476 msgid "Print the current playback progress as percentage" msgstr "" #: ../xl/main.py:480 msgid "Volume Options" msgstr "Ljóðstyrki kostir" #: ../xl/main.py:484 msgid "Increases the volume by N%" msgstr "" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:489 msgid "Decreases the volume by N%" msgstr "" #: ../xl/main.py:492 msgid "Mutes or unmutes the volume" msgstr "" #: ../xl/main.py:494 msgid "Print the current volume percentage" msgstr "Skriva núverandi ljóðstyrkiprosent" #: ../xl/main.py:497 msgid "Other Options" msgstr "Aðrir kostir" #: ../xl/main.py:499 msgid "Start new instance" msgstr "" #: ../xl/main.py:501 msgid "Show this help message and exit" msgstr "" #: ../xl/main.py:503 msgid "Show program's version number and exit." msgstr "" #: ../xl/main.py:506 msgid "Start minimized (to tray, if possible)" msgstr "" #: ../xl/main.py:509 msgid "Toggle visibility of the GUI (if possible)" msgstr "" #: ../xl/main.py:511 msgid "" "Start in safe mode - sometimes useful when you're running into problems" msgstr "" #: ../xl/main.py:514 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" #: ../xl/main.py:517 msgid "Do not import old data from version 0.2.x" msgstr "" #: ../xl/main.py:520 msgid "Make control options like --play start Exaile if it is not running" msgstr "" #: ../xl/main.py:524 msgid "Development/Debug Options" msgstr "" #: ../xl/main.py:526 ../xl/main.py:528 msgid "DIRECTORY" msgstr "" #: ../xl/main.py:526 msgid "Set data directory" msgstr "Set dátuskjáttu" #: ../xl/main.py:528 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:530 msgid "MODULE" msgstr "" #: ../xl/main.py:531 msgid "Limit log output to MODULE" msgstr "" #: ../xl/main.py:533 msgid "LEVEL" msgstr "" #: ../xl/main.py:534 msgid "Limit log output to LEVEL" msgstr "" #: ../xl/main.py:537 msgid "Show debugging output" msgstr "Vís kembingarúttak" #: ../xl/main.py:539 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "" #: ../xl/main.py:542 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:545 msgid "TYPE" msgstr "" #: ../xl/main.py:546 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:548 msgid "Reduce level of output" msgstr "" #: ../xl/main.py:552 msgid "Disable D-Bus support" msgstr "" #: ../xl/main.py:554 msgid "Disable HAL support." msgstr "" #: ../xl/main.py:570 msgid "Entire Library" msgstr "" #: ../xl/main.py:576 #, python-format msgid "Random %d" msgstr "Tilvildarligt %d" #: ../xl/main.py:584 #, python-format msgid "Rating > %d" msgstr "" #: ../xl/main.py:685 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "" #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "" #: ../xl/trax/trackdb.py:246 msgid "You did not specify a location to save the db" msgstr "" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "Ymisk listarfólk" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "Ókent" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr " / " #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "" #: ../xl/player/pipe.py:309 ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Automatic" msgstr "Sjálvvirki" #: ../xl/player/pipe.py:345 ../data/ui/preferences/playback.ui.h:21 #: ../plugins/previewdevice/previewprefs.ui.h:16 msgid "Custom" msgstr "Serbygt" #: ../xl/player/pipe.py:400 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "" #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "" #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "" #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "" #: ../xl/playlist.py:173 msgid "Playlist" msgstr "" #: ../xl/playlist.py:279 ../xlgui/oldmenu.py:269 msgid "M3U Playlist" msgstr "" #: ../xl/playlist.py:379 ../xlgui/oldmenu.py:270 msgid "PLS Playlist" msgstr "" #: ../xl/playlist.py:472 ../xl/playlist.py:488 #, python-format msgid "Invalid format for %s." msgstr "" #: ../xl/playlist.py:483 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "" #: ../xl/playlist.py:543 ../xlgui/oldmenu.py:271 msgid "ASX Playlist" msgstr "" #: ../xl/playlist.py:714 ../xlgui/oldmenu.py:272 msgid "XSPF Playlist" msgstr "" #: ../xl/playlist.py:829 msgid "Shuffle _Off" msgstr "" #: ../xl/playlist.py:830 msgid "Shuffle _Tracks" msgstr "" #: ../xl/playlist.py:830 msgid "Shuffle _Albums" msgstr "" #: ../xl/playlist.py:834 msgid "Repeat _Off" msgstr "" #: ../xl/playlist.py:834 msgid "Repeat _All" msgstr "" #: ../xl/playlist.py:834 msgid "Repeat O_ne" msgstr "" #: ../xl/playlist.py:838 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:838 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1779 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "" #: ../xl/playlist.py:1780 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "" #: ../xl/playlist.py:1781 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "" #: ../xl/playlist.py:1782 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "" #: ../xl/playlist.py:1783 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "" #: ../xl/lyrics.py:305 msgid "Local" msgstr "" #: ../xlgui/widgets/menuitems.py:93 msgid "Enqueue" msgstr "" #: ../xlgui/widgets/menuitems.py:115 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "" #: ../xlgui/widgets/menuitems.py:119 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "" #: ../xlgui/widgets/menuitems.py:129 ../xlgui/widgets/playlist.py:309 #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "" #: ../xlgui/widgets/menuitems.py:142 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "" #: ../xlgui/widgets/menuitems.py:164 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" #: ../xlgui/widgets/menuitems.py:179 msgid "Move to Trash" msgstr "" #: ../xlgui/widgets/menuitems.py:190 msgid "_Show Playing Track" msgstr "" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "" #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr "" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "" #: ../xlgui/widgets/queue.py:41 ../xlgui/widgets/playlist.py:208 #: ../xlgui/playlist.py:130 msgid "Clear" msgstr "" #: ../xlgui/widgets/queue.py:44 ../xlgui/widgets/playlist.py:211 #: ../plugins/history/__init__.py:239 msgid "Close" msgstr "" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:204 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "" #: ../xlgui/widgets/playlist_columns.py:205 msgid "Track Number" msgstr "" #: ../xlgui/widgets/playlist_columns.py:212 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "" #: ../xlgui/widgets/playlist_columns.py:219 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:171 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "" #: ../xlgui/widgets/playlist_columns.py:226 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "" #: ../xlgui/widgets/playlist_columns.py:233 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:174 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "" #: ../xlgui/widgets/playlist_columns.py:240 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "" #: ../xlgui/widgets/playlist_columns.py:247 ../xlgui/properties.py:75 msgid "Disc" msgstr "" #: ../xlgui/widgets/playlist_columns.py:248 msgid "Disc Number" msgstr "" #: ../xlgui/widgets/playlist_columns.py:255 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "" #: ../xlgui/widgets/playlist_columns.py:299 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "" #: ../xlgui/widgets/playlist_columns.py:305 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "" #: ../xlgui/widgets/playlist_columns.py:319 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "" #: ../xlgui/widgets/playlist_columns.py:326 ../xlgui/panel/files.py:147 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "" #: ../xlgui/widgets/playlist_columns.py:333 msgid "Playcount" msgstr "" #: ../xlgui/widgets/playlist_columns.py:340 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "" #: ../xlgui/widgets/playlist_columns.py:347 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "" #: ../xlgui/widgets/playlist_columns.py:359 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:478 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:487 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:606 msgid "_Resizable" msgstr "" #: ../xlgui/widgets/playlist_columns.py:611 msgid "_Autosize" msgstr "" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "" #: ../xlgui/widgets/playlist.py:126 msgid "Shuffle" msgstr "" #: ../xlgui/widgets/playlist.py:130 msgid "Repeat" msgstr "" #: ../xlgui/widgets/playlist.py:134 msgid "Dynamic" msgstr "" #: ../xlgui/widgets/playlist.py:149 msgid "Remove Current Track From Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:179 msgid "Randomize Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:203 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "" #: ../xlgui/widgets/playlist.py:246 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:253 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:302 ../xlgui/oldmenu.py:352 #: ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "" #: ../xlgui/widgets/playlist.py:499 msgid "Requires plugins providing dynamic playlists" msgstr "" #: ../xlgui/widgets/playlist.py:503 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "" #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/notebook.py:136 msgid "Close tab" msgstr "" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "" #: ../xlgui/main.py:463 msgid "Toggle: Stop after Selected Track" msgstr "" #: ../xlgui/main.py:566 ../plugins/previewdevice/__init__.py:354 msgid "Playback error encountered!" msgstr "" #: ../xlgui/main.py:573 #, python-format msgid "Buffering: %d%%..." msgstr "" #: ../xlgui/main.py:625 ../plugins/previewdevice/__init__.py:365 msgid "Continue Playback" msgstr "" #: ../xlgui/main.py:629 ../xlgui/main.py:817 #: ../plugins/previewdevice/__init__.py:336 #: ../plugins/previewdevice/__init__.py:369 msgid "Pause Playback" msgstr "" #: ../xlgui/main.py:771 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "" #: ../xlgui/main.py:829 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:347 msgid "Start Playback" msgstr "" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "" #: ../xlgui/menu.py:115 msgid "Close Tab" msgstr "" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "" #: ../xlgui/properties.py:54 msgid "Website" msgstr "" #: ../xlgui/properties.py:55 ../xlgui/cover.py:777 msgid "Cover" msgstr "" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "" #: ../xlgui/properties.py:57 msgid "Author" msgstr "" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1096 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "" #: ../xlgui/cover.py:111 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:112 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:137 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:477 msgid "Show Cover" msgstr "" #: ../xlgui/cover.py:478 msgid "Fetch Cover" msgstr "" #: ../xlgui/cover.py:479 msgid "Remove Cover" msgstr "" #: ../xlgui/cover.py:779 #, python-format msgid "Cover for %s" msgstr "" #: ../xlgui/cover.py:949 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "" #: ../xlgui/cover.py:982 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1054 msgid "No covers found." msgstr "" #: ../xlgui/cover.py:1055 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "" #: ../xlgui/devices.py:81 msgid "Device" msgstr "" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "" #: ../xlgui/__init__.py:289 msgid "Scanning collection..." msgstr "" #: ../xlgui/__init__.py:373 #, python-format msgid "Scanning %s..." msgstr "" #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "" #: ../xlgui/oldmenu.py:264 msgid "Export as..." msgstr "" #: ../xlgui/oldmenu.py:289 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:299 ../xlgui/panel/playlists.py:1197 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "" #: ../xlgui/oldmenu.py:312 msgid "Enter the new name you want for your playlist" msgstr "" #: ../xlgui/oldmenu.py:313 msgid "Rename Playlist" msgstr "" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "" #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "" #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "" #: ../xlgui/panel/collection.py:177 msgid "Genre - Artist" msgstr "" #: ../xlgui/panel/collection.py:180 msgid "Genre - Album" msgstr "" #: ../xlgui/panel/collection.py:183 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:186 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:189 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:312 msgid "Rescan Collection" msgstr "" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:171 msgid "Size" msgstr "" #: ../xlgui/panel/files.py:433 #, python-format msgid "%d KB" msgstr "" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "" #: ../xlgui/panel/playlists.py:276 msgid "Playlist name:" msgstr "" #: ../xlgui/panel/playlists.py:277 msgid "Add new playlist..." msgstr "" #: ../xlgui/panel/playlists.py:286 ../xlgui/panel/playlists.py:768 #: ../xlgui/panel/playlists.py:851 msgid "You did not enter a name for your playlist" msgstr "" #: ../xlgui/panel/playlists.py:289 ../xlgui/panel/playlists.py:349 #: ../xlgui/panel/playlists.py:774 ../xlgui/panel/playlists.py:858 msgid "The playlist name you entered is already in use." msgstr "" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:443 ../xlgui/panel/playlists.py:457 #: ../xlgui/panel/playlists.py:471 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:448 ../xlgui/panel/playlists.py:462 #: ../xlgui/panel/playlists.py:476 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:688 msgid "Smart Playlists" msgstr "" #: ../xlgui/panel/playlists.py:691 msgid "Custom Playlists" msgstr "" #: ../xlgui/panel/playlists.py:746 msgid "Add Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:821 msgid "Edit Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:1144 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "" msgstr[1] "" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2010" msgstr "" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "" #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "" #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "" #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "GNOME" msgstr "" #: ../data/ui/preferences/playback.ui.h:16 #: ../plugins/previewdevice/previewprefs.ui.h:11 msgid "ALSA" msgstr "" #: ../data/ui/preferences/playback.ui.h:17 #: ../plugins/previewdevice/previewprefs.ui.h:12 msgid "OSS" msgstr "" #: ../data/ui/preferences/playback.ui.h:18 #: ../plugins/previewdevice/previewprefs.ui.h:13 msgid "PulseAudio" msgstr "" #: ../data/ui/preferences/playback.ui.h:19 #: ../plugins/previewdevice/previewprefs.ui.h:14 msgid "JACK" msgstr "" #: ../data/ui/preferences/playback.ui.h:20 #: ../plugins/previewdevice/previewprefs.ui.h:15 msgid "DirectSound" msgstr "" #: ../data/ui/preferences/playback.ui.h:22 #: ../plugins/previewdevice/previewprefs.ui.h:17 msgid "Normal" msgstr "" #: ../data/ui/preferences/playback.ui.h:23 #: ../plugins/previewdevice/previewprefs.ui.h:18 msgid "Unified (unstable)" msgstr "" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Always show tab bar" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Tab placement:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:6 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:9 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "Show tray icon" msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Minimize to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:15 msgid "Jump to current song on track change" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Show splash screen on startup" msgstr "" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Left" msgstr "" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Right" msgstr "" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Top" msgstr "" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Bottom" msgstr "" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "" #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "" #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "" #: ../plugins/streamripper/__init__.py:64 msgid "Error executing streamripper" msgstr "" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:185 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:204 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/awn/awn_prefs.py:32 msgid "AWN" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "" #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "" #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:155 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:161 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "" #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:130 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:95 #: ../plugins/grouptagger/__init__.py:112 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:106 #: ../plugins/grouptagger/gt_widgets.py:688 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:117 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:121 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:652 #: ../plugins/grouptagger/gt_widgets.py:753 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:512 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:709 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:735 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:746 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:746 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:746 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:746 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:754 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "" #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:356 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "" #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "" #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "" #: ../plugins/contextinfo/__init__.py:1127 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "" #: ../plugins/bpm/__init__.py:78 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:238 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "" #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "" #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 msgid "API Key:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgctxt "yes" msgid "Monday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgctxt "yes" msgid "Tuesday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgctxt "yes" msgid "Wednesday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgctxt "yes" msgid "Thursday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgctxt "yes" msgid "Friday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgctxt "yes" msgid "Saturday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgctxt "yes" msgid "Sunday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgctxt "yes" msgid "Use Fading" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgctxt "yes" msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgctxt "yes" msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgctxt "yes" msgid "Increment:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgctxt "yes" msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by " "\"Unknown\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango" " Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret key:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon.com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "" #: ../plugins/awn/PLUGININFO:3 msgid "Awn" msgstr "" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is " "played/resumed/stopped, with either the song cover or a media icon to " "indicate the latest action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides contextual wikipedia information.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" #~ msgid "Decreases the volume by VOL%" #~ msgstr "Minkar um ljóðstyrkina við VOL%" #~ msgid "Increases the volume by VOL%" #~ msgstr "Økir um ljóðstyrkina við VOL%" dist/copy/po/PaxHeaders.26361/ta.po0000644000175000017500000000012412233027260015403 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.069046931 exaile-3.3.2/po/ta.po0000644000000000000000000030017212233027260014346 0ustar00rootroot00000000000000# Tamil translation for exaile # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2012-07-29 07:19+0000\n" "Last-Translator: Ramesh \n" "Language-Team: Tamil \n" "Language: ta\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-08-28 05:28+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "%d நாள், " msgstr[1] "%d நாட்கள், " #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "%d மணித்தியாலம், " msgstr[1] "%d மணித்தியாலங்கள், " #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "%d நிமிடம், " msgstr[1] "%d நிமிடங்கள், " #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d விநாடி" msgstr[1] "%d விநாடிகள்" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "" #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "" #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "%dநிமிடங்கள், " #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "%dநொடிகள்" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "" #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "ஒருபோதும் இல்லை" #: ../xl/formatter.py:702 msgid "Today" msgstr "இன்று" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "நேற்று" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "விருப்பத்தேர்வுகள்" #: ../xl/main.py:421 msgid "Playback Options" msgstr "" #: ../xl/main.py:423 msgid "Play the next track" msgstr "அடுத்த தடத்தை இயக்கு" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "முந்தைய தடத்தை இயக்கு" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "இசைத்தலை நிறுத்து" #: ../xl/main.py:429 msgid "Play" msgstr "இயக்கு" #: ../xl/main.py:431 msgid "Pause" msgstr "இடை நிறுத்தம்" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "" #: ../xl/main.py:440 msgid "Collection Options" msgstr "தொகுப்பு விருப்பத்தேர்வுகள்" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:454 msgid "Track Options" msgstr "தட விருப்பத்தேர்வுகள்" #: ../xl/main.py:456 msgid "Query player" msgstr "கேள்வி இயக்கி" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "நடப்பு தடத்தின் தொகுப்பை அச்சிடு" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "நடப்பு தடத்தின் கலைஞரை அச்சிடு" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "நடப்பு தடத்தின் நீளத்தை அச்சிடு" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "N" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "நடப்பு தடத்தின் தரவரிசையை பெறு" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "" #: ../xl/main.py:490 msgid "Volume Options" msgstr "ஒலி விருப்பத்தேர்வுகள்" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "N% இனால் ஒலியளவைக் கூட்டு" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "N% இனால் ஒலியளவைக் குறை" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "நடப்பு ஒலிஅளவு சதவீதத்தை அச்சிடு" #: ../xl/main.py:507 msgid "Other Options" msgstr "மற்ற விருப்பத்தேர்வுகள்" #: ../xl/main.py:509 msgid "Start new instance" msgstr "" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "இந்த உதவி செய்தியை காட்டிவிட்டு வெளியேறு" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "நிரலின் பதிப்பு எண்ணை காட்டிவிட்டு வெளியேறு" #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "அடைவு" #: ../xl/main.py:536 msgid "Set data directory" msgstr "" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "" #: ../xl/main.py:543 msgid "LEVEL" msgstr "மட்டம்" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "பிழைத்திருத்த வெளியீட்டை காட்டு" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:555 msgid "TYPE" msgstr "வகை" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "" #: ../xl/main.py:580 msgid "Entire Library" msgstr "முழு நூலகமும்" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "தரவரிசை > %d" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "" #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "பலவிதக் கலைஞர்கள்" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "தெரியவில்லை" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr " / " #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "" #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "தானியங்கி" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "தனிப்பயன்" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "" #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "" #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "" #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "" #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "" #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "விநாடிகள்" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "நிமிடங்கள்" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "மணி நேரங்கள்" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "நாட்கள்" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "வாரங்கள்" #: ../xl/lyrics.py:305 msgid "Local" msgstr "" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "அடைவை திற" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "பெயர்:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "" #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr "" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "இசைக்கவில்லை" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "#" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "தட எண்" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "தலைப்பு" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "கலைஞர்" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "உருவாக்கி" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "தொகுப்பு" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "நீளம்" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "தட்டு" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "தரவரிசை" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "தேதி" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "பாணி" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "பிட்வேகம்" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "இடம்" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "கோப்பின் பெயர்" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "கடைசியாக இயக்கப்பட்டது" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "இணைத்த திகதி" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "திரும்பச் செய்" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "மறுபெயரிடு" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "அனைத்து கோப்புகள்" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "" #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "" #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "" #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "ரத்து செய்" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "" #: ../xlgui/properties.py:54 msgid "Website" msgstr "வலைத்தளம்" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "" #: ../xlgui/properties.py:57 msgid "Author" msgstr "இயற்றியவர்" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "பதிப்புரிமை" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "பாடல்வரிகள்" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "தடம்" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "பதிப்பு" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "நிறுவனம்" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "மாற்றப்பட்டது" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "இயக்கப்பட்ட தடவைகள்" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "" #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "" #: ../xlgui/devices.py:81 msgid "Device" msgstr "" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "" #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "" #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "திருத்து" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "இசைப்பட்டியலை மறுபெயரிடு" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "நீக்கு" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "இசைப்பட்டியல் %d" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "" #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "" #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "புதுப்பி" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "அளவு" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s KB" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "மற்றும்" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "என்பது" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "என்பது இல்லை" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "உள்ளடக்கியது" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "உள்ளடக்காத" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "குறைந்தது" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "அதிகமாக" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "முன்" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "பின்" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "இடையே" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "வருடம்" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "" msgstr[1] "" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "சேகரிப்பு" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "பாடல் பட்டியல்கள்" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "_க கோப்பு" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "_திருத்து" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "_காட்சி" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "_கருவிகள்" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "_உதவி" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "முந்தைய தடம்" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "அடுத்த தடம்" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "விளக்கம்:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "வானொலி" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "கோப்புகள்" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "தேடு: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "" #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "" #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "சொருகுபொருள்" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "நிறுவப்பட்ட செருகுப்பொருள்கள்" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "எழுதியவர்கள்:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "பதிப்பு:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "விருப்பங்கள்" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "" #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "" #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "" #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "தேடு" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "" #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "" #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "முந்தைய" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "அடுத்த" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "" #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "" #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "" #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "" #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "" #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "திங்கள்" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "செவ்வாய்" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "புதன்" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "வியாழன்" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "வெள்ளி" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "சனி" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "ஞாயிறு" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "கடவுச்சொல்:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "சேர்" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" #~ msgid "Close tab" #~ msgstr "தத்தலை மூடு" #~ msgid "New Search" #~ msgstr "புதிய தேடல்" #~ msgid "Resizable" #~ msgstr "அளவு மாற்றக்கூடியது" #~ msgid "Start" #~ msgstr "துவங்கு" #~ msgid "Stopped" #~ msgstr "நிறுத்தப்பட்டது" #~ msgid "Text Color" #~ msgstr "உரை வண்ணம்" #~ msgid "_Close" #~ msgstr "மூடு" #~ msgid "Open" #~ msgstr "திற" #~ msgid "Choose a file" #~ msgstr "கோப்பினை தேர்ந்தெடுக்கவும்" #~ msgid "Quit" #~ msgstr "வெளிச்செல்" #~ msgid "New playlist title:" #~ msgstr "புதிய இசைப்பட்டியல் தலைப்பு:" dist/copy/po/PaxHeaders.26361/ast.po0000644000175000017500000000012412233027260015566 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.065046931 exaile-3.3.2/po/ast.po0000644000000000000000000027555112233027260014545 0ustar00rootroot00000000000000# Asturian translation for exaile # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2012-07-29 07:09+0000\n" "Last-Translator: Softastur \n" "Language-Team: Asturian \n" "Language: ast\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-08-28 05:24+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "" #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "" #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "" #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "" #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "Enxamás" #: ../xl/formatter.py:702 msgid "Today" msgstr "Güei" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "Ayeri" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "Fallu al migrar dende 0.2.14" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "" #: ../xl/main.py:421 msgid "Playback Options" msgstr "" #: ../xl/main.py:423 msgid "Play the next track" msgstr "Reproducir la pista viniente" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "Reproducir la pista anterior" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "Parar reproducción" #: ../xl/main.py:429 msgid "Play" msgstr "Reproducir" #: ../xl/main.py:431 msgid "Pause" msgstr "" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "Parar la reproducción dempués de la pista actual" #: ../xl/main.py:440 msgid "Collection Options" msgstr "" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:454 msgid "Track Options" msgstr "" #: ../xl/main.py:456 msgid "Query player" msgstr "Consultar reproductor" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "Amosar el títulu de la pista actual" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "Amosar l'álbum de la pista actual" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "Amosar l'artista de la pista actual" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "Amosar la duración de la pista actual" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "" #: ../xl/main.py:490 msgid "Volume Options" msgstr "" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "Amosar el porcentax actual de volume" #: ../xl/main.py:507 msgid "Other Options" msgstr "" #: ../xl/main.py:509 msgid "Start new instance" msgstr "Aniciar una nueva instancia" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "" #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "Aniciar amenorgao (si ye dable, na bandexa)" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "Alternar la visibilidá de la interfaz gráfica" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "Aniciar de mou seguru: alcuando, ye útil pa cuando t'enguedeyes" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "" #: ../xl/main.py:536 msgid "Set data directory" msgstr "Afitar el direutoriu de datos" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "" #: ../xl/main.py:543 msgid "LEVEL" msgstr "" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "Amosar la salida de la depuración" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "Activar la depuración de xl.event. Surde salida ABONDO" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:555 msgid "TYPE" msgstr "" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "Amenorgar el nivel de la salida" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "Desactivar el sofitu pa D-BUS" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "Desactivar el sofitu pa HAL." #: ../xl/main.py:580 msgid "Entire Library" msgstr "Llibrería Completa" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "%d al debalu" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "Puntuación > %d" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" "Exaile entá nun remató de cargar. Seique deberíes escuchar la señal " "exaile_loaded..." #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "" #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "Nun s'especificó un allugamientu d'au cargar la base de datos" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "Nun indicasti un sitiu au guardar la bd" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "Dellos Artistes" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "Desconocíu" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr " / " #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" "Vorbis ye un codec open source d'audio con perda, con salida d'alta calidá " "pa un tamañu de ficheru menor que MP3." #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" "Free Lossless Audio Codec (FLAC) ye un codec open source que comprime ensin " "rebaxar la calidá d'audio." #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" "Formatu propietariu d'Apple d'audio con perda que algama meyor calidá de son " "que MP3 a menores tases de bits." #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" "Un formatu propietariu d'audio con perda, más antiguu pero tamién popular. " "VBR ufre una mayor calidá que CBR pero puede ser incompatible con dellos " "reproductores." #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" "Un formatu propietariu d'audio con perda, más antiguu pero tamién popular. " "CBR ufre menos calidá que VBR pero ye compatible con cualesquier reproductor." #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "" "Un formatu d'audio, ensin perda, mui rápidu y Llibre, con una bona " "compresión." #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "Automáticu" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "" #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "La configuración de la versión ye más reciente que l'actual." #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "Nun sabemos cómo atroxar esta triba d'opción: " #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "¡Alcontróse una triba d'opción desconocida!" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "" #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "" #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "" #: ../xl/lyrics.py:305 msgid "Local" msgstr "" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "" #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr "" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "Títulu" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "Artista" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "Compositor" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "Álbum" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "Llargor" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "Discu" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "Data" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "Xéneru" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "Tasa de bits" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "Allugamientu" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "BPM" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "" #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "" #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "" #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "Lletrista" #: ../xlgui/properties.py:54 msgid "Website" msgstr "Sitiu web" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "" #: ../xlgui/properties.py:57 msgid "Author" msgstr "Autor" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "Conductor" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "Realizador" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "Copyright" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "Lletres" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "Pista" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "Versión" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "ISRC" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "Organización" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "Camudáu" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "Editando Pista %(current)d de %(total)d" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "" #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "" #: ../xlgui/devices.py:81 msgid "Device" msgstr "" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "" #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "" #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "Llista de reproducción %d" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "" #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "" #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "" msgstr[1] "" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "" #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "" #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "" #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "" #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "" #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "" #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "" #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "" #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "" #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "" #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "" #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "" #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "" #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" #~ msgid "GNOME" #~ msgstr "GNOME" #~ msgid "Print the position inside the current track as time" #~ msgstr "Amosar, en tiempu, la posición dientro la pista actual" #~ msgid "Print the progress inside the current track as percentage" #~ msgstr "Amosar, en porcentax, l'avance dientro la pista actual" #~ msgid "Set rating for current song" #~ msgstr "Puntuar el cantar actual" #~ msgid "Decreases the volume by VOL%" #~ msgstr "Amenorga'l volume nun VOL%" #~ msgid "Increases the volume by VOL%" #~ msgstr "Aumenta'l volume nun VOL%" #~ msgid "%(year)d-%(month)02d-%(day)02d" #~ msgstr "%(year)d-%(month)02d-%(day)02d" #~ msgid " & " #~ msgstr " y " #~ msgid "Device class does not support transfer." #~ msgstr "Esta clase de preseu nun almite la tresferencia." #~ msgid "Toggle Play or Pause" #~ msgstr "Alternar ente Reproducción y Pausa" #~ msgid "Get rating for current song" #~ msgstr "Algamar la puntuación del cantar actual" #~ msgid "Filter event debug output" #~ msgstr "Peñerar la salida de la depuración de eventos" #~ msgid "Original Album" #~ msgstr "Álbum orixinal" #~ msgid "Original Date" #~ msgstr "Data orixinal" #~ msgid "Original Artist" #~ msgstr "Intérprete orixinal" #~ msgid "Encoded By" #~ msgstr "Codificáu por" #~ msgid "Date Added" #~ msgstr "Data amestada" #~ msgid "Last Played" #~ msgstr "Cabera reproducida" #~ msgid " New song, fetching cover." #~ msgstr " Nueva canción, apurriendo la portada." #~ msgid "order must be a list or tuple" #~ msgstr "l'orde tien de ser en forma de llista o tupla" dist/copy/po/PaxHeaders.26361/et.po0000644000175000017500000000012412233027260015407 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.061046931 exaile-3.3.2/po/et.po0000644000000000000000000030637612233027260014366 0ustar00rootroot00000000000000# Estonian translation for exaile # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2012-07-29 07:13+0000\n" "Last-Translator: Dustin Spicuzza \n" "Language-Team: Estonian \n" "Language: et\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-08-28 05:25+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "%d päev, " msgstr[1] "%d päeva, " #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "%d tund, " msgstr[1] "%d tundi, " #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "%d minut, " msgstr[1] "%d minutit, " #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d sekund" msgstr[1] "%d sekundit" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "%dd, " #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "%dh, " #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "%dm, " #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "%ds," #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "%dd " #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "%d:%02d:%02d" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "Mitte kunagi" #: ../xl/formatter.py:702 msgid "Today" msgstr "Täna" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "Eile" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "Ei suutnud vahetada versioonist 0.2.14" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "Kasutamine: exaile [OPTION]... [URI]" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "Valikud" #: ../xl/main.py:421 msgid "Playback Options" msgstr "Taasesituse valikud" #: ../xl/main.py:423 msgid "Play the next track" msgstr "Esita järgmine lugu" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "Esita eelmist lugu" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "Peata esitamine" #: ../xl/main.py:429 msgid "Play" msgstr "Esita" #: ../xl/main.py:431 msgid "Pause" msgstr "Paus" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "Peata või jätka taasesitus" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "Lõpeta taasesitus peale praegust lugu" #: ../xl/main.py:440 msgid "Collection Options" msgstr "Kogumiku seaded" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "ASUKOHT" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "Lisa kogusse lugusid asukohast LOCATION" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:454 msgid "Track Options" msgstr "Loo valikud" #: ../xl/main.py:456 msgid "Query player" msgstr "Päringu mängimine" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "Näitab praeguse loo pealkirja" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "Näitab praeguse loo albumit" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "Näitab praeguse loo esitajat" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "Väljasta praeguse loo pikkus" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "N" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "Säti selle faili hinnanguks N%" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "Päri selle faili hinnangut" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "Näitab praeguse taasesituse positsiooni ajana" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "" #: ../xl/main.py:490 msgid "Volume Options" msgstr "Heliseaded" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "Lisab helivaljust N% võrra" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "Vähendab helivaljust N% võrra" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "Vaigistab või lubab heli" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "Väljasta praegune helivaljus protsentides" #: ../xl/main.py:507 msgid "Other Options" msgstr "Muud valikud" #: ../xl/main.py:509 msgid "Start new instance" msgstr "Alusta uut näidet" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "Näita seda abi sõnumit ja välju" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "Näita programmi versiooni numbrit ja välju." #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "Alusta vähendatult (tegumiribale kui võimalik)" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "Muuda kasutajaliidese graafika nähtavust (kui võimalik)" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "Käivita turvarežiimis - probleemide korral võib mõnikord abiks olla." #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" "Sunni vanade andmete importimist versioonist 0.2.x (kirjutab praegused " "andmed üle)" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "Ära impordi vanu andmeid versioonist 0.2.x" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "Arendus/Vealeidmise valikud" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "KATALOOG" #: ../xl/main.py:536 msgid "Set data directory" msgstr "Määra andmete kataloog" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "MOODUL" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "Piira logi väljastusi moodulini MODULE" #: ../xl/main.py:543 msgid "LEVEL" msgstr "TASE" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "Silumisväljundi näitamine" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:555 msgid "TYPE" msgstr "LIIK" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "Keela D-Bus tugi" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "Keela HAL tugi" #: ../xl/main.py:580 msgid "Entire Library" msgstr "Terve kogumik" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "Juhuslik %d" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "Hinnang > %d" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "Sildid" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "Plugin nimega \"%s\" on juba installeeritud." #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "Erinevad esitajad" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "Teadmata" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr " / " #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" "Vorbis on avatud-lähtekoodiline, kadudega audiokoodek kõrgkvaliteetse " "väljundiga, MP3-st väiksema failisuurusega." #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" "Free Lossless Audio Codec (FLAC) on avatud lähtekoodiga koodek, mis " "hoolimata tihendusest ei halvenda helikvaliteeti." #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" "Apple'i kommertslik audiokoodek, mis saavutab väiksematel bitikiirustel " "parema helikvaliteedi kui MP3." #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" "Kommertslik ja vanem, kuid samuti populaarne kadudega audioformaat. VBR " "annab kõrgema kvaliteedi kui CBR, kuid mõnede pleieritega ei tööta." #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" "Kommertslik ja vanem, kuid samuti populaarne kadudega audioformaat. CBR " "annab vaesema kvaliteedi kui VBR, kuid töötab kõigi pleieritega." #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "Väga kiire tasuta kadudeta audioformaat hea kompressiooniga." #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "Automaatne" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "Kohandatud" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "" #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "" #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "Me ei tea, kuidas sisestada sellist seadet: " #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "" #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "Esitusloend" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "M3U esitusnimekiri" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "PLS esitusnimekiri" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "" #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "ASX esitusnimekiri" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "sekundit" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "minutit" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "tundi" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "päeva" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "nädalat" #: ../xl/lyrics.py:305 msgid "Local" msgstr "Kohalik" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "Sea järjekorda" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "Ava kataloog" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "Viska prügikasti" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "Nimi:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "" #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr "" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "Ei Mängi" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "Liiguta" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "Tumm" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "%d%%" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "Täisvaljus" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "Mitmesugune" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "%d valitud" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "#" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "Loo number" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "Pealkiri" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "Esitaja" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "Helilooja" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "Album" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "Pikkus" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "Ketas" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "Plaadi number" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "Hinnang" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "Kuupäev" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "Stiil" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "Bitikiirus" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "Asukoht" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "Failinimi" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "Esitamiste arv" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "BPM" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "Viimati esitatud" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "Lisamise kuupäev" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "Hinnang:" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "Sega" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "Kordus" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "Dünaamiline" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "Uus esitusnimekiri" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "Nimeta ümber" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "Ava URL" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "Toetatud failid" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "Esituskoendi failid" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "Kõik failid" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "Sulge %s" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "Sulge salvestamata" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "" #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "Nimekirja nimi on puudu" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "" #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "Sulge kaart" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "Puhverdamine: %d%%..." #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "Alusta esitust" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "Exaile Music Player" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "_Uus esitusloend" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "Ava _URL" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "Ava kataloogid" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "Taaskäivita" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "_Järjekord" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "_Veerud" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "Tühista" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "Sõnade autor" #: ../xlgui/properties.py:54 msgid "Website" msgstr "Veebisait" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "Plaadiümbris" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "" #: ../xlgui/properties.py:57 msgid "Author" msgstr "Autor" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "Arranžeerija" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "Dirigent" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "Esitaja" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "Autoriõigused" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "Laulusõnad" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "Lugu" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "Versioon" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "ISRC" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "Kodeerija" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "Organisatsioon" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "Muudetud" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "Näita kaanepilti" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "Laadi kaanepilt" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "Eemalda kaanepilt" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "Kaanepilte ei leitud." #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "Ikoon" #: ../xlgui/devices.py:81 msgid "Device" msgstr "Seade" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "" #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "" #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "Omadused" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "Muuda" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "Kustuta nimekiri" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "Esitusnimekirja ümbernimetamine" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "Kustuta" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "Esitusloend %d" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "Lisa kataloog" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "Kataloogi pole lisatud" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "" #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "Voogud laadimine..." #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "URL:" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "Salvestatud jaamad" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "Raadiovood" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "Värskenda" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "Sisesta uue nimekirja nimi" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "Suurus" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s KB" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "ja" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "on" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "ei ole" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "sisaldab" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "ei sisalda" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "vähemalt" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "mitte rohkem kui" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "enne" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "pärast" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "vahemikus" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "suurem kui" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "väiksem kui" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "viimase" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "mitte viimase" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "Aasta" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "Nutikad esitusnimekirjad" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "Lisa nutikas nimekiri" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "Nutika esitusnimekirja muutmine" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "Taasesitus" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "Pluginad" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "" msgstr[1] "" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "Plugina valimine" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "Ümbrised" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "Välimus" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "Kogumik" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "Lähtesta vaikeväärtustele" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "Tegevus" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "Kiirklahv" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "Lugude nimekirjad" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "Plaadiümbriste haldur" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "_Fail" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "_Muuda" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "_Vaade" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "_Tööriistad" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "_Abi" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "Eelmine lugu" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "Järgmine rada" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0:00 / 0:00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "Lis_a silt" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "_Eelmine" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "_Järgmine" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "Kirjeldus:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "Raadio" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "Lisa jaam" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "Faili" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "Otsi: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "" #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "" #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "Lisand" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "Lubatud" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "Paigaltatud lisandid" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "Autorid:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "Versioon:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "Paigalda" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "Lisandit pole valitud" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "Saadavad lisandid" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "Installeeri uuendused" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "Uuendused" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "Näita salve ikooni" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "Eelistused" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "Seadete haldamine" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "Seadme tüüp:" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "Leitud seaded:" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "" #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "" #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "Alarmkell" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "" #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "Otsingu tulemused" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "Otsi" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "Mine: " #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "Suvaline" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "" #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "Eelmine" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "Järgmine" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "Esita/paus" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "Peata" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "Helitugevus" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "Taasta" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "Edenemisriba" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "Lisa ja esita" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "Lisamine" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "Valmis" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "" #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "Ekraaniesitus (OSD)" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "Podcastid" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "Podcast" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "Värskenda podcasti" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "Kustuta" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "Ava podcast" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "%s laadimine..." #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "" #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "Kontekst" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "Järjehoidja kustutamine" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "Eemalda järjehoidjad" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "" #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "" #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "Baasvärv" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "Salvestus koht:" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "Kustuta puudulikud failid" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "Esmaspäev" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "Teisipäev" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "Kolmapäev" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "Neljapäev" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "Reede" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "Laupäev" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "Pühapäev" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "Kasuta hajumist" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "Samm:" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "Kuva ümbriseid" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "Puudub" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "Parool:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "Kasutajanimi:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "+12 dB" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "0" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "-24 dB" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "29" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "59" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "119" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "237" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "474" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "947" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "1.9K" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "3.8K" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "7.5K" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "15K" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "Kuva" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "Kasuta albumi ümbtist ikoonina" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "Ikoonid" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "Kokkuvõte:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "Sisu" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "Font:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "Taustavärv:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "Ainult esitaja:" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "Ainult album:" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "Ogg Vorbis" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "FLAC" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "AAC" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "MP3 (VBR)" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "MP3 (CBR)" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "Alati pealmine" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "Täis" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "Lihtne" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "Järjekorra alus:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "Tulemused:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "Muud" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "Kahanev" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "Kasvav" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "Avaldamise kuupäev" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "Podcasti lisamine" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "Ankur:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "X-nihe:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "pikslit" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "Y-nihe:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "Suurus:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "Hajumise kestus:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "ms" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "Üleval vasakul" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "Üleval paremal" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "All vasakul" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "All paremal" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "Lisamine" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "Serveri nimi:" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "Serveri aadress:" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "Port:" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "Server lubatud" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "GNOME multimeedia võtmed" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "Jamendo" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "Karaoke" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "Tere maailm" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" #~ msgid "Clear" #~ msgstr "Puhasta" #~ msgid "Close" #~ msgstr "Sulge" #~ msgid "Close tab" #~ msgstr "Sulge sakk" #~ msgid "%d KB" #~ msgstr "%d KB" #~ msgid "GNOME" #~ msgstr "GNOME" #~ msgid "ALSA" #~ msgstr "ALSA" #~ msgid "OSS" #~ msgstr "OSS" #~ msgid "PulseAudio" #~ msgstr "PulseAudio" #~ msgid "JACK" #~ msgstr "JACK" #~ msgctxt "yes" #~ msgid "Monday" #~ msgstr "Esmaspäev" #~ msgctxt "yes" #~ msgid "Tuesday" #~ msgstr "Teisipäev" #~ msgctxt "yes" #~ msgid "Wednesday" #~ msgstr "Kolmapäev" #~ msgctxt "yes" #~ msgid "Thursday" #~ msgstr "Neljapäev" #~ msgctxt "yes" #~ msgid "Friday" #~ msgstr "Reede" #~ msgctxt "yes" #~ msgid "Saturday" #~ msgstr "Laupäev" #~ msgctxt "yes" #~ msgid "Sunday" #~ msgstr "Pühapäev" #~ msgctxt "yes" #~ msgid "Use Fading" #~ msgstr "Kasuta hajumist" #~ msgctxt "yes" #~ msgid "Increment:" #~ msgstr "Samm:" #~ msgid "General" #~ msgstr "Üldine" #~ msgid "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgstr "" #~ "{tiitel}\n" #~ "{artist}\n" #~ " {album} - {length}" #~ msgid "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "Year - Artist\n" #~ "Year - Album\n" #~ "Artist - Year - Album" #~ msgstr "" #~ "Esitaja\n" #~ "Album\n" #~ "žanr - Esitaja\n" #~ "žanr - Album\n" #~ "Aasta - Esitaja\n" #~ "Aasta - Album\n" #~ "Esitaja - Aasta - Album" #~ msgid "Autosize" #~ msgstr "Autosuurus" #~ msgid "New Search" #~ msgstr "Uus otsing" #~ msgid "Opacity Level:" #~ msgstr "Läbipaistmatuse tase:" #~ msgid "Resizable" #~ msgstr "Muudetava suurusega" #~ msgid "Start" #~ msgstr "Alusta" #~ msgid "Stopped" #~ msgstr "Peatatud" #~ msgid "Stop Playback" #~ msgstr "Peata esitus" #~ msgid "Text Color" #~ msgstr "Teksti värv" #~ msgid "Window Height:" #~ msgstr "Akna kõrgus:" #~ msgid "Window Width:" #~ msgstr "Akna laius:" #~ msgid "Vol:" #~ msgstr "Vol:" #~ msgid "_Close" #~ msgstr "_Sulge" #~ msgid "Alarm Days:" #~ msgstr "Alarmi päevad:" #~ msgid "Open" #~ msgstr "Ava" #~ msgid "Number of Plays" #~ msgstr "Mängimiste arv" #~ msgid " songs" #~ msgstr " laulud" #~ msgid "File Type" #~ msgstr "Faili tüüp" #~ msgid "0:00" #~ msgstr "0:00" #~ msgid "No covers found" #~ msgstr "Kaanepilti ei leitud" #~ msgid "Add Playlist" #~ msgstr "Lisa esitusnimekiri" #~ msgid "Choose a file" #~ msgstr "Vali fail" #~ msgid "Export" #~ msgstr "Ekspordi" #~ msgid "Add a directory" #~ msgstr "Lisa kaust" #~ msgid "Quit" #~ msgstr "Välju" #~ msgid "Add device" #~ msgstr "Lisa seade" #~ msgid "..." #~ msgstr "..." #~ msgid "LastFM Radio" #~ msgstr "LastFM Raadio" #~ msgid "Alarm:" #~ msgstr "Alarm:" #~ msgid "Exaile" #~ msgstr "Exaile" #~ msgid "Clear Playlist" #~ msgstr "Tühjenda esitusloend" #~ msgid "New playlist title:" #~ msgstr "Uus esitusloendi pealkiri:" #~ msgid "Custom playlist name:" #~ msgstr "Kohandatud esitusloendi nimi:" #~ msgid "Extension" #~ msgstr "Laiend" #~ msgid "Move selected item down" #~ msgstr "Liiguta valitud element allapoole" #~ msgid "Remove item" #~ msgstr "Elemendi eemaldamine" #~ msgid "Add item" #~ msgstr "Lisa element" #~ msgid "Move selected item up" #~ msgstr "Liiguta valitud elemendi ülespoole" dist/copy/po/PaxHeaders.26361/fi.po0000644000175000017500000000012312233027260015374 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 29 ctime=1382821553.04104693 exaile-3.3.2/po/fi.po0000644000000000000000000036701412233027260014350 0ustar00rootroot00000000000000# Finnish translation for exaile # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2012-07-29 07:13+0000\n" "Last-Translator: Ilari Oras \n" "Language-Team: Finnish \n" "Language: fi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-08-28 05:25+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "%d päivä, " msgstr[1] "%d päivää, " #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "%d tunti, " msgstr[1] "%d tuntia, " #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "%d minuutti, " msgstr[1] "%d minuuttia, " #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d sekunti" msgstr[1] "%d sekuntia" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "%dd, " #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "%dh, " #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "%dm, " #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "%ds" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "%dd " #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "%d:%02d:%02d" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "%d:%02d" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "Ei koskaan" #: ../xl/formatter.py:702 msgid "Today" msgstr "Tänään" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "Eilen" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "Siirtyminen versiosta 0.2.14 epäonnistui" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "Käyttö: exaile [VALINTA]... [URI]" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "Asetukset" #: ../xl/main.py:421 msgid "Playback Options" msgstr "Toiston asetukset" #: ../xl/main.py:423 msgid "Play the next track" msgstr "Soita seuraava kappale" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "Soita edellinen kappale" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "Pysäytä soitto" #: ../xl/main.py:429 msgid "Play" msgstr "Toista" #: ../xl/main.py:431 msgid "Pause" msgstr "Tauota" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "Pysäytä tai jatka toistoa" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "Pysäytä toisto nykyisen kappaleen jälkeen" #: ../xl/main.py:440 msgid "Collection Options" msgstr "Kokoelman valinnat" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "SIJAINTI" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "Lisää raidat SIJAINNISTA kokoelmaan" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "Soittolistan asetukset" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:454 msgid "Track Options" msgstr "Kappaleen asetukset" #: ../xl/main.py:456 msgid "Query player" msgstr "Jonosoitin" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "Näytä ponnahdusikkuna jossa nykyisen raidan tiedot" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "Näytä toistettavan kappaleen nimi" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "Näytä albumi, johon soitettava kappale kuuluu" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "Näytä toistettavan kappaleen esittäjä" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "Näytä toistettavan kappaleen kesto" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "N" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "Aseta arvostelu nykyiselle raidalle: N%" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "Hanki nykyisen raidan luokitus" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "" #: ../xl/main.py:490 msgid "Volume Options" msgstr "Äänenvoimakkuuden asetukset" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "Kasvata äänenvoimakkuutta: N%:lla" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "Laske äänenvoimakkuutta: N%:lla" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "Vaimentaa tai palauttaa äänen" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "Näytä nykyinen äänenvoimakkuustaso" #: ../xl/main.py:507 msgid "Other Options" msgstr "Muut asetukset" #: ../xl/main.py:509 msgid "Start new instance" msgstr "Aloita uusi instanssi" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "Näytä tämä ohje ja poistu" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "Näytä ohjelman versionumero ja poistu." #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "Aloita minimoituna (ilmoitusalueelle, jos mahdollista)" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "Aseta graafisen käyttöliittymän näkyvyys (jos mahdollista)" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "" "Aloita turvallisessa tilassa - hyödyllistä jos sinulla on ongelmia ohjelman " "kanssa" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "Älä tuo vanhoja tietoja versiosta 0.2.x" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "Kehitys- ja virheenjäljitysasetukset" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "Hakemisto" #: ../xl/main.py:536 msgid "Set data directory" msgstr "Aseta hakemisto" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "MODUULI" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "" #: ../xl/main.py:543 msgid "LEVEL" msgstr "TASO" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "Näytä vianjäljitystuloste" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "Käytä xl.event-vianjäljitystä. Saa aikaan PALJON tulostetta" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:555 msgid "TYPE" msgstr "TYYPPI" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "Vähennä ulostulon määrää" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "Poista käytöstä D-Bus -tuki" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "Poista HAL-tuki käytöstä." #: ../xl/main.py:580 msgid "Entire Library" msgstr "Koko kirjasto" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "Satunnaiset %d" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "Arvostelu > %d" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "Exaile ei ole lopettanut lattaamista." #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "Tunnisteet" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "" #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "Liitännäisarkisto sisältää turvattoman polun." #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "Et antanut sijantia, mistä tietokanta ladataan" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "Et asettanut tietokannan tallennussijaintia" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "Useita esittäjiä" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "Tuntematon" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr " / " #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "%dk" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" "Vorbis on avoimen lähdekoodin häviöllinen äänikoodekki korkealaatuisella " "ulostulolla jonka tuottama tiedostokoko on pienempi kuin MP3 -koodekin." #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" "Free Lossless Audio Codec (FLAC) on avoimen lähdekoodin koodekki joka pakkaa " "mutta ei huononna äänenlaatua." #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" "Applen omistama häviöllinen ääniformaatti joka saavuttaa paremman " "äänenlaadun kuin MP3 alhaisella bittinopeudella." #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" "Patentoitu ja vanhempi, mutta myös suosittu häviöllinen ääniformaatti. VBR " "antaa korkeamman laadun kuin CBR, mutta saattaa olla yhteensopimaton " "joidenkin soittimien kanssa." #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" "Patentoitu ja vanhempi, mutta myös suosittu häviöllinen ääniformaatti. CBR " "antaa heikomman laadun kuin VBR, mutta on yhteensopiva kaikkien soittimien " "kanssa." #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "Todella nopea vapaa ääniformaatti hyvällä pakkauksella." #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "Automaattinen" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "Mukautettu" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "Ei toisteta." #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" "tila: %(status)s, raita: %(title)s, esittäjä: %(artist)s, albumi: %(album)s, " "pituus: %(length)s, sijainti: %(progress)s%% [%(position)s]" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "Asetuksien versio on uudempi kuin nykyinen." #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "Emme tiedä kuinka säilöä tämänkaltaista asetusta: " #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "Tuntemattoman tyyppinen asetus löytyi." #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "Virheellinen soittolista tyyppi." #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "Soittolista" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "M3U-soittolista" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "PLS-soittolista" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "Virheellinen tyyppi %s." #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "Ei-tuettu versio %(version)s tyypille %(type)s" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "ASX-soittolista" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "XSPF-soittolista" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "_Poista sekoitus" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "Sekoita _kappaleet" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "Sekoita _albumit" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "Älä _kertaa" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "Kertaa k_aikki" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "Kertaa _yksi" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "sekuntia" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "minuuttia" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "tuntia" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "päivää" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "viikkoja" #: ../xl/lyrics.py:305 msgid "Local" msgstr "Paikallinen" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "Aseta jonoon" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "Korvaa nykyinen" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "Lisää nykyiseen" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "Avaa kansio" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" "Tiedostoja ei voi siirtää roskakoriin. Poista ne pysyvästi kiintolevyltä?" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "Siirrä roskakoriin" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "_Näytä soitattava kappale" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "Nimi:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "Vastaa joillain perusteilla" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "Sekoita kappaleet" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "Rajoita: " #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr " kappaleet" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "Soitto pysäytetty" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "Etsii: %s" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "Siirrä" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "Uusi merkintä" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "Vaimennettu" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "%d%%" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "Täysi äänenvoimakkuus" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" "$title\n" "$artist\n" "$album" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "Useita esittäjiä" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "kokoelmassa %d" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "%d näytetään" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "%d valittu" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "Jono (%d)" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "#" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "Kappaleen numero" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "Nimi" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "Esittäjä" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "Säveltäjä" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "Albumi" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "Kesto" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "Levy" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "Levyn numero" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "Arvostelu" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "Päivämäärä" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "Tyylilaji" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "Näytteenottotaajuus" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "Sijainti" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "Tiedostonimi" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "Soittokerrat" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "BPM" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "Viimeksi soitettu" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "Päivä lisätty" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "_Koko muutettavissa" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "_Automaattinen koko" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "Arvostelu:" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "Sekoita tiedostot" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "Toista" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "Dynaaminen" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "Poista nykyinen kappale soittolistalta" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "Uusi soittolista" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "Uudelleennimeä" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "Pysäytä soitto tämän kappaleen jälkeen" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "Jatka toistoa tämän raidan jälkeen" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "Vaatii liitännäisiä jotka tarjoavat dynaamisen soittolistan" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "Lisää dynaamisesti samankaltaisia kappaleita soittolistalle" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "Kirjoita avattava verkko-osoite" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "Avaa verkko-osoite" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "Valitse tiedostotyyppi (Lisäosa)" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "Valitse avattava media" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "Tuetut tiedostot" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "Musiikkitiedostot" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "Soittolistatiedostot" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "Kaikki tiedostot" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "Valitse avattava kansio" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "Vie nykyinen soittolista" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "Soittolista tallennettiin nimellä %s." #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "Sulje %s" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "Tallenna %s muutokset ennen sulkemista?" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "Tekemäsi muutokset häviävät jos et tallenna niitä" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "Sulje tallentamatta" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "Tallennettu lukumäärä %(count)s yhteensä %(total)s." #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "Et antanut soittolistallesi nimeä" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "Antamasi soittolistan nimi on jo käytössä" #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "Sulje välilehti" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "$title ($artist)" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "Vaihda: Lopeta valitun raidan jälkeen" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "Tapahtui toistovirhe!" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "Puskuroidaan: %d%%..." #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "Jatka toistoa" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "Keskeytä toisto" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "Soittolistan vienti epäonnistui!" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "Aloita toisto" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "Exaile-musiikkisoitin" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "_Uusi soittolista" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "Avaa _osoite" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "Avaa kansioita" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "Käynnistä uudelleen" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "_Kokoelma" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "_Jono" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "_Levyjen kannet" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "_Sarakkeet" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "_Tyhjennä soittolista" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "_Laitehallinta" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "_Skannaa uudelleen kokoelma" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "Kappaleen _tiedot" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "Peruuta" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "Alkuperäinen albumi" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "Sanoittaja" #: ../xlgui/properties.py:54 msgid "Website" msgstr "Verkkosivu" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "Kansikuvat" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "Alkuperäinen esittäjä" #: ../xlgui/properties.py:57 msgid "Author" msgstr "Tekijä" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "Alkuperäinen päivämäärä" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "Sovittaja" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "Kapellimestari" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "Esittäjä" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "Tekijänoikeudet" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "Sanoitus" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "Kappale" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "Versio" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "ISRC" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "Koodaaja" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "Organisaatio" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "Muutettu" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "Toistomäärä" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "Muokataan kappaletta %(current)d / %(total)d" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "ja:" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "Aseta nykyinen arvo kaikille kappaleille" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "Näytä kansikuva" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "Nouda kansikuva" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "Poista kansikuva" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "Kansi %s" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "Kansivalinnat esittäjälle %(artist)s - albumille %(album)s" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "Kansikuvia ei löytynyt." #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "Kuvake" #: ../xlgui/devices.py:81 msgid "Device" msgstr "Laite" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "Ajuri" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "Tutkitaan kokoelmaa..." #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "Tutkitaan %s..." #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "Näytä jono" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "Lisää soittojonoon" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "Ominaisuudet" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "Uusi asema" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "Uusi älykäs soittolista" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "Muokkaa" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "Poista soittolista" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "Oletko varma, että haluat pysyvästi poistaa valitut soittolistat?" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "Kirjoita soittolistan uusi nimi" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "Nimeä soittolista uudelleen" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "Poista" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "Soittolista %d" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "Lisää kansio" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "Hakemistoa ei lisätty." #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "Hakemisto on jo kokoelmassasi tai jossain sen alihakemistossa." #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "Siirretään kohteeseen %s..." #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "Ladataan virtaa..." #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "Lisää radiokanava" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "URL:" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "Tallennetut asemat" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "Radiovirrat" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "Päivitä" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "Anna uudelle soittolistallesi haluamasi nimi" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "Tyylilaji - esittäjä" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "Tyylilaji - albumi" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "Tarkista kokoelma uudelleen" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "Koko" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s kt" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "ja" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "on" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "ei ole" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "sisältää" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "ei sisällä" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "vähintään" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "enintään" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "ennen" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "jälkeen" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "välillä" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "on suurempi kuin" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "on pienempi kuin" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "viimeisenä" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "ei viimeisenä" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "Toistoja" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "Vuosi" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "Älykkäät soittolistat" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "Mukautetut soittolistat" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "Lisää älykäs soittolista" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "Muokkaa älykästä soittolistaa" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "Toisto" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "Liitännäiset" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "Liäosan informaatiota ei voida lukea!" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "Epäonnistunut lisäosa: %s" msgstr[1] "Epäonnistuneet lisäosat: %s" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "Liitännäistä ei voitu poistaa käytöstä!" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "Liitännäistä ei voitu ottaa käyttöön!" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "Valitse liitännäinen" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "Liitännäisarkisto" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "Lisäosan asennus epäonnistui!" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "Kansikuvat" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "Ulkoasu" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "Kokoelma" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "Palauta oletukset" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "Käynnistetäänkö Exaile uudelleen?" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "Uudelleenkäynnistys vaaditaan, jotta muutos tulee voimaan." #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "Toiminto" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "Pikanäppäin" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "Soittolistat" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "Tietoja Exailesta" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "© 2009-2012" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" "Tekijänoikeudet (C) 2008-2010 Adam Olsen \n" "\n" "Tämä ohjelma on vapaa; tätä ohjelmaa on sallittu levittää edelleen ja " "muuttaa\n" "GNU yleisen lisenssin (GPL-lisenssin) ehtojen mukaan sellaisina kuin\n" "Free Software Foundation on ne julkaissut; joko Lisenssin version 2, tai\n" "(valinnan mukaan) minkä tahansa myöhemmän version mukaisesti.\n" "\n" "Tätä ohjelmaa levitetään siinä toivossa, että se olisi hyödyllinen,\n" "mutta ilman mitään takuuta; ilman edes hiljaista takuuta\n" "kaupallisesti hyväksyttävästä laadusta tai soveltuvuudesta\n" "tiettyyn tarkoitukseen. Katso GPL-lisenssistä lisää yksityiskohtia.\n" "\n" "Tämän ohjelman mukana pitäisi tulla kopio GPL-lisenssistä;\n" "jos näin ei ole, kirjoita osoitteeseen Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "Kansikuvien hallinta" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "Sekoita toistojärjestys" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "Toista toisto" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "Kansikuvien etsijä" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "_Tiedosto" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "_Muokkaa" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "_Näytä" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "_Työkalut" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "_Ohje" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "Edellinen kappale" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" "Lopeta toisto\n" "\n" "Klikkaa oikealla hiirennäppäimellä lopettaaksesi heti kappaleen jälkeen" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "Seuraava kappale" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0:00 / 0:00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "Kappaleen tiedot" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "_Lisää tunniste" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "_Poista tunniste" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "ab → A_b" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "Muuta kaikkien merkintöjen etukirjaimet isoiksi" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "_Edellinen" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "Se_uraava" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "Kuvaus:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "Kokoelman hallinta" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "Radio" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "Lisää kaikki kappaleet soittolistalle" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "Tuo CD" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "Lisää asema" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "Tiedostot" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "Yksi kansio ylemmäs" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "Päivitä kansiolistaus" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "Kotikansio" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "Etsi: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "Tyhjennä hakukenttä" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "Kokoelma on tyhjä." #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "Lisää musiikkia" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" "Päivitä kokoelman näkymä\n" "(Pidä Shift-näppäin pohjassa skannataksesi kokoelman uudelleen)" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "Käytä kansikuvia paikallisista tiedostoista" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" "Tämä asetus hakee albumikuvitus tiedostoja\n" "samasta musiikki kansiosta" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "Hae albumikuvitukset automaattisesti kun soitto alkaa" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "Kansien hakujärjestys:" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "(uudelleenjärjestä raahaamalla)" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "Avaa viime kerran soittolistat alussa" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "Toistomoottori " #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "Käytä häivytys-siirtymää käyttäjän toiminnoille" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "Häivytyksen kesto (ms):" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "Käytä ristiinhäivytystä (KOKEELLINEN)" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "Ristiinhäivytyksen aika (ms):" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "Audio Sink: " #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "Jatka toistoa heti Exailen käynnistyttyä" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "Jatka toistoa pysähtyneessä tilassa" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "Normaali" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "Unified (epävakaa)" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "Liitännäinen" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "Käytössä" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "Lisäosaa ei valittuna" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "Asennetut liitännäiset" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "Tekijät:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "Versio:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "Asenna" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "Ei valittuja liitännäisiä" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "Saatavilla olevat liitännäiset" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "Asenna päivitykset" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "Päivitykset" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "Asenna lisäosa tiedosto" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "Näytä tietoalueella" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "Tietoalue sisältää kansikuvan ja kappaleen tiedot" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "Näytä aina välilehtipalkki" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "Välilehtien sijoitus" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "Näytä raitalaskuri kokoelmassa" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "Käytä alpha läpinäkyvyyttä:" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "Näytä ilmoitusalueen kuvake" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "Pienennä ilmoitusalueelle" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "Sulje kaukalo" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "Siirry seuraavaan kappaleeseen raidan vaihtuessa" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "Näytä käynnistysruutu ohjelman käynnistyessä" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "Vasemmalla" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "Oikealla" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "Ylhäällä" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "Alhaalla" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "Asetukset" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "(Napsauta oikealla hiiren painikkeella palauttaaksesi oletusasetukset)" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "Laitehallinta" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "Lisää laite" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "Laitteen tyyppi:" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "Löydetyt laitteet:" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "Oma: " #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "Jononhallinta" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "Etsimässä tunnelmaa..." #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "Tunnelma löytyi." #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "\"Moodbar\"ia ei voitu lukea" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "Moodbarin suoritettavaa tiedostoa ei ole saatavilla" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "Moodbar" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "Virhe suoritettaessa virranrepijää (streamripper)" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "Virranrepijä" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "Last.fm Tykkää kappaleesta" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "API-avain on väärä." #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "Ota huomioon että lisätty tieto on oikein." #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "Www-selainta ei voida avata" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" "Ole hyvä ja kopioi seuraava URL-osoite ja avaa se www-selaimeen:\n" "{url}" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "Tykätty" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "Lastfm Tykätty" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "Tykkää tästä kappaleesta" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "poista tykkäys tästä kappaleesta" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "Herätyskello" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "Yhdistetään Shoutcast-palvelimelle..." #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "Virhe yhdistäessä Shoutcast-palvelimelle." #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "Kirjoita hakusanat" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "Shoutcast-haku" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "Hakutulokset" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "Etsi" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "Lyriikoita ei löytynyt." #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "Mene: " #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "Mikä tahansa" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "AudioScrobbler" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "Ota käyttöön audioscrobbling" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "Taajuuskorjain" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "Notify-osd tiedoitukset" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "%(title)s" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "esittäjä %(artist)s" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "levyltä %(album)s" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "IPython-konsoli - Exaile" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "Näytä IPython-konsoli" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "IPython-konsoli" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "Ilmoitus" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" "Artistilta %(artist)s\n" "Albumilta %(album)s" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "Tuodaan CD-levyä..." #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "Äänilevy" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "CD" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "Kappaleen numero" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "Levynumero" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "Soittokertoja" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "Pienennystila" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "$tracknumber - $title" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "$title, esittäjä $artist" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "$title ($__length)" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "Edellinen" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "Mene edelliseen kappaleeseen" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "Edellinen kappale" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "Seuraava" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "Mene seuraavaan kappaleeseen" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "Seuraava kappale" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "Toista/Tauko" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "Aloita, tauota ja jatka toistamista" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "Aloita toisto" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "Jatka toistamista" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "Tauota toisto" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "Pysäytä" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "Pysäytä toisto" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "Äänenvoimakkuus" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "Säädä äänenvoimakkuutta" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "Palauta" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "Palauta pääikkuna" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "Palauta pääikkuna" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "Arvio nykyinen kappale" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "Kappalevalitsin" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "Yksinkertainen kappalelista valitsin" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "Soittolistapainike" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "$title ($current_time / $total_time)" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "Edistymispainike" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "Edistymispalkki" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "Toistonvahvistus" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "Valitse ja pudota" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "Lisää" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "Valmis" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "Etsitään Jamendo katoloogia..." #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "Hakee kappaleen dataa..." #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "Kuvaruutunäyttö" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "Amazon-kansikuvat" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "Podcastit" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "Podcast" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "Päivitä Podcast" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "Poista" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "Anna lisättävän podcastin URL" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "Avaa Podcast" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "Ladataan %s..." #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "Podcastia ladatessa tapahtui virhe." #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "Ladataan Podcasteja..." #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "Podcastin tallennus ei onnistunut" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "Työpöytäkansi" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "Konteksti" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "Konteksti info" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "Lisää kappale kirjanmerkkeihin" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "Poista kirjanmerkki" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "Tyhjennä kirjanmerkit" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "Kirjanmerkit" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "Keskeytä toisto näytönsäästäjän ilmestyessä" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "DAAP palvelin" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "Manuaalinen..." #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "Anna IP-osoite ja portti." #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "Katkaistu palvelimelta" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "Yhdistetty DAAP..." #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "Käytä väriteemaa " #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "Pohjaväri:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "Pohjaväri" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "Tallennuspaikka:" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "API-avain:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "Salainen:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "Maanantai" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "Tiistai" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "Keskiviikko" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "Torstai" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "Perjantai" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "Lauantai" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "Sunnuntai" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "Käytä häivytystä" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "Kasvata:" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "Näytä albumin kannet" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "teksti prosenttiyksikköinä" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "Ei mitään" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "Lähetä kappaleita käyttäen Audioscrobbleria" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "Salasana:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "Käyttäjätunnus:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "esi" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "+12 dB" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "0" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "-24 dB" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "29" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "59" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "119" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "237" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "474" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "947" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "1.9K" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "3.8K" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "7.5K" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "15K" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "Kun pääikkuna on keskitetty" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "Näyttö" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "Käytä media ikoneita tauottaaksesi, pysäyttääksesi ja jatkaaksesi" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "Kuvakkeet" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "Yhteenveto:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "Sisältö" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "Kirjasin:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "Taustaväri:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "Muuta näytettävän kansitaiteen kokoa" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "Ainoastaan esittäjä" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "Ainoastaan albumi" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "Kummatkin esittäjä ja albumi" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "Pääviesti" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "Ogg Vorbis" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "FLAC" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "AAC" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "MP3 (VBR, vaihtuva bittivirta)" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "MP3 (CBR, yhtäjaksoinen bittivirta)" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "Wav-paketti" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "Tuo formaatissa: " #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "Tuonnin laatu: " #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "Tuonnin polku: " #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "Ohjaimet" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "Aina päällimmäisenä" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "Näytä tehtäväluettelossa" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "Näytä kaikilla työpöydillä" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "Täysi" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "Yksinkertainen" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "Kaikissa tiedostoissa käytettävä lisävahvistus" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "Lisävahvistus (dB)" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "Järjestäjä:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "Järjestys" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "Tuloksia:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "Edistyneet" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "Laskeva" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "Nouseva" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "Julkaisu päivämäärä" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "Arvosana tällä viikolla" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "Arvosana tässä kuussa" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "Tähdet" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "Tyylilaji/Tagit" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "Lisää podcast" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "Ankkuroi:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "X-siirtymä:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "pikseliä" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "Y-siirtymä:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "Koko:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "Häivytyksen kesto:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "ms" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "Ylös vasemmalle" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "Ylös oikealle" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "Alas vasemmalle" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "Alas oikealle" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "Lisää" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "Hälytykset" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "Toisto" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "Kirjaudu sisään Last.fm-tiliin" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" "Käytä kansikuvia kirjanmerkkivalikossa (vaikuttaa seuraavalla " "käynnistyskerralla)" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "Palvelimen nimi:" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "Portti:" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "Nykyinen kappale" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "GNOME-multimedianäppäimet" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" "Lisää tuen kontrolloida Exailea GNOMEn multimedianäppäinjärjestelmällä. " "Yhteensopiva GNOME >= 2.20.x kanssa" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" "Antaa sinun nauhoittaa virtauksia virranrepijällä.\n" "Riippuvainen: streamripper" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "Soittaa musiikkia annettuna aikana.\n" "\n" "Huomaa että kun annettu aika koittaa, Exaile käyttäytyy aivan kuin painaisit " "nappia \"toista\", joten varmista että sinulla on musiikki jonka haluat " "kuulla soittolistallasi" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "Last.fm-kansikuvat" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "Etsii kansikuvia Last.fm-palvelusta" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "Shoutcast-radio" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "Shoutcast-radioluettelo" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" "Lähettää kuunteluinformaation Last.fm:ään ja muihin samankaltaisiin " "Audioscrobbleria tukeviin palveluihin" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "Globaalit pikanäppäimet käyttäen xlib (mmkeys.so)" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "10-kanavainen taajuuskorjain" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "Lyrics Fly" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "Liitännäinen, joka hakee sanoituksia lyricsfly.com-palvelusta" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "Librivox" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "Selaa ja kuuntele äänikirjoja Librivox.org-palvelusta." #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "USB-massamuistilaitetuki" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" "Tuki kannettavilla soittimille, jotka tunnistautuvat USB-massamuisteina" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "Last.fm taustaosa dynaamisille soittolistoille" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" "Tämä lisäosa näyttää ilmoituskuplan kun kappaletta soitetaan/jatketaan/" "pysäytetään, kappaleen kansitaiteen tai mediakuvakkeen kanssa ilmentääkseen " "viimeisintä toimintaa.\n" "\n" "Riippuu: python-notify\n" "Suositellaan: notify-osd" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "Putkauttaa esiin tiedotteen kun raidan toisto alkaa" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "CD-toisto" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "Tiivis tila Exailelle sisältäen konfiguroitavan käyttöliittymän." #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "Ottaa käyttöön ReplayGain -tuen" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "Jamendo" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "iPod-tuki" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" "Etsii kansikuvia Amazonista\n" "\n" "Jotta voisit käyttää tätä lisäosaa, sinulla täytyy olla AWS API -avain ja " "salainen avain." #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "Karaoke" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "Lisää yksinkertaisen tuen Podcasteille" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "Näyttää soitettavan levyn kansikuvan työpöydällä" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "Hei maailma" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "Soittaa musiikkia annettuna aikana ja päivänä.\n" "\n" "Huomaa että kun annettu aika koittaa, Exaile käyttäytyy aivan kuin painaisit " "nappia \"toista\", joten varmista että sinulla on musiikki jonka haluat " "kuulla soittolistallasi" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" "Näyttää erinäisiä tietoja tällä hetkellä soivasta kappaleesta.\n" "Riippuvuudet: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a." "k.a. PIL)" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "Sanoitus-wiki" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" #~ msgid "Clear" #~ msgstr "Tyhjennä" #~ msgid "Close" #~ msgstr "Sulje" #~ msgid "Close tab" #~ msgstr "Sulje välilehti" #~ msgid "Export as..." #~ msgstr "Vie nimellä..." #~ msgid "%d KB" #~ msgstr "%d kt" #~ msgid "© 2009-2010" #~ msgstr "© 2009-2010" #~ msgid "GNOME" #~ msgstr "Gnome" #~ msgid "ALSA" #~ msgstr "ALSA" #~ msgid "OSS" #~ msgstr "OSS" #~ msgid "PulseAudio" #~ msgstr "PulseAudio" #~ msgid "JACK" #~ msgstr "JACK" #~ msgid "AWN" #~ msgstr "AWN" #~ msgid "API Key:" #~ msgstr "API-avain:" #~ msgctxt "yes" #~ msgid "Monday" #~ msgstr "Maanantai" #~ msgctxt "yes" #~ msgid "Tuesday" #~ msgstr "Tiistai" #~ msgctxt "yes" #~ msgid "Wednesday" #~ msgstr "Keskiviikko" #~ msgctxt "yes" #~ msgid "Thursday" #~ msgstr "Torstai" #~ msgctxt "yes" #~ msgid "Friday" #~ msgstr "Perjantai" #~ msgctxt "yes" #~ msgid "Saturday" #~ msgstr "Lauantai" #~ msgctxt "yes" #~ msgid "Sunday" #~ msgstr "Sunnuntai" #~ msgctxt "yes" #~ msgid "Use Fading" #~ msgstr "Käytä häivytystä" #~ msgid "Secret key:" #~ msgstr "Salainen avain:" #~ msgid "Awn" #~ msgstr "Awn" #~ msgid "General" #~ msgstr "Yleistä" #~ msgid "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgstr "" #~ "{title}\n" #~ "{artist}\n" #~ "{album}lla - {length}" #~ msgid "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgstr "" #~ "Siirrä kuvaruutunäyttöikkunaa kohtaan, jossa haluat sen olevan" #~ msgid "New Search" #~ msgstr "Uusi haku" #~ msgid "Add a directory" #~ msgstr "Lisää hakemisto" #~ msgid "Choose a file" #~ msgstr "Valitse tiedosto" #~ msgid "Number of Plays" #~ msgstr "Soittokertoja" #~ msgid "Add to Playlist" #~ msgstr "Lisää soittolistaan" #~ msgid "Quit" #~ msgstr "Lopeta" #~ msgid "Enter the search text" #~ msgstr "Anna etsittävä teksti" #~ msgid "0:00" #~ msgstr "0:00" #~ msgid "Autosize" #~ msgstr "Muuta kokoa automaattisesti" #~ msgid "Display OSD when hovering over tray icon" #~ msgstr "" #~ "Näytä kuvaruutunäyttö kun osoitin on kohdistettuna ilmoitusalueen " #~ "kuvakkeeseen" #~ msgid "Resizable" #~ msgstr "Kokosäädettävä" #~ msgid "Start" #~ msgstr "Käynnistys" #~ msgid "Text Color" #~ msgstr "Tekstiväri" #~ msgid "Vol:" #~ msgstr "Vol:" #~ msgid "Window Height:" #~ msgstr "Ikkunan korkeus:" #~ msgid "Window Width:" #~ msgstr "Ikkunan leveys:" #~ msgid "Open" #~ msgstr "Avaa" #~ msgid "Add Playlist" #~ msgstr "Lisää soittolista" #~ msgid "Relay Port:" #~ msgstr "Välitysportti:" #~ msgid "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "Year - Artist\n" #~ "Year - Album\n" #~ "Artist - Year - Album" #~ msgstr "" #~ "Artisti\n" #~ "Albumi\n" #~ "Musiikkimuoto - Artisti\n" #~ "Musiikkimuoto - Albumi\n" #~ "Vuosi - Artisti\n" #~ "Vuosi - Albumi\n" #~ "Artisti - Vuosi - Albumi" #~ msgid "Opacity Level:" #~ msgstr "Läpinäkyvyys:" #~ msgid "_Close" #~ msgstr "_Sulje" #~ msgid "Popup" #~ msgstr "Ponnahdusikkuna" #~ msgid "Clear Playlist" #~ msgstr "Tyhjennä soittolista" #~ msgid "Exaile" #~ msgstr "Exaile" #~ msgid "Get rating for current song" #~ msgstr "Aseta toistettavalle raidalle arvosana" #~ msgid "Streaming..." #~ msgstr "Puskuroidaan..." #~ msgid "Buffering: 100%..." #~ msgstr "Puskuroidaan: 100%..." #~ msgid "New playlist title:" #~ msgstr "Uuden soittolistan nimi:" #~ msgid "Set rating for current song" #~ msgstr "Aseta toistettavalle kappaleelle arvosana" #~ msgid "Decreases the volume by VOL%" #~ msgstr "Laskee äänenvoimakkuutta VOL%" #~ msgid "Increases the volume by VOL%" #~ msgstr "Nostaa äänenvoimakkuutta VOL%" #~ msgid " New song, fetching cover." #~ msgstr " Uusi kappale, haetaan kansi." #~ msgid "Stopped" #~ msgstr "Pysäytetty" #~ msgid "" #~ "Exaile Music Player\n" #~ "Not playing" #~ msgstr "" #~ "Exaile-musiikkisoitin\n" #~ "Ei toistettavaa kappaletta" #~ msgid "Save As..." #~ msgstr "Tallenna nimellä..." #~ msgid "%(title)s (by %(artist)s)" #~ msgstr "%(title)s (esittäjä %(artist)s)" #~ msgid "by %s" #~ msgstr "esittäjä %s" #~ msgid "from %s" #~ msgstr "albumilta %s" #~ msgid "Playing %s" #~ msgstr "Toistetaan %s" #~ msgid "_Save As..." #~ msgstr "_Tallenna nimellä..." #~ msgid "Delete track" #~ msgstr "Poista kappale" #~ msgid "No covers found" #~ msgstr "Kansikuvia ei löytynyt" #~ msgid "Choose a file to open" #~ msgstr "Valitse avattava tiedosto" #~ msgid "No track" #~ msgstr "Ei kappaletta" #~ msgid "Export current playlist..." #~ msgstr "Vie nykyinen soittolista..." #~ msgid "File Type" #~ msgstr "Tiedostotyyppi" #~ msgid "Add To New Playlist..." #~ msgstr "Lisää uuteen soittolistaan..." #~ msgid "Could not enable plugin: %s" #~ msgstr "Liitännäisen %s käyttöönotto ei onnistunut" #~ msgid "Could not disable plugin: %s" #~ msgstr "Liitännäistä %s ei voitu kytkeä pois käytöstä" #~ msgid "Choose a plugin" #~ msgstr "Valitse liitännäinen" #~ msgid "Remove current track from playlist" #~ msgstr "Poista nykyinen kappale soittolistalta" #~ msgid "Repeat playlist" #~ msgstr "Toista soittolista" #~ msgid "Add device" #~ msgstr "Lisää laite" #~ msgid "..." #~ msgstr "..." #~ msgid "Album:" #~ msgstr "Albumi:" #~ msgid "Play Count:" #~ msgstr "Soittokerrat:" #~ msgid "File Size:" #~ msgstr "Tiedostokoko:" #~ msgid "Length:" #~ msgstr "Kesto:" #~ msgid "Date:" #~ msgstr "Päiväys:" #~ msgid "Details" #~ msgstr "Tiedot" #~ msgid "Bitrate:" #~ msgstr "Näytteenottotaajuus:" #~ msgid "Genre:" #~ msgstr "Tyylilaji:" #~ msgid "Artist:" #~ msgstr "Esittäjä:" #~ msgid "Location:" #~ msgstr "Sijainti:" #~ msgid "Track Number:" #~ msgstr "Kappaleen numero:" #~ msgid "Remove All" #~ msgstr "Poista kaikki" #~ msgid "Close this dialog" #~ msgstr "Sulje tämä ikkuna" #~ msgid "Install a third party plugin from a file" #~ msgstr "Asenna kolmannen osapuolen liitännäinen tiedostosta" #~ msgid "0/0 tracks" #~ msgstr "0/0 kappaletta" #~ msgid "Start/Pause Playback" #~ msgstr "Aloita tai keskeytä toisto" #~ msgid "Page 1" #~ msgstr "Sivu 1" #~ msgid "_Go to Playing Track" #~ msgstr "_Siirry toistettavaan kappaleeseen" #~ msgid "_Export current playlist" #~ msgstr "_Vie nykyinen soittolista" #~ msgid "Bookmark this track" #~ msgstr "Lisää tämä kappale kirjanmerkkeihin" #~ msgid "Clear bookmarks" #~ msgstr "Tyhjennä kirjanmerkit" #~ msgid "Delete bookmark" #~ msgstr "Poista kirjanmerkki" #~ msgid "Restore Main Window" #~ msgstr "Palaa pääikkunaan" #~ msgid "Stop Playback" #~ msgstr "Pysäytä toisto" #~ msgid "$title ($length)" #~ msgstr "$title ($length)" #~ msgid " & " #~ msgstr " & " #~ msgid "Name - Time" #~ msgstr "Nimi - aika" #~ msgid "Alarm:" #~ msgstr "Hälytys:" #~ msgid "Secret Key:" #~ msgstr "Salainen avain:" #~ msgid "Use Album Covers As Icons" #~ msgstr "Käytä kansikuvia kuvakkeina" #~ msgid "Only artist" #~ msgstr "Vain esittäjä" #~ msgid "Both artist and album" #~ msgstr "Esittäjä ja albumi" #~ msgid "Summary" #~ msgstr "Yhteenveto" #~ msgid "Only album" #~ msgstr "Vain albumi" #~ msgid "Save Location:" #~ msgstr "Tallennuskohde:" #~ msgid "Display window decorations" #~ msgstr "Näytä ikkunareunukset" #~ msgid "iPod support" #~ msgstr "iPod-tuki" #~ msgid "A plugin for iPod support" #~ msgstr "Liitännäinen iPod-tukea varten" #~ msgid "Plugin to fetch lyrics from lyricwiki.org" #~ msgstr "Liitännäinen, joka noutaa sanoituksia lyricwiki.org-palvelusta" #~ msgid "Show a popup of the currently playing track" #~ msgstr "Näytä ponnahdusikkuna tällä hetkellä toistettavasta kappaleesta" #~ msgid "Device class does not support transfer." #~ msgstr "Laiteluokka ei tue tiedostojen siirtämistä." #~ msgid "Toggle Play or Pause" #~ msgstr "Toista tai Pysäytä" #~ msgid "Filter event debug output" #~ msgstr "Suodatintapahtuman vianmääritysulostulo" #~ msgid "Plugin archive contains an unsafe path" #~ msgstr "Lisäosa-arkisto sisältää turvattoman polun" #~ msgid "Custom playlist name:" #~ msgstr "Oman soittolistan nimi:" #~ msgid "Add to custom playlist" #~ msgstr "Lisää omalle soittolistalle" #~ msgid "" #~ "Path is already in your collection, or is a subdirectory of another path " #~ "in your collection" #~ msgstr "" #~ "Polku on jo kokoelmassa, tai se on jonkun muun jo kokoelmassa olevan " #~ "polun alihakemisto" #~ msgid "_Save Changes To Playlist" #~ msgstr "Tallenna muutokset _soittolistaan" #~ msgid "Move selected item up" #~ msgstr "Siirrä valittu kohde ylös" #~ msgid "Move selected item down" #~ msgstr "Siirrä valittu kohde alas" #~ msgid "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager" #~ msgstr "" #~ "Mathias Brodala\n" #~ " \n" #~ " Käännösten hallinta" #~ msgid "Use alpha transparency (if supported)" #~ msgstr "Käytä alpha-läpinäkyvyyttä (jos tuettu)" #~ msgid "These options only affect the unified engine." #~ msgstr "Nämä valinnat vaikuttavat vain unified-moottoriin" #~ msgid "Playback engine (requires restart): " #~ msgstr "Toistomoottori (vaatii uudelleenkäynnistyksen): " #~ msgid "Randomize the order of the current playlist" #~ msgstr "Satunnaista nykyisen soittolistan järjestys" #~ msgid "Seeking: " #~ msgstr "Etsitään: " #~ msgid "Restart Playlist" #~ msgstr "Uudelleenkäynnistä soittolista" #~ msgid "Minimum Volume:" #~ msgstr "Äänenvoimakkuuden minimi" #~ msgid "Enable Fading" #~ msgstr "Käytä haihtumista" #~ msgid "Fading:" #~ msgstr "Haihtuminen:" #~ msgid "Alarm Name:" #~ msgstr "Hälytyksen nimi:" #~ msgid "Alarm Time:" #~ msgstr "Hälytyksen aika:" #~ msgid "Maximum Volume:" #~ msgstr "Äänenvoimakkuuden maksimi" #~ msgid "On Tray Icon Hover" #~ msgstr "Kursorin ollessa ilmoitusalueen kuvakkeen päällä" #~ msgid "" #~ "Adds support for playing audio CDs.\n" #~ "Requires python-cddb to look up tags." #~ msgstr "" #~ "Lisää tuen kuunnella Audio CD -levyjä.\n" #~ "Vaatii pyhton-cddb -paketin tagien hakemiseen." #~ msgid "_Rename Playlist" #~ msgstr "_Nimeä soittolista uudelleen" #~ msgid "_Close Playlist" #~ msgstr "S_ulje soittolista" #~ msgid "C_lear All Tracks" #~ msgstr "T_yhjennä soittolista" #~ msgid "_Save As Custom Playlist" #~ msgstr "_Tallenna omana soittolistana" #~ msgid "_Randomize Playlist" #~ msgstr "S_ekoita soittolista" #~ msgid "" #~ "OSD\n" #~ "Drag to the location you'd like the\n" #~ "OSD to appear" #~ msgstr "" #~ "Kuvaruutunäyttö\n" #~ "Vedä kuvaruutunäyttö paikkaan minne\n" #~ "haluaisit sen ilmestyvän" #~ msgid "Select File Type (By Extension)" #~ msgstr "Valitse tiedostotyyppi (tiedostopäätteen perusteella)" #~ msgid "© 2009" #~ msgstr "© 2009" #~ msgid "Position" #~ msgstr "Sijainti" #~ msgid " - " #~ msgstr " - " #~ msgid " + " #~ msgstr " + " #~ msgid "" #~ "Copyright (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "This program is free software; you can redistribute it and/or modify\n" #~ "it under the terms of the GNU General Public License as published by\n" #~ "the Free Software Foundation; either version 2 of the License, or\n" #~ "(at your option) any later version.\n" #~ "\n" #~ "This program is distributed in the hope that it will be useful,\n" #~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" #~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" #~ "GNU General Public License for more details.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along\n" #~ "with this program; if not, write to the Free Software Foundation, Inc.,\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ msgstr "" #~ "Tekijänoikeudet (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "Tämä ohjelma on vapaa; tätä ohjelmaa on sallittu levittää edelleen ja " #~ "muuttaa\n" #~ "GNU yleisen lisenssin (GPL-lisenssin) ehtojen mukaan sellaisina kuin\n" #~ "Free Software Foundation on ne julkaissut; joko Lisenssin version 2, tai\n" #~ "(valinnan mukaan) minkä tahansa myöhemmän version mukaisesti.\n" #~ "\n" #~ "Tätä ohjelmaa levitetään siinä toivossa, että se olisi hyödyllinen,\n" #~ "mutta ilman mitään takuuta; ilman edes hiljaista takuuta\n" #~ "kaupallisesti hyväksyttävästä laadusta tai soveltuvuudesta\n" #~ "tiettyyn tarkoitukseen. Katso GPL-lisenssistä lisää yksityiskohtia.\n" #~ "\n" #~ "Tämän ohjelman mukana pitäisi tulla kopio GPL-lisenssistä;\n" #~ "jos näin ei ole, kirjoita osoitteeseen Free Software Foundation, Inc.,\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ msgid " (%(queue_count)d queued)" #~ msgstr " (%(queue_count)d jonossa)" #~ msgid "Print the position inside the current track as time" #~ msgstr "Näytä aika kappaleen edistymisessä" #~ msgid "Invalid file extension, file not saved" #~ msgstr "Virheellinen tiedostopääte, tiedostoa ei tallennettu" #~ msgid "MPRIS" #~ msgstr "MPRIS" #~ msgid "" #~ "Automatic\n" #~ "GNOME\n" #~ "ALSA\n" #~ "OSS\n" #~ "PulseAudio\n" #~ "JACK" #~ msgstr "" #~ "Automaattinen\n" #~ "GNOME\n" #~ "ALSA\n" #~ "OSS\n" #~ "PulseAudio\n" #~ "JACK" #~ msgid "" #~ "Left\n" #~ "Right\n" #~ "Top\n" #~ "Bottom" #~ msgstr "" #~ "vasemmalla\n" #~ "oikealla\n" #~ "ylhäällä\n" #~ "alhaalla" #~ msgid "Alarm Days:" #~ msgstr "Herätyspäivät:" #~ msgid "Original Artist" #~ msgstr "Alkuperäinen esittäjä" #~ msgid "%d covers to fetch" #~ msgstr "%d noudettavaa kansikuvaa" #~ msgid "Original Album" #~ msgstr "Alkuperäislevy" #~ msgid "Date Added" #~ msgstr "Lisäyspäivä" #~ msgid "Last Played" #~ msgstr "Viimeksi soitettu" #~ msgid "Export" #~ msgstr "Vie soittolista" #~ msgid "Track _properties" #~ msgstr "_Kappaleen ominaisuudet" #~ msgid "Install plugin file" #~ msgstr "Asenna liitännäistiedosto" #~ msgid "Text Font:" #~ msgstr "Tekstin kirjasin:" #~ msgid "Selected controls" #~ msgstr "Valitut ohjaimet" #~ msgid "On Track Change" #~ msgstr "Kappaleen vaihtuessa" #~ msgid "Terminal Opacity:" #~ msgstr "Päätteen läpinäkyvyys:" #~ msgid "" #~ "This will permanantly delete the selected tracks from your disk, are you " #~ "sure you wish to continue?" #~ msgstr "" #~ "Tämä poistaa pysyvästi valitut kappaleet tietokoneeltasi, oletko varma " #~ "että haluat jatkaa?" #~ msgid "Track title format:" #~ msgstr "Kappaleen nimen muoto:" #~ msgid "Display a progressbar in the OSD" #~ msgstr "Näytä kappaleen eteneminen kuvaruutunäytössä" #~ msgid "Show OSD on track change" #~ msgstr "Näytä kuvaruutunäyttö kappaleen vaihtuessa" #~ msgid "A plugin with the name \"%s\" is already installed" #~ msgstr "Liitännäinen nimeltään \"%s\" on jo asennettu" #~ msgid "Plugin archive is not in the correct format" #~ msgstr "Liitännäisten arkisto ei ole oikeassa muodossa" #~ msgid "Extension" #~ msgstr "Tiedostopääte" #~ msgid "Print the progress inside the current track as percentage" #~ msgstr "Näytä kappaleen edistyminen prosenttina" #~ msgid "Original Date" #~ msgstr "Alkuperäinen päivämäärä" #~ msgid "Encoded By" #~ msgstr "Enkoodannut" #~ msgid " songs" #~ msgstr " kappaleet" #~ msgid "In pause: %s" #~ msgstr "Pysäytetty: %s" #~ msgid "order must be a list or tuple" #~ msgstr "järjestys pitää olla listana tai monikko" #~ msgid "%(year)d-%(month)02d-%(day)02d" #~ msgstr "%(year)d-%(month)02d-%(day)02d" #~ msgid "Toggle: Stop after selected track" #~ msgstr "Kytke: Pysäytä valitun raidan jälkeen" #~ msgid "Title:" #~ msgstr "Nimi:" #~ msgid "Dynamically add similar tracks" #~ msgstr "Lisää dynaamisesti samankaltaisia raitoja" #~ msgid "Use Media Icons For Pause, Stop and Resume" #~ msgstr "Käytä mediakuvakkeita pysäytykseen, lopetukseen ja jatkamiseen" #~ msgid "Available controls" #~ msgstr "Saatavilla olevat ohjaukset" #~ msgid "Show Menuitem to toggle Submission" #~ msgstr "Näytä valikkokohta kytkeäksesi lähetyksen" #~ msgid "Streamripper can only record streams." #~ msgstr "Virranrepijä voi nauhoittaa vain virtoja." #~ msgid "" #~ "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " #~ "replaced by their respective values. The title will be replaced by " #~ "\"Unknown\" if it is empty." #~ msgstr "" #~ "Tagit \"%(title)s\", \"%(artist)s\", ja \"%(album)s\" tullaan korvaamaan " #~ "niiden vastaavilla arvoilla. Jos Nimi on tyhjä, se korvataan nimellä " #~ "\"Unknown\"" #~ msgid "Album Line:" #~ msgstr "Albumin Rivi:" #~ msgid "On Playback Start, Pause or Stop" #~ msgstr "Toistettaessa aloita, pysäytä tai lopeta" #~ msgid "Artist Line:" #~ msgstr "Artistin rivi:" #~ msgid "Last.fm Dynamic Search" #~ msgstr "Last.fm dynaaminen haku" #~ msgid "When GUI is Focused" #~ msgstr "Kun graafinen käyttöliittymä on kohdistettuna" #~ msgid "Tag Covers" #~ msgstr "Tagikansitaiteet" #~ msgid "Searches track tags for covers" #~ msgstr "Etsii kansitaidetta raidan tageilla." #~ msgid "" #~ "To sign up for an Amazon AWS account and get \n" #~ "this information visit http://aws.amazon.com/" #~ msgstr "" #~ "Kirjautuaksesi Amazon AWS -tunnukselle ja saada\n" #~ "tämä informaatio, vieraile http://aws.amazon.com/" #~ msgid "Search:" #~ msgstr "Etsi:" #~ msgid "%(minutes)d:%(seconds)02d" #~ msgstr "%(minutes)d:%(seconds)02d" #~ msgid "New custom playlist name:" #~ msgstr "Uuden muokatun soittolistan nimi:" dist/copy/po/PaxHeaders.26361/id.po0000644000175000017500000000012312233027260015372 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 29 ctime=1382821553.05704693 exaile-3.3.2/po/id.po0000644000000000000000000034531612233027260014347 0ustar00rootroot00000000000000# Indonesian translation for exaile # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2012-07-29 07:14+0000\n" "Last-Translator: Dustin Spicuzza \n" "Language-Team: Indonesian \n" "Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Launchpad-Export-Date: 2012-08-28 05:26+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "%d hari, " #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "%d jam " #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "%d menit " #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d detik" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "%dd, " #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "%dh, " #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "%dm " #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "%ds," #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "%dd, " #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "%d:%02d:%02d" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "%d:%02d" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "Tidak pernah" #: ../xl/formatter.py:702 msgid "Today" msgstr "Hari ini" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "Kemarin" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "Gagal migrasi dari 0.2.14" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "Penggunaan: exaile [OPTION]... [URI]" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "Pilihan" #: ../xl/main.py:421 msgid "Playback Options" msgstr "Pilihan Playback" #: ../xl/main.py:423 msgid "Play the next track" msgstr "Mainkan trek selanjutnya" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "Mainkan trek sebelumnya" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "Berhenti main" #: ../xl/main.py:429 msgid "Play" msgstr "Mainkan" #: ../xl/main.py:431 msgid "Pause" msgstr "Jeda" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "Hentikan atau teruskan memutar" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "Berhenti setelah trek ini" #: ../xl/main.py:440 msgid "Collection Options" msgstr "Pilihan Koleksi" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "LOKASI" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "Tambah trek dari LOKASI ke koleksi" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:454 msgid "Track Options" msgstr "Pilihan Trek" #: ../xl/main.py:456 msgid "Query player" msgstr "Menanyakan Pemutar" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "Tampilkan pop up dengan data trek yang sedang dimainkan" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "Perlihatkan judul trek ini" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "Tampilkan album dari trek saat ini" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "Tampilkan artis dari trek saat ini" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "Perlihatkan lama trek saat ini" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "N" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "Beri peringkat untuk lagu ini pada" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "Dapatkan peringkat untuk lagu ini" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "Cetak posisi main saat ini dalam bentuk waktu" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "Cetak posisi main saat ini dalam bentuk persen" #: ../xl/main.py:490 msgid "Volume Options" msgstr "Pilihan Volume" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "Tambahkan tingkat suara sampai N%" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "Turunkan tingkat suara sampai N%" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "Hilang atau perdengarkan kembali suara" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "Perlihatkan tingkat persentase volume" #: ../xl/main.py:507 msgid "Other Options" msgstr "Pilihan Lain" #: ../xl/main.py:509 msgid "Start new instance" msgstr "Jalankan aplikasi baru" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "Tampilkan pesan bantuan ini dan keluar" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "Tampilkan nomor versi program dan keluar" #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "Jalankan aplikasi dalam mode mini (jika memungkinkan)" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "Ubah tampilan GUI (bila memungkinkan)" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "Mulai dengan mode aman - kadang berguna saat Anda mendapatkan masalah" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" "Paksa mengimpor data lama dari versi 0.2.x (akan menimpa data saat ini)" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "Jangan impor data lama dari versi 0.2.x" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" "Buatlah pilihan kontrol seperti --Mainkan mulai jika Exaile tidak berjalan" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "Pilihan Pengembang/Debug" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "DIREKTORI" #: ../xl/main.py:536 msgid "Set data directory" msgstr "Set direktori data" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "MODUL" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "Batasi keluaran catatan ke MODUL" #: ../xl/main.py:543 msgid "LEVEL" msgstr "LEVEL" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "Batasi keluaran catatan ke LEVEL" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "Tampilkan hasil debug" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "" "Aktifkan fungsi debug pada \"xl.event\" (akan menghasilkan banyak keluaran)" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:555 msgid "TYPE" msgstr "TIPE" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "Batasi debug keluaran xl.event ke TIPE" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "Kurangi tingkat keluaran" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "Matikan dukungan D-Bus" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "Matikan dukungan HAL." #: ../xl/main.py:580 msgid "Entire Library" msgstr "Seluruh Pustaka" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "Acak %d" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "Peringkat > %d" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" "Exaile masih belum selesai memuat. Mungkin anda harus menantikan suara " "sinyal exaile_loaded?" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "Tanda" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "Arsip plugin tidak dalam format yang benar" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "Plugin dengan nama \"%s\" telah diinstal" #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "Arsip plugin mengandung path yang tidak aman" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "Anda belum merinci lokasi asal basis data" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "Anda tidak menunjukkan lokasi menyimpan db" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "Berbagai Artis" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "Tidak Dikenal" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr " / " #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" "Vorbis adalah kodek audio tersaring dengan sumber terbuka, yang memiliki " "keluaran berkualitas tinggi dengan ukuran lebih kecil daripada MP3." #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" "Free Lossless Audio Codec (FLAC) adalah kodek dengan sumber terbuka, yang " "menghasilkan audio terkompresi tanpa menurunkan kualitas suara." #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" "Apple's memiliki format suara rendah yang kualitas suaranya lebih bagus " "daripada MP3 pada getaran rendah." #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" "Yang dimiliki dan sebelumnya, tapi juga populer, format suara rendah. VBR " "memberikan kualitas tinggi daripada CBR, tapi mungkin tidak sesuai dengan " "beberapa pemutar." #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" "Yang dimiliki dan sebelumnya, tapi juga populer, format suara rendah. CBR " "memberikan kualitas rendah daripada VBR, tapi sesuai dengan semua pemutar." #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "Format lossless yang gratis dengan kompresi baik" #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "Otomatis" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "Penyesuaian" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "Berhenti." #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" "Status: %(status)s, Judul: %(title)s, Artis: %(artist)s, Album: %(album)s, " "Panjang: %(length)s, Posisi: %(progress)s%% [%(position)s]" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "Versi setingan lebih baru daripada yang ada saat ini." #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "Aplikasi tidak mengetahui cara menyimpan tipe setingan tersebut: " #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "Ditemukan setingan yang tidak diketahui tipenya!" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "Tipe daftar main tidak benar" #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "Daftar Main" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "Daftar lagu M3U" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "Daftar lagu PLS" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "Format tidak sah untuk %s" #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "Versi %(version)s tidak didukung untuk %(type)s" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "Daftar lagu ASX" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "Daftar Lagu XSPF" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "Acak _Mati" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "Acak _Trek" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "Acak _Album" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "Pengulangan _Dimatikan" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "Pengulangan _Semua" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "Pengulang S_ebuah" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "Dinamis _Mati" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "Dinamis oleh Artis yang _Sama" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "detik" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "menit" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "jam" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "hari" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "minggu" #: ../xl/lyrics.py:305 msgid "Local" msgstr "Lokal" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "Gantikan yang saat ini" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "Tambahkan ke Saat ini" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "Buka Direktori" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" "Berkas tidak dapat dipindahkan ke tempat sampah. Hapus berkas tersebut " "secara permanen dari disk?" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "Pindahkan ke Tempat Sampah" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "Tampilkan Trek yang _Sedang Diputar" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "Nama:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "Cocok dengan kriteria apapun" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "Mengacak hasil" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "Batasi dengan: " #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr "" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "Tidak Dimainkan" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "Pindah" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "Penanda Baru" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "Senyap" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "%d%%" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "Volume Penuh" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "Campuran" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "%d di dalam koleksi" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "%d terpilih" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "Antrian (%d)" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "#" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "Nomor Trek" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "Judul" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "Artis" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "Pengarang" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "Album" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "Panjang" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "Disk" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "Nomor Cakram" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "Rating" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "Tanggal" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "Aliran" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "Bitrate" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "Lokasi" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "Nama Berkas" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "Jumlah putar" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "BPM" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "Terakhir dimainkan" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "Tanggal ditambahkan" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "Dapat diubah ukurannya" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "Penilaian:" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "Acak" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "Berulang" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "Dinamis" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "Daftar lagu Baru" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "Ganti Nama" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "Memerlukan plugin untuk menyediakan daftar main yang dinamis" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "Menambah trek yang mirip kedalam daftar main yang dinamis" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "Masukkan URL untuk membuka" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "Buka URL" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "Pilih Jenis Berkas (berdasarkan ekstensi)" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "Pilih Media untuk Dibuka" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "Berkas Didukung" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "Berkas Musik" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "Berkas Daftar Main" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "Semua Berkas" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "Pilih Direktori untuk Dibuka" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "Ekspor Daftar Saat Ini" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "Daftar putar disimpan sebagai %s" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "Tutup %s" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "Simpan perubahan ke %s sebelum menutup?" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "Perubahan akan hilanh jika anda tidak menyimpannya" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "Tutup Tanpa Menyimpan" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "Tersimpan %(count)s dari %(total)s." #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "Anda belum memmasukkan nama untuk daftar lagu" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "Nama daftar main yang anda masukkan telah digunakan." #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "Tutup Tab" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "$title (oleh $artist)" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "Ubah: Berhenti setelah Lagu Terpilih" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "Terjadi galat ketika memainkan!" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "Proses Buffer: %d%%..." #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "Melanjutkan Memutar" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "Jeda Memutar" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "Ekspor playlist gagal!" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "Memulai Memutar" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "Pemutar Musik Exaile" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "Daftar Main _Baru" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "Buka_URL" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "Buka Direktori" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "_Ekspor Daftar Putar Saat Ini" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "Hidupkan Ulang" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "_Koleksi" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "S_ampul" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "Bilah Utilitas Daftar _Putar" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "_Kolom" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "B_ersihkan playlist" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "_Pengelola Perangkat" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "Memindai Ulang Koleksi" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "Batal" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "Album asli" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "Lirik" #: ../xlgui/properties.py:54 msgid "Website" msgstr "Situs Web" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "Sampul" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "Artis asli" #: ../xlgui/properties.py:57 msgid "Author" msgstr "Pencipta" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "Tanggal asli" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "Penyusun" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "Konduktor" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "Pemain" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "Hakcipta" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "Lirik" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "Trek" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "Versi" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "ISRC" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "Dienkode oleh" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "Organisasi" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "Dimodifikasi" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "Waktu Dimainkan" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "Track diubah %(current)d dari %(total)d" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "of:" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "Terapkan hasil sekarang ke semua trek" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "Tampilkan Sampul" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "Ambil Sampul" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "Hapus Sampul" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "Sampul untuk %s" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "Sampul tidak ditemukan." #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "Ikon" #: ../xlgui/devices.py:81 msgid "Device" msgstr "Perangkat" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "Penggerak" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "Sedang memindai koleksi..." #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "Memindai %s..." #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "Beralih Antrian" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "Antrian Item" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "Properti" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "Stasiun Baru" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "Daftar Main Pintar Baru" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "Edit" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "Menghapus Daftar lagu" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "" "Apakah Anda yakin ingin menghapus daftar lagu terpilih secara permanen?" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "Masukkan nama baru untuk daftar lagu anda" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "Ganti Nama Daftar lagu" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "Hapus" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "Daftar main %d" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "Tambah Direktori" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "Direktori tidak dapat ditambahkan" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" "Direktori tersebut sudah ada di dalam koleksi Anda atau sebuah subdirektori " "dari direktori lain dalam koleksi Anda." #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "Mengirim ke %s..." #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "Memuat aliran..." #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "Tambah Stasiun Radio" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "URL:" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "Stasiun yang Disimpan" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "Stream Radio" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "Segarkan" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "Masukkan nama yang anda inginkan untuk daftar putar yang baru" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "Aliran - Artis" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "Aliran - Album" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "Memindai Ulang Koleksi" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "Ukuran" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s KB" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "dan" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "adalah" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "bukan" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "mengandung" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "tidak mengandung" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "setidaknya" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "paling banyak" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "sebelum" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "sesudah" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "di antara" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "lebih besar dari" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "kurang dari" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "Putar" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "Tahun" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "Daftar lagu Pintar" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "Daftar Buatan" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "Tambah Daftar lagu Pintar" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "Sunting Daftar lagu Pintar" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "Putar" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "Plugin" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "Tidak dapat memuat informasi plugin!" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "Plugin gagal: %s" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "Tidak dapat menonaktifkan plugin!" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "Tidak dapat mengaktifkan plugin!" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "Pilih Plugin" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "Arsip plugin" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "Instalasi berkas plugin gagal!" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "Sampul" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "Tampilan" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "Koleksi" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "Atur ulang ke Bawaan" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "Muat ulang Exaile?" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "Hidupkan ulang diperlukan agar perubahan ini berlaku." #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "Tindakan" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "Daftar Lagu" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "Tentang Exaile" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" "Hakcipta (C) 2008-2010 Adam Olsen \n" "\n" "Program ini adalah perangkat lunak tanpa bayaran; Anda dapat menyebarkannya " "dan/atau merubahnya\n" "di bawah persyaratan Lisensi Publik Umum GNU seperti yang diterbitkan oleh\n" "Free Software Foundation; baik versi 2 dari Lisensi, atau\n" "(menurut pilihan Anda) versi terakhir yang ada.\n" "\n" "Program ini didistribusikan dengan harapan akan bermanfaat,\n" "tetapi TANPA ADANYA JAMINAN; termasuk tidak ada jaminan\n" "PERDAGANGAN atau KESESUAIAN UNTUK TUJUAN TERTENTU. Lihat\n" "GNU General Public License untuk rincian lebih lanjut.\n" "\n" "Anda seharusnya telah menerima salinan dari GNU General Public License " "bersama\n" "dengan program ini, jika tidak, silahkan meminta ke Free Software " "Foundation, Inc,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "Pengelolaan Sampul" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "Acak urutan putar" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "pencari cover" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "_Berkas" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "_Sunting" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "Tampi_lan" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "_Perkakas" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "_Bantuan" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "Trek sebelumnya" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "Lagu Berikutnya" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0:00 / 0:00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "Menam_bah tanda" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "_Hapus tanda" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "Sela_njutnya" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "Penjelasan:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "Pengelola Koleksi" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "Radio" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "Impor CD" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "Tambahkan Stasiun" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "Berkas" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "direktori sebelumnya" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "direktori selanjutnya" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "naik satu level direktori" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "refresh daftar direktori" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "Direktori utama" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "Cari: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "Koleksi kosong." #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "Tambah Musik" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" "Segarkan tampilan koleksi\n" "(Tahan tombol Shift untuk memindai ulang koleksi)" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "minta pencarian cover" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "(tarik untuk menyusun kembali)" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "Buka daftar lagu terakhir saat memulai" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "Menggunakan transisi pudar untuk aksi pengguna" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "Durasi pemudaran (ms):" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "Menggunakan pemudaran silang (UJI COBA)" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "Durasi pemudaran silang (ms):" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "" #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "Melanjutkan putar saat memulai" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "Melanjutkan putar dari saat jeda" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "Normal" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "Plugin" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "Diaktifkan" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "Plugin yang yang Terinstal" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "Penulis:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "Versi" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "Instal" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "Tidak ada Plugin Dipilih" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "Plugin yang Tersedia" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "Instal Perbaruan" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "Perbaruan" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "Penempatan tab:" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "Tampilkan ikon tray" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "Menyimpan ke nampan" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "Pindah ke lagu saat ini pada perubahan trek" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "Perlihatkan splash screen pada saat mulai" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "Kiri" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "Kanan" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "Preferensi" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "(Klik kanan untuk mengembalikan ke bawaan)" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "Pengatur Perangkat" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "Jenis perangkat:" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "Perangkat yang terdeteksi:" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "Kustom: " #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "Pengelola Antrian" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "" #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "Tidak bisa membaca moodbar" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "Alarm Waktu" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "Menghubungi server Shoutcast..." #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "Kesalahan menghubungi server Shoutcast." #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "Masukkan kata kunci pencarian" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "Pencarian Shoutcast" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "Hasil Pencarian" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "" #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "Pemberitahuan OSD" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "oleh %(artist)s" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "dari %(album)s" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "Konsul IPython - Exaile" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "Tampilkan Konsul IPython" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "Konsul IPython" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "Memberitahu" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" "oleh %(artist)s\n" "dari %(album)s" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "Mengimpor CD..." #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "Cakra Audio" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "CD" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "Nomor trek" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "Nomor Cakram" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "Mode Mini" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "$title urutan $artist" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "Sebelumnya" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "Berikutnya" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "Berhenti" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "Pemilih Trek" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "Tombol daftar putar" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "Letakkan untuk Memilih" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "Tambahkan dan Mainkan" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "Siap" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "Mencari katalog Jamendo..." #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "Proses menerima data lagu..." #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "Pada Tampilan Layar" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "Sampul Amazon" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "Hapus" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "Masukkan URL dari podcast untuk menambah" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "Membuka Podcast" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "Memuat %s..." #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "Kesalahan memuat podcast." #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "Memuat Podcasts..." #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "Tidak dapat menyimpan berkas podcast" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "Sampul Destop" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "Jam Multi-Alarm" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "Jeda saat Screensaver aktif" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "Secara manual..." #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "Masukkan alamat IP dan port untuk berbagi" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "Masukkan alamat IP dan port" #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" "Server ini tidak mendukung koneksi ganda.\n" "Anda harus menghentikan sebelum muaturun lagu." #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "Terhubung ke DAAP..." #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "Gunakan warna tema " #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "Warna dasar:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "Warna dasar" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "Senin" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "Selasa" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "Rabu" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "Kamis" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "Jumat" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "Sabtu" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "Minggu" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "Tidak ada" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "Kata Sandi:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "Nama Pengguna:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "pra" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "+12 dB" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "0" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "-24 dB" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "29" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "59" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "119" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "237" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "474" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "947" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "1.9K" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "3.8K" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "7.5K" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "15K" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "Tampilan" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "Ikon" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "Ringkasan:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "Kandungan" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "Huruf:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "Warna Latar:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "Sesuaikan ukuran tampilan sampul" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "Ogg Vorbis" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "FLAC" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "AAC" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "Selalu di atas" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "Tampilkan di daftar tugas" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "Tampilkan di semua destop" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "Hasil:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "Tanggal diluncurkan" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "Penilaian minggu ini" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "Penilaian bulan ini" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "Jumlah muaturun" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "Jumlah didengar" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "Tanggal dibintangi" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "Aliran/Tanda" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "Ukuran:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "Kiri atas" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "Kanan atas" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "Kiri bawah" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "Kanan bawah" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "Tambah" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" "Gunakan sampul di menu tandabuku (mulai berlaku saat menjalankan berikutnya)" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "Lagu Sekarang" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" "Menambahkan dukungan pengendalian Exaile melalui tombol multimedia GNOME. " "Hanya berfungsi untuk GNOME >= 2.20.x" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "Putar musik pada waktu tertentu." #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "Mencari Last.fm untuk sampul" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "Atur sampul dan tambahkan beberapa obyek menu ke AWN untuk Exaile" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "Plugin untuk mengambil lirik dari lyricsfly.com" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "Dukungan terhadap Media Pemutar dan Penyimpan USB" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" "Dukungan untuk mengakses media pemutar portabel menggunakan protokol " "penyimpanan USB" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "Putar CD" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "Tampilkan sampul album saat ini ke destop" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "Putar musik pada waktu dan hari tertentu." #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "Info kontekstual" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" "Tampilkan berbagai informasi tentang trek yang sedang diputar.\n" "Ketergantungan: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging " "(a.k.a. PIL)" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "Lirik Wiki" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" #~ msgid "Clear" #~ msgstr "Bersihkan" #~ msgid "Close" #~ msgstr "Tutup" #~ msgid "Close tab" #~ msgstr "Tutup tab" #~ msgid "Export as..." #~ msgstr "Ekspor sebagai..." #~ msgid "%d KB" #~ msgstr "%d KB" #~ msgid "GNOME" #~ msgstr "GNOME" #~ msgid "ALSA" #~ msgstr "ALSA" #~ msgid "OSS" #~ msgstr "OSS" #~ msgid "PulseAudio" #~ msgstr "PulseAudio" #~ msgid "JACK" #~ msgstr "JACK" #~ msgid "AWN" #~ msgstr "AWN" #~ msgid "API Key:" #~ msgstr "Kunci API:" #~ msgctxt "yes" #~ msgid "Monday" #~ msgstr "Senin" #~ msgctxt "yes" #~ msgid "Tuesday" #~ msgstr "Selasa" #~ msgctxt "yes" #~ msgid "Wednesday" #~ msgstr "Rabu" #~ msgctxt "yes" #~ msgid "Thursday" #~ msgstr "Kamis" #~ msgctxt "yes" #~ msgid "Saturday" #~ msgstr "Sabtu" #~ msgctxt "yes" #~ msgid "Sunday" #~ msgstr "Minggu" #~ msgid "General" #~ msgstr "Umum" #~ msgid "New Search" #~ msgstr "Penelusuran Baru" #~ msgid "Resizable" #~ msgstr "Dapat diubah ukurannya" #~ msgid "Start" #~ msgstr "Mulai" #~ msgid "Text Color" #~ msgstr "Warna Teks:" #~ msgid "Vol:" #~ msgstr "VOL:" #~ msgid "_Close" #~ msgstr "_Tutup" #~ msgid "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "Year - Artist\n" #~ "Year - Album\n" #~ "Artist - Year - Album" #~ msgstr "" #~ "Artist:\n" #~ "Album:\n" #~ "Jenis - Artis:\n" #~ "Jenis - Album:\n" #~ "Tahun - Artis:\n" #~ "Tahun - Album:\n" #~ "Artis -Tahun -Album:" #~ msgid "Display OSD when hovering over tray icon" #~ msgstr "menampilkan OSD mendekati ikon di tray" #~ msgid "Opacity Level:" #~ msgstr "Tingkat Opasitas" #~ msgid "Popup" #~ msgstr "Popup" #~ msgid "Show OSD on track change" #~ msgstr "Tampilkan OSD pada pergantian lagu" #~ msgid "Stopped" #~ msgstr "Telah dihentikan" #~ msgid "Text Font:" #~ msgstr "Huruf Teks:" #~ msgid "Window Width:" #~ msgstr "Lebar Jendela:" #~ msgid "Window Height:" #~ msgstr "Tinggi Jendela:" #~ msgid "Alarm Days:" #~ msgstr "Hari Alarm:" #~ msgid "Open" #~ msgstr "Buka" #~ msgid "Add Playlist" #~ msgstr "Tambahkan Daftar lagu" #~ msgid "Autosize" #~ msgstr "Ukuran otomatis" #~ msgid "Playing %s" #~ msgstr "Memainkan %s" #~ msgid " songs" #~ msgstr " lagu" #~ msgid "Number of Plays" #~ msgstr "Banyaknya Diputar" #~ msgid "from %s" #~ msgstr "dari %s" #~ msgid "by %s" #~ msgstr "oleh %s" #~ msgid "Add a directory" #~ msgstr "Tambah sebuah direktori" #~ msgid "Select File Type (By Extension)" #~ msgstr "Pilih Jenis Berkas (Berdasarkan Ekstensi)" #~ msgid "File Type" #~ msgstr "Jenis Berkas" #~ msgid "Extension" #~ msgstr "Ekstensi" #~ msgid "Add to Playlist" #~ msgstr "Tambahkan ke Daftar main" #~ msgid "Choose a file" #~ msgstr "Pilih berkas" #~ msgid "Export" #~ msgstr "Ekspor" #~ msgid "Invalid file extension, file not saved" #~ msgstr "Ektensi berkas tidak cocok, berkas tidak disimpan" #~ msgid "Quit" #~ msgstr "Keluar" #~ msgid "No covers found" #~ msgstr "Sampul tidak ditemukan" #~ msgid "Enter the search text" #~ msgstr "Masukkan teks yang dicari" #~ msgid "Toggle: Stop after selected track" #~ msgstr "Beralih: Berhenti setelah lagu yang dipilih" #~ msgid "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgstr "" #~ "Pindahkan jendela Tampilan Di Layar ke tempat yang anda inginkan" #~ msgid "Display a progressbar in the OSD" #~ msgstr "Tampilkan progressbar di OSD" #~ msgid " - " #~ msgstr " - " #~ msgid " + " #~ msgstr " + " #~ msgid "Stop Playback" #~ msgstr "Hentikan Pemutaran" #~ msgid "Page 1" #~ msgstr "Halaman 1" #~ msgid "0/0 tracks" #~ msgstr "0/0 trek" #~ msgid "..." #~ msgstr "..." #~ msgid "Add device" #~ msgstr "Tambahkan perangkat" #~ msgid "Choose a file to open" #~ msgstr "Pilih berkas untuk dibuka" #~ msgid "0:00" #~ msgstr "00:00" #~ msgid "%(title)s (by %(artist)s)" #~ msgstr "%(title)s (by %(artist)s)" #~ msgid "" #~ "Path is already in your collection, or is a subdirectory of another path " #~ "in your collection" #~ msgstr "path sudah ada dalam daftar koleksi" #~ msgid "" #~ "OSD\n" #~ "Drag to the location you'd like the\n" #~ "OSD to appear" #~ msgstr "" #~ "OSD\n" #~ "Seret ke posisi layar yang anda suka" #~ msgid "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgstr "" #~ "{title}\n" #~ "{artist}\n" #~ "di {album} - {length}" #~ msgid "A plugin with the name \"%s\" is already installed" #~ msgstr "Plugin dengan nama \"%s\" telah terpasang" #~ msgid "Plugin archive is not in the correct format" #~ msgstr "Format berkas plugin tidak sesuai" #~ msgid " New song, fetching cover." #~ msgstr " Lagu baru, mengambil sampul." #~ msgid "Set rating for current song" #~ msgstr "Tetapkan rating untuk lagu saat ini" #~ msgid "Get rating for current song" #~ msgstr "Dapatkan rating untuk lagu saat ini" #~ msgid "Plugin archive contains an unsafe path" #~ msgstr "Arsip plugin berisi path yang tidak aman" #~ msgid "Decreases the volume by VOL%" #~ msgstr "Mengurangi volume dengan VOL%" #~ msgid "Increases the volume by VOL%" #~ msgstr "Menambah volume dengan VOL%" #~ msgid "Exaile" #~ msgstr "Exaile" #~ msgid "_Go to Playing Track" #~ msgstr "Per_gi ke Trek yang Diputar" #~ msgid "Clear Playlist" #~ msgstr "hapus daftar main" #~ msgid "Print the position inside the current track as time" #~ msgstr "Tampilkan posisi pada trek ini dalam satuan waktu" #~ msgid "Print the progress inside the current track as percentage" #~ msgstr "Perlihatkan kemajuan pada trek ini dalam satuan persen" #~ msgid "Show a popup of the currently playing track" #~ msgstr "Tampilkan popup dari trek berjalan" #~ msgid "Toggle Play or Pause" #~ msgstr "Beralih Mainkan atau Tunda" #~ msgid "Filter event debug output" #~ msgstr "Saring hasil debug" #~ msgid "Device class does not support transfer." #~ msgstr "Perangkat belum mendukung proses transfer." #~ msgid "order must be a list or tuple" #~ msgstr "Urutan harus berbentuk deret atau daftar" #~ msgid "Streaming..." #~ msgstr "Aliran data..." #~ msgid "Custom playlist name:" #~ msgstr "Nama daftar main terkustomisasi:" #~ msgid "%(minutes)d:%(seconds)02d" #~ msgstr "%(minutes)d:%(seconds)02d" #~ msgid "New playlist title:" #~ msgstr "Judul daftar main baru:" #~ msgid "Buffering: 100%..." #~ msgstr "Proses Buffer: 100%..." #~ msgid "Add to custom playlist" #~ msgstr "Tambahkan ke daftar main kustomisasi" #~ msgid "" #~ "Exaile Music Player\n" #~ "Not playing" #~ msgstr "" #~ "Pemutar Musik Exaile\n" #~ "Berhenti" #~ msgid "In pause: %s" #~ msgstr "Istirahat: %s" #~ msgid "C_lear All Tracks" #~ msgstr "_Hapus Semua Trek" #~ msgid "Save As..." #~ msgstr "Simpan Sebagai..." #~ msgid "_Save As..." #~ msgstr "_Simpan Sebagai..." #~ msgid "Delete track" #~ msgstr "Hapus trek" #~ msgid "_Close Playlist" #~ msgstr "_Tutup Daftar Main" #~ msgid "_Rename Playlist" #~ msgstr "_Ubah Nama Daftar Main" #~ msgid " & " #~ msgstr " & " #~ msgid "Original Date" #~ msgstr "Tanggal Awal" #~ msgid "Original Artist" #~ msgstr "Artis Asli" #~ msgid "Original Album" #~ msgstr "Album Asli" #~ msgid "No track" #~ msgstr "Tidak ada trek" #~ msgid "Encoded By" #~ msgstr "Disandikan Oleh" #~ msgid "%(playlist_count)d showing, %(collection_count)d in collection" #~ msgstr "%(playlist_count)d ditampilkan, %(collection_count)d pada koleksi" #~ msgid "Add To New Playlist..." #~ msgstr "Tambah ke Daftar Main Baru" #~ msgid "Remove current track from playlist" #~ msgstr "Menghapus trek sekarang dari daftar putar" #~ msgid "Randomize the order of the current playlist" #~ msgstr "Mengacak urutan daftar putar aktif" #~ msgid "Dynamically add similar tracks" #~ msgstr "Secara dinamis menambah trek yang mirip" #~ msgid "_Randomize Playlist" #~ msgstr "_Mengacak Daftar Putar" #~ msgid "Close this dialog" #~ msgstr "Tutup dialog ini" #~ msgid "Use alpha transparency (if supported)" #~ msgstr "Gunakan transparansi alfa (jika didukung)" #~ msgid "Bookmark this track" #~ msgstr "Tandai trek ini" #~ msgid "Select a save location" #~ msgstr "Pilih lokasi menyimpan" #~ msgid "Restore Main Window" #~ msgstr "Kembalikan Jendela Utama" #~ msgid "Selected controls" #~ msgstr "Pengendali yang dipilih" #~ msgid "Available controls" #~ msgstr "Pengendali yang tersedia" #~ msgid "Seeking: " #~ msgstr "Mencari: " #~ msgid "Alarm Name:" #~ msgstr "Nama Alarm:" #~ msgid "Alarm Time:" #~ msgstr "Waktu Alarm:" #~ msgid "Restart Playlist" #~ msgstr "Mengulang Daftar Putar" #~ msgid "Minimum Volume:" #~ msgstr "Volume Minimum:" #~ msgid "Name - Time" #~ msgstr "Nama - Waktu" #~ msgid "Maximum Volume:" #~ msgstr "Volume Maksimum:" #~ msgid "Album Line:" #~ msgstr "Baris Album:" #~ msgid "" #~ "Copyright (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "This program is free software; you can redistribute it and/or modify\n" #~ "it under the terms of the GNU General Public License as published by\n" #~ "the Free Software Foundation; either version 2 of the License, or\n" #~ "(at your option) any later version.\n" #~ "\n" #~ "This program is distributed in the hope that it will be useful,\n" #~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" #~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" #~ "GNU General Public License for more details.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along\n" #~ "with this program; if not, write to the Free Software Foundation, Inc.,\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ msgstr "" #~ "Hakcipta (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "Program ini adalah perangkat lunak tanpa bayaran; Anda dapat " #~ "menyebarkannya dan/atau merubahnya\n" #~ "di bawah persyaratan Lisensi Publik Umum GNU seperti yang diterbitkan " #~ "oleh\n" #~ "Free Software Foundation; baik versi 2 dari Lisensi, atau\n" #~ "(menurut pilihan Anda) versi terakhir yang ada.\n" #~ "\n" #~ "Program ini didistribusikan dengan harapan akan bermanfaat,\n" #~ "tetapi TANPA ADANYA JAMINAN; termasuk tidak ada jaminan\n" #~ "PERDAGANGAN atau KESESUAIAN UNTUK TUJUAN TERTENTU. Lihat\n" #~ "GNU General Public License untuk rincian lebih lanjut.\n" #~ "\n" #~ "Anda seharusnya telah menerima salinan dari GNU General Public License " #~ "bersama\n" #~ "dengan program ini, jika tidak, silahkan meminta ke Free Software " #~ "Foundation, Inc,\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ msgid "_Export current playlist" #~ msgstr "_Ekspor daftar putar" #~ msgid "%d covers to fetch" #~ msgstr "%d sampul untuk diambil" #~ msgid "Export current playlist..." #~ msgstr "Ekspor ke daftar putar yang digunakan ..." #~ msgid "Choose a plugin" #~ msgstr "Pilih plugin" #~ msgid "Repeat playlist" #~ msgstr "Ulangi daftar putar" #~ msgid "Install plugin file" #~ msgstr "Pasang berkas plugin" #~ msgid "Alarm:" #~ msgstr "Alarm:" #~ msgid "Secret Key:" #~ msgstr "Kunci Rahasia:" #~ msgid "Only artist" #~ msgstr "Hanya artis" #~ msgid "Only album" #~ msgstr "Hanya album" #~ msgid "Save Location:" #~ msgstr "Lokasi Menyimpan:" #~ msgid "iPod support" #~ msgstr "Dukungan iPod" #~ msgid "A plugin for iPod support" #~ msgstr "Plugin untuk mendukung iPod" #~ msgid "Plugin to fetch lyrics from lyricwiki.org" #~ msgstr "Plugin untuk mengambil lirik dari lyricwiki.org" #~ msgid "" #~ "This will permanantly delete the selected tracks from your disk, are you " #~ "sure you wish to continue?" #~ msgstr "" #~ "Ini akan menghapus permanen trek yang dipilih dari cakram anda, apakah " #~ "anda mau melanjutkan?" #~ msgid "Add item" #~ msgstr "Menambah obyek" #~ msgid "Move selected item down" #~ msgstr "Pindahkan obyek yang dipilih ke bawah" #~ msgid "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager" #~ msgstr "" #~ "Mathias Brodala\n" #~ " \n" #~ " Pengelola Penerjemahan" #~ msgid "Move selected item up" #~ msgstr "Pindahkan obyek yang dipilih ke atas" #~ msgid "Install a third party plugin from a file" #~ msgstr "Memasang plugin pihak ketiga dari berkas" #~ msgid "Playback engine (requires restart): " #~ msgstr "Mesin putar ulang (memerlukan dijalankan ulang): " #~ msgid "Clear bookmarks" #~ msgstr "Bersihkan tandabuku" #~ msgid "Delete bookmark" #~ msgstr "Hapus tandabuku" #~ msgid "Both artist and album" #~ msgstr "Baik artis maupun album" #~ msgid "Artist Line:" #~ msgstr "Baris Artis:" #~ msgid "Use Album Covers As Icons" #~ msgstr "Gunakan Cover Album Sebagai Ikon" #~ msgid "Summary" #~ msgstr "Ringkasan" #~ msgid "Display window decorations" #~ msgstr "Tampilkan dekorasi jendela" #~ msgid "" #~ "Adds support for playing audio CDs.\n" #~ "Requires python-cddb to look up tags." #~ msgstr "" #~ "Menambahkan dukungan untuk memutar CD Audio.\n" #~ "Membutuhkan python-cddb untuk melihat label." #~ msgid "Searches track tags for covers" #~ msgstr "Mencari label trek untuk sampul" #~ msgid "Last Played" #~ msgstr "Terakhir diputar" #~ msgid "Date Added" #~ msgstr "Tanggal Ditambahkan" #~ msgid "Search:" #~ msgstr "Cari:" dist/copy/po/PaxHeaders.26361/hu.po0000644000175000017500000000012312233027260015412 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 29 ctime=1382821553.02904693 exaile-3.3.2/po/hu.po0000644000000000000000000040466512233027260014372 0ustar00rootroot00000000000000# Hungarian translation for exaile # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2012-07-29 07:14+0000\n" "Last-Translator: Polesz \n" "Language-Team: Hungarian \n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-08-28 05:26+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "%d nap, " msgstr[1] "%d nap, " #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "%d óra, " msgstr[1] "%d óra, " #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "%d perc, " msgstr[1] "%d perc, " #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d másodperc" msgstr[1] "%d másodperc" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "%dd. " #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "%dh: " #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "%dm: " #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "%ds" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "%ddd " #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "%d:%02d:%02d" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "%d:%02d" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "Soha" #: ../xl/formatter.py:702 msgid "Today" msgstr "Ma" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "Tegnap" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "Sikertelen migráció 0.2.14-ről" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "Használat: exaile [OPCIÓK]... [URI]" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "Opciók" #: ../xl/main.py:421 msgid "Playback Options" msgstr "Visszajátszás opciók" #: ../xl/main.py:423 msgid "Play the next track" msgstr "Következő szám lejátszása" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "Előző szám lejátszása" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "Lejátszás leállítása" #: ../xl/main.py:429 msgid "Play" msgstr "Lejátszás" #: ../xl/main.py:431 msgid "Pause" msgstr "Szünet" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "Lejátszás szüneteltetése, elindítása" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "Lejátszás megállítása az aktuális dal után" #: ../xl/main.py:440 msgid "Collection Options" msgstr "Gyűjtemény beállításai" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "HELY" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "Számok hozzáadása adott HELYRŐL a gyűjteménybe" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "Lejátszólista-beállítások" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:454 msgid "Track Options" msgstr "Szám beállítások" #: ../xl/main.py:456 msgid "Query player" msgstr "Lekérdezéses lejátszó" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "Mutassa felbukkanó ablakban az aktuális szám adatait" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "A jelenlegi szám címének kiírása" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "A jelenlegi szám albumának kiírása" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "A jelenlegi szám előadójának kiírása" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "A jelenlegi szám hosszának kiírása" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "N" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "Értékelés hozzáadása az aktuális számhoz N%" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "A szám értékelésének megtekintése" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "A lejátszási sáv idő szerinti beosztása" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "A lejátszási sáv százalék szerinti beosztása" #: ../xl/main.py:490 msgid "Volume Options" msgstr "Hangerő beállítások" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "Hangerő növelés mértéke N%" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "Hangerő csökkentés mértéke N%" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "Némítás ki- vagy bekapcsolása" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "Aktuális hangerő kiírása százalékban" #: ../xl/main.py:507 msgid "Other Options" msgstr "Egyéb beállítások" #: ../xl/main.py:509 msgid "Start new instance" msgstr "Új lejátszó indítása" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "Mutatja az alábbi segítséget és kilép" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "Program verziószámának mutatása és kilép." #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "Indítás minimalizálva(tálcaikonként, ha lehet)" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "GUI átlátszóság bekapcsolása (ha lehetséges)" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "Indítás csökkentett módban - néha hasznos, amikor problémákba ütközik" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" "Importálás erőltetése a régebbi 0.2.x verzióból (A jelenlegi adatok " "felülírásával)" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "Nincs importálás a régebbi 0.2.x verzióból" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" "A vezérlőgombok, mint például a --lejátszás el fogják indítani az Exaile, ha " "az még nem fut" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "Fejlesztő/Hibakereső opciók" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "KÖNYVTÁR" #: ../xl/main.py:536 msgid "Set data directory" msgstr "Adattár beállítása" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "MODUL" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "Korlátozza a naplót a MODULRA" #: ../xl/main.py:543 msgid "LEVEL" msgstr "SZINT" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "Korlátozza a naplót a SZINTRE" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "Hibakeresési kimenet megjelenítése" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "" "XL esemény hibakeresésének engedélyezése nagyméretű kivitel létrehozásával." #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:555 msgid "TYPE" msgstr "TÍPUS" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "Kimeneti szint csökkentése" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "D-Bus támogatás tiltása" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "HAL támogatás tiltása." #: ../xl/main.py:580 msgid "Entire Library" msgstr "Teljes gyűjtemény" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "Véletlenszerű %d" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "Értékelés > %d" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" "Exaile még nem fejezte be a töltést. Talán szeretné meghallgatni sz eddig " "letöltött adatot?" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "Címkék" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "A kiegészítő mentései nincsenek jó formátumban" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "A(z) %s nevű kiegészítés telepítve" #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "A kiegészítés archívuma egy nem biztonságos útvonalat tartalmaz" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "Nem adtad meg az adatbázis betöltési helyét" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "Nem adtál meg helyet a db mentéséhez" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "Különböző előadók" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "Ismeretlen" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr " / " #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "%dk" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" "A Vorbis egy nyílt forráskódú, veszteséges hangkodek, jobb hangminőséggel és " "kissebb fájlmérettel, mint az MP3." #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" "A Szabad Veszteségmentes Hangkodek (FLAC) egy nyílt forráskódú kodek, ami " "úgy tömörít, hogy a hangminőséget nem rontja." #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" "Apple, szabadalmaztatott hangformátum, ami jobb hangminőséget eredményez MP3 " "fájlok esetén." #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" "Egy szabadalmaztatott és régi, ugyanakkor szintén népszerű hangformátum a " "VBR, ami jobb minőséggel bír a CBR-nél, de néhány lejátszó nem támogatja." #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" "Egy szabadalmaztatott és régi, ugyanakkor szintén népszerű hangformátum a " "CBR, ami rosszabb minőséggel bír a VBR-nél, de bármilyen lejátszóval " "kompatibilis." #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "Egy gyors és szabad, veszteségmentes audióformátum jó tömörítéssel." #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "Automatikus" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "Egyedi" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "Nincs lejátszás" #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" "Állapot: %(status)s,cím: %(title)s, előadó: %(artist)s, album: %(album)s, " "hossz: %(length)s, pozíció: %(progress)s%% [%(position)s]" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "Beállítás verziója újabb a jelenleginél" #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "Nem tudjuk hogy hogyan lehetne tárolni ezt a fajta beállítást: " #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "Egy ismeretlen típusú beállítást észleltem!" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "A lejátszólista típusa érvénytelen." #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "Lejátszólista" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "M3U Lejátszólista" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "PLS Lejátszólista" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "Érvénytelen formátum ehhez: %s." #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "ASX Lejátszólista" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "XSPF Lejátszólista" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "Keverés_ki" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "Keverés_Számok" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "Keverés_Albumok" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "Ismétlés kikapcs_olva" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "Összes_Ismétlése" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "_Egy ismétlése" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "Dinamika _ki" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "Dinamika azonos _előadók szerint" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "másodperc" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "perc" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "óra" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "nap" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "hét" #: ../xl/lyrics.py:305 msgid "Local" msgstr "Helyi" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "Sorbaállítás" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "Aktuális cseréje" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "Hozzáadás a jelenlegihez" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "Könyvtár megnyitása" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" "A fájlokat nem lehet a kukába áthelyezni. Szeretné törölni azokat a " "merevlemezről?" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "Áthelyezés a kukába" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "Most _játszott megjelenítése" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "Név:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "Bármely feltétel esetén" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "Eredmények összekeverése" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "Korlátozás: " #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr " számok" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "Nincs lejátszás" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "Keresés: %s" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "Áthelyezés" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "Új jelölő" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "Elnémítva" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "%d%%" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "Teljes hangerő" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" "$title\n" "$artist előadó\n" "$album albumáról" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "Különböző" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "%d a gyűjteményből" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "%d mutatva" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "%d kiválasztva" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "Várakozik (%d)" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "#" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "Szám sorszáma" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "Cím" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "Előadó" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "Szerző" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "Album" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "Hossz" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "Lemez" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "Lemezszám" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "Értékelés" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "Dátum" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "Műfaj" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "Bitráta" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "Hely" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "Fájlnév" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "Lejátszva" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "BPM" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "Legutóbb lejátszva" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "Dátum hozzáadva" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "Méretezhető" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "_Automatikus méret" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "Értékelés:" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "Véletlenszerű lejátszás" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "Ismétlés" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "Dinamikus" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "Jelenlegi szám törlése a lejátszólistáról" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "Új lejátszólista" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "Átnevezés" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "Lejátszás megállítása e szám után" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "Lejátszás folytatása e szám után" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "Szükséges beépülőmodulok a dinamikus lejátszólistához" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "Dinamikusan adja hozzá a hasonló számokat a lejátszólistához" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "Írd be a megnyitni kívánt URL-t" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "URL megnyitása" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "Fájltípus választása (kiterjesztés szerint)" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "Válasszon médiát megnyitásra" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "Támogatott fájlok" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "Zene fájlok" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "Lejátszólista fájlok" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "Minden fájl" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "Válasszon mappát megnyitásra" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "Aktuális Lejátszási Lista Exportálása" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "Lejátszólista mentve ezen a néven: %s" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "%s bezárása" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "Elmenti %s változásait, mielőtt kilép?" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "A változtatások elvesznek, ha nem menti őket" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "Kilépés mentés nélkül" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "%(count)s mentése sikerült a(z) %(total)s darabból" #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "Nem adta meg a lejátszólista nevét." #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "Lejátszólista név amit megadtál már létezik" #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "Fül bezárása" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "$artist - $title" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "Kapcsoló: A szám után megállás" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "Hiba történt lejátszáskor!" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "Pufferelés: %d%%..." #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "Lejátszás folytatása" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "Lejátszás megállítása" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "A lejátszólista exportálása sikertelen!" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "Lejátszás" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "Exaile zenelejátszó" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "_Új lejátszólista" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "_URL megnyitása" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "Megnyitott Mappák" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "_Lejátszási lista Exportálása" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "Újraindítás" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "_Gyűjtemény" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "_Várólista" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "B_orítók" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "_Oszlopok" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "Lejátszólista _törlése" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "_Eszköz Kezelő" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "Gyűjtemény újraellenőrzése" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "Szám_Tulajdonságai" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "Mégsem" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "Eredeti album" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "Dalszövegek" #: ../xlgui/properties.py:54 msgid "Website" msgstr "Weboldal" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "Borító" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "Eredeti előadó" #: ../xlgui/properties.py:57 msgid "Author" msgstr "Szerző" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "Eredeti dátum" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "Kiadó" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "Karmester" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "Előadó" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "Szerzői jog" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "Dalszövegek" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "Szám" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "Verziószám" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "ISRC" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "Kódolás" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "Szervezet" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "Módosítva" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "Eltelt idő" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "szám szerkesztése %(current)d of %(total)d" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "," #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "Alkalmazza a jelenlegi értéket az összes számra" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "Borító megjelenítése" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "Borító beszerzése" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "Borító eltávolítása" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "A(z) %s borítója" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "A borítók beállításai %(artist)s - %(album)sa" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "Borító nem található." #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "Ikon" #: ../xlgui/devices.py:81 msgid "Device" msgstr "Eszköz" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "Meghajtó" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "Gyűjtemény átvizsgálása" #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "%s átnézése" #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "Sor bekapcsolása" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "Elemek sorba rakása" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "Tulajdonságok" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "Új Állomás" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "Új okos lejátszólista" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "Szerkesztés" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "Lejátszólista törlése" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "" "Biztos, hogy véglegesen törölni akarja a kiválasztott lejátszólistákat?" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "Írja be a lejátszólista új nevét" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "Lejátszólista átnevezése" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "Eltávolítás" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "Lejátszólista %d" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "Könyvtár hozzáadása" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "Könyvtár nincs hozzáadva." #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" "A mappa már része a gyűjteménynek, vagy egy gyűjteményben lévő mappa " "almappája." #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "Másolás a %s..." #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "Folyamok betöltése..." #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "Rádióállomás Hozzáadása" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "URL:" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "Mentett Állomások" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "Rádióállomások" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "Frissítés" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "Írja be az új lejátszólista nevét." #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "Műfaj - Előadó" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "Műfaj - Album" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "A gyűjtemény átvizsgálása" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "Méret" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s KB" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "és" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "azonos" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "nem azonos" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "tartalmazza ezt:" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "nem tartalmazza ezt:" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "legalább" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "legfeljebb" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "előtt" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "után" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "között" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "nagyobb, mint" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "kisebb, mint" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "az utóbbi" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "nem az utóbbi" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "Lejátszott fájlok" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "Év" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "Okos lejátszólisták" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "Saját lejátszólisták" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "Hozzáadás okos lejátszólistához" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "Okos lejátszólisták szerkesztése" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "Lejátszás" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "Bővítmények" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "A bővítmény információját nem lehet betölteni!" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "Az alábbi kiegészítő összeomlott: %s" msgstr[1] "Az alábbi kiegészítők összeomlottak: %s" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "Kiegészítő nem kikapcsolható!" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "Kiegészítő nem engedélyezhető!" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "Válassz egy bővítményt" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "Beépülő arhívum" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "A kiegészítő fájljainak telepítése sikertelen!" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "Borítók" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "Megjelenés" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "Gyűjtemény" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "a" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "Az alapértelmezések visszaállítása" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "Exaile ujraindítása?" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "Újraindítás szükséges a változtatások életbeléptetéséhez." #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "Művelet" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "Gyorsbillentyű" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "Lejátszólisták" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "Névjegy" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "© 2009-2012" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" "Copyright (C) 2008-2010 Adam Olsen \n" " \n" "Ez egy szabad szoftver; terjeszthető illetve módosítható a GNU\n" "Általános Közreadási Feltételek dokumentumában leírtak szerint -- 2.\n" "vagy későbbi verzió --, melyet a Szabad Szoftver Alapítvány ad ki.\n" " \n" "Ez a program abban a reményben kerül közreadásra, hogy hasznos lesz,\n" "de minden egyéb GARANCIA NÉLKÜL, az eladhatóságra vagy valamely célra\n" "való alkalmazhatóságra való származtatott garanciát is beleértve.\n" "További részletekért lásd a GNU Általános Közreadási Feltételek " "dokumentumát.\n" " \n" "A programmal együtt kellett, hogy érkezzen egy példány a GNU \n" "Általános Közreadási Feltételek dokumentumából is. Ha mégsem akkor\n" "ezt a Szabad Szoftver Alapítványnak küldött levélben jelezni kell.\n" " \n" "A szabad szoftver alapítvány címe:\n" " Free Software Foundation, Inc., \n" " 59 Temple Place, Suite 330, \n" " Boston, MA 02111-1307 USA.\n" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "Borítókezelő" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "Véletlenszerű lejátszás" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "Visszajátszás ismétlése" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "Borító kereső" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "_Beállítás Borítónak" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "_Fájl" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "S_zerkesztés" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "_Nézet" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "_Eszközök" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "_Súgó" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "Előző szám" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" "Lejátszás megállítása\n" "\n" "Jobb klikk a szám lejátszása utáni megállításhoz" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "Következő szám" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0:00 / 0:00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "Zeneszám Tulajdonságai" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "_Tag hozzáadása" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "_Tag törlése" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "ab → A_b" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "Nagybetűs az összes első betű az összes tagban" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "_Előző" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "_Következő" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "Leírás:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "Gyűjteménykezelő" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "Felügyelt" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "Rádió" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "Minden szám hozzáfűzese a lejátszólistához" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "CD importálása" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "Állomás hozzáadása" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "Fájlok" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "Előző látogatott könyvtár" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "Következő látogatott könyvtár" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "Egy könyvtárral feljebb" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "Könyvtár lista frissítése" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "Saját mappa" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "Keresés: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "Keresőmező törlése" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "A gyűjtemény üres" #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "Zene Hozzáadása" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" "Gyűjtemény nézet frissítése\n" "(Shift billentyűre a gyűjtemény újbóli beolvasása)" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "Ágyazza be a borítókat a címkékbe" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "A helyi fájloknál használja a borítókat" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" "Ezzel a lehetőséggel megkeresheti a borító képeket \n" "más mappában mint a zenefájl." #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "Automatikusan töltse le a borítót a lejátszás indításakor" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "Borító keresési sorrend" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "(húzza az újrarendezéshez)" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "A legutóbbi lejátszólisták megnyitása programinduláskor" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "Kérdés testreszabott lejátszólista bezárásakor" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "Lecseréli a tartalmat az oldalsó mezőben dupla kattintásra" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" "Hozzáadás helyett ha kétszer kattintasz a mezőkbe, akkor lecseréli az " "aktuális lejátszási listát" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "Áttűnés felhasználói műveleteknél" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "Átvezetés hossza (ms):" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "Áttűnés használata (KÍSÉRLETI)" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "Átvezetés hossza (ms):" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "Hangkimenet: " #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "Általános kinézet helye:" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "Lejátszás folytatása indításkor" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "Lejátszás folytatása szüneteltetett álapotban" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "Normál" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "Egyesített (instabil)" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "Bővítmény" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "Engedélyezve" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "Nincs kiválasztva kiegészítő" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "Telepített bővímények" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "Szerzők:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "Verzió:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "Telepítés" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "Nincs kiválasztott bővítmény" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "Elérhető bővítmények" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "Frissítések telepítése" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "Frissítések" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "Bővítmény fájl telepítése" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "Információs terület megjelenítése" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" "Ez az információs terület megjeleníti a lemezborítót és a szám információit" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "Fülsor mindig látszik" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "fül elhelyezkedése" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "Mutasd a zenék számát a gyűjteményben" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "Alfa átlátszóság használata:" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" "Figyelem: ezzel a lehetőséggel kiíródik a képernyőre a hiba ha nem használsz " "kompozit támogatást az ablakkezelőben." #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "Tálcaikon megjelenítése" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "Kicsinyítés a tálcára" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "Lecsukás a tálcára" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "Ugrás a jelenlegi dalhoz számváltásnál" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "Nyitóképernyő mutatása indításkor" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "Bal" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "Jobb" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "Felül" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "Alul" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "Beállítások" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "(Jobb klikk visszatérés az alapbeállításokhoz)" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "Felismerés fájlgyűjtemény alapján" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "Eszközkezelő" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "Eszköz hozzáadása" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "Eszköz típusa:" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "Felismert eszközök:" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "Egyéni: " #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "Sorkezelő" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "Hangulat keresése..." #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "Hangulatot megtaláltam" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "A hangulatjelző nem olvasható" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "Hangulatjelző végrehajtható állománya nem elérhető" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "Hangulatjelző" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "Hiba a futtatott folyam feldolgozása közben" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "Felvevő" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "Last.fm Kedvelt számok" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "Az API kulcs érvénytelen." #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "Bizonyosodjon meg róla, hogy a megadott adat hibátlan." #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "Nem sikerült megnyitni a webböngészőt." #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" "Kérjük, másolja be az alábbi URL-t webböngészőjébe:\n" "{url}" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "Kedvelt" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "Last.fm Kedvelt" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "Szám megjelölése kedveltként" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "\"Kedvelt\" megjelölés eltávolítása" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "Ébresztőóra" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "Kapcsolódás a Shoutcast kiszolgálóhoz..." #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "Nem sikerült a Shoutcast kiszolgálóhoz kapcsolódni." #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "Keresési feltétel megadása" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "Shoutcast keresés" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "Keresési Eredmények" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "Keresés" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "Nem található dalszöveg" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "Menj ide: " #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "Bármely" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "Lyrics Néző" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "AudioScrobbler" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "Számkövetés bekapcsolva" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "Hanszínszabályzó" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "Lejátszás végén kikapcsolás" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "Ütemezett leállítás" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "A lejátszási lista végén a számítógép kikapcsol" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "A számítógép %d másodperc múlva leáll." #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "Leállítás sikertelen" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "A számítógép a D-Bus miatt nem áll le." #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "Notify-osd értesítések" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "%(title)s" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "- %(artist)s" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "%(album)s-ból" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "IPython konzol - Exaile" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "IPython konzol megjelenítése" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "IPython konzol" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "Figyelmeztetés" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" "Előadó: %(artist)s\n" "%(album)s albumról" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "CD Impotrálása..." #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "Audio lemez" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "CD" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "Dal sorszáma" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "Lemez-sorszám" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "Lejátszások száma" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "Mini Mód" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "$tracknumber - $title" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "$title by $artist" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "$title ($__length)" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "Előző" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "Előző szám lejátszása" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "Előző szám" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "Következő" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "Ugrás a következő számra" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "Következő szám" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "Lejátszás/Szünet" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "Elindítás, megállítás vagy újra elindítás" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "Lejátszás indítása" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "Lejátszás folytatása" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "Lejátszás szüneteltetése" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "Megállítás" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "Leállítás vagy lejátszás" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "Lejátszás folytatása a jelenlegi szám után." #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "Hangerő" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "Hangerő váltorztatása" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "Visszaállítás" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "Főablak visszaállítása az eredetire" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "Főablak visszaállítása" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "Aktuális szám értékelésének kiválasztása" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "Számválasztó" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "Egyszerű lejátszási lista" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "Lejátszólistagomb" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "Hozzáférés az aktuális lejátszási listához" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "$title ($current_time / $total_time)" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "Előre gomb" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "Folyamatjelző" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "Lejátszási folyamat, és keresés" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "Automatikus hangerőszabályozás" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "Kiválasztás ráejtéssel" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "Hozzáfűzés és lejátszás" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "Hozzáfűzés" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "Kész" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "Keresés a Jamendo katalógusban" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "Száminformációk lekérése..." #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "OSD" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "Amazon borítók" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "Podcastok" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "Podcast" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "Podcast Frissítése" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "Törlés" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "Hozzáadandó podcast URL-jének megadása" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "Podcast megnyitása" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "A(z) %s betöltése..." #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "Hiba a podcast betöltésekor" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "Podcastok betöltése..." #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "A podcast fájlt nem sikerült elmenteni" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "Borító az asztalon" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "Többszörös ébresztőóra" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "Kontextus" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "Környezeti-információ" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "Szám Mentése a Könyvjelzők Közé" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "Könyvjelző törlése" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "A könyvjelzők törlése" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "Könyvjelzők" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "Képernykímélő esetén szünet" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "DAAP Szerver" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "DAAP kliens" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "Kézi..." #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "Megosztáshoz IP cím és port megadása" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "IP cím és port megadása" #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" "A kiszolgáló nem támogat többszörös kapcsolatot.\n" "Számok letöltése előtt meg kell állítani a lejátszást." #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "Szerverlista Frissítése" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "Kapcsolat Bontása" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "Mentés Helyének Kiválasztása" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "Csatalkozás DAAP-hoz" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "Lejátszási rész sötétítése kurzorhasználat helyett" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "Sötétségi szint:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "Hullámforma stílus" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "Hullámforma mutatása csak, hangulatjel nélkül" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "Színes téma használata " #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "Alapszín:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "Alapszín" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "Mentési hely:" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "Port továbbítás:" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "Beolvasás egyszerű fájlba" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "A befejezettlen fájlok törlése" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "API kulcs:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "Titok:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "Riasztási időpont" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "Hétfő" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "Kedd" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "Szerda" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "Csütörtök" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "Péntek" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "Szombat" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "Vasárnap" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "Riasztási napok" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "Elhalványodás használata" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "Növelés:" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "Kijelző borítása" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "Borítók megjelenítése" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "Kör alakú megjelenítés" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "Szöveg aránya" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "Semmi" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "Dalszöveg frissítése" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "Számok küldése a számkövetés használatával" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "Menüelem mutatása gombnyomásra" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "Jelszó:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "Felhasználónév:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "Beállítások" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "+12 dB" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "0" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "-24 dB" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "29" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "59" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "119" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "237" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "474" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "947" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "1.9K" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "3.8K" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "7.5K" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "15K" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "Szám váltásakor" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "Visszajátszásnál indítás, szünet vagy megállítás" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "A tálca ikonja felett lebeg" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "Főablakra való fókuszáláskor" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "Megjelenés" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "Album borítók használata ikonként" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" "Használd a média ikonokat szüneteltetésre, megállításra, és folytatásra" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "Ikonok" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "Előadó sor:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "Összegzés:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "Album sor:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "Tartalom" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "Terminál átlátszósága:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "Betűtípus:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "Háttérszín:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "Megjelenített borító átméretezése" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "Csak előadó:" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "Csak album:" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "Mindkét előadó és album:" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "Üzenet törzse" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "Ogg Vorbis" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "FLAC" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "AAC" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "MP3 (VBR)" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "MP3 (CBR)" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "WavPack" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "Import formátuma " #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "Importálás minősége: " #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "Import útvonala: " #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "Vezérlőelemek" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "Számcím formátuma" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "Mindig legfelül" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "Feladatlistában megjelenik" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "Főablak dekorálása:" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "Minden asztalon látszik" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "Gomb megjelenítése a fő ablakban" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "Teljes" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "Egyszerű" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "Albumszintű hangerőszabályozás" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "Albumszintű hangerőszabályozás számonkénti helyett" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "Pattogás elkerülése" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "Túlszabályozás okozta zajjal szembeni védelem" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "Erősítés minden fájlra" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "Erősítés (dB):" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "Szabályozás hangerő információval nem rendelkező fájloknál" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "Alapértelmezett módosítási szint (dB):" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "Rendezés ezek alapján:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "Rendezés sorrendben:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "Találatok:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "Haladó" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "Csökkenő" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "Növekvő" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "Kiadás dátuma" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "Heti értékelés" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "Havi értékelés" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "Lejátszólista hozzáfűzések száma" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "Letöltések száma" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "Hallgatások száma" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "Kedvenc" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "Kedvencekhez sorolás ideje" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "Műfaj/Címkék" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" "Jelentkezzen be az Amazon AWS azonosítójával, hogy információt \n" "kaphasson erről http://aws.amazon.com/" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "Podcast hozzáadása" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "Horgony:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "X távolság:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "képpont" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "Y távolság:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "Borító méretének felülírása" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "Méret:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "Elhalkulás használata" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "Elhalkulás hossza:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "ms" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "Bal felső" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "Jobb felső" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "Bal alsó" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "Jobb alsó" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "Hozzáadás" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "Figyelmeztetések" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "Lejátszási lista újrakezdése" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "Lejátszás" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "Írja be a Last.fm bejelentkezési adatait:" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "Bejelentkezés a Last.fm-re" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "Borító használata a könyvjelző menüben (újraindítást igényel)" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "Kiszolgáló neve:" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "Kiszolgáló címe:" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "Port:" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "Kiszolgáló engedélyezve" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "Jelenlegi dal" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" "Beállítja, hogy a Pidginben mutassa az aktuálisan lejátszott számot. További " "szolgáltatásokért keresd fel a Pidgin GYIK-et." #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" "A folyamatjelzőt hangulatjelzőre cseréli.\n" "Függőségek: moodbar" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "GNOME Multimédia Billentyűk" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" "Exaile irányítás támogatása GNOME multimédia billentyűzettel. GNOME 2.20.x " "és e felett kompatibilis." #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" "Felvétel készítése streamripper-rel.\n" "Függőségek: streamripper" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "Zenét játszik le adott időben.\n" "\n" "Amikor az idő elérkezik, az Exaile pusztán annyit tesz mintha megnyomta " "volna a lejátszás gombot, ezért gondoskodni kell róla, hogy a lejátszandó " "zene a lejátszólistában van" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "Last.fm Borítók" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "Borítók keresése Last.fm-en" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "Beállítja a borítót és néhány menüelemet az AWN-ben" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "Shoutcast Radio" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "Shoutcast Radio lista" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "Ex Falso címkeszerkesztő" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "Integrálja az Ex Falso címkeszerkesztőt az Exaile-vel." #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" "Egy oldalsó lapon jeleníti meg a dalszöveget az éppen játszott számhoz." #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" "Zenehallgatási információkat elküldi a Last.fm-nek és hasonló számkövetést " "támogató szolgáltatóknak" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "XBillentyűk" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "Rendszerszintű gyorsbillentyűk xlib használatával" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "10 sávos hangkiegyenlítő" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "Lyrics Fly" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "Bővítmény dalszöveg lyricsfly.com-ról való beszerzéséhez" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "Librivox" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "Hangoskönyvek böngészése és hallgatása a Librivox.org-ról." #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "Engedélyezem a számítógép leállítását a lejátszási lista végén." #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "USB meghajtós médialejátszók támogatása" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" "Hordozható médialejátszók hozzáférésének támogatása az USB Mass Storage " "protokol támogatásával" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "Last.fm dinamikus lejátszólista" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "Last.fm forrás a dinamikus lejátszólistához" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" "Ez a bővítmény értesítő üzeneteket jelenít meg buborékban, ha egy dalt " "lejátszanak/megállítanak/folytatnak a dal borítójával vagy egy média " "ikonnal, hogy jelezze a legutolsó műveletet.\n" "\n" "Függőségek: python-notify\n" "Ajánlott: notify-osd" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "Ipython konzolt biztosít az Exaile működésének befolyásolására." #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "Értesít ha egy dal lejátszása elkezdődött" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "CD lejátszás" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "A-B ismétlés" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "Az Exaile kompakt nézete beállítható felülettel." #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "Automatikus hangerőszabályozás engedélyezése" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "Tálcaikon \"húzd és ejtsd\" támogatással" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" "Egy másik tálcaikon, amely ráejtett fájlokat is elfogad.\n" "\n" "Függőségek: python-eggtrayicon" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "Jamendo" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "Hozzáférés engedélyezése a Jamendo zenei katalógusához" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "iPod támogatás" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "Borítók keresése az Amazon-on" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "Karaoke" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "Hang törlése a zenéről" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "Egyszerű podcast támogatás hozzáadása" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "Megjeleníti a jelenlegi album borítóját az asztalon" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "Hello World" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "Egyszerű bővítmény az alapvető bővítményrendszer teszteléséhez" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "Zenelejátszás adott napokon és időben.\n" "\n" "Amikor az idő elérkezik, az Exaile pusztán annyit tesz mintha megnyomta " "volna a lejátszás gombot, ezért gondoskodni kell róla, hogy a lejátszandó " "zene a lejátszólistában van" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "Környezeti információ" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" "Információk a játszott dalról.\n" "Függőségek: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging " "(alias PIL)" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "Hangfájlokban lehetővé teszi könyvjelzők mentését/folytatását" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "Lyrics Wiki" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" "Ez a bővítmény integrálja a spydaap programot (http://launchpad.net/spydaap) " "az Exaile-be, így a gyűjteménye megosztható a DAAP-on keresztül" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "Lejátszás engedélyezése DAAP zenemegosztásból" #~ msgid "Clear" #~ msgstr "Törlés" #~ msgid "Close" #~ msgstr "Bezárás" #~ msgid "Close tab" #~ msgstr "Lap bezárása" #~ msgid "Export as..." #~ msgstr "Exportálás másként..." #~ msgid "%d KB" #~ msgstr "%d KB" #~ msgid "© 2009-2010" #~ msgstr "© 2009-2010" #~ msgid "GNOME" #~ msgstr "GNOME" #~ msgid "ALSA" #~ msgstr "ALSA" #~ msgid "OSS" #~ msgstr "OSS" #~ msgid "PulseAudio" #~ msgstr "PulseAudio" #~ msgid "JACK" #~ msgstr "JACK" #~ msgid "AWN" #~ msgstr "AWN" #~ msgid "API Key:" #~ msgstr "API Kulcs:" #~ msgctxt "yes" #~ msgid "Monday" #~ msgstr "Hétfő" #~ msgctxt "yes" #~ msgid "Tuesday" #~ msgstr "Kedd" #~ msgctxt "yes" #~ msgid "Wednesday" #~ msgstr "Szerda" #~ msgctxt "yes" #~ msgid "Thursday" #~ msgstr "Csütörtök" #~ msgctxt "yes" #~ msgid "Friday" #~ msgstr "Péntek" #~ msgctxt "yes" #~ msgid "Saturday" #~ msgstr "Szombat" #~ msgctxt "yes" #~ msgid "Sunday" #~ msgstr "Vasárnap" #~ msgctxt "yes" #~ msgid "Use Fading" #~ msgstr "Elhalkulás használata" #~ msgctxt "yes" #~ msgid "Minimum volume:" #~ msgstr "Legkisebb hangerő:" #~ msgctxt "yes" #~ msgid "Maximum volume:" #~ msgstr "Legnagyobb hangerő:" #~ msgctxt "yes" #~ msgid "Increment:" #~ msgstr "Növelés:" #~ msgctxt "yes" #~ msgid "Time per increment:" #~ msgstr "Idő per növekvés" #~ msgid "Secret key:" #~ msgstr "Titkos kulcs:" #~ msgid "Awn" #~ msgstr "Awn" #~ msgid "Add a directory" #~ msgstr "Könyvtár hozzáadása" #~ msgid "Add to Playlist" #~ msgstr "Hozzáadás a lejátszólistához" #~ msgid "Display OSD when hovering over tray icon" #~ msgstr "OSD mutatása ha az egér a tálcaikon fölé ér" #~ msgid "Opacity Level:" #~ msgstr "Átlátszatlanság szintje:" #~ msgid "Alarm Days:" #~ msgstr "Ébresztési napok" #~ msgid "Relay Port:" #~ msgstr "Relay Port:" #~ msgid " songs" #~ msgstr " dalok" #~ msgid "LastFM Radio" #~ msgstr "LastFM Rádió" #~ msgid "Neighbourhood" #~ msgstr "Szomszédos" #~ msgid "Loved Tracks" #~ msgstr "Kedvenc számok" #~ msgid "Personal" #~ msgstr "Személyes" #~ msgid "Recommended" #~ msgstr "Ajánlott" #~ msgid "No covers found" #~ msgstr "Nincs elérhető borító" #~ msgid "Invalid file extension, file not saved" #~ msgstr "Hibás fájlkiterjesztés, a fájl nincs mentve" #~ msgid "Toggle: Stop after selected track" #~ msgstr "Váltás: Leállítás a kijelölt szám után" #~ msgid "Number of Plays" #~ msgstr "Lejátszások száma" #~ msgid "Add Playlist" #~ msgstr "Lejátszólista hozzáadása" #~ msgid "Choose a file" #~ msgstr "Válassz egy fájlt" #~ msgid "Display a progressbar in the OSD" #~ msgstr "Folyamatjelző megjelenítése az OSD-ben" #~ msgid "Show a popup of the currently playing track" #~ msgstr "Üzenet megjelenítése az éppen lejátszott számról" #~ msgid "Restart Playlist" #~ msgstr "Lejátszólista újraindítása" #~ msgid "Name - Time" #~ msgstr "Név - Idő" #~ msgid "Enable Fading" #~ msgstr "Áttűnés engedélyezése" #~ msgid "Streaming..." #~ msgstr "Betöltés..." #~ msgid "Plugin archive contains an unsafe path" #~ msgstr "A plugin nem biztonságos útvonalat tartalmaz" #~ msgid " New song, fetching cover." #~ msgstr " Új szám, borító letöltése." #~ msgid "Get rating for current song" #~ msgstr "Jelenlegi zeneszám értékelésének lekérdezése" #~ msgid "%d covers to fetch" #~ msgstr "%d borító letöltése" #~ msgid "Streamripper can only record streams." #~ msgstr "Adatfolyam rippelő csak adatfolyamot tud rögzíteni" #~ msgid "Alarm Name:" #~ msgstr "Figyelmeztetés neve" #~ msgid "Maximum Volume:" #~ msgstr "Maximum hangerő" #~ msgid "Fading:" #~ msgstr "Áttűnés" #~ msgid "Minimum Volume:" #~ msgstr "Minimum hangerő" #~ msgid "Alarm:" #~ msgstr "Figyelmeztetés" #~ msgid "Alarm Time:" #~ msgstr "Figyelmeztetés ideje" #~ msgid "Playing %s" #~ msgstr "%s lejátszása" #~ msgid "Toggle Play or Pause" #~ msgstr "Váltás lejátszás és megállítás között" #~ msgid "Set rating for current song" #~ msgstr "A jelenlegi szám értékelése" #~ msgid "New playlist title:" #~ msgstr "Új lejátszólista címe:" #~ msgid "Buffering: 100%..." #~ msgstr "Pufferelés: 100%" #~ msgid "%(title)s (by %(artist)s)" #~ msgstr "%(title)s (tőle: %(artist)s)" #~ msgid "" #~ "Exaile Music Player\n" #~ "Not playing" #~ msgstr "" #~ "Exaile Music Player\n" #~ "Nincs lejátszás" #~ msgid "Stopped" #~ msgstr "Megállítva" #~ msgid " (%(queue_count)d queued)" #~ msgstr " (%(queue_count)d sorbaállítva)" #~ msgid "by %s" #~ msgstr "%s" #~ msgid "from %s" #~ msgstr "%s albumáról" #~ msgid "Open" #~ msgstr "Megnyitás" #~ msgid "Export" #~ msgstr "Exportálás" #~ msgid "Start" #~ msgstr "Indítás" #~ msgid "%(minutes)d:%(seconds)02d" #~ msgstr "%(minutes)d:%(seconds)02d" #~ msgid "Enter the search text" #~ msgstr "Írja be a keresendő szöveget" #~ msgid "Choose a file to open" #~ msgstr "Válassza ki a megnyitandó fájlt" #~ msgid "Export current playlist..." #~ msgstr "Jelenlegi lejátszólista exportálása" #~ msgid "" #~ "Path is already in your collection, or is a subdirectory of another path " #~ "in your collection" #~ msgstr "" #~ "Az útvonal már a gyűjteményben van, vagy egy másik könyvtár alkönyvtára" #~ msgid "Select File Type (By Extension)" #~ msgstr "Válassza ki a fájl típusát (kiterjesztés szerint)" #~ msgid "File Type" #~ msgstr "Fájltípus" #~ msgid "Extension" #~ msgstr "Kiterjesztés" #~ msgid "0:00" #~ msgstr "0:00" #~ msgid "Add device" #~ msgstr "Eszköz hozzáadása" #~ msgid "Quit" #~ msgstr "Kilépés" #~ msgid "..." #~ msgstr "..." #~ msgid "© 2009" #~ msgstr "© 2009" #~ msgid "New Search" #~ msgstr "Új keresés" #~ msgid "_Close" #~ msgstr "_Bezár" #~ msgid "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgstr "" #~ "{title}}\n" #~ "{artist}}\n" #~ "album: {album} - {length}" #~ msgid "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgstr "" #~ "Mozgassa az On Screen Display ablakot arra a helyre, ahol meg kívánja " #~ "jeleníteni " #~ msgid "Popup" #~ msgstr "Felbukkanó ablak" #~ msgid "Window Height:" #~ msgstr "Magasság:" #~ msgid "Window Width:" #~ msgstr "Szélesség:" #~ msgid "Text Font:" #~ msgstr "Betűtípus:" #~ msgid "Text Color" #~ msgstr "Szöveg szín" #~ msgid "Show OSD on track change" #~ msgstr "Mutassa az OSD-t számváltáskor" #~ msgid "Close this dialog" #~ msgstr "A párbeszédablak bezárása" #~ msgid "Plugin Manager" #~ msgstr "Bővítmény kezelő" #~ msgid "Remove All" #~ msgstr "Összes eltávolítása" #~ msgid "" #~ "Automatic\n" #~ "GNOME\n" #~ "ALSA\n" #~ "OSS\n" #~ "PulseAudio\n" #~ "JACK" #~ msgstr "" #~ "Automatic\n" #~ "GNOME\n" #~ "ALSA\n" #~ "OSS\n" #~ "PulseAudio\n" #~ "JACK" #~ msgid " - " #~ msgstr " - " #~ msgid " + " #~ msgstr " + " #~ msgid "0/0 tracks" #~ msgstr "0/0 szám" #~ msgid "Autosize" #~ msgstr "Automéretezés" #~ msgid "Page 1" #~ msgstr "1. oldal" #~ msgid "Vol:" #~ msgstr "Hangerő:" #~ msgid "Resizable" #~ msgstr "Méretezhető" #~ msgid "Stop Playback" #~ msgstr "Lejátszás vége" #~ msgid "_Go to Playing Track" #~ msgstr "_Ugrás a most hallható számra" #~ msgid "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "Year - Artist\n" #~ "Year - Album\n" #~ "Artist - Year - Album" #~ msgstr "" #~ "Előadó\n" #~ "Album\n" #~ "Műfaj - Előadó\n" #~ "Műfaj - Album\n" #~ "Év - Előadó\n" #~ "Év - Album\n" #~ "Előadó - Év - Album" #~ msgid "General" #~ msgstr "Általános" #~ msgid "Delete bookmark" #~ msgstr "Könyvjelző törlése" #~ msgid "Save As..." #~ msgstr "Mentés másként…" #~ msgid "_Save As..." #~ msgstr "M_entés másként…" #~ msgid "Idle." #~ msgstr "Üresjárat." #~ msgid "Choose a plugin" #~ msgstr "Válassz bővítményt" #~ msgid "Move selected item up" #~ msgstr "A kijelölt elemet feljebb mozgatja" #~ msgid "Move selected item down" #~ msgstr "A kijelölt elemet lejjebb mozgatja" #~ msgid "Remove item" #~ msgstr "Elem eltávolítása" #~ msgid "Add item" #~ msgstr "Elem hozzáadása" #~ msgid "File Size:" #~ msgstr "Fájlméret:" #~ msgid "Basic" #~ msgstr "Alap" #~ msgid "Date:" #~ msgstr "Dátum:" #~ msgid "Details" #~ msgstr "Részletek" #~ msgid "Bitrate:" #~ msgstr "Bitráta:" #~ msgid "Album:" #~ msgstr "Album:" #~ msgid "Artist:" #~ msgstr "Előadó:" #~ msgid "Genre:" #~ msgstr "Műfaj:" #~ msgid "Title:" #~ msgstr "Cím:" #~ msgid "Length:" #~ msgstr "Hossz:" #~ msgid "Play Count:" #~ msgstr "Lejátszások száma:" #~ msgid "Location:" #~ msgstr "Hely:" #~ msgid "Clear Playlist" #~ msgstr "Lejátszólista törlése" #~ msgid "Seeking: " #~ msgstr "Keresés: " #~ msgid "Only artist" #~ msgstr "Csak előadó" #~ msgid "Summary" #~ msgstr "Összegzés" #~ msgid "Only album" #~ msgstr "Csak album" #~ msgid "Save Location:" #~ msgstr "A mentés helye:" #~ msgid "iPod support" #~ msgstr "iPod támogatás" #~ msgid "A plugin for iPod support" #~ msgstr "iPod támogatás bővítmény" #~ msgid "No track" #~ msgstr "Nem zeneszám" #~ msgid "Delete track" #~ msgstr "Zeneszám törlése" #~ msgid "Track Number:" #~ msgstr "Zeneszám Sorszáma:" #~ msgid "Secret Key:" #~ msgstr "Titkos Kulcs:" #~ msgid "Decreases the volume by VOL%" #~ msgstr "Hangerő csökkentése VOL% -val" #~ msgid "Increases the volume by VOL%" #~ msgstr "Hangerő növelése VOL% -val" #~ msgid "Use alpha transparency (if supported)" #~ msgstr "Átlátszóság használata(ha támogatott)" #~ msgid "Install a third party plugin from a file" #~ msgstr "Harmadik féltől származó beépülő telepítése, fájlból" #~ msgid "Start/Pause Playback" #~ msgstr "Lejátszás Indítása/Leállítása" #~ msgid "Restore Main Window" #~ msgstr "Fő ablak visszaállítása" #~ msgid "Device class does not support transfer." #~ msgstr "Eszközosztály nem támogatja az átvitelt." #~ msgid "Original Artist" #~ msgstr "Eredeti Előadó" #~ msgid "Original Album" #~ msgstr "Eredeti Album" #~ msgid "Original Date" #~ msgstr "Eredeti Dátum" #~ msgid "Last.fm Dynamic Search" #~ msgstr "Last.fm Dinamikus Keresés" #~ msgid " & " #~ msgstr " & " #~ msgid "Date Added" #~ msgstr "Hozzáadás dátuma" #~ msgid "Last Played" #~ msgstr "Legutóbb Lejátszva" #~ msgid "Print the position inside the current track as time" #~ msgstr "Írja ki a pozíciót az aktuális számon belül idő formájában" #~ msgid "Print the progress inside the current track as percentage" #~ msgstr "Írja ki a folyamatot az aktuális számban százalékban" #~ msgid "A plugin with the name \"%s\" is already installed" #~ msgstr "'%s' névvel már bővítmény telepítve" #~ msgid "Encoded By" #~ msgstr "Kódolta:" #~ msgid "Add to custom playlist" #~ msgstr "Hozzáadás lejátszólistához" #~ msgid "In pause: %s" #~ msgstr "Szünet: %s" #~ msgid "Custom playlist name:" #~ msgstr "Lejtászólista neve:" #~ msgid "_Save Changes To Playlist" #~ msgstr "_Változások mentése a lejtászólistába" #~ msgid "_Close Playlist" #~ msgstr "_Lejátszólista bezárása" #~ msgid "C_lear All Tracks" #~ msgstr "_Összes szám törlése" #~ msgid "_Save As Custom Playlist" #~ msgstr "_Lejátszólista mentése másként" #~ msgid "_Rename Playlist" #~ msgstr "_Lejátszólista átnevezése" #~ msgid "Add To New Playlist..." #~ msgstr "Add új lejátszólistához..." #~ msgid "Repeat playlist" #~ msgstr "Lejátszólista ismétlése" #~ msgid "New custom playlist name:" #~ msgstr "Új lejátszólista" #~ msgid "" #~ "This will permanantly delete the selected tracks from your disk, are you " #~ "sure you wish to continue?" #~ msgstr "" #~ "A kijelölt számok véglegesen törölve lesznek a lemezről, biztos, hogy " #~ "szeretnéd folytatni?" #~ msgid "Remove current track from playlist" #~ msgstr "Aktuális szám törlése a lejátszólistáról" #~ msgid "Randomize the order of the current playlist" #~ msgstr "Véletlenszerű elrendezés az aktuális lejátszólistán" #~ msgid "Dynamically add similar tracks" #~ msgstr "Hasonló számok dinamikus hozzáadása" #~ msgid "_Randomize Playlist" #~ msgstr "_Lejátszólista összekeverése" #~ msgid "Track _properties" #~ msgstr "Szám_tulajdonságai" #~ msgid "_Export current playlist" #~ msgstr "_Aktuális lejátszólista exportálása" #~ msgid "Plugin archive is not in the correct format" #~ msgstr "Beépülő archívum nem a megfeleő formátumú" #~ msgid "Filter event debug output" #~ msgstr "Hibakeresési kimenet szűrése" #~ msgid "%(playlist_count)d showing, %(collection_count)d in collection" #~ msgstr "%(playlist_count)d látható, %(collection_count)d a gyűjteményben" #~ msgid "order must be a list or tuple" #~ msgstr "Sorrend lista vagy tuple legyen" #~ msgid "%(year)d-%(month)02d-%(day)02d" #~ msgstr "%(year)d-%(month)02d-%(day)02d" #~ msgid "Install plugin file" #~ msgstr "Bővítményfájl telepítése" #~ msgid "" #~ "Copyright (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "This program is free software; you can redistribute it and/or modify\n" #~ "it under the terms of the GNU General Public License as published by\n" #~ "the Free Software Foundation; either version 2 of the License, or\n" #~ "(at your option) any later version.\n" #~ "\n" #~ "This program is distributed in the hope that it will be useful,\n" #~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" #~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" #~ "GNU General Public License for more details.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along\n" #~ "with this program; if not, write to the Free Software Foundation, Inc.,\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ msgstr "" #~ "Copyright (C) 2008-2009 Adam Olsen \n" #~ " \n" #~ "Ez egy szabad szoftver; terjeszthető illetve módosítható a GNU\n" #~ "Általános Közreadási Feltételek dokumentumában leírtak szerint -- 2.\n" #~ "vagy későbbi verzió --, melyet a Szabad Szoftver Alapítvány ad ki.\n" #~ " \n" #~ "Ez a program abban a reményben kerül közreadásra, hogy hasznos lesz,\n" #~ "de minden egyéb GARANCIA NÉLKÜL, az eladhatóságra vagy valamely célra\n" #~ "való alkalmazhatóságra való származtatott garanciát is beleértve.\n" #~ "További részletekért lásd a GNU Általános Közreadási Feltételek " #~ "dokumentumát.\n" #~ " \n" #~ "A programmal együtt kellett, hogy érkezzen egy példány a GNU \n" #~ "Általános Közreadási Feltételek dokumentumából is. Ha mégsem akkor\n" #~ "ezt a Szabad Szoftver Alapítványnak küldött levélben jelezni kell.\n" #~ " \n" #~ "A szabad szoftver alapítvány címe:\n" #~ " Free Software Foundation, Inc., \n" #~ " 59 Temple Place, Suite 330, \n" #~ " Boston, MA 02111-1307 USA.\n" #~ msgid "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager" #~ msgstr "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager" #~ msgid "These options only affect the unified engine." #~ msgstr "A kapcsolók csak az egyesített alrendszert befolyásolják" #~ msgid "Bookmark this track" #~ msgstr "Szám hozzáadása a könyvjelzőhöz" #~ msgid "Clear bookmarks" #~ msgstr "Könyvjelző törlése" #~ msgid "Select a save location" #~ msgstr "Mentési hely kiválasztása" #~ msgid "Available controls" #~ msgstr "Elérhető vezérlők" #~ msgid "Time per Increment:" #~ msgstr "Növelésenkénti idő" #~ msgid "$title ($length)" #~ msgstr "$title ($length)" #~ msgid "Selected controls" #~ msgstr "Kiválasztott vezérlők" #~ msgid "Timer per Increment:" #~ msgstr "Növelésenkénti idő" #~ msgid "Show Menuitem to toggle Submission" #~ msgstr "Küldés menüelem bekapcsolása" #~ msgid "On Track Change" #~ msgstr "Számváltáskor" #~ msgid "Artist Line:" #~ msgstr "Előadó sora:" #~ msgid "Album Line:" #~ msgstr "Album sora:" #~ msgid "On Playback Start, Pause or Stop" #~ msgstr "Lejátszásnál indulás/szünetelés v. megállításkor" #~ msgid "Use Media Icons For Pause, Stop and Resume" #~ msgstr "Média ikon használata lejátszás/szünet/folytatásnál" #~ msgid "When GUI is Focused" #~ msgstr "Ha a grafikus felület előtérben" #~ msgid "" #~ "To sign up for an Amazon AWS account and get \n" #~ "this information visit http://aws.amazon.com/" #~ msgstr "" #~ "Amazon AWS fiók létrehozásához és további információért \n" #~ "látogassa meg a http://aws.amazon.com/ honlapot." #~ msgid "On Tray Icon Hover" #~ msgstr "Tálcaikonon lebegtetéskor" #~ msgid "Use Album Covers As Icons" #~ msgstr "Borító ikonként" #~ msgid "" #~ "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " #~ "replaced by their respective values. The title will be replaced by " #~ "\"Unknown\" if it is empty." #~ msgstr "" #~ "A \"%(title)s\", \"%(artist)s\", and \"%(album)s\" címkék helyettesítve " #~ "lesznek a megfelelő értékeikkel. A cím \"Ismeretlen\"-nel lesz " #~ "helyettesítve ha üres." #~ msgid "Both artist and album" #~ msgstr "Előadó és album" #~ msgid "" #~ "Message that should be displayed in the body of the notification. In each " #~ "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced " #~ "by their respective values. If the tag is not known, \"Unknown\" will be " #~ "filled in its place" #~ msgstr "" #~ "Értesítés törzsében megjelenítendő üzenet . A \"%(title)s\", \"%(artist)s" #~ "\", and \"%(album)s\" minden esetben a megfelelő értékekkel lesz " #~ "helyettesítve. Ha a címke nem ismert, \"Ismeretlen\" szöveg lesz a helyén." #~ msgid "Track title format:" #~ msgstr "Szám címformátuma:" #~ msgid "Terminal Opacity:" #~ msgstr "Terminál átlátszatlansága:" #~ msgid "Display window decorations" #~ msgstr "Ablakdekorációk mutatása" #~ msgid "Creates an MPRIS D-Bus object to control Exaile" #~ msgstr "MPRIS D-Bus objektumot hoz létre az Exaile irányításához" #~ msgid "" #~ "Adds support for playing audio CDs.\n" #~ "Requires python-cddb to look up tags." #~ msgstr "" #~ "Audio CD lejátszás támogatása,\n" #~ "Python-cddb szükséges az album-információk kinyeréséhez" #~ msgid "Pauses/resumes playback on screensaver start/stop" #~ msgstr "" #~ "Lejátszás megállítás/folytatás képernyővédő bekapcsolásakor/végetérésekor" #~ msgid "Tag Covers" #~ msgstr "Fájlba mentett borítók" #~ msgid "Searches track tags for covers" #~ msgstr "Borítót keres a dal metaadatai között" #~ msgid "Plugin to fetch lyrics from lyricwiki.org" #~ msgstr "Bővítmény dalszövegek lyricwiki.org-ról történő beszerzéséhez" #~ msgid "Playback engine (requires restart): " #~ msgstr "Lejátszás alrendszere (újraindítást igényel) " #~ msgid "Search:" #~ msgstr "Keres:" #~ msgid "" #~ "OSD\n" #~ "Drag to the location you'd like the\n" #~ "OSD to appear" #~ msgstr "" #~ "OSD\n" #~ "Húzza oda, ahol szeretné,\n" #~ "hogy az OSD megjelenjen" dist/copy/po/PaxHeaders.26361/bg.po0000644000175000017500000000012412233027260015367 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.069046931 exaile-3.3.2/po/bg.po0000644000000000000000000036247112233027260014344 0ustar00rootroot00000000000000# Bulgarian translation for exaile # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2010. # Galin Petrov , 2011. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2012-07-29 07:11+0000\n" "Last-Translator: Dustin Spicuzza \n" "Language-Team: Bulgarian \n" "Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-08-28 05:24+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "%d ден, " msgstr[1] "%d дни, " #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "%d час, " msgstr[1] "%d часа, " #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "%d минута, " msgstr[1] "%d минути, " #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d секунда" msgstr[1] "%d секунди" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "%dd, " #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "%dh, " #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "%dm, " #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "%ds" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "%dd " #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "%d:%02d:%02d" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "%d:%02d" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "Никога" #: ../xl/formatter.py:702 msgid "Today" msgstr "Днес" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "Вчера" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "Миграцията от 0.2.14 е неуспешна." #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "Начин на ползване: exaile [OPTION]... [URI]" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "Настройки" #: ../xl/main.py:421 msgid "Playback Options" msgstr "Опции за възпроизвеждане" #: ../xl/main.py:423 msgid "Play the next track" msgstr "Изпълняване на следващата песен" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "Изпълняване на предишната песен" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "Спиране на възпроизвеждането" #: ../xl/main.py:429 msgid "Play" msgstr "Изпълняване" #: ../xl/main.py:431 msgid "Pause" msgstr "Пауза" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "Прекъсване или продължаване на възпроизвеждането" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "Спри изпълнението след текущата песен" #: ../xl/main.py:440 msgid "Collection Options" msgstr "Опции на фонотеката" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "LOCATION" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "Добавяне на песни от LOCATION във фонотеката" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "Опции на списъка с песни" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "Изнасяне на текущия списък на песни в LOCATION" #: ../xl/main.py:454 msgid "Track Options" msgstr "Опции на песента" #: ../xl/main.py:456 msgid "Query player" msgstr "Показване на плеъра" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "Показване на балонче с информация за текущата песен" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "Показване на заглавието на текущата песен" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "Показване на албума на текущата песен" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "Показване на изпълнителя на текущата песен" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "Показване на дължината на текущата песен" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "N" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "Показване оценката на текущата песен" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "Показване на текущия момент на възпроизвеждане в секунди" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "Показване на текущия момент на възпроизвеждане в проценти" #: ../xl/main.py:490 msgid "Volume Options" msgstr "Настройка на силата на звука" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "Увеличаване на силата на звука с N%" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "Намаляне на силата на звука с N%" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "Заглушаване на звука" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "Показване на силата на звука" #: ../xl/main.py:507 msgid "Other Options" msgstr "Други настройки" #: ../xl/main.py:509 msgid "Start new instance" msgstr "Стартиране на нов прозорец" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "Показване на помощния материал и излизане" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "Показване на версията на програмата и излизане." #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "Зареждане в зоната за уведомявания (ако е възможно)" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "Промяна на видимостта на интерфейса (ако е възможно)" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "Стартиране в безопасен режим - полезно, ако имате проблеми" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" "Принудително внасяне на стари данни от версия 0.2.х (изтрива сегашните)" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "Без внасяне на данни от версия 0.2.х" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" "Вмъкване на контролни опции като --play start Exaile if it is not running" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "Разработка/Отстраняване на грешки" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "DIRECTORY" #: ../xl/main.py:536 msgid "Set data directory" msgstr "Задаване на директория за данни" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "MODULE" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "" #: ../xl/main.py:543 msgid "LEVEL" msgstr "LEVEL" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "Показване на съобщенията за отстранявне на грешки" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "" "Разрешаване на отстраняване на грешки за xl.event. Генерира МНОГО съобщения" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:555 msgid "TYPE" msgstr "TYPE" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "Намаляне на нивото на съобщенията" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "Забраняване на поддръжката на D-Bus" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "Забраняване на поддръжката на HAL." #: ../xl/main.py:580 msgid "Entire Library" msgstr "Цялата фонотека" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "Произволни %d" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "Рейтинг > %d" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "Етикети" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "" #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "Не сте задали директория за зареждане на базата данни." #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "Не сте задали директория за записване на базата данни" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "Различни изпълнители" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "Неизвестно" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr " / " #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "%dk" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" "Vorbis е аудио кодек със загуби с отворен код, висококачествен звук и по-" "малка големина на файловете от MP3." #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" "Free Lossless Audio Codec (FLAC) е аудио кодек с отворен код, който " "компресира, но не понижава качеството на звука." #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" "Аудио формат на Apple, който запазва по-добре звука на по-ниски честоти." #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" "Остарял, но популярен файлов формат. VBR поддържа по-високо качество на " "звука от CBR, но може да е несъвместим с някой плеъри." #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" "Остарял, но популярен файлов формат. CBR поддържа по-слабо качество на звука " "от VBR, но е съвместим с всеки плеър." #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "Бърз без загуби аудио формат с добра компресия." #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "Автоматично" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "По избор" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "В момента се изпълнява." #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" "статус %(status)s, заглавие: %(title)s, изпълнител: %(artist)s, албум: " "%(album)s, дължина: %(length)s, в проценти: %(progress)s%% [%(position)s]" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "Настройките са с по-нова версия от текущата." #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "Не знаем как да съхраним подобна настройка: " #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "Неизвестен тип настройка беше намерен!" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "Невалиден формат на списъка с песни." #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "Списък с песни" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "M3U списък с песни" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "PLS списък с песни" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "Невалиден формат за %s." #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "ASX Списък с песни" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "XSPF Списък с песни" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "Без _разбъркване" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "Разбъркване на _песните" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "Разбъркване на _албумите" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "секунди" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "минути" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "часа" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "дни" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "седмици" #: ../xl/lyrics.py:305 msgid "Local" msgstr "Локално" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "Добавяне на опашката" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "Заместване на текущата" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "Добавяне към текущия списък" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "Отваряне на директорията" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "Преместване в кошчето" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "Име:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "Съвпадение на което и да е от условията" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "Разбъркване на резултатите.=" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "Ограничаване до: " #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr " песни" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "Пуснете песен" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "Преместване" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "Нов маркер" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "Без звук" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "%d%%" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "Максимална сила" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" "$title\n" "от $artist\n" "от $album" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "Разни" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "%(track_count)d от общо (%(total_duration)s)" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "%d във фонотеката" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "%d са показани" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "%d избрани" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "Опашка (%d)" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "номер" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "Номер на песен" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "Заглавие" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "Изпълнител" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "Композитор" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "Албум" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "Времетраене" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "Диск" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "Номер на диск" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "Оценка" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "Дата" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "Жанр" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "Битрейт" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "Местоположение" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "Име на файл" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "Брояч" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "Уд/мин" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "Последно изпълнение" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "Дата на добавяне" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "Преоразме_рим" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "_Авторазмер" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "Рейтинг:" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "Разбъркване" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "Повтаряне" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "Премахване на песента от списъка" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "Нов списък с песни" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "Преименуване" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "Спиране на възпроизвеждането след тази песен" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "Изисква приставка поддържаща динамични списъци с песни" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "Автоматично добавяне на песни към списъка" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "Зареждане на уеб адреса" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "Отваряне на уеб адрес" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "Поддържани файлове" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "Музикални файлове" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "Файлове от списъците" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "Всички файлове" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "Изнасяне на текущия списък с песни" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "Списъкът с песни е запазен като %s." #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "Затваряне на %s" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "Запазване промените на %s преди затваряне?" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "Вашите промени ще се загубят ако не ги запазите" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "Затвори без запазване" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "Запазени %(count)s от %(total)s." #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "Не сте въвели име за списъка с песни" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "Името, което въведохте вече се използва." #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "Затваряне на подпрозорец" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "$title (от $artist)" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "Спиране след тази песен" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "Буфериране: %d%%..." #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "Продължаване на въпроизвеждането" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "Пауза" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "Изнасянето на списъка с песни беше неуспешно!" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "Започване на възпроизвеждане" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "Музикална програма Exaile" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "_Нов списък с песни" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "Отваряне на _адрес" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "Отваряне на директориите" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "_Изнасяне на текущия списък с песни" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "Рестартиране" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "_Фонотека" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "_Опашка" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "О_бложки" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "_Панел за управление на списъците" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "_Колони" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "И_зчистване на списъка" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "_Управление на устройства" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "Сканира_й фонотеката" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "Свойства на _песента" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "Отказ" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "Албум" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "Текстописец" #: ../xlgui/properties.py:54 msgid "Website" msgstr "Уебсайт" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "Обложка" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "Изпълнител" #: ../xlgui/properties.py:57 msgid "Author" msgstr "Автор" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "Дата" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "Аранжор" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "Диригент" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "Изпълнител" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "Авторски права" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "Текстове на песни" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "Песен" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "Версия" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "ISRC" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "Кодирано от" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "Организация" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "Последна промяна" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "Пъти изпълнявано" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "Редактиране на песента %(current)d от %(total)d" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "от" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "Запазване на текущата стойност за всички песни." #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "Показване на обложката" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "Сваляне на обложка" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "Премахване на обложката" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "Обложка на %s" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "Опции на обложката за %(artist)s - %(album)s" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "Не са намерени обложки." #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "Икона" #: ../xlgui/devices.py:81 msgid "Device" msgstr "Устройство" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "Драйвър" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "Претърсване на колекцията..." #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "Сканиране %s..." #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "Показване на опашката" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "Поставяне на опашка" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "Свойства" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "Нова станция" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "Нов тематичен списък с песни" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "Редактиране" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "Изтриване на списъка" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "Наистина ли искате напълно да изтриете избрания списък с песни?" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "Въвеждане на ново име за списъка с песни" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "Преименуване на списъка" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "Премахване" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "Списък с песни %d" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "Добавяне на директория" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "Прехвърляне към %s..." #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "Зареждане на потоци..." #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "Добавяне на Радиостанция" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "Уеб адрес:" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "Запазени станции" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "Радио потоци" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "Обновяване" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "Въведете име за списъка с песни" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "Жанр - Изпълнител" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "Жанр - Албум" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "Ново сканиране на фонотеката" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "Размер" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s KB" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "и" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "е" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "не е" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "съдържа" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "не съдържа" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "поне" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "най-много" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "преди" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "след" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "между" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "повече от" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "по-малко от" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "през последните" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "Изпълнения" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "Година" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "%(first)s, %(second)s и други" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "%(first)s и %(second)s" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "Тематични списъци" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "Мои списъци с песни" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "Добавяне на тематичен списък" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "Редактиране на тематичния списък с песни" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "Възпроизвеждане" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "Приставки" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "" msgstr[1] "" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "Избиране на добавка" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "Архив с приставки" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "Обложки" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "Външен вид" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "Фонотека" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "Връщане към началните настройки" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "Рестартиране на Exaile?" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "Действие" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "Бърз клавиш" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "Списъци с песни" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "Относно Exaile" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "© 2009-2012" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "Тази програма (Exaile) е свободен софтуер. Можете да я разпространявате и/" "или променяте под условията на Общия публичен лиценз на GNU (GNU GPL), както " "е публикуван от Фондацията за свободен софтуер — версия 2 на лиценза или (по " "ваше решение) по-късна версия.\n" "\n" "Exaile се разпространява с надеждата да е полезна, но БЕЗ НИКАКВА ГАРАНЦИЯ, " "дори и подразбиращата се ПРИГОДНОСТ или ГОДНОСТ ЗА КОНКРЕТНА УПОТРЕБА. За " "подробности прегледайте Общия публичен лиценз на GNU.\n" "\n" "Трябва да сте получили копие от Общия публичен лиценз на GNU (GNU GPL) " "заедно с тази програма. Ако не сте, пишете до Free Software Foundation, " "Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "Управление на обложките" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "Разбъркване на песните" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "Намиране на обложки" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "_Задаване като обложка" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "_Файл" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "_Редактиране" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "_Изглед" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "_Инструменти" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "_Помощ" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "Предишна песен" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "Следваща песен" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0:00 / 0:00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "Свойства на песента" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "До_бавяне на етикети" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "_Премахване на етикет" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "ab → A_b" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "Първа главна буква за всички етикети" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "_Предишна" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "_Следваща" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "Описание:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "Фонотека Мениждър" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "Радио" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "Добавяне на всички песни в списък" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "Внасяне на CD" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "Добавяне на станция" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "Файлове" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "Предишно посетена директория" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "Следваща посетена директория" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "Обновяне на директорията" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "Домашна папка" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "Търсене: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "Изчистване на полето за търсене" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "Фонотеката е празна." #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "Добавяне на музика" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "Изполване на обложки от локални файлове" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "Търсене и сваляне на обложки при изпълнение" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "(влачете за преместване)" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "Отваряне на последния списък на изпълнение при стартиране" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "Ефекта на избледняване" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "" #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "Продължаване на изпълнението при стартиране" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "Нормално" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "Обединяване (нестабилно)" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "Приставка" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "Включена" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "Не са избрани приставки" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "Инсталирани приставки" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "Автори:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "Версия:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "Инсталиране" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "Не е избрана приставка" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "Налични приставки" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "Инсталиране на обновяванията" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "Обновявания" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "Инсталиране на приставка" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "Показване на информационната област" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "Винаги показване на лентата с подпрозорци" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "Местоположение на подпрозорците:" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "Показване на броя песни" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "Икона в областта за уведомяване" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "Минимизиране в панела" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "Минимизиране в панела" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "Прелистване до текущата песен при смяна на песента" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "Начален екран при зареждане" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "Отляво" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "Отдясно" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "Отгоре" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "Долу" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "Настройки" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "Мениджър на устройствата" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "Добавяне на устройство" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "Вид устройство:" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "Открити устройства:" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "По избор " #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "Опашка" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "Търсене на настроение..." #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "Невъзможно четенето от панела за настроения." #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "Алармен часовник" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "Свързване с Shoutcast..." #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "Свързването с Shoutcast е неуспешно." #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "Въвеждане на думи за търсене" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "Shoutcast Търсене" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "Резултати от търсенето" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "Търсене" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "Отиди: " #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "Еквалайзер" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "Изключването планирано" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "Компютърът ще се изключи след %d секунди." #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "Изключването провалено" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "Компютърът не може да се изключи чрез D-Bus." #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "%(title)s" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "от %(artist)s" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "от %(album)s" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "IPython конзола - Exaile" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "Показване на IPython конзолата" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "IPython конзола" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "Уведомяване" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" "от %(artist)s\n" "от %(album)s" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "Внасяне на CD..." #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "Аудио диск" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "CD" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "Номер на песен" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "Номер на диск" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "Изпълнения" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "Повтаряне на частта" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "Повтаряне на началото" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "Повтаряне на края" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "Мини режим" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "$tracknumber - $title" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "$title by $artist" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "$title ($__length)" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "Предишна" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "Предишна песен" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "Предишна песен" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "Следваща" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "Следваща песен" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "Следваща песен" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "Пауза" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "Стоп" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "Спиране на възпроизвеждането" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "Сила на звука" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "Възстановяване" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "Избиране на песни" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "Бутон списъци с песни" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "Достъп до текущия списък с песни" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "$title ($current_time / $total_time)" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "Бутон на състоянието" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "Състояние и достъп до текущия списък с песни" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "Лента на състоянието" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "Състояние и прескачане" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "Добавяне и изпълнение" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "Добавяне" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "В готовност" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "Търсене не Jamendo каталог..." #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "" #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "Информационен прозорец" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "Обложки от Amazon" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "Подкастове" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "Подкаст" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "Обновяване на подкаста" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "Изтриване" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "Въвеждане и добавяне на подкаст от URL" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "Отваряне на Подкаст" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "Зареждане %s..." #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "Зареждането на подкаста е неуспешно." #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "Зареждане на Подкастове" #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "Не може да се запази подкаста" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "Мулти-алармен часовник" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "Контекст" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "Контекстна информация" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "Отмятане на тази песен" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "Изтриване на отметка" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "Изчистване на отметките" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "Отметки" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "Пауза при скрийнсейвър" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "DAAP сървър" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "DAAP клиент" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "Ръчно..." #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "" #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "Изберете местоположение за съхраняване" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "Свързване към DAAAP..." #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "Потъмняване на изпълняваната селекция вместо използване на курсор" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "Ниво на потъмняване:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "Показване само на" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "Използване на цветна тема " #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "Основен цвят:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "Основен цвят" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "Изтриване на незавършените файлове" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "API ключ:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "Таен ключ:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "Заявка за достъп" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" "Отидете на Вашият API акаунт за да получите API Ключ и таен ключ. След като въведете " "ключовете, изпратете заявка за достъп и потвърдете за завършването на " "процедурата." #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "Време на алармите" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "Понеделник" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "Вторник" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "Сряда" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "Четвъртък" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "Петък" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "Събота" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "Неделя" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "Дни с аларма" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "Използване на затихвания" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "Показване на обложките" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "Кръгъл дисплей" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "Парола:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "Потребителско име:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "+12 dB" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "0" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "-24 dB" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "29" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "59" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "119" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "237" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "474" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "947" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "1.9K" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "3.8K" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "7.5K" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "15K" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "При смяна на песен" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "При започване, пауза или спиране на списък с песни" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "Показване на информация" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "Използване на обложки като икони" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "Използване на медийните бутони за пауза, стоп, продължение" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "Икони" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" "Етикетите \"%(title)s\", \"%(artist)s\", и \"%(album)s\" ще бъдат " "заменени с тяхните стойности. Заглавието ще бъде заменено с \"Unknown\" ако " "е празно." #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "Обобщение:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "Съдържание" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "Прозрачност на терминала:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "Шрифт:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "Цвят на фона:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "Оразмеряване на обложките" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "Само изпълнителят:" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "Само албума:" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "И изпълнителя, и албума:" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "Ogg Vorbis" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "FLAC" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "AAC" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "MP3 (VBR)" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "MP3 (CBR)" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "WavPack" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "Вмъкване на формат: " #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "Вмъкване качество: " #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "Вмъкване на път: " #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" "Редът на контролите може да бъде променян с влачене нагоре или надолу. (или " "с Alt+Up/Down.)" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "Контроли" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "Формат на заглавието" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "Винаги най-отгоре" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "Показване на всички екрани" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "Показване на бутон в основния прозорец" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "Поръчано от:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "Посока на поръчката:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "Резултати:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "За напреднали" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "Понижаващ се" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "Покачващ се" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "Рейтинг тази седмица" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "Рейтинг този месец" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "Брой сваляния" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "Брой прослушвания" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "Жанр/етикети" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" "За информация за Amazon AWS акаунт и регистрация посетете http://aws.amazon.com/" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "Добавяне на подкаст" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "Отместване по X:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "пиксели" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "Отместване по Y:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "Размер:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "ms" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "Горен ляв" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "Горен десен" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "Долен ляв" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "Долен десен" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "Добавяне" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "Аларми" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "Рестартиране на списъка с песни" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "Регистрация в Last.fm" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" "Използване на обложки в менюто с отметките (активиране при следващото " "пускане на програмата)" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "Име:" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "Хост:" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "Порт:" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "Включено" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "Текуща песен" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" "Задава изпълняваната песен в момента като настроение в Pidgin. Проверете " "Pidgin ЧЗВ за поддържаните услуги." #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "ГНОМ мултимедийни бутони" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "Last.fm Обложки" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "Търсене на обложки в Last.fm" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "XKeys" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" "Добавяне на поддръжка за мултимедийни бутони (налични в по-новите " "клавиатури) при използване на Exaile в Microsoft Windows.\n" "\n" "Изисквания: pyHook " #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "10-бандов еквалайзер" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "Lyrics Fly" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "Librivox" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "Last.fm динамични списъци с песни" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "Jamendo" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "Поддръжка на iPod" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "Караоке" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "Премахване на гласа от аудиото" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "Добавяне на опростена Подкаст поддръжка" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "Здравей, свят!" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" #~ msgid "Clear" #~ msgstr "Изчистване" #~ msgid "Close" #~ msgstr "Затваряне" #~ msgid "Close tab" #~ msgstr "Затваряне на подпрозорец" #~ msgid "Export as..." #~ msgstr "Изнасяне като..." #~ msgid "%d KB" #~ msgstr "%d КБ" #~ msgid "© 2009-2010" #~ msgstr "© 2009-2010" #~ msgid "GNOME" #~ msgstr "ГНОМ" #~ msgid "ALSA" #~ msgstr "Системата ALSA" #~ msgid "OSS" #~ msgstr "OSS" #~ msgid "PulseAudio" #~ msgstr "PulseAudio" #~ msgid "JACK" #~ msgstr "JACK" #~ msgid "AWN" #~ msgstr "AWN" #~ msgid "API Key:" #~ msgstr "API Ключ:" #~ msgctxt "yes" #~ msgid "Monday" #~ msgstr "Понеделник" #~ msgctxt "yes" #~ msgid "Tuesday" #~ msgstr "Вторник" #~ msgctxt "yes" #~ msgid "Wednesday" #~ msgstr "Сряда" #~ msgctxt "yes" #~ msgid "Thursday" #~ msgstr "Четвъртък" #~ msgctxt "yes" #~ msgid "Friday" #~ msgstr "Петък" #~ msgctxt "yes" #~ msgid "Saturday" #~ msgstr "Събота" #~ msgctxt "yes" #~ msgid "Sunday" #~ msgstr "Неделя" #~ msgctxt "yes" #~ msgid "Minimum volume:" #~ msgstr "Минимална сила:" #~ msgctxt "yes" #~ msgid "Maximum volume:" #~ msgstr "Максимална сила:" #~ msgid "Secret key:" #~ msgstr "Таен ключ:" #~ msgid "Awn" #~ msgstr "Awn" #~ msgid "General" #~ msgstr "Общи" #~ msgid "New Search" #~ msgstr "Ново търсене" #~ msgid "_Close" #~ msgstr "_Затваряне" #~ msgid "Open" #~ msgstr "Отваряне" #~ msgid "Add Playlist" #~ msgstr "Добавяне на списък" #~ msgid "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "Year - Artist\n" #~ "Year - Album\n" #~ "Artist - Year - Album" #~ msgstr "" #~ "Изпълнител\n" #~ "Албум\n" #~ "Жанр - Изпълнител\n" #~ "Жанр - Албум\n" #~ "Година - Изпълнител\n" #~ "Година - Албум\n" #~ "Изпълнител - Година - Албум" #~ msgid "Autosize" #~ msgstr "Автоматичен размер" #~ msgid "Text Font:" #~ msgstr "Шрифт:" #~ msgid "Text Color" #~ msgstr "Цвят на текста" #~ msgid "Window Height:" #~ msgstr "Височина на прозореца:" #~ msgid "Window Width:" #~ msgstr "Широчина на прозолеца:" #~ msgid "Alarm Days:" #~ msgstr "Дни за събуждане:" #~ msgid "Vol:" #~ msgstr "Звук:" #~ msgid "Resizable" #~ msgstr "Преоразмеримо" #~ msgid "Enter the search text" #~ msgstr "Въведете текст за търсене" #~ msgid "Stop Playback" #~ msgstr "Спиране на изпълнението" #~ msgid " songs" #~ msgstr " песни" #~ msgid "Quit" #~ msgstr "Спиране на програмата" #~ msgid "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgstr "" #~ "{title}\n" #~ "{artist}\n" #~ "от {album} - {length}" #~ msgid "Opacity Level:" #~ msgstr "Степен на прозрачност:" #~ msgid "Popup" #~ msgstr "Изскачащ прозорец" #~ msgid "Add a directory" #~ msgstr "Добавяне на папка" #~ msgid "Playing %s" #~ msgstr "Изпълнение на %s" #~ msgid "Add to Playlist" #~ msgstr "Добавяне към списъка с песни" #~ msgid "Number of Plays" #~ msgstr "Брой изпълнения" #~ msgid "Start" #~ msgstr "Започване" #~ msgid "Stopped" #~ msgstr "Спряно" #~ msgid "Show OSD on track change" #~ msgstr "Уведомление при смяна на песните" #~ msgid "Choose a file" #~ msgstr "Изберете файл" #~ msgid "from %s" #~ msgstr "от %s" #~ msgid "%(title)s (by %(artist)s)" #~ msgstr "%(title)s (на %(artist)s)" #~ msgid "by %s" #~ msgstr "на %s" #~ msgid "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgstr "" #~ "Преместете табелката до мястото, където искате да се появява." #~ msgid "Display OSD when hovering over tray icon" #~ msgstr "Показване на табелка при минаване над областта за уведомяване" #~ msgid "" #~ "Path is already in your collection, or is a subdirectory of another path " #~ "in your collection" #~ msgstr "" #~ "Пътят вече е във вашата колекция или е поддиректория на друг път в " #~ "колекцията" #~ msgid "File Type" #~ msgstr "Вид на файла" #~ msgid "Extension" #~ msgstr "Разширение" #~ msgid "0:00" #~ msgstr "0:00" #~ msgid "Export" #~ msgstr "Експортиране" #~ msgid "No covers found" #~ msgstr "Няма намерени обложки" #~ msgid " - " #~ msgstr " - " #~ msgid " + " #~ msgstr " + " #~ msgid "Add device" #~ msgstr "Добавяне на устройство" #~ msgid "..." #~ msgstr "..." #~ msgid "Page 1" #~ msgstr "Страница 1" #~ msgid "Decreases the volume by VOL%" #~ msgstr "Намаляване на звука с VOL%" #~ msgid "Increases the volume by VOL%" #~ msgstr "Увеличаване на звука с VOL%" #~ msgid " New song, fetching cover." #~ msgstr " Нова песен, търсене на обложка." #~ msgid "Original Date" #~ msgstr "Оригинална Дата" #~ msgid "Original Album" #~ msgstr "Оригинален Албум" #~ msgid "Date Added" #~ msgstr "Дата на добавяне" #~ msgid "New playlist title:" #~ msgstr "Ново заглавие на списъка с песни:" #~ msgid "Last Played" #~ msgstr "Последно изпълнение" #~ msgid "Save As..." #~ msgstr "Запазване като..." #~ msgid "Custom playlist name:" #~ msgstr "Потребителско заглавие на списъка с песни" #~ msgid "Add to custom playlist" #~ msgstr "Добавяне към потребителския списък с песни" #~ msgid "_Save As..." #~ msgstr "_Запазване като…" #~ msgid "_Rename Playlist" #~ msgstr "_Преименуване на списък с песни" #~ msgid "_Save Changes To Playlist" #~ msgstr "_Запзване на промените в списъка с песни" #~ msgid "_Save As Custom Playlist" #~ msgstr "_Запзване като потребителски на списък с песни" #~ msgid "" #~ "This will permanantly delete the selected tracks from your disk, are you " #~ "sure you wish to continue?" #~ msgstr "" #~ "Това деиствие ще изтрие окончателно избраните песни от вашия диск, " #~ "наистина ли искате да продължите?" #~ msgid "Choose a plugin" #~ msgstr "Изберете приставка" #~ msgid "Remove item" #~ msgstr "Премахване на елемента" #~ msgid "Add item" #~ msgstr "Добавяне на елемент" #~ msgid "%d covers to fetch" #~ msgstr "%d обложки за сваляне" #~ msgid "%(minutes)d:%(seconds)02d" #~ msgstr "%(minutes)d:%(seconds)02d" #~ msgid "No track" #~ msgstr "Няма песни" #~ msgid "New custom playlist name:" #~ msgstr "Ново име:" #~ msgid "Randomize the order of the current playlist" #~ msgstr "Разбъркване на песните" #~ msgid "_Randomize Playlist" #~ msgstr "Ра_збъркване на песните в списъка" #~ msgid "Search:" #~ msgstr "Търсене:" #~ msgid "Display a progressbar in the OSD" #~ msgstr "Показване на плъзгач на състоянието в OSD" #~ msgid "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager" #~ msgstr "" #~ "Галин Петров\n" #~ " \n" #~ " Преводач" #~ msgid "" #~ "OSD\n" #~ "Drag to the location you'd like the\n" #~ "OSD to appear" #~ msgstr "" #~ "OSD\n" #~ "Влачете до мястото където искате\n" #~ "OSD да се показва" dist/copy/po/PaxHeaders.26361/bs.po0000644000175000017500000000012312233027260015402 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 29 ctime=1382821553.03704693 exaile-3.3.2/po/bs.po0000644000000000000000000030227512233027260014354 0ustar00rootroot00000000000000# Bosnian translation for exaile # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2012-07-29 07:11+0000\n" "Last-Translator: Miro Glavić \n" "Language-Team: Bosnian \n" "Language: bs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" "X-Launchpad-Export-Date: 2012-08-28 05:24+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "" #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "" #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "" #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "" #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "Nikad" #: ../xl/formatter.py:702 msgid "Today" msgstr "Danas" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "Jučer" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "Neuspješan prelazak sa 0.2.14" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "Korištenje: exaile [OPTION]... [URI]" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "" #: ../xl/main.py:421 msgid "Playback Options" msgstr "Playback opcije" #: ../xl/main.py:423 msgid "Play the next track" msgstr "Pusti slijdeću traku" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "Pusti prethodnu traku" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "Zaustavi reprodukciju" #: ../xl/main.py:429 msgid "Play" msgstr "Sviraj" #: ../xl/main.py:431 msgid "Pause" msgstr "" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "Pauziranje ili nastavak reprodukcije" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "Zaustavite reprodukciju nakon tekućeg zapisa" #: ../xl/main.py:440 msgid "Collection Options" msgstr "Opcije za kolekciju" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "LOKACIJA" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "Dodaj pjesme od LOCATION do kolekcije" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "Playlist opcije" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "Izvoz trenutnih popisa pjesama na LOCATION" #: ../xl/main.py:454 msgid "Track Options" msgstr "Track opcije" #: ../xl/main.py:456 msgid "Query player" msgstr "" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "Prikaži padajuće podatke tekuće trake" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "Štampaj naziv tekuće trake" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "Štampaj album tekuće trake" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "Štampaj izvođača tekuće trake" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "Prikaži dužinu tekuće trake" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "Postavi ocjenu za tekuću traku na N%" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "Nađi ocjenu za tekuću traku" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "" #: ../xl/main.py:490 msgid "Volume Options" msgstr "Opcije zvuka" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "Povećava jačinu za N%" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "Smanjuje jačinu za N%" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "" #: ../xl/main.py:507 msgid "Other Options" msgstr "" #: ../xl/main.py:509 msgid "Start new instance" msgstr "" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "Prikaži ovu pomoćnu poruku i izađi" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "" #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "Pokreni minimizirano" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "Pokreni na siguran način - korisno kada se susrećete sa problemima" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "Ne ubacuj stare podatke iz verzije 0.2.x" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "" #: ../xl/main.py:536 msgid "Set data directory" msgstr "Postavi direktorij za podatke" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "" #: ../xl/main.py:543 msgid "LEVEL" msgstr "" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:555 msgid "TYPE" msgstr "" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "Smanji nivo izlaza" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "" #: ../xl/main.py:580 msgid "Entire Library" msgstr "Cijela Biblioteka" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "" #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "Niste specificirali lokaciju za spremanje db" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "Razni Izvođači" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "Nepoznat" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr "" #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "" #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "Automatski" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "" #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "" #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "" #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "Nepoznata vrsta postavki je pronađena!" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "" #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "Lista pjesama" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "M3U Lista pjesama" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "PLS Lista pjesama" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "" #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "ASX Lista pjesama" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "XSPF Lista pjesama" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "sekundi" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "minuta" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "sati" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "dana" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "sedmica" #: ../xl/lyrics.py:305 msgid "Local" msgstr "" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "Ime:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "Ograniči na: " #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr "" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "Ne Svira" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "#" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "Broj Pjesme" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "Naslov" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "Izvođač" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "Kompozitor" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "Album" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "Dužina" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "Disk" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "Broj Diska" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "Ocjena" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "Datum" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "Žanr" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "Bitrate" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "Lokacija" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "Ime datoteke" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "BPM" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "Ocjena:" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "Preimenuj" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "Otvori URL" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "Podržane Datoteke" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "Muzičke Datoteke" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "Sve Datoteke" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "Zatvori %s" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "" #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "" #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "" #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "Pauziraj Reprodukciju" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "Započni Reprodukciju" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "_Nova Lista pjesama" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "Otvori _URL" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "_Kolekcija" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "O_moti" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "_Stupci" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "" #: ../xlgui/properties.py:54 msgid "Website" msgstr "" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "" #: ../xlgui/properties.py:57 msgid "Author" msgstr "" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "Verzija" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "Pokaži Omot" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "Ukloni Omot" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "" #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "Ikona" #: ../xlgui/devices.py:81 msgid "Device" msgstr "Uređaj" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "" #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "" #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "Svojstva" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "Nova Stanica" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "Uredi" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "Obriši Listu pjesama" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "Preimenuj Listu Pjesama" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "Ukloni" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "Prenošenje na %s..." #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "" #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "Dodaj Radio STanicu" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "URL:" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "Osvježi" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "Žanr - Izvođač" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "Žanr - Album" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "Veličina" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s KB" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "i" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "je" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "nije" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "sadrži" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "ne sadrži" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "najmanje" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "najviše" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "prije" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "poslije" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "između" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "veće od" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "manje od" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "Godina" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "Reprodukcija" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "Priključci" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "" msgstr[1] "" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "Omoti" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "Izgled" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "Kolekcija" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "Akcija" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "Prečica" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "Liste pjesama" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "O Exaile" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "_Datoteka" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "_Uredi" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "_Pogled" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "_Alati" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "_Pomoć" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "Prethodna Pjesma" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "Slijedeća Pjesma" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0:00 / 0:00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "Opis:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "Radio" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "Uvezi CD" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "Dodaj Stanicu" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "Datoteke" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "Glavni direktorij" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "Traži: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "Kolekcija je prazna." #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "Dodaj Muziku" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "" #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "Normalno" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "Priključak" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "Omogućeno" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "Instalirani Priključci" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "Autori:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "Verzija:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "Instaliraj" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "Nema Izabranih Priključaka" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "Dostupni Priključci" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "Instaliraj Dopune" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "Dopune" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "Lijevo" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "Desno" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "Vrh" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "Dno" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "Postavke" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "Vrsta uređaja:" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "Otkriveni uređaji:" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "" #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "" #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "Budilnik" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "" #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "Rezultati Pretrage" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "Pretraga" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "" #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "Obavijesti" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "" #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "Audio Disk" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "CD" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "Broj pjesme" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "Broj diska" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "Prethodni" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "Slijedeći" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "Zaustavi" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "Glasnoća" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "Obnovi" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "" #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "Amazon Omoti" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "Obriši" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "Učitavanje %s..." #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "" #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "Kontekst" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "Zabilješke" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "" #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "" #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "Osnovna boja:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "Osnovna boja" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "Ponedjeljak" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "Utorak" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "Srijeda" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "Četvrtak" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "Petak" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "Subota" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "Nedjelja" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "Lozinka:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "Korisničko ime:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "Prikaz" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "Ikone" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "Sadržaj" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "Boja Pozadine:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "Ogg Vorbis" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "FLAC" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "AAC" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "MP3 (VBR)" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "MP3 (CBR)" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "WavPack" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "Uvezi format: " #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "Uvijek na vrhu" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "pikseli" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "Veličina:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "Gore lijevo" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "Gore desno" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "Dole lijevo" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "Dole desno" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "Trenutna Pjesma" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "Last.fm Omoti" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "Librivox" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "CD Reprodukcija" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "Zdravo Svijete" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "Kontekstualna Informacija" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" #~ msgid "Export as..." #~ msgstr "Izvezi kao..." #~ msgid "GNOME" #~ msgstr "GNOME" #~ msgid "ALSA" #~ msgstr "ALSA" #~ msgid "OSS" #~ msgstr "OSS" #~ msgid "PulseAudio" #~ msgstr "PulseAudio" #~ msgid "JACK" #~ msgstr "JACK" #~ msgid "Stopped" #~ msgstr "Zaustavljen" #~ msgid "from %s" #~ msgstr "od %s" #~ msgid "Save As..." #~ msgstr "Spremi Kao..." #~ msgid "_Rename Playlist" #~ msgstr "_Preimenuj Listu pjesama" #~ msgid "_Save As..." #~ msgstr "_Spremi Kao..." #~ msgid "Open" #~ msgstr "Otvori" #~ msgid "_Close Playlist" #~ msgstr "_Zatvori Listu pjesama" #~ msgid "Export" #~ msgstr "Izvezi" #~ msgid "Start" #~ msgstr "Početak" #~ msgid "Choose a file to open" #~ msgstr "Izaberi datoteku za otvoriti" #~ msgid "File Type" #~ msgstr "Vrsta Datoteke" #~ msgid " songs" #~ msgstr " pjesme" #~ msgid "%(year)d-%(month)02d-%(day)02d" #~ msgstr "%(year)d-%(month)02d-%(day)02d" #~ msgid "..." #~ msgstr "..." #~ msgid "Add device" #~ msgstr "Dodaj uređaj" #~ msgid "New Search" #~ msgstr "Nova Pretraga" #~ msgid "Album:" #~ msgstr "Album:" #~ msgid "Artist:" #~ msgstr "Izvođač:" #~ msgid "Basic" #~ msgstr "Osnovno" #~ msgid "Title:" #~ msgstr "Naslov:" #~ msgid "Date:" #~ msgstr "Datum:" #~ msgid "Details" #~ msgstr "Detalji" #~ msgid "Length:" #~ msgstr "Dužina:" #~ msgid "Genre:" #~ msgstr "Žanr:" #~ msgid "Track Number:" #~ msgstr "Broj Pjesme:" #~ msgid "Location:" #~ msgstr "Lokacija:" #~ msgid "© 2009" #~ msgstr "© 2009" #~ msgid "Popup" #~ msgstr "Pop-up" #~ msgid "Text Color" #~ msgstr "Boja Teksta" #~ msgid "Opacity Level:" #~ msgstr "Nivo Prozirnosti:" #~ msgid "_Close" #~ msgstr "_Zatvori" #~ msgid "Remove All" #~ msgstr "Ukloni Sve" #~ msgid "Window Height:" #~ msgstr "Visina Prozora:" #~ msgid "Window Width:" #~ msgstr "Širina Prozora:" #~ msgid "Page 1" #~ msgstr "1. stranica" #~ msgid "%(minutes)d:%(seconds)02d" #~ msgstr "%(minutes)d:%(seconds)02d" #~ msgid "0:00" #~ msgstr "0:00" #~ msgid "In pause: %s" #~ msgstr "U pauzi: %s" #~ msgid "Enter the search text" #~ msgstr "Unesi tekst pretrage" #~ msgid "Choose a plugin" #~ msgstr "Izaberi priključak" #~ msgid "File Size:" #~ msgstr "Veličina Datoteke:" #~ msgid "Close this dialog" #~ msgstr "Zatvori ovaj dijalog" #~ msgid "Install plugin file" #~ msgstr "Instaliraj datoteku priključka" #~ msgid "_Export current playlist" #~ msgstr "_Izvezi trenutnu listu pjesama" #~ msgid "Stop Playback" #~ msgstr "Zaustavi Reprodukciju" #~ msgid "Available controls" #~ msgstr "Dostupne kontrole" #~ msgid "Selected controls" #~ msgstr "Izabrane kontrole" #~ msgid " & " #~ msgstr " i " #~ msgid "Alarm:" #~ msgstr "Alarm:" #~ msgid "Alarm Name:" #~ msgstr "Naziv Alarma:" #~ msgid "Alarm Time:" #~ msgstr "Vrijeme Alarma:" #~ msgid "Minimum Volume:" #~ msgstr "Minimalna Glasnoća:" #~ msgid "Name - Time" #~ msgstr "Naziv - Vrijeme" #~ msgid "Maximum Volume:" #~ msgstr "Maksimalna Glasnoća:" #~ msgid "Use Album Covers As Icons" #~ msgstr "Upotrijebi Omote Albuma Kao Ikone" #~ msgid "Both artist and album" #~ msgstr "I izvođač i album" #~ msgid "Only artist" #~ msgstr "Samo izvođač" #~ msgid "Only album" #~ msgstr "Samo album" #~ msgid "Display window decorations" #~ msgstr "Pokaži dekoraciju prozora" #~ msgid "Save Location:" #~ msgstr "Spremi Lokaciju:" dist/copy/po/PaxHeaders.26361/eu.po0000644000175000017500000000012312233027260015407 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 29 ctime=1382821553.04904693 exaile-3.3.2/po/eu.po0000644000000000000000000027227412233027260014366 0ustar00rootroot00000000000000# Basque translation for exaile # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2010-06-03 04:42+0000\n" "Last-Translator: Aren Olson \n" "Language-Team: Basque \n" "Language: eu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-08-28 05:24+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "" #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "" #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "" #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "" #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "" #: ../xl/formatter.py:702 msgid "Today" msgstr "" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "" #: ../xl/main.py:421 msgid "Playback Options" msgstr "" #: ../xl/main.py:423 msgid "Play the next track" msgstr "Hurrengo kanta erreproduzitu" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "Jo aurreko kantua" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "Playback-a gelditu" #: ../xl/main.py:429 msgid "Play" msgstr "Erreproduzitu" #: ../xl/main.py:431 msgid "Pause" msgstr "Pausatu" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "" #: ../xl/main.py:440 msgid "Collection Options" msgstr "" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:454 msgid "Track Options" msgstr "" #: ../xl/main.py:456 msgid "Query player" msgstr "Eskaera jotzailea" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "" #: ../xl/main.py:490 msgid "Volume Options" msgstr "" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "" #: ../xl/main.py:507 msgid "Other Options" msgstr "" #: ../xl/main.py:509 msgid "Start new instance" msgstr "" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "" #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "" #: ../xl/main.py:536 msgid "Set data directory" msgstr "" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "" #: ../xl/main.py:543 msgid "LEVEL" msgstr "" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:555 msgid "TYPE" msgstr "" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "" #: ../xl/main.py:580 msgid "Entire Library" msgstr "" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "" #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "Ezezaguna" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr "" #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "" #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "" #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "" #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "Ez dakigu nola gorde ezarpen mota hori: " #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "Ezarpen mota ezezagun bat bilatu da!" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "" #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "" #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "segundu" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "minutu" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "ordu" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "egun" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "aste" #: ../xl/lyrics.py:305 msgid "Local" msgstr "" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "Unekoari gehitu" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "Izena:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "Mugatu: " #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr "" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "Ez dago ezer erreproduzitzen" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "#" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "Pista-zenbakia" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "Titulua" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "Artista" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "Konpositorea" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "Albuma" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "Luzera" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "Diska" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "Disko-zenbakia" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "Balioa" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "Data" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "Generoa" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "Bit-tasa" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "Kokalekua" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "Fitxategi-izena" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "Erreprodukzio-kontagailua" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "BPM" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "Nahasirik" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "Errepikatu" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "Zerrenda berria" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "Berrizendatu" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "Fitxategi guztiak" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "" #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "" #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "" #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "_Zutabeak" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "Utzi" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "" #: ../xlgui/properties.py:54 msgid "Website" msgstr "" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "" #: ../xlgui/properties.py:57 msgid "Author" msgstr "" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "Kendu azala" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "" #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "" #: ../xlgui/devices.py:81 msgid "Device" msgstr "" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "" #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "" #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "Erreprodukzio-zerrendaren izena aldatu" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "Ezabatu" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "" #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "" #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "Freskatu" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "Tamaina" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s KB" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "eta" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "ez da" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "gutxienez" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "gehienez" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "lehenago" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "Urtea" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "Pluginak" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "" msgstr[1] "" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "Bilduma" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "Erreprodukzio-zerrendak" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "_Fitxategia" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "_Editatu" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "_Ikusi" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "_Tresnak" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "_Laguntza" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "Aurreko pista" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "Hurrengo Pista" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "Deskribapena:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "Irratia" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "Fitxategiak" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "Bilatu: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "" #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "" #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "Egileak:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "Bertsioa:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "Erakutsi bandejako ikonoa" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "Hobespenak" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "" #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "" #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "" #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "Bilatu" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "" #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "" #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "Aurrekoa" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "Hurrengoa" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "" #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "" #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "" #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "" #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "" #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "Astelehena" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "Asteartea" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "Asteazkena" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "Osteguna" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "Ostirala" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "Larunbata" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "Igandea" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "Iraungipena erabili" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "Pasahitza:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "Erabiltzaile izena:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "Atzealdearen kolorea:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "Gehitu" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" #~ msgid "General" #~ msgstr "Orokorra" #~ msgid "New Search" #~ msgstr "Bilaketa berria" #~ msgid "Resizable" #~ msgstr "Tamaina aldagarria" #~ msgid "Start" #~ msgstr "Hasi" #~ msgid "Stopped" #~ msgstr "Geldituta" #~ msgid "Stop Playback" #~ msgstr "Gelditu erreprodukzioa" #~ msgid "Text Color" #~ msgstr "Testuaren kolorea" #~ msgid "Window Height:" #~ msgstr "Leihoaren altuera:" #~ msgid "Window Width:" #~ msgstr "Leihoaren zabalera:" #~ msgid "Vol:" #~ msgstr "Bol:" #~ msgid "_Close" #~ msgstr "_Itxi" #~ msgid "Open" #~ msgstr "Ireki" #~ msgid "Add Playlist" #~ msgstr "Zerrenda gehitu" #~ msgid " songs" #~ msgstr " abestiak" #~ msgid "Add a directory" #~ msgstr "Directorioa gehitu" #~ msgid "Choose a file" #~ msgstr "Hautatu fitxategi bat" #~ msgid "Quit" #~ msgstr "Irten" #~ msgid "Add to Playlist" #~ msgstr "Zerrendara gehitu" #~ msgid "Show a popup of the currently playing track" #~ msgstr "Momentuan jotzen ari den kantuaren popup-a erakutsi" #~ msgid "Exaile" #~ msgstr "Exaile" #~ msgid "Clear Playlist" #~ msgstr "Erreprodukzio zerrenda garbitu" dist/copy/po/PaxHeaders.26361/he.po0000644000175000017500000000012312233027260015372 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 29 ctime=1382821553.03704693 exaile-3.3.2/po/he.po0000644000000000000000000035253012233027260014343 0ustar00rootroot00000000000000# This Hebrew translation was edited by Oz Nahum # Copyright (C) 2007 Adam Olsen and Exaile development team # This file is distributed under the same license as the Exaile Music Player. # Nahum Oz , 2007. # # msgid "" msgstr "" "Project-Id-Version: Exaile 0.2.10\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2012-07-29 07:14+0000\n" "Last-Translator: Ddorda \n" "Language-Team: Hebrew \n" "Language: he\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-08-28 05:26+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "" #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "" #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "" #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "" #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "אף-פעם" #: ../xl/formatter.py:702 msgid "Today" msgstr "היום" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "אתמול" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "ארע כשל בשדרוג מ־0.2.1.4" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "" #: ../xl/main.py:421 msgid "Playback Options" msgstr "" #: ../xl/main.py:423 msgid "Play the next track" msgstr "ניגון הרצועה הבאה" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "ניגון הרצועה הקודמת" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "הפסק השמעה" #: ../xl/main.py:429 msgid "Play" msgstr "נגן" #: ../xl/main.py:431 msgid "Pause" msgstr "הפסק" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "הפסק השמעה אחרי הרצועה הנוכחית" #: ../xl/main.py:440 msgid "Collection Options" msgstr "" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:454 msgid "Track Options" msgstr "" #: ../xl/main.py:456 msgid "Query player" msgstr "שאילתת נגן" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "הדפס את הכותרת של הרצועה הנוכחית" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "הדפס את שם האלבום של הרצועה הנוכחית" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "הדפס את שם האומן של הרצועה הנוכחית" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "הדפס את זמן ההשמעה של הרצועה הנוכחית" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "" #: ../xl/main.py:490 msgid "Volume Options" msgstr "" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "הדפס את עצמת השמע כאחוז" #: ../xl/main.py:507 msgid "Other Options" msgstr "" #: ../xl/main.py:509 msgid "Start new instance" msgstr "התחל מופע חדש" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "" #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "התחל מוקטן (לסרגל, אם ניתן)" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "החלף ניראות של ממשק המשתמש (אם ניתן)" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "התחל במצב בטוח - לפעמים שימושי כאשר אתה ניתקל בבעיות" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "" #: ../xl/main.py:536 msgid "Set data directory" msgstr "קבע תיקיית מידע" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "" #: ../xl/main.py:543 msgid "LEVEL" msgstr "" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "הראה פלט ניפוי שגיאות (debug)" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "אפשר ניפוי שגיאות של xl.event. מייצר המון פלט." #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:555 msgid "TYPE" msgstr "" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "צמצם את רמת הפלט" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "בטל את התמיכה ב- D-Bus" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "בטל את התמיכה ב- HAL" #: ../xl/main.py:580 msgid "Entire Library" msgstr "כל הסיפרייה" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "אקראי %d" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "דירוג > %d" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" "Exaile עדיין לא סיים לטעון. אולי כדאי שתאזין לאותות_הטעונים של exaile." #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "תגיות" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "" #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "לא ציינת מקור לטעינת מסד הנתונים (db)." #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "לא ציינת מיקום לשמירת מסד הנתונים (db)" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "אמנים שונים" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "לא ידוע" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr "" #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" "Vorbis הינו מקודד המשבש את איכות השמע בקוד פתוח בעל פלט באיכות גבוהה ובנפח " "הקטן מ־MP3." #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" "מקודד השמע החופשי שאינו גורע (FLAC) הינו מקודד בקוד פתוח שדוחס אך לא גורע " "מאיכות השמע." #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" "סוג מקודד השמע הקנייני של Apple גורע מאיכות השמע אך מגיע לאיכות שמע טובה " "יותר מ־MP3 בקצב סיביות נמוך יותר." #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" "סוג מקודד שמע ישן אך מוכר הגורע מאיכות השמע. VBR מעניק איכות גבוהה יותר מ־" "CBR, אך אינו נתמך על ידי כמה מהנגנים." #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" "סוג מקודד שמע ישן אך מוכר הגורע מאיכות השמע. CBR מעניק איכות נמוכה יותר מ־" "VBR, אך נתמך על ידי כל הנגנים." #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "סוג מקודד מהיר וחופשי שאינו גורע מהאיכות בעל דחיסה מעולה." #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "אוטומטי" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "הגדרות אישיות" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "לא מנגן." #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" "מצב: %(status)s, כותרת: %(title)s, אמן: %(artist)s, אלבום: %(album)s, אורך: " "%(length)s, מיקום: %(progress)s%% [%(position)s]" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "גירסת ההגדרות חדשה יותר מהנוכחית." #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "אנו לא יודעים כיצד לשמור סוג כזה של הגדרות: " #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "נימצא סוג לא מוכר של הגדרות." #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "" #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "רשימת השמעה" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "רשימת השמעה M3U" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "רשימת השמעה PLS" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "" #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "רשימת השמעה ASX" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "רשימת השמעה XSPF" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "שניות" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "דקות" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "שעות" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "ימים" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "שבועות" #: ../xl/lyrics.py:305 msgid "Local" msgstr "" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "הוסף לרשימת ההשמעה הנוכחית" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "שם:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "תואם לקריטריונים" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "תוצאות אקראיות" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "הגבל ל־: " #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr "" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "לא מנגן" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "השהה" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "מס'" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "מספר רצועה" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "כותרת" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "אומן" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "מלחין" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "אלבום" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "אורך" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "אלבום" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "תקליטור מספר" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "דירוג" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "תאריך" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "ז'אנר" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "קצב סיביות" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "מיקום" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "שם קובץ" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "מספור השמעות" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "BPM" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "נוגן אחרון" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "_ניתן לשינוי גודל" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "_גודל אוטומטי" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "דירוג:" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "ערבב" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "חזור" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "מצב נגינה דינאמי" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "ערבב את רשימת ההשמעה" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "רשימת השמעה חדשה" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "שנה שם" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "הוסף בצורה דינאמית רצועות דומות לרשימת ההשמעה" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "הכנס את ה- URL לפתיחה" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "פתח URL" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "קבצים נתמכים" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "קבצי מוסיקה" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "קבצי רשימת השמעה" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "כל הקבצים" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "סגור %s" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "האם לשמור את השינויים ל־%s לפני הסגירה?" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "השינויים שלך יאבדו אם לא תשמור אותם" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "סגירה ללא שמירה" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "" #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "לא הוזן שם עבור רשימת ההשמעה" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "שם רשימת ההשמעה שהכנסת כבר נימצא בשימוש" #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "טוען: %d%%..." #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "המשך השמעה" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "עצור השמעה" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "התחל השמעה" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "נגן המוסיקה Exaile" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "_רשימת השמעה חדשה" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "פתח _URL" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "_אוסף" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "_תור" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "ע_טיפות" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "_עמודות" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "_מנהל התקנים" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "סרוק_מחדש את האוסף" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "בטל" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "כותב המילים" #: ../xlgui/properties.py:54 msgid "Website" msgstr "אתר הבית" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "" #: ../xlgui/properties.py:57 msgid "Author" msgstr "יוצר" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "מסדר" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "מנצח" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "מבצע" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "זכויות יוצרים" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "מלים" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "רצועה" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "גירסה" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "ISRC" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "ארגון" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "השתנה" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "הצגת העטיפה" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "הורדת העטיפה" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "הסר תמונת אלבום" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "לא נמצאו תמונות אלבום." #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "איקון" #: ../xlgui/devices.py:81 msgid "Device" msgstr "התקן" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "מנהל התקן" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "סורק את האוסף..." #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "סורק %s..." #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "הפעל השהייה" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "השהה פריטים" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "מאפיינים" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "תחנה חדשה" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "רשימת השמעה חכמה חדשה" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "ערוך" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "ייצוא רשימת השמעה" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "מחק רשימת השמעה" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "האם ברצונך למחוק לצמיתות את רשימת ההשמעה ?" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "יש להזין את השם החדש לרשימת ההשמעה שלך" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "שינוי שם לרשימת השמעה" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "הסר" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "רשימת השמעה %d" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "מעביר אל %s..." #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "טוען קישורים..." #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "הוסף תחנת רדיו" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "כתובת אינטרנט (URL):" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "התחנות נשמרו" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "שידורי רדיו" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "טען מחדש" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "יש להזין את השם עבור רשימת ההשמעה החדשה." #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "סגנון - אמן" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "סגנון - אלבום" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "סרקו את האוסף מחדש" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "גודל" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s ק\"ב" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "ו" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "הוא" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "אינו" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "מכיל" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "אינו מכיל" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "לפחות" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "לכל היותר" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "לפני" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "לאחר" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "בין" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "גדול מ-" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "קטן מ-" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "לאחרונה" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "לא לאחרונה" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "מתנגן" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "שנה" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "רשימות השמעה חכמות" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "רשימות השמעה אישיות" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "הוספת רשימת השמעה חכמה" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "עריכת רשימת השמעה חכמה" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "ניגון" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "תוספים" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "" msgstr[1] "" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "ארכיוני תוספים" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "עטיפות" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "מראה" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "אוסף" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "פעולה" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "קיצור-דרך" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "רשימות השמעה" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "אודות Exaile" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" "זכויות יוצרים (C) 2008-2010 Adam Olsen \n" "\n" "תוכנה זו היא תוכנה חופשית; באפשרותך להפיצה ו/או לשנותה\n" "תחת התנאים של GNU General Public License כפי שפורסמו ע\"י\n" "Free Software Foundation; או גירסה 2 של הרישיון, או\n" "(לבחירתך) כל גירסה מאוחרת יותר.\n" "\n" "תוכנה זו מופצת מתוך תיקווה שהיא תיהיה שימושית,\n" "אך ללא כל אחריות; ללא אפילו אחריות מרומזת של\n" "סחירות או התאמה לביצוע פעולה כלשהי. עיין ב- \n" "GNU General Public License לפרטים נוספים.\n" "\n" "היית אמורלקבל עותק של ה-GNU General Public License \n" "מצורף לתוכנה זו; אם לא, כתוב אל Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "מנהל עטיפות" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "ערבב סדר השמעה" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "מאתר עטיפות האלבומים" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "_קובץ" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "_ערוך" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "_תצוגה" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "_כלים" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "ע_זרה" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "רצועה קודמת" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" "עצור השמעה\n" "\n" "לחצן ימני לעצירה לאחר מאפין רצועה" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "הרצועה הבאה" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0:00 / 0:00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "מאפייני הרצועה" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "ה_קודם" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "_הבא" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "תיאור:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "מנהל האוספים" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "רדיו" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "הוסף את כל הרצועות לרשימת ההשמעה" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "יבא CD" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "הוסף תחנה" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "קבצים" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "תיקיה קודמת שניצפתה" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "תיקיה הבאה שניצפתה" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "עלה תקייה אחת" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "רענן רשימת תיקיות" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "תיקיית הבית" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "חפש " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "האוסף ריק." #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "הוסף מוסיקה" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" "רענן תצוגת אוסף\n" "(החזק את המקש Shift לסריקה מחודשת של האוסף)" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "סדר חיפוש העטיפות:" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "(גרירה לסידור מחדש)" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "פתיחת רשימות ההשמעה האחרונות עם ההפעלה" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "שאל על שמירת רשימות השמעה מותאמות ביציאה" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "משך הדעיכה (מ\"ש):" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "שימוש בעמעום (ניסיוני)" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "קולט שמע: " #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "המשך נגינה אם הפעלת התוכנה" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "המשך נגינה במצב המתנה (pause)" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "רגיל" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "מאוחד (לא יציב)" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "תוסף" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "מאופשר" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "לא נבחר תוסף" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "תוספים מותקנים" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "יוצרים:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "גירסה:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "התקנה" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "לא נבחר תוסף" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "תוספים זמינים" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "התקנת עדכונים" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "עדכונים" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "הראה תמיד את סרגל הלשוניות" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "החלפת לשונית" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "הצגת סמל הנגן במגש המערכת" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "מזער לסרגל" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "דלג לשיר הנוכחי עם החלפת רצועת השמע" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "הצג מצג פתיחה בזמן טעינת הנגן" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "שמאל" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "ימין" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "עליון" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "תחתית" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "העדפות" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "מנהל ההתקנים" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "סוג ההתקן:" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "התקנים שאותרו:" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "מותאם אישית: " #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "מנהל התור" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "מחפש אחר מצב רוח..." #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "מצב רוח נימצא" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "לא ניתן לקרוא את סרגל מצב הרוח" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "קובץ ההרצה של סרגל מצב הרוח אינו זמין" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "שעון מעורר" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "" #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "הכנס את מילות המפתח לחיפוש" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "תוצאות החיפוש" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "חפש" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "" #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "אקולייזר" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "הודעות Notify-osd" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "%(title)s" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "ע\"י %(artist)s" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "מתוך %(album)s" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "ידע" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" "ביצוע של %(artist)s\n" "מתוך %(album)s" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "יבא CD..." #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "תקליטור שמע" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "CD" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "רצועה מספר" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "דיסק מספר" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "מספר השמעות" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "מצב מוקטן" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "$tracknumber - $title" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "$title ע\"י $artist" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "הקודם" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "הבא" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "נגן/הפסק" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "עצור" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "עוצמה" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "שחזר" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "בוחר רצועות" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "בפתור רשימת השמעה" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "סרגל התקדמות" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "" #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "תצוגה על המסך (OSD)" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "עטיפות Amazon" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "פודקאסטים" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "פודקסט" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "רענן פודקסט" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "מחק" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "טוען את %s..." #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "" #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "עטיפת שולחן עבודה" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "שעון רב התראות" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "הקשר" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "סימניות" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "ידנית..." #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "" #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "יום שני" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "יום שלישי" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "יום רביעי" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "יום חמישי" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "יום שישי" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "יום שבת" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "יום ראשון" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "השתמש בעמעום" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "תוספת:" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "אין" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "סיסמה:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "שם המשתמש:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "0" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "תצוגה" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "סמלים" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "תקציר:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "תוכן" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "צבע רקע:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "Ogg Vorbis" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "FLAC" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "AAC" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "MP3 (VBR)" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "MP3 (CBR)" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "יבא תצורה: " #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "יבא איכות: " #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "יבא נתיב: " #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "מתקדם" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "השתמש בעטיפות בתפריט הסימניות (יכנס לתוקף בהפעלה הבאה)" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "התקנים" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "מידע" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "מידע תלוי תוכן" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" "הצג מידע מגוון על הרצועה המנוגנת כעת.\n" "תלוי ברכיבים הבאים : libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-" "imaging" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" #~ msgid "Close" #~ msgstr "סגור" #~ msgid "Close tab" #~ msgstr "סגור לשונית" #~ msgid "Export as..." #~ msgstr "יצא כ..." #~ msgid "%d KB" #~ msgstr "%d ק\"ב" #~ msgid "GNOME" #~ msgstr "GNOME" #~ msgid "ALSA" #~ msgstr "ALSA" #~ msgid "OSS" #~ msgstr "OSS" #~ msgid "PulseAudio" #~ msgstr "PulseAudio" #~ msgid "JACK" #~ msgstr "JACK" #~ msgid "AWN" #~ msgstr "AWN" #~ msgid "General" #~ msgstr "כללי" #~ msgid "Start" #~ msgstr "התחל" #~ msgid "Stop Playback" #~ msgstr "עצור ניגון" #~ msgid "Stopped" #~ msgstr "נעצר" #~ msgid "Window Height:" #~ msgstr "גובה חלון:" #~ msgid "Window Width:" #~ msgstr "רוחב חלון:" #~ msgid "Relay Port:" #~ msgstr "Relay Port:" #~ msgid "Add a directory" #~ msgstr "הוסף תיקייה" #~ msgid "by %s" #~ msgstr "בביצוע האמן %s" #~ msgid "from %s" #~ msgstr "מתוך האלבום %s" #~ msgid "Playing %s" #~ msgstr "מנגן את %s" #~ msgid "Number of Plays" #~ msgstr "מספר השמעות" #~ msgid "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgstr "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgid "Text Font:" #~ msgstr "פונט:" #~ msgid "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "Year - Artist\n" #~ "Year - Album\n" #~ "Artist - Year - Album" #~ msgstr "" #~ "אמן\n" #~ "אלבום\n" #~ "סגנון - אמן\n" #~ "סגנון - אלבום\n" #~ "שנה - אמן\n" #~ "שנה - אלבום\n" #~ "אמן - שנה - אלבום" #~ msgid "Opacity Level:" #~ msgstr "רמת האטימות:" #~ msgid "Alarm Days:" #~ msgstr "התראה בימים:" #~ msgid " songs" #~ msgstr " שירים" #~ msgid "Toggle: Stop after selected track" #~ msgstr "החלפה: עציאה לאחר הרצועה הנבחרת" #~ msgid "%(title)s (by %(artist)s)" #~ msgstr "%(title)s (על ידי %(artist)s)" #~ msgid "Select File Type (By Extension)" #~ msgstr "בחירת סוג הקובץ (לפי סיומת)" #~ msgid "File Type" #~ msgstr "סוג הקובץ" #~ msgid "Extension" #~ msgstr "הרחבה" #~ msgid "0:00" #~ msgstr "0:00" #~ msgid "Add Playlist" #~ msgstr "הוספת רשימת השמעה" #~ msgid "Open" #~ msgstr "פתיחה" #~ msgid "Export" #~ msgstr "ייצוא" #~ msgid "No covers found" #~ msgstr "לא נמצאו עטיפות" #~ msgid "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgstr "יש להזיז את חלונית תצוגת המידע למיקום המבוקש" #~ msgid "Display a progressbar in the OSD" #~ msgstr "הצגת מד ההתקדמות בחלונית המידע" #~ msgid "" #~ "OSD\n" #~ "Drag to the location you'd like the\n" #~ "OSD to appear" #~ msgstr "" #~ "חלונית המידע\n" #~ "יש לגרור אל המיקום בו תופיע\n" #~ "חלונית המידע" #~ msgid "Show OSD on track change" #~ msgstr "הצגת חלון המידע עם החלפת רצועה" #~ msgid " - " #~ msgstr " - " #~ msgid " + " #~ msgstr " + " #~ msgid "0/0 tracks" #~ msgstr "0/0 רצועות" #~ msgid "New Search" #~ msgstr "חיפוש חדש" #~ msgid "Page 1" #~ msgstr "עמוד 1" #~ msgid "Add device" #~ msgstr "הוספת התקן" #~ msgid "..." #~ msgstr "..." #~ msgid "Alarm:" #~ msgstr "שעון מעורר:" #~ msgid "Enable Fading" #~ msgstr "אפשר דעיכה" #~ msgid "Fading:" #~ msgstr "דעיכה:" #~ msgid "Maximum Volume:" #~ msgstr "עוצמת שמע מירבית:" #~ msgid "Minimum Volume:" #~ msgstr "עוצמת שמע מקסימלית" #~ msgid "" #~ "Exaile now uses absolute URI's, please delete/rename your %s directory" #~ msgstr "" #~ "Exaile משתמש מעתה אך ורק בכתובות מלאות, נא למחוק/לשנות את שמה של תיקיית ה־" #~ "%s שלך" #~ msgid "Choose a file" #~ msgstr "בחר קובץ" #~ msgid "Date Added" #~ msgstr "תאריך הוספה" #~ msgid "Last Played" #~ msgstr "הושמע לאחרונה" #~ msgid "Add to Playlist" #~ msgstr "הוסף לרשימה השמעה" #~ msgid "Artist:" #~ msgstr "אומן:" #~ msgid "Album:" #~ msgstr "אלבום:" #~ msgid "Track Number:" #~ msgstr "מספר רצועה:" #~ msgid "Genre:" #~ msgstr "ז'אנר:" #~ msgid "Bitrate:" #~ msgstr "קצב סיביות:" #~ msgid "Quit" #~ msgstr "עצור" #~ msgid "Enter the search text" #~ msgstr "יש להכניס טקסט לחיפוש" #~ msgid "" #~ "Path is already in your collection, or is a subdirectory of another path " #~ "in your collection" #~ msgstr "הנתיב כבר באוסף שלך, או שזהו נתיב לתת תיקיה שכבר נמצאת באוסף" #~ msgid "Autosize" #~ msgstr "הגדר גודל באופן אוטומטי" #~ msgid "Clear Playlist" #~ msgstr "נקה רשימת השמעה" #~ msgid "Display OSD when hovering over tray icon" #~ msgstr "הצג את ה OSD כאשר סמן העכבר חולף על פני סמל מגש המערכת" #~ msgid "Popup" #~ msgstr "חלון קופץ" #~ msgid "Resizable" #~ msgstr "גודל ניתן לשינוי" #~ msgid "Search:" #~ msgstr "חיפוש:" #~ msgid "Text Color" #~ msgstr "צבע פונט" #~ msgid "Title:" #~ msgstr "כותרת:" #~ msgid "Vol:" #~ msgstr "עוצמה:" #~ msgid "_Close" #~ msgstr "_סגור" #~ msgid "Plugin Manager" #~ msgstr "מנהל תוספים" #~ msgid "Set rating for current song" #~ msgstr "קבע את הדרוג של השיר המושמע" #~ msgid "Get rating for current song" #~ msgstr "ראה את הדרוג של השיר המושמע" #~ msgid "Decreases the volume by VOL%" #~ msgstr "הנמך את עוצמת השמע ב- VOL%" #~ msgid "Increases the volume by VOL%" #~ msgstr "הגבר את עוצמת השמע ב- VOL%" #~ msgid "Show a popup of the currently playing track" #~ msgstr "הצג חלון של הרצועה המושמעת" #~ msgid "Toggle Play or Pause" #~ msgstr "החלף מצב נגן או המתן" #~ msgid "Print the progress inside the current track as percentage" #~ msgstr "הדפס את ההתקדמות ברצועה הנוכחית כאחוז" #~ msgid "Print the position inside the current track as time" #~ msgstr "הדפס את המיקום ברצועה הנוכחית כזמן" #~ msgid "Filter event debug output" #~ msgstr "סנן פלט של ניפוי שגיאות" #~ msgid "order must be a list or tuple" #~ msgstr "סדר חייב להיות רשימה של ביטויים" #~ msgid "Device class does not support transfer." #~ msgstr "סוג המכשיר אינו תומך בהעברה" #~ msgid " New song, fetching cover." #~ msgstr " שיר חדש, מביא עטיפה." #~ msgid "Plugin archive contains an unsafe path" #~ msgstr "ארכיון התוספים (plugins) מכיל נתיב לא בטוח" #~ msgid "A plugin with the name \"%s\" is already installed" #~ msgstr "תוסף בשם \"%s\" כבר מותקן" #~ msgid "Plugin archive is not in the correct format" #~ msgstr "התצורה של ארכיון התוספים (plugins) אינה נכונה." #~ msgid "Streaming..." #~ msgstr "מזרים..." #~ msgid "Buffering: 100%..." #~ msgstr "טוען: 100%..." #~ msgid "Save As..." #~ msgstr "שמור בשם..." #~ msgid "Custom playlist name:" #~ msgstr "התאם את שם רשימת ההשמעה:" #~ msgid "New playlist title:" #~ msgstr "כותרת לרשימת השמעה חדשה:" #~ msgid "Add to custom playlist" #~ msgstr "הוסף רשימת השמעה מותאמת אישית" #~ msgid "" #~ "Exaile Music Player\n" #~ "Not playing" #~ msgstr "" #~ "נגן המוסיקה Exaile\n" #~ "אינו מנגן" #~ msgid "In pause: %s" #~ msgstr "בהמתנה: %s" #~ msgid "_Save Changes To Playlist" #~ msgstr "_שמור שינויים ברשימת ההשמעה" #~ msgid "_Save As Custom Playlist" #~ msgstr "_שמור כרשימת השמעה מותאמת אישית" #~ msgid "_Rename Playlist" #~ msgstr "החלף_שם לרשימת ההשמעה" #~ msgid "Delete track" #~ msgstr "מחק רצועה" #~ msgid "_Close Playlist" #~ msgstr "_סגור רשימת השמעה" #~ msgid "C_lear All Tracks" #~ msgstr "_נקה את כל הרצועות" #~ msgid "Choose a file to open" #~ msgstr "בחר קובץ לפתיחה" #~ msgid "No track" #~ msgstr "אין רצועה" #~ msgid "%d covers to fetch" #~ msgstr "%d עטיפות ליבא" #~ msgid "Idle." #~ msgstr "במנוחה." #~ msgid "New custom playlist name:" #~ msgstr "רשימת השמעה מותאמת אישית חדשה:" #~ msgid "Add To New Playlist..." #~ msgstr "הוסף לרשימת השמעה חדשה..." #~ msgid "" #~ "This will permanantly delete the selected tracks from your disk, are you " #~ "sure you wish to continue?" #~ msgstr "" #~ "רצועות מסומנות אלו ימחקו לצמיתות מהדיסק שלך, האם אתה בטוח שבירצונך להמשיך?" #~ msgid "Choose a plugin" #~ msgstr "בחר תוסף" #~ msgid "Remove item" #~ msgstr "הסר פריט" #~ msgid "Could not enable plugin: %s" #~ msgstr "לא ניתן היה להפעיל את התוסף: %s" #~ msgid "Could not disable plugin: %s" #~ msgstr "לא ניתן היה לבטל את התוסף: %s" #~ msgid "Add item" #~ msgstr "הוסף פריט" #~ msgid "Repeat playlist" #~ msgstr "חזור על רשימת השמעה" #~ msgid "Move selected item up" #~ msgstr "העלה פריט ניבחר" #~ msgid "Move selected item down" #~ msgstr "הורד פריט ניבחר" #~ msgid "Remove current track from playlist" #~ msgstr "הסר רצועה נוכחית מרשימת ההשמעה" #~ msgid "Date:" #~ msgstr "תאריך:‏" #~ msgid "Basic" #~ msgstr "בסיסי" #~ msgid "Dynamically add similar tracks" #~ msgstr "הוסף רצועות דומות בצורה דינאמית" #~ msgid "File Size:" #~ msgstr "גודל הקובץ:" #~ msgid "Length:" #~ msgstr "אורך:" #~ msgid "Details" #~ msgstr "פרטים" #~ msgid "Play Count:" #~ msgstr "מונה השמעות:" #~ msgid "Location:" #~ msgstr "מיקום:" #~ msgid "" #~ "Left\n" #~ "Right\n" #~ "Top\n" #~ "Bottom" #~ msgstr "" #~ "שמאל\n" #~ "ימין\n" #~ "למעלה\n" #~ "למטה" #~ msgid "© 2009" #~ msgstr "© 2009" #~ msgid "%(minutes)d:%(seconds)02d" #~ msgstr "%(minutes)d:%(seconds)02d" #~ msgid "%(playlist_count)d showing, %(collection_count)d in collection" #~ msgstr "%(playlist_count)d מראה, %(collection_count)d באוסף" #~ msgid " (%(queue_count)d queued)" #~ msgstr " (%(queue_count)d בתור)" #~ msgid "%(year)d-%(month)02d-%(day)02d" #~ msgstr "%(year)d-%(month)02d-%(day)02d" #~ msgid "Remove All" #~ msgstr "הסר הכל" #~ msgid "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager" #~ msgstr "" #~ "Mathias Brodala\n" #~ "\n" #~ "Translation Manager" #~ msgid "Use alpha transparency (if supported)" #~ msgstr "השתמש ב- alpha transparency (אם קיימת תמיכה)" #~ msgid "Close this dialog" #~ msgstr "סגור חלון זה" #~ msgid "" #~ "Normal\n" #~ "Unified (unstable)" #~ msgstr "" #~ "רגיל\n" #~ "מאוחד (לא יציב)" #~ msgid "These options only affect the unified engine." #~ msgstr "אפשרויות אלו משפיעות רק על המנוע המאוחד" #~ msgid "Playback engine (requires restart): " #~ msgstr "מנוע נגן (דרוש התחלה מחדש של התוכנה): " #~ msgid "_Save As..." #~ msgstr "_שמור בשם..." #~ msgid "" #~ "Automatic\n" #~ "GNOME\n" #~ "ALSA\n" #~ "OSS\n" #~ "PulseAudio\n" #~ "JACK" #~ msgstr "" #~ "Automatic\n" #~ "GNOME\n" #~ "ALSA\n" #~ "OSS\n" #~ "PulseAudio\n" #~ "JACK" #~ msgid "Install plugin file" #~ msgstr "התקן קובץ תוסף" #~ msgid "Install a third party plugin from a file" #~ msgstr "התקן תוסף צד שלישי מקובץ" #~ msgid "Randomize the order of the current playlist" #~ msgstr "ערבב את הסדר של רשימת ההשמעה הנוכחית" #~ msgid "Start/Pause Playback" #~ msgstr "התחל/הפסק השמעה" #~ msgid "_Export current playlist" #~ msgstr "_יצא רישימת השמעה נוכחית" #~ msgid "Export current playlist..." #~ msgstr "יצא רשימת השמעה נוכחית..." #~ msgid "Invalid file extension, file not saved" #~ msgstr "סיומת הקובץ שגויה, הקובץ לא נשמר" #~ msgid "Track _properties" #~ msgstr "מאפייני _רצועה" #~ msgid "_Randomize Playlist" #~ msgstr "_ערבב רשימת השמעה" #~ msgid "_Go to Playing Track" #~ msgstr "_עבור לרצועה המושמעת" #~ msgid "Clear bookmarks" #~ msgstr "נקה סימנייות" #~ msgid "Delete bookmark" #~ msgstr "מחק סימנייה" #~ msgid "" #~ "Copyright (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "This program is free software; you can redistribute it and/or modify\n" #~ "it under the terms of the GNU General Public License as published by\n" #~ "the Free Software Foundation; either version 2 of the License, or\n" #~ "(at your option) any later version.\n" #~ "\n" #~ "This program is distributed in the hope that it will be useful,\n" #~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" #~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" #~ "GNU General Public License for more details.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along\n" #~ "with this program; if not, write to the Free Software Foundation, Inc.,\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ msgstr "" #~ "זכויות יוצרים (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "תוכנה זו היא תוכנה חופשית; באפשרותך להפיצה ו/או לשנותה\n" #~ "תחת התנאים של GNU General Public License כפי שפורסמו ע\"י\n" #~ "Free Software Foundation; או גירסה 2 של הרישיון, או\n" #~ "(לבחירתך) כל גירסה מאוחרת יותר.\n" #~ "\n" #~ "תוכנה זו מופצת מתוך תיקווה שהיא תיהיה שימושית,\n" #~ "אך ללא כל אחריות; ללא אפילו אחריות מרומזת של\n" #~ "סחירות או התאמה לביצוע פעולה כלשהי. עיין ב- \n" #~ "GNU General Public License לפרטים נוספים.\n" #~ "\n" #~ "היית אמורלקבל עותק של ה-GNU General Public License \n" #~ "מצורף לתוכנה זו; אם לא, כתוב אל Free Software Foundation, Inc.,\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ msgid "Bookmark this track" #~ msgstr "צור סימניה לרצועה זו" #~ msgid "Restore Main Window" #~ msgstr "שחזר חלון ראשי" #~ msgid "Selected controls" #~ msgstr "פקדים ניבחרים" #~ msgid "Available controls" #~ msgstr "פקדים זמינים" #~ msgid " & " #~ msgstr " & " #~ msgid "Seeking: " #~ msgstr "מחפש: " #~ msgid "$title ($length)" #~ msgstr "$title ($length)" #~ msgid "Name - Time" #~ msgstr "שם - זמן" #~ msgid "Restart Playlist" #~ msgstr "התחל רשימת השמעה מחדש" #~ msgid "Time per Increment:" #~ msgstr "זמן לכל תוספת:" #~ msgid "Alarm Name:" #~ msgstr "שם התראה:" #~ msgid "Alarm Time:" #~ msgstr "זמן התראה:" #~ msgid "Artist Line:" #~ msgstr "שורת אמן:" #~ msgid "Album Line:" #~ msgstr "שורת אלבום:" #~ msgid "On Playback Start, Pause or Stop" #~ msgstr "בעת התחלת נגינה, המתן או עצור" #~ msgid "On Tray Icon Hover" #~ msgstr "בעת ריחוף על סמל סרגל המשימות" #~ msgid "Use Album Covers As Icons" #~ msgstr "השתמש בעטיפות אלבומים כאייקונים" #~ msgid "" #~ "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " #~ "replaced by their respective values. The title will be replaced by " #~ "\"Unknown\" if it is empty." #~ msgstr "" #~ "התגים \"%(title)s\", \"%(artist)s\", and \"%(album)s\" יוחלפו ע\"י הערכים " #~ "המתאימים. הכותרת תוחלף ע\"י \"Unknown\" אם היא ריקה." #~ msgid "On Track Change" #~ msgstr "בעת החלפת רצועה" #~ msgid "Plugin to fetch lyrics from lyricwiki.org" #~ msgstr "תוסף להורדת מילות שיר מ-lyricwiki.org" #~ msgid "Original Date" #~ msgstr "תאריך מקורי" #~ msgid "Original Artist" #~ msgstr "יוצר מקורי" #~ msgid "Encoded By" #~ msgstr "קודד על ידי" #~ msgid "Select a save location" #~ msgstr "יש לבחור מיקום לשמירה" dist/copy/po/PaxHeaders.26361/ko.po0000644000175000017500000000012312233027260015407 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 29 ctime=1382821553.04504693 exaile-3.3.2/po/ko.po0000644000000000000000000035047712233027260014370 0ustar00rootroot00000000000000# Korean translation for exaile # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2012-07-29 07:16+0000\n" "Last-Translator: Jaeic Lee \n" "Language-Team: Korean \n" "Language: ko\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Launchpad-Export-Date: 2012-08-28 05:27+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "%d일, " #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "%d시간, " #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "%d분, " #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d초" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "%d일, " #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "%d시간, " #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "%d분, " #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "%d초," #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "%dd " #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "%d:%02d:%02d" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "%d:%02d" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "하지 않음" #: ../xl/formatter.py:702 msgid "Today" msgstr "오늘" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "어제" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "0.2.14 버전에서 옮겨오는데 실패하였습니다." #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "사용법" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "설정" #: ../xl/main.py:421 msgid "Playback Options" msgstr "재생 속성" #: ../xl/main.py:423 msgid "Play the next track" msgstr "다음 트랙 재생" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "이전 트랙 재생" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "재생 중지" #: ../xl/main.py:429 msgid "Play" msgstr "재생" #: ../xl/main.py:431 msgid "Pause" msgstr "일시정지" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "일시정지 혹은 재생 계속" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "현재 트랙을 재생한 후 중지" #: ../xl/main.py:440 msgid "Collection Options" msgstr "모음집 설정" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "파일 위치" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "특정 위치에 있는 트랙을 모음집에 추가" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "재생목록 옵션" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:454 msgid "Track Options" msgstr "트랙 속성" #: ../xl/main.py:456 msgid "Query player" msgstr "플레이어 확인" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "현재 트랙 데이터를 팝업으로 보기" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "현재 트랙의 타이틀을 출력" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "현재 트랙의 앨범을 출력" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "현재 트랙의 아티스트를 출력" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "현재 트랙의 길이를 출력" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "현재 트랙의 선호도를 N%로 설정" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "현재 트랙의 평가를 시작" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "현재 재생 위치를 시간으로 출력" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "현재 재생 진행을 비율로 출력" #: ../xl/main.py:490 msgid "Volume Options" msgstr "볼륨 속성" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "N%까지 볼륨 증가" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "N%까지 소리크기를 줄임" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "음소거나 음소거 해제" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "현재 볼륨 비율 출력" #: ../xl/main.py:507 msgid "Other Options" msgstr "다른 속성" #: ../xl/main.py:509 msgid "Start new instance" msgstr "새로운 인스턴스 시작" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "이 도움말 메시지 표시하고 마침" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "프로그램 버전 번호 보이고 마침." #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "최소화 상태로(가능하다면 트레이로) 시작" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "GUI의 가시성을 토글(가능한 경우에)" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "안전모드에서 시작 - 문제가 있을 때 유용합니다" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "버전 0.2.x의 예전 데이터를 강제로 가져오기 ( 현재 데이터를 덮어 씀)" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "버전 0.2.x의 예전 데이터라 가져올 수 없습니다" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "개발/디버그 속성" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "<디렉토리>" #: ../xl/main.py:536 msgid "Set data directory" msgstr "데이터 디렉터리 설정" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "<모듈>" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "" #: ../xl/main.py:543 msgid "LEVEL" msgstr "수준" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "디버깅 출력 보기" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "xl.event. 디버깅 활성화 하기. 많은 아웃풋을 생성" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:555 msgid "TYPE" msgstr "" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "출력 레벨 감소" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "D-bus 지원을 비활성화" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "HAL 지원을 비활성화." #: ../xl/main.py:580 msgid "Entire Library" msgstr "전체 라이브러리" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "랜덤 %d" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "등급 > %d" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "태그" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "플러그인 압축파일이 올바른 포맷이 아닙니다." #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "%s 플러그인이 이미 설치 되어있습니다." #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "플러그인 압축파일이 안전하지 않은 경로를 포함하고 있습니다." #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "데이터를 읽어올 위치를 지정하여야 합니다." #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "db를 저장할 위치를 정하지 않았습니다." #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "여러 아티스트" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "알 수 없음" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr " / " #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "%dk" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" "Vorbis는 MP3 보다 작은 파일 크기에서 높은 품질을 출력하는 오픈소스 손실 오디" "오 코덱 입니다." #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" "Free Lossless Audio Codec (자유로운 무손실 오디오 코덱 , FLAC)은 파일을 압축 " "하면서도 음질은 저하되지 않는 오픈 소스 코덱입니다." #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" "애플 소유의 낮은 비트레이트에서 MP3보다 좋은 사운드 품질을 보관하는 손실 오디" "오 포맷 입니다." #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" "독점적이고 오래되었지만, 인기있는 손실 오디오 포맷. VBR은 CBR 보다 높은 품질" "을 제공하지만 일부 재생기에 호환되지 않습니다." #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" "독점적이고 오래되었지만, 인기있는 손실 오디오 포맷. CBR은 VBR 보다 낮은 품질" "을 제공하지만 모든 재생기에 호환됩니다." #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "압축률 좋은 매우 빠른 무료 무손실 오디오 포맷 입니다." #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "자동" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "사용자 지정" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "재생중 아님." #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "현재 버전보다 최신 버전으로 설정되어 있습니다." #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "이 종류의 설정은 어떻게 저장하는지 알 수 없습니다: " #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "알 수 없는 형식의 설정 발견됨!" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "잘못된 재생목록입니다" #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "재생 목록" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "M3U 재생목록" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "PLS 재생목록" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "%s 형식이 잘못되었습니다" #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "ASX 재생목록" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "XSPF 재생목록" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "순서 섞기 끄기" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "트랙 순서를 섞기" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "앨범 안에서 순서 섞기" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "반복 해제" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "모두 반복" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "한곡 반복" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "초" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "분" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "시간" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "일" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "주" #: ../xl/lyrics.py:305 msgid "Local" msgstr "로컬" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "현재에 추가" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "폴더 열기" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "휴지통에 옮길 수 없습니다. 완전히 삭제할까요?" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "휴지통으로 이동" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "이름:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "어떤 기준에도 일치" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "무작위 결과" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "제한: " #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr " 트랙" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "중지됨" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "%s를 찾는 중" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "이동" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "소리 끔" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "%d%%" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "최대 볼륨" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "다양한" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "#" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "트랙 번호" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "제목" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "아티스트" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "작곡가" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "앨범" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "길이" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "디스크" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "디스크 번호" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "평가" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "날짜" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "장르" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "비트레이트" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "위치" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "파일 이름" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "재생횟수" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "BPM" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "마지막 재생" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "날짜 추가" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "크기 조정(_R)" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "자동크기조절(_A)" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "평가:" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "순서 섞기" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "반복" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "현재 트랙을 재생목록에서 제거" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "새 재생목록" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "이름 바꾸기" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "다이나믹 재생목록을 지원하는 플러그인 필요" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "동적으로 재생목록에 비슷한 트랙 추가" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "열고자 하는 URL을 입력하세요" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "URL 열기" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "파일 종류 (확장명) 선택" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "열 미디어 파일을 선택" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "지원되는 파일" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "음악 파일" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "재생목록 파일" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "모든 파일" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "열 폴더를 선택" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "현재 재생목록 내보내기" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "재생목록이 %s로 저장됨" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "%s 닫기" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "닫기 전에 바뀐사항을 %s에 저장 하시겠습니까?" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "저장하지 않으면 바뀐 내용이 없어집니다." #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "저장하지 않고 닫기" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "저장된 %(count)s of %(total)s." #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "재생목록 이름을 입력하지 않았습니다" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "입력한 재생목록 이름은 이미 사용중입니다." #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "탭 닫기" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "재생 오류가 발생하였습니다!" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "버퍼링: %d%%..." #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "재생 계속" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "일시 정지" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "재생목록을 불러오는 중 오류 발생" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "재생 시작" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "Exaile 음악 연주기" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "새 재생 목록(_N)" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "URL 열기(_U)" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "디렉터리 열기" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "현재 재생목록 내보내기(_E)" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "재시작" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "컬렉션(_C)" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "대기열(_Q)" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "표지(_O)" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "항목(_C)" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "재생목록 지우기" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "장치 관리자(_D)" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "컬렉션 다시 읽어오기(_S)" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "트랙 기본 설정(_P)" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "취소" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "실제 앨범" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "작사가" #: ../xlgui/properties.py:54 msgid "Website" msgstr "웹사이트" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "커버" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "실제 음악가" #: ../xlgui/properties.py:57 msgid "Author" msgstr "제작자" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "실제 날짜" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "편곡자" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "지휘자" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "연주자" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "저작권" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "가사" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "트랙" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "버전" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "ISRC" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "녹음" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "기관" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "수정된 날짜" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "재생된 시간" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "중:" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "모든 트랙에 현재 값을 적용" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "표지 보기" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "표지 가져오기" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "표지 제거" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "%s의 앨범 커버" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "%(artist)s - %(album)s 위한 표지 속성" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "앨범 커버를 못찾았습니다." #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "아이콘" #: ../xlgui/devices.py:81 msgid "Device" msgstr "장치" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "드라이버" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "컬렉션 검색중..." #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "검사 중 %s..." #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "대기열 토글" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "대기열 아이템" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "속성" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "새 위치" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "새 스마트 재생목록" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "편집" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "재생목록 삭제" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "선택된 재생목록을 영구적으로 삭제하시겠습니까?" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "원하는 재생목록의 새 이름 입력" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "재생목록 이름 바꾸기" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "제거" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "재생목록 %d" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "디렉도리 추가" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "폴더가 추가되지 않음" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" "폴더가 이미 추가되어 있거나, 추가하려는 폴더의 상위폴더가 추가되어 있습니다." #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "%s(으)로 전송중..." #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "스트림 읽는중..." #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "라디오 방송국 추가" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "주소:" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "저장된 방송국" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "라디오 스트림" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "새로 고침" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "원하는 새 재생목록의 이름을 입력하세요" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "장르 - 아티스트" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "장르 - 앨범" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "컬렉션 다시 읽어들이기" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "크기" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s KB" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "와(과)" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "임" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "아님" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "포함함" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "포함하지 않음" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "최소" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "최대" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "이전" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "뒤에" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "사이" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "초과" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "미만" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "최근" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "발매년도" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "스마트 재생목록" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "사용자 지정 재생목록" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "스마트 재생목록 추가" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "스마트 재생목록 편집" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "재생" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "플러그인" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "플러그인 정보를 불러올 수 없습니다!" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "다음 플러그인에서 오류 발생: %s" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "플러그인을 중단시킬 수 없습니다!" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "플러그인을 작동시킬 수 없습니다!" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "플러그인을 선택하세요" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "플러그인 저장소" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "플러그인 설치가 실패하였습니다!" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "커버" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "모양새" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "컬렉션" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "기본값 복원" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "엑자일을 재시작 하겠습니까?" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "변경 사항은 재시작 후에 적용됩니다." #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "동작" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "바로 가기" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "재생목록" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "Exaile 정보" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "© 2009-2012" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "표지 관리자" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "재생 순서 섞기" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "표지 검색기" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "커버 셋(_S)" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "파일(_F)" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "편집(_E)" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "보기(_V)" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "도구(_T)" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "도움말(_H)" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "이전 트랙" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" "재생을 중지\n" "\n" "오른쪽키로 누르면 이 트랙이 끝난 후 멈춥니다." #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "다음 트랙" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0:00 / 0:00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "트랙 속성" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "태그 추가(_D)" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "태그 제거(_R)" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "ab → A_b" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "모든 태그의 첫 글자를 대문자로 만들기" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "이전(_P)" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "다음(_N)" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "설명:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "컬렉션 관리자" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "라디오" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "전체 재생 목록에 트랙 추가" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "CD 가져오기" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "방송국 추가" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "파일" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "이전 디렉터리를 방문" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "다음 디렉터리를 방문" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "상위 디렉터리" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "디렉터리 목록 새로고침" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "홈 디렉터리" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "검색: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "컬렉션이 비었습니다." #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "음악 추가" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "태그에 커버 포함 사용" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "로칼 파일로 부터 커버 사용" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "표지 검색 정렬:" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "(녹음기에 끌어넣기)" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "시작시 마지막 재생목록 열기" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "사용자의 작업에 대한 페이드 전환 사용" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "페이드 길이 (ms):" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "크로스 페이딩을 사용 (실험 단계)" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "크로스페이드 길이 (ms):" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "오디오 싱크: " #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "사용자 정의 싱크 파이프라인:" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "시작할 때 다시 재생" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "일시정지 상태에서 다시 재생" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "일반" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "제목없음 (불안정)" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "플러그인" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "사용함" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "설치된 플러그인" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "저자:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "버전:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "설치" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "선택된 플러그인 없음" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "사용가능 플러그인" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "업데이트 설치" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "업데이트" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "프러그인 파일 설치" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "탭바에 항상 보이게 함" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "탭 위치:" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "트레이 아이콘 보기" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "프로그램을 최소화하면 시스템 트레이 아이콘으로 숨김" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "트랙이 바뀔 때 현재 곡으로 건너뛰기" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "시작시 스플래시 화면 보기" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "왼쪽" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "오른쪽" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "위" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "아래" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "기본 설정" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "(마우스 오른쪽 클릭하여 기본값으로 재설정)" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "장치 관리자" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "장치 추가" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "장치 종류:" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "감지된 장치:" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "사용자 지정: " #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "대기열 관리자" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "" #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "알람 시계" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "방송 서버에 연결중..." #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "방송 서버 연결중 오류." #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "검색어 입력" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "방송 검색" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "검색 결과" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "검색" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "" #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "AudioScrobbler (Last.fm에 병합)" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "audioscrobbling 가능 (인터넷 라디오 방송과 음악 추천 시스템)" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "이퀄라이저" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "연주 후에 컴퓨터 끄기" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "연주가 끝나면 컴퓨터가 꺼질것입니다." #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "D-Bus가 사용중이라 컴퓨터를 끌수 없습니다." #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "알림창 알림" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "%(title)s" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "%(artist)s" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "%(album)s" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "IPython 콘솔 - Exaile" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "IPython 콘솔 표시" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "IPython 콘솔" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "알림" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "CD 가져오기..." #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "음악 디스크" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "시디" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "트랙 번호" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "디스크 번호" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "재생 횟수" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "미니 모드" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "$title by $artist" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "이전" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "다음" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "재생/일시정지" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "중지" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "볼륨" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "복구하기" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "트랙 선택기" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "재생목록 번역" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "진행 표시줄" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "ReplayGain" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "추가" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "준비됨" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "" #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "화면 표시" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "아마존 표지" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "팟캐스트" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "팟캐스트" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "팟캐스트 새로고침" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "삭제" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "추가하려는 팟캐스트 URL 입력" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "팟캐스트 열기" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "%s (을)를 읽는 중..." #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "팟캐스트 읽기 오류." #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "팟캐스트를 읽는 중..." #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "팟캐스트 파일을 저장할 수 없습니다." #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "데스크탑 표지" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "멀티-알림 시계" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "이 트랙 책갈피" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "책갈피 삭제" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "책갈피 지우기" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "책갈피" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "화면 보호기 일시 정지" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "DAAP 서버" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "DAAP Client" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "수동으로..." #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "공유하려는 IP 주소와 포트 번호를 입력하세요." #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "IP 주소와 포트 번호를 입력하세요." #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" "이 서버는 다중 연결을 지원하지 않습니다.\n" "재생을 멈추고 노래를 다운로드 하여야 합니다." #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "저장 위해 위치 선택" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "DAAP에 연결..." #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "어둠 등급:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "색상 테마 사용 " #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "기본 색상:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "기본 색상" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "위치 저장:" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "릴레이 포트:" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "하나의 파일로 추출" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "불완전한 파일 삭제" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "API key:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "알람 시간" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "월요일" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "화요일" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "수요일" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "목요일" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "금요일" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "토요일" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "일요일" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "알람" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "페이딩 사용" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "증가:" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "화면 감추기:" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "표지 화면" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "원 화면" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "텍스트 비율" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "없음" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "암호:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "사용자 이름:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "미리" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "+12 dB" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "0" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "-24 dB" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "29" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "59" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "119" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "236" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "474" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "947" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "1.9K" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "3.8K" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "7.5K" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "15K" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "트랙이 바뀔 때" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "재생 시작, 일시정지 또는 정지 할 때" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "트레이 아이콘을 덮을때 (마우스)" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "표시" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "앨범 표지 아이콘 사용" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "미디어 아이콘 사용 (일시정지, 정지, 계속)" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "아이콘" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "아티스트 라인:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "요약:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "앨범 라인:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "내용" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "터미널 불투명도:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "글꼴:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "배경색:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "표시된 커버 크키조절" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "아티스트만:" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "앨범만:" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "아키스트와 앰범:" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "메시지" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "Ogg Vorbis" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "FLAC" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "AAC" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "MP3 (VBR)" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "MP3 (CBR)" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "WavPack" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "포맷 가져오기: " #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "음질 가져오기: " #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "경로 가져오기: " #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "항상 위" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "작업 목록 보이기" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "모든 데스크탑에 보이기" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "모든 파일에 확대 적용" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "확대 적용(dB):" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "결과:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "고급" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "내림차순" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "오름차순" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "배포 일시" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "이 주의 평가" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "이달의 평가" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "다운로드 횟수" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "들은 횟수" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "별표" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "장르/태그" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "팟캐스트 추가" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "저자:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "X 위치:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "픽셀" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "Y 위치:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "크기:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "왼쪽 위" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "오른쪽 위" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "왼쪽 아래" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "오른쪽 아래" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "재생목록 다시 시작" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "Last.fm 가입" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "책갈피 메뉴에서 표지 사용 (다음 시작 시에 적용)" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "서버 이름:" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "서버 호스트:" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "포트:" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "서버 가능" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "현재 음악" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "그놈 멀티미디어 키" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "Last.fm 표지" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "Last.fm에서 표지 검색" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "라디오 방송" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "라디오 방송 목록" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "X키" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "CD 재생" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "ReplayGain 지원 가능" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "트레이아이콘에 떨어뜨리기" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "자멘도" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "iPod 지원" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" "표지를 아마존에서 검색\n" "\n" "이 플러그인을 사용하려면, AWS API 키와 비밀 키가 필요합니다." #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "음악반주" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "오디오에서 소리 제거" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "간단 팟캐스트 지원 추가" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "안녕하세요" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "문백 정보" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "Lyrics 위키" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" #~ msgid "Clear" #~ msgstr "지우기" #~ msgid "Close" #~ msgstr "닫기" #~ msgid "Close tab" #~ msgstr "탭 닫기" #~ msgid "Export as..." #~ msgstr "내보내기..." #~ msgid "%d KB" #~ msgstr "%d KB" #~ msgid "© 2009-2010" #~ msgstr "© 2009-2010" #~ msgid "GNOME" #~ msgstr "그놈" #~ msgid "ALSA" #~ msgstr "ALSA" #~ msgid "OSS" #~ msgstr "OSS" #~ msgid "PulseAudio" #~ msgstr "펄스 오디오" #~ msgid "JACK" #~ msgstr "JACK" #~ msgid "AWN" #~ msgstr "AWN" #~ msgid "API Key:" #~ msgstr "API 키:" #~ msgctxt "yes" #~ msgid "Monday" #~ msgstr "월요일" #~ msgctxt "yes" #~ msgid "Tuesday" #~ msgstr "화요일" #~ msgctxt "yes" #~ msgid "Wednesday" #~ msgstr "수요일" #~ msgctxt "yes" #~ msgid "Thursday" #~ msgstr "목요일" #~ msgctxt "yes" #~ msgid "Friday" #~ msgstr "금요일" #~ msgctxt "yes" #~ msgid "Saturday" #~ msgstr "토요일" #~ msgctxt "yes" #~ msgid "Sunday" #~ msgstr "일요일" #~ msgctxt "yes" #~ msgid "Use Fading" #~ msgstr "페이딩 사용" #~ msgctxt "yes" #~ msgid "Minimum volume:" #~ msgstr "최소 볼륨:" #~ msgctxt "yes" #~ msgid "Maximum volume:" #~ msgstr "최대 볼륨:" #~ msgctxt "yes" #~ msgid "Increment:" #~ msgstr "증가:" #~ msgctxt "yes" #~ msgid "Time per increment:" #~ msgstr "시간 당 증가:" #~ msgid "Secret key:" #~ msgstr "보완 키:" #~ msgid "Awn" #~ msgstr "Awn" #~ msgid "General" #~ msgstr "일반" #~ msgid "Display OSD when hovering over tray icon" #~ msgstr "트레이 아이콘에 포인터를 올렸을 때 OSD를 표시" #~ msgid "New Search" #~ msgstr "새 검색" #~ msgid "Popup" #~ msgstr "팝업" #~ msgid "_Close" #~ msgstr "닫기(_C)" #~ msgid "Start" #~ msgstr "시작" #~ msgid "Stop Playback" #~ msgstr "재생 중지" #~ msgid "Text Color" #~ msgstr "글꼴색" #~ msgid "Alarm Days:" #~ msgstr "알람 일자:" #~ msgid "Open" #~ msgstr "열기" #~ msgid "" #~ "Path is already in your collection, or is a subdirectory of another path " #~ "in your collection" #~ msgstr "경로가 이미 컬렉션 있거나, 다른 컬렉션의 하위 디렉터리입니다" #~ msgid "Stopped" #~ msgstr "중지됨" #~ msgid "Add a directory" #~ msgstr "디렉터리 추가" #~ msgid "Toggle: Stop after selected track" #~ msgstr "토글: 선택된 트랙후 중지" #~ msgid "Select File Type (By Extension)" #~ msgstr "파일 형식 선택(확장자별)" #~ msgid "File Type" #~ msgstr "파일 형식" #~ msgid "Extension" #~ msgstr "확장자" #~ msgid "0:00" #~ msgstr "0:00" #~ msgid " songs" #~ msgstr " 노래" #~ msgid "Add Playlist" #~ msgstr "재생목록 추가" #~ msgid "Choose a file" #~ msgstr "파일 선택" #~ msgid "Export" #~ msgstr "내보내기" #~ msgid "Invalid file extension, file not saved" #~ msgstr "잘못된 파일 확장자, 파일이 저장되지 않음" #~ msgid "Enter the search text" #~ msgstr "검색 문자 입력" #~ msgid "Quit" #~ msgstr "종료" #~ msgid "No covers found" #~ msgstr "표지 찾지 못함" #~ msgid " - " #~ msgstr " - " #~ msgid " + " #~ msgstr " + " #~ msgid "Add device" #~ msgstr "장치 추가" #~ msgid "..." #~ msgstr "..." #~ msgid "Page 1" #~ msgstr "1 페이지" #~ msgid "0/0 tracks" #~ msgstr "0/0 트랙" #~ msgid "Number of Plays" #~ msgstr "재생 번호" #~ msgid "Add to Playlist" #~ msgstr "재생목록에 추가" #~ msgid "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgstr "OSD 창을 보이기 원하는 위치에 이동" #~ msgid "from %s" #~ msgstr ", %s 중" #~ msgid "by %s" #~ msgstr ", %s 의" #~ msgid "%(title)s (by %(artist)s)" #~ msgstr "%(title)s (, %(artist)s 의)" #~ msgid "Playing %s" #~ msgstr "%s 재생" #~ msgid "Autosize" #~ msgstr "자동크기" #~ msgid "Vol:" #~ msgstr "볼륨:" #~ msgid "Resizable" #~ msgstr "크기조절가능" #~ msgid "Window Height:" #~ msgstr "창 높이:" #~ msgid "Window Width:" #~ msgstr "창 너비:" #~ msgid "Text Font:" #~ msgstr "글꼴:" #~ msgid "Show OSD on track change" #~ msgstr "트랙이 바뀔 때 OSD 보기" #~ msgid "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "Year - Artist\n" #~ "Year - Album\n" #~ "Artist - Year - Album" #~ msgstr "" #~ "아티스트\n" #~ "앨범\n" #~ "장르 - 아티스트\n" #~ "장르 - 앨범\n" #~ "년도 - 아티스트\n" #~ "년도 - 앨범\n" #~ "아티스트 - 년도 - 앨범" #~ msgid "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgstr "" #~ "{title}\n" #~ "{artist}\n" #~ "{album} - {length}" #~ msgid "Toggle Play or Pause" #~ msgstr "재생 또는 일시정지 토클" #~ msgid "Show a popup of the currently playing track" #~ msgstr "재생중인 트랙을 보여줌" #~ msgid "Set rating for current song" #~ msgstr "이 곡에 대한 등급 매기기" #~ msgid "Get rating for current song" #~ msgstr "이 곡에 대한 등급 가져오기" #~ msgid "Plugin archive contains an unsafe path" #~ msgstr "플러그인 파일이 안전하지 않은 경로를 포함하고 있습니다." #~ msgid "Streaming..." #~ msgstr "스트리밍중..." #~ msgid "Save As..." #~ msgstr "다른 이름으로 저장..." #~ msgid "Filter event debug output" #~ msgstr "이벤트 디버그 출력 필터" #~ msgid "Original Date" #~ msgstr "원래 날짜" #~ msgid "Original Artist" #~ msgstr "원래 아티스트" #~ msgid "Original Album" #~ msgstr "원 앨범" #~ msgid "Date Added" #~ msgstr "추가된 날짜" #~ msgid "Last Played" #~ msgstr "마지막 재생" #~ msgid "Buffering: 100%..." #~ msgstr "버퍼링: 100%..." #~ msgid "" #~ "Exaile Music Player\n" #~ "Not playing" #~ msgstr "" #~ "Exaile 음악 연주기\n" #~ "중지됨" #~ msgid "In pause: %s" #~ msgstr "일지정지: %s" #~ msgid "Add to custom playlist" #~ msgstr "사용자 재생목록 추가" #~ msgid "_Rename Playlist" #~ msgstr "재생목록 이름 바꾸기(_R)" #~ msgid "_Save Changes To Playlist" #~ msgstr "재생목록 변경사항 저장(_S)" #~ msgid "_Save As Custom Playlist" #~ msgstr "사용자 재생목로 저장(_S)" #~ msgid "_Save As..." #~ msgstr "다른 이름으로 저장(_S)..." #~ msgid "Delete track" #~ msgstr "트랙 제거" #~ msgid "_Close Playlist" #~ msgstr "재생목록 닫기(_C)" #~ msgid "C_lear All Tracks" #~ msgstr "모든 트랙 제거(_L)" #~ msgid "Export current playlist..." #~ msgstr "현재 재생목록 내보내기" #~ msgid "No track" #~ msgstr "트랙 없음" #~ msgid "%(minutes)d:%(seconds)02d" #~ msgstr "%(minutes)d:%(seconds)02d" #~ msgid "Choose a file to open" #~ msgstr "열고자 하는 파일을 선택하세요" #~ msgid "%(playlist_count)d showing, %(collection_count)d in collection" #~ msgstr "컬렉션의 %(collection_count)d 곡 중, %(playlist_count)d 곡 표시" #~ msgid "%(year)d-%(month)02d-%(day)02d" #~ msgstr "%(year)d-%(month)02d-%(day)02d" #~ msgid "New custom playlist name:" #~ msgstr "새 사용자 재생목록 이름:" #~ msgid "Add To New Playlist..." #~ msgstr "새 재생목록 추가..." #~ msgid "" #~ "This will permanantly delete the selected tracks from your disk, are you " #~ "sure you wish to continue?" #~ msgstr "선택된 트랙을 디스크에서 완전히 지웁니다. 계속하시겠습니까?" #~ msgid "Choose a plugin" #~ msgstr "플러그인 선택" #~ msgid "Add item" #~ msgstr "항목 추가" #~ msgid "Move selected item up" #~ msgstr "선택 항목을 위로 올림" #~ msgid "Move selected item down" #~ msgstr "선택 항목을 아래로 내림" #~ msgid "Remove current track from playlist" #~ msgstr "재생목록에서 현재 트랙 삭제" #~ msgid "Remove item" #~ msgstr "항목 제거" #~ msgid "Repeat playlist" #~ msgstr "재생목록 반복" #~ msgid "Dynamically add similar tracks" #~ msgstr "동적으로 유사한 트랙 추가" #~ msgid "Clear Playlist" #~ msgstr "재생 목록 지우기" #~ msgid "Track _properties" #~ msgstr "트랙 속성(_P)" #~ msgid "Randomize the order of the current playlist" #~ msgstr "현재 재생목록의 순서를 무작위로 섞음" #~ msgid "Start/Pause Playback" #~ msgstr "재생 시작/일시중지" #~ msgid "_Export current playlist" #~ msgstr "현재 재생목록 내보내기(_E)" #~ msgid "_Randomize Playlist" #~ msgstr "재생목록 무작위로 섞기(_R)" #~ msgid "Install a third party plugin from a file" #~ msgstr "파일로 플러그인 설치" #~ msgid "Close this dialog" #~ msgstr "이 창 닫기" #~ msgid "Remove All" #~ msgstr "모두 삭제" #~ msgid "© 2009" #~ msgstr "© 2009" #~ msgid "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager" #~ msgstr "" #~ "Mathias Brodala\n" #~ " \n" #~ " 번역 관리자" #~ msgid "Use alpha transparency (if supported)" #~ msgstr "(지원이 된다면) 알파 투명도 사용" #~ msgid "Select a save location" #~ msgstr "저장 위치 선택" #~ msgid "Clear bookmarks" #~ msgstr "즐겨찾기 초기화" #~ msgid "Delete bookmark" #~ msgstr "즐겨찾기 삭제" #~ msgid "Bookmark this track" #~ msgstr "이 트랙을 즐겨찾기에 추가" #~ msgid "$title ($length)" #~ msgstr "$title ($length)" #~ msgid " & " #~ msgstr " & " #~ msgid "Alarm:" #~ msgstr "알람:" #~ msgid "Alarm Name:" #~ msgstr "알람 이름:" #~ msgid "Alarm Time:" #~ msgstr "알람 시간:" #~ msgid "Restart Playlist" #~ msgstr "재생목록 재시작" #~ msgid "Minimum Volume:" #~ msgstr "최저 음량:" #~ msgid "Name - Time" #~ msgstr "이름 - 시간" #~ msgid "Maximum Volume:" #~ msgstr "최고 음량:" #~ msgid "Secret Key:" #~ msgstr "비밀 키:" #~ msgid "Use Album Covers As Icons" #~ msgstr "아이콘을 앨범 표지로 사용" #~ msgid "Only artist" #~ msgstr "아티스트만시 표시" #~ msgid "Both artist and album" #~ msgstr "아티스트와 앨범" #~ msgid "" #~ "Message that should be displayed in the body of the notification. In each " #~ "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced " #~ "by their respective values. If the tag is not known, \"Unknown\" will be " #~ "filled in its place" #~ msgstr "" #~ "표시되는 메세지는 \"%(title)s\", \"%(artist)s\", \"%(album)s\" 과 같은 형" #~ "식으로 입력하면 값으로 바뀌어 집니다. 알 수 없는 태그가 있다면 \"알 수 없" #~ "음\"이라고 표시됩니다." #~ msgid "Only album" #~ msgstr "앨범만 표시" #~ msgid "Summary" #~ msgstr "요약" #~ msgid "Track title format:" #~ msgstr "트랙 제목 형식:" #~ msgid "Save Location:" #~ msgstr "저장 경로:" #~ msgid "iPod support" #~ msgstr "아이팟 지원" #~ msgid "A plugin for iPod support" #~ msgstr "아이팟 지원 플러그인" #~ msgid "New playlist title:" #~ msgstr "새 재생목록 제목:" #~ msgid "Custom playlist name:" #~ msgstr "사용자 재생목록 이름:" #~ msgid "Decreases the volume by VOL%" #~ msgstr "볼륨을 VOL%씩 낮춤" #~ msgid "Increases the volume by VOL%" #~ msgstr "볼륨을 VOL%씩 높임" #~ msgid "Print the position inside the current track as time" #~ msgstr "현재 트랙 내의 위치를 시간으로 출력" #~ msgid "Print the progress inside the current track as percentage" #~ msgstr "현재 트랙 내의 진행을 퍼센트로 출력" #~ msgid "_Go to Playing Track" #~ msgstr "재생중인 트랙으로 가기(_G)" #~ msgid "Restore Main Window" #~ msgstr "메인 창 복구" #~ msgid "Fading:" #~ msgstr "페이딩:" #~ msgid "Display window decorations" #~ msgstr "화면 창 장식" #~ msgid "Plugin archive is not in the correct format" #~ msgstr "압축된 플러그인은 현재 형태가 아닙니다." #~ msgid "Display a progressbar in the OSD" #~ msgstr "OSD에 진행 표시줄 표시" #~ msgid "Opacity Level:" #~ msgstr "불투명도:" #~ msgid "Playback engine (requires restart): " #~ msgstr "재생 엔진 (다시 시작 필요): " #~ msgid "" #~ "Copyright (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "This program is free software; you can redistribute it and/or modify\n" #~ "it under the terms of the GNU General Public License as published by\n" #~ "the Free Software Foundation; either version 2 of the License, or\n" #~ "(at your option) any later version.\n" #~ "\n" #~ "This program is distributed in the hope that it will be useful,\n" #~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" #~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" #~ "GNU General Public License for more details.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along\n" #~ "with this program; if not, write to the Free Software Foundation, Inc.,\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ msgstr "" #~ "Copyright (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "This program is free software; you can redistribute it and/or modify\n" #~ "it under the terms of the GNU General Public License as published by\n" #~ "the Free Software Foundation; either version 2 of the License, or\n" #~ "(at your option) any later version.\n" #~ "\n" #~ "This program is distributed in the hope that it will be useful,\n" #~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" #~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" #~ "GNU General Public License for more details.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along\n" #~ "with this program; if not, write to the Free Software Foundation, Inc.,\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ msgid "" #~ "OSD\n" #~ "Drag to the location you'd like the\n" #~ "OSD to appear" #~ msgstr "" #~ "OSD\n" #~ "OSD가 보일 원하는 위치에\n" #~ "끌어놓으세요" #~ msgid "Search:" #~ msgstr "검색:" dist/copy/po/PaxHeaders.26361/messages.pot0000644000175000017500000000012412233027260016772 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.449046943 exaile-3.3.2/po/messages.pot0000644000000000000000000026646712233027260015757 0ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2012-11-01 11:14+0100\n" "Last-Translator: Mathias Brodala \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "" #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "" #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "" #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "" #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 #: ../xl/formatter.py:696 msgid "Never" msgstr "" #: ../xl/formatter.py:702 msgid "Today" msgstr "" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "" #: ../xl/main.py:417 #: ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "" #: ../xl/main.py:421 msgid "Playback Options" msgstr "" #: ../xl/main.py:423 msgid "Play the next track" msgstr "" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "" #: ../xl/main.py:427 #: ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "" #: ../xl/main.py:429 msgid "Play" msgstr "" #: ../xl/main.py:431 msgid "Pause" msgstr "" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "" #: ../xl/main.py:437 #: ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "" #: ../xl/main.py:440 msgid "Collection Options" msgstr "" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 #: ../xl/main.py:450 msgid "LOCATION" msgstr "" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:454 msgid "Track Options" msgstr "" #: ../xl/main.py:456 msgid "Query player" msgstr "" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 #: ../xl/main.py:493 #: ../xl/main.py:497 msgid "N" msgstr "" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "" #: ../xl/main.py:490 msgid "Volume Options" msgstr "" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "" #: ../xl/main.py:507 msgid "Other Options" msgstr "" #: ../xl/main.py:509 msgid "Start new instance" msgstr "" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "" #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "" #: ../xl/main.py:536 #: ../xl/main.py:538 msgid "DIRECTORY" msgstr "" #: ../xl/main.py:536 msgid "Set data directory" msgstr "" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "" #: ../xl/main.py:543 msgid "LEVEL" msgstr "" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:555 msgid "TYPE" msgstr "" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "" #: ../xl/main.py:580 msgid "Entire Library" msgstr "" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "" #: ../xl/main.py:695 msgid "Exaile is not yet finished loading. Perhaps you should listen for the exaile_loaded signal?" msgstr "" #: ../xl/covers.py:466 #: ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "" #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "" #: ../xl/trax/track.py:65 #: ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 #: ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr "" #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 #: ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "" #: ../xl/transcoder.py:56 msgid "Vorbis is an open source, lossy audio codec with high quality output at a lower file size than MP3." msgstr "" #: ../xl/transcoder.py:66 msgid "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but does not degrade audio quality." msgstr "" #: ../xl/transcoder.py:78 msgid "Apple's proprietary lossy audio format that achieves better sound quality than MP3 at lower bitrates." msgstr "" #: ../xl/transcoder.py:89 msgid "A proprietary and older, but also popular, lossy audio format. VBR gives higher quality than CBR, but may be incompatible with some players." msgstr "" #: ../xl/transcoder.py:100 msgid "A proprietary and older, but also popular, lossy audio format. CBR gives less quality than VBR, but is compatible with any player." msgstr "" #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "" #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "" #: ../xl/player/pipe.py:340 #: ../xl/player/pipe.py:365 #: ../xl/player/pipe.py:386 msgid "Custom" msgstr "" #: ../xl/player/pipe.py:441 #: ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 #: ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "" #: ../xl/xldbus.py:498 #, python-format msgid "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "" #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "" #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "" #: ../xl/playlist.py:152 #: ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "" #: ../xl/playlist.py:173 #: ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "" #: ../xl/playlist.py:517 #: ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "" #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1824 #: ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 #: ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "" #: ../xl/playlist.py:1825 #: ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "" #: ../xl/playlist.py:1826 #: ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "" #: ../xl/playlist.py:1827 #: ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "" #: ../xl/playlist.py:1828 #: ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "" #: ../xl/lyrics.py:305 msgid "Local" msgstr "" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "" #: ../xlgui/widgets/menuitems.py:118 #: ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "" #: ../xlgui/widgets/menuitems.py:122 #: ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "" #: ../xlgui/widgets/menuitems.py:145 #: ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "" #: ../xlgui/widgets/menuitems.py:167 msgid "The files cannot be moved to the Trash. Delete them permanently from the disk?" msgstr "" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "" #: ../xlgui/widgets/filter.py:62 #: ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "" #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr "" #: ../xlgui/widgets/playback.py:95 #: ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "" #: ../xlgui/widgets/info.py:624 #: ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "" #: ../xlgui/widgets/info.py:628 #: ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 #: ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "" #: ../xlgui/widgets/playlist_columns.py:225 #: ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 #: ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 #: ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "" #: ../xlgui/widgets/playlist_columns.py:232 #: ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 #: ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 #: ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "" #: ../xlgui/widgets/playlist_columns.py:239 #: ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 #: ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "" #: ../xlgui/widgets/playlist_columns.py:246 #: ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 #: ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 #: ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "" #: ../xlgui/widgets/playlist_columns.py:253 #: ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 #: ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "" #: ../xlgui/widgets/playlist_columns.py:260 #: ../xlgui/properties.py:75 msgid "Disc" msgstr "" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "" #: ../xlgui/widgets/playlist_columns.py:268 #: ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 #: ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "" #: ../xlgui/widgets/playlist_columns.py:312 #: ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "" #: ../xlgui/widgets/playlist_columns.py:318 #: ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 #: ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "" #: ../xlgui/widgets/playlist_columns.py:325 #: ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "" #: ../xlgui/widgets/playlist_columns.py:332 #: ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 #: ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "" #: ../xlgui/widgets/playlist_columns.py:339 #: ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "" #: ../xlgui/widgets/playlist_columns.py:353 #: ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 #: ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "" #: ../xlgui/widgets/playlist_columns.py:360 #: ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 #: ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "" #: ../xlgui/widgets/playlist_columns.py:366 #: ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 #: ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 #: ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 #: ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 #: ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:226 #: ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "" #: ../xlgui/widgets/playlist.py:538 #: ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "" #: ../xlgui/widgets/dialogs.py:623 #: ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "" #: ../xlgui/widgets/dialogs.py:625 #: ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:770 #: ../xlgui/menu.py:87 #: ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 #: ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "" #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 #: ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:1529 #: ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 #: ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "" #: ../xlgui/widgets/notebook.py:146 #: ../xlgui/menu.py:115 msgid "Close Tab" msgstr "" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "" #: ../xlgui/main.py:569 #: ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "" #: ../xlgui/main.py:628 #: ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "" #: ../xlgui/main.py:632 #: ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "" #: ../xlgui/main.py:774 #: ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "" #: ../xlgui/main.py:832 #: ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "" #: ../xlgui/menu.py:124 #: ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "" #: ../xlgui/properties.py:54 msgid "Website" msgstr "" #: ../xlgui/properties.py:55 #: ../xlgui/cover.py:793 msgid "Cover" msgstr "" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "" #: ../xlgui/properties.py:57 msgid "Author" msgstr "" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "" #: ../xlgui/properties.py:66 #: ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 #: ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "" #: ../xlgui/properties.py:67 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "" #: ../xlgui/properties.py:68 #: ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 #: ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "" #: ../xlgui/cover.py:1063 msgid "None of the enabled sources has a cover for this track, try enabling more sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "" #: ../xlgui/devices.py:81 msgid "Device" msgstr "" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "" #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "" #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "" #: ../xlgui/oldmenu.py:121 #: ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 #: ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "" #: ../xlgui/oldmenu.py:331 #: ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "" #: ../xlgui/collection.py:135 msgid "The directory is already in your collection or is a subdirectory of another directory in your collection." msgstr "" #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "" #: ../xlgui/panel/radio.py:126 #: ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "" #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "" #: ../xlgui/panel/radio.py:201 #: ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "" #: ../xlgui/panel/radio.py:304 #: ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 #: ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 #: ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "" #: ../xlgui/preferences/plugin.py:40 #: ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "" #: ../xlgui/preferences/plugin.py:92 #: ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "" msgstr[1] "" #: ../xlgui/preferences/plugin.py:167 #: ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:177 #: ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "" #: ../xlgui/preferences/cover.py:38 #: ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 #: ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "" #: ../xlgui/preferences/appearance.py:34 #: ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "" #: ../xlgui/preferences/collection.py:23 #: ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "" #: ../xlgui/preferences/playlists.py:34 #: ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 #: ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "" #: ../data/ui/panel/files.ui.h:7 #: ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "" #: ../data/ui/panel/files.ui.h:8 #: ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "" #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "Instead of appending, tracks added via double click in the panes will replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "When using a menu item to add/replace tracks on the playlist, start playback if there is track currently playing. This option was the default behavior before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "When you double click or press enter to play a track in a playlist, queue the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "" #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "" #: ../data/ui/preferences/plugin.ui.h:3 #: ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "Warning: this option can cause display errors if used with a window manager without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "" #: ../data/ui/preferences/collection.ui.h:1 msgid "Words to strip from the beginning of artist tags when sorting (space separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "" #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "" #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "" #: ../plugins/moodbar/moodbarprefs.py:23 #: ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "" #: ../plugins/streamripper/srprefs.py:22 #: ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 #: ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 #: ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 #: ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "" #: ../plugins/shoutcast/__init__.py:120 #: ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 #: ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 #: ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "" #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "" #: ../plugins/equalizer/__init__.py:127 #: ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "" #: ../plugins/shutdown/__init__.py:38 #: ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 #: ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "" #: ../plugins/ipconsole/ipconsoleprefs.py:22 #: ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "" #: ../plugins/notify/notifyprefs.py:22 #: ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "" #: ../plugins/cd/__init__.py:122 #: ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "" #: ../plugins/cd/cdprefs.py:105 #: ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "" #: ../plugins/cd/cdprefs.py:111 #: ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:134 #: ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 #: ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 #: ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 #: ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 #: ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "" #: ../plugins/osd/osd_preferences.py:29 #: ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "" #: ../plugins/podcasts/__init__.py:55 #: ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "" #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "" #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 #: ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "" #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "" #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "Go to Your API Account page to get an API key and secret and enter them here. After you have entered these, request access permission and confirm to complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by their respective values. The title will be replaced by \"Unknown\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "Message that should be displayed in the body of the notification. In each case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by their respective values. If the tag is not known, \"Unknown\" will be filled in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "Every tag can be used with $tag or ${tag}. Internal tags like $__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "The order of controls can be changed by simply dragging them up or down. (Or press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like $__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon.com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "" #: ../plugins/currentsong/PLUGININFO:4 msgid "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 #: ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 #: ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 #: ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 #: ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 #: ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "Adds support for controlling Exaile via GNOME's multimedia key system. Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 #: ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 #: ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 #: ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you pressed the play button, so be sure you have the music you want to hear in your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 #: ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 #: ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 #: ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 #: ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "" #: ../plugins/shoutcast/PLUGININFO:5 #: ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 #: ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 #: ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "Submits listening information to Last.fm and similar services supporting AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 #: ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 #: ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "" #: ../plugins/massstorage/PLUGININFO:4 msgid "Support for accessing portable media players using the USB Mass Storage protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 #: ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "Allows playing audio over a secondary device (right click on playlist and select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/stopped, with either the song cover or a media icon to indicate the latest action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 #: ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 #: ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "Facilitates categorizing your music by managing the grouping/category tag in audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you pressed the play button, so be sure you have the music you want to hear in your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. PIL)" msgstr "" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" dist/copy/po/PaxHeaders.26361/ur.po0000644000175000017500000000012412233027260015425 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.397046941 exaile-3.3.2/po/ur.po0000644000000000000000000027120512233027260014374 0ustar00rootroot00000000000000# Urdu translation for exaile # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-08-25 20:55+0200\n" "PO-Revision-Date: 2010-11-04 15:45+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Urdu \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-08-28 05:29+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "" #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "" #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "" #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "" #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "" #: ../xl/formatter.py:690 ../xl/formatter.py:695 msgid "Never" msgstr "" #: ../xl/formatter.py:701 msgid "Today" msgstr "" #: ../xl/formatter.py:703 msgid "Yesterday" msgstr "" #: ../xl/main.py:191 msgid "Failed to migrate from 0.2.14" msgstr "" #: ../xl/main.py:406 msgid "Usage: exaile [OPTION]... [URI]" msgstr "" #: ../xl/main.py:407 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "" #: ../xl/main.py:411 msgid "Playback Options" msgstr "" #: ../xl/main.py:413 msgid "Play the next track" msgstr "" #: ../xl/main.py:415 msgid "Play the previous track" msgstr "" #: ../xl/main.py:417 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "" #: ../xl/main.py:419 msgid "Play" msgstr "" #: ../xl/main.py:421 msgid "Pause" msgstr "" #: ../xl/main.py:424 msgid "Pause or resume playback" msgstr "" #: ../xl/main.py:427 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "" #: ../xl/main.py:430 msgid "Collection Options" msgstr "" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:433 ../xl/main.py:440 msgid "LOCATION" msgstr "" #: ../xl/main.py:433 msgid "Add tracks from LOCATION to the collection" msgstr "" #: ../xl/main.py:437 msgid "Playlist Options" msgstr "" #: ../xl/main.py:441 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:444 msgid "Track Options" msgstr "" #: ../xl/main.py:446 msgid "Query player" msgstr "" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:449 msgid "FORMAT" msgstr "" #: ../xl/main.py:450 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:453 msgid "TAGS" msgstr "" #: ../xl/main.py:454 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:457 msgid "Show a popup with data of the current track" msgstr "" #: ../xl/main.py:459 msgid "Print the title of current track" msgstr "" #: ../xl/main.py:461 msgid "Print the album of current track" msgstr "" #: ../xl/main.py:463 msgid "Print the artist of current track" msgstr "" #: ../xl/main.py:465 msgid "Print the length of current track" msgstr "" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:468 ../xl/main.py:483 ../xl/main.py:487 msgid "N" msgstr "" #: ../xl/main.py:469 msgid "Set rating for current track to N%" msgstr "" #: ../xl/main.py:471 msgid "Get rating for current track" msgstr "" #: ../xl/main.py:474 msgid "Print the current playback position as time" msgstr "" #: ../xl/main.py:476 msgid "Print the current playback progress as percentage" msgstr "" #: ../xl/main.py:480 msgid "Volume Options" msgstr "" #: ../xl/main.py:484 msgid "Increases the volume by N%" msgstr "" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:489 msgid "Decreases the volume by N%" msgstr "" #: ../xl/main.py:492 msgid "Mutes or unmutes the volume" msgstr "" #: ../xl/main.py:494 msgid "Print the current volume percentage" msgstr "" #: ../xl/main.py:497 msgid "Other Options" msgstr "" #: ../xl/main.py:499 msgid "Start new instance" msgstr "" #: ../xl/main.py:501 msgid "Show this help message and exit" msgstr "" #: ../xl/main.py:503 msgid "Show program's version number and exit." msgstr "" #: ../xl/main.py:506 msgid "Start minimized (to tray, if possible)" msgstr "" #: ../xl/main.py:509 msgid "Toggle visibility of the GUI (if possible)" msgstr "" #: ../xl/main.py:511 msgid "" "Start in safe mode - sometimes useful when you're running into problems" msgstr "" #: ../xl/main.py:514 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" #: ../xl/main.py:517 msgid "Do not import old data from version 0.2.x" msgstr "" #: ../xl/main.py:520 msgid "Make control options like --play start Exaile if it is not running" msgstr "" #: ../xl/main.py:524 msgid "Development/Debug Options" msgstr "" #: ../xl/main.py:526 ../xl/main.py:528 msgid "DIRECTORY" msgstr "" #: ../xl/main.py:526 msgid "Set data directory" msgstr "" #: ../xl/main.py:528 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:530 msgid "MODULE" msgstr "" #: ../xl/main.py:531 msgid "Limit log output to MODULE" msgstr "" #: ../xl/main.py:533 msgid "LEVEL" msgstr "" #: ../xl/main.py:534 msgid "Limit log output to LEVEL" msgstr "" #: ../xl/main.py:537 msgid "Show debugging output" msgstr "" #: ../xl/main.py:539 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "" #: ../xl/main.py:542 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:545 msgid "TYPE" msgstr "" #: ../xl/main.py:546 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:548 msgid "Reduce level of output" msgstr "" #: ../xl/main.py:552 msgid "Disable D-Bus support" msgstr "" #: ../xl/main.py:554 msgid "Disable HAL support." msgstr "" #: ../xl/main.py:570 msgid "Entire Library" msgstr "" #: ../xl/main.py:576 #, python-format msgid "Random %d" msgstr "" #: ../xl/main.py:584 #, python-format msgid "Rating > %d" msgstr "" #: ../xl/main.py:685 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "" #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "" #: ../xl/trax/trackdb.py:246 msgid "You did not specify a location to save the db" msgstr "" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr "" #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "" #: ../xl/player/pipe.py:309 ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Automatic" msgstr "" #: ../xl/player/pipe.py:345 ../data/ui/preferences/playback.ui.h:21 #: ../plugins/previewdevice/previewprefs.ui.h:16 msgid "Custom" msgstr "" #: ../xl/player/pipe.py:400 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "" #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "" #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "" #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "" #: ../xl/playlist.py:173 msgid "Playlist" msgstr "" #: ../xl/playlist.py:279 ../xlgui/oldmenu.py:269 msgid "M3U Playlist" msgstr "" #: ../xl/playlist.py:379 ../xlgui/oldmenu.py:270 msgid "PLS Playlist" msgstr "" #: ../xl/playlist.py:472 ../xl/playlist.py:488 #, python-format msgid "Invalid format for %s." msgstr "" #: ../xl/playlist.py:483 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "" #: ../xl/playlist.py:543 ../xlgui/oldmenu.py:271 msgid "ASX Playlist" msgstr "" #: ../xl/playlist.py:714 ../xlgui/oldmenu.py:272 msgid "XSPF Playlist" msgstr "" #: ../xl/playlist.py:829 msgid "Shuffle _Off" msgstr "" #: ../xl/playlist.py:830 msgid "Shuffle _Tracks" msgstr "" #: ../xl/playlist.py:830 msgid "Shuffle _Albums" msgstr "" #: ../xl/playlist.py:834 msgid "Repeat _Off" msgstr "" #: ../xl/playlist.py:834 msgid "Repeat _All" msgstr "" #: ../xl/playlist.py:834 msgid "Repeat O_ne" msgstr "" #: ../xl/playlist.py:838 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:838 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1779 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "" #: ../xl/playlist.py:1780 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "" #: ../xl/playlist.py:1781 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "" #: ../xl/playlist.py:1782 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "" #: ../xl/playlist.py:1783 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "" #: ../xl/lyrics.py:305 msgid "Local" msgstr "" #: ../xlgui/widgets/menuitems.py:93 msgid "Enqueue" msgstr "" #: ../xlgui/widgets/menuitems.py:115 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "" #: ../xlgui/widgets/menuitems.py:119 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "" #: ../xlgui/widgets/menuitems.py:129 ../xlgui/widgets/playlist.py:309 #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "" #: ../xlgui/widgets/menuitems.py:142 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "" #: ../xlgui/widgets/menuitems.py:164 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" #: ../xlgui/widgets/menuitems.py:179 msgid "Move to Trash" msgstr "" #: ../xlgui/widgets/menuitems.py:190 msgid "_Show Playing Track" msgstr "" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "" #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr "" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "" #: ../xlgui/widgets/queue.py:41 ../xlgui/widgets/playlist.py:208 #: ../xlgui/playlist.py:130 msgid "Clear" msgstr "" #: ../xlgui/widgets/queue.py:44 ../xlgui/widgets/playlist.py:211 #: ../plugins/history/__init__.py:239 msgid "Close" msgstr "" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:204 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "" #: ../xlgui/widgets/playlist_columns.py:205 msgid "Track Number" msgstr "" #: ../xlgui/widgets/playlist_columns.py:212 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "" #: ../xlgui/widgets/playlist_columns.py:219 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:171 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "" #: ../xlgui/widgets/playlist_columns.py:226 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "" #: ../xlgui/widgets/playlist_columns.py:233 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:174 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "" #: ../xlgui/widgets/playlist_columns.py:240 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "" #: ../xlgui/widgets/playlist_columns.py:247 ../xlgui/properties.py:75 msgid "Disc" msgstr "" #: ../xlgui/widgets/playlist_columns.py:248 msgid "Disc Number" msgstr "" #: ../xlgui/widgets/playlist_columns.py:255 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "" #: ../xlgui/widgets/playlist_columns.py:299 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "" #: ../xlgui/widgets/playlist_columns.py:305 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "" #: ../xlgui/widgets/playlist_columns.py:319 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "" #: ../xlgui/widgets/playlist_columns.py:326 ../xlgui/panel/files.py:147 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "" #: ../xlgui/widgets/playlist_columns.py:333 msgid "Playcount" msgstr "" #: ../xlgui/widgets/playlist_columns.py:340 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "" #: ../xlgui/widgets/playlist_columns.py:347 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "" #: ../xlgui/widgets/playlist_columns.py:359 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:478 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:487 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:606 msgid "_Resizable" msgstr "" #: ../xlgui/widgets/playlist_columns.py:611 msgid "_Autosize" msgstr "" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "" #: ../xlgui/widgets/playlist.py:126 msgid "Shuffle" msgstr "" #: ../xlgui/widgets/playlist.py:130 msgid "Repeat" msgstr "" #: ../xlgui/widgets/playlist.py:134 msgid "Dynamic" msgstr "" #: ../xlgui/widgets/playlist.py:149 msgid "Remove Current Track From Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:179 msgid "Randomize Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:203 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "" #: ../xlgui/widgets/playlist.py:246 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:253 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:302 ../xlgui/oldmenu.py:352 #: ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "" #: ../xlgui/widgets/playlist.py:499 msgid "Requires plugins providing dynamic playlists" msgstr "" #: ../xlgui/widgets/playlist.py:503 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "" #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/notebook.py:136 msgid "Close tab" msgstr "" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "" #: ../xlgui/main.py:463 msgid "Toggle: Stop after Selected Track" msgstr "" #: ../xlgui/main.py:566 ../plugins/previewdevice/__init__.py:354 msgid "Playback error encountered!" msgstr "" #: ../xlgui/main.py:573 #, python-format msgid "Buffering: %d%%..." msgstr "" #: ../xlgui/main.py:625 ../plugins/previewdevice/__init__.py:365 msgid "Continue Playback" msgstr "" #: ../xlgui/main.py:629 ../xlgui/main.py:817 #: ../plugins/previewdevice/__init__.py:336 #: ../plugins/previewdevice/__init__.py:369 msgid "Pause Playback" msgstr "" #: ../xlgui/main.py:771 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "" #: ../xlgui/main.py:829 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:347 msgid "Start Playback" msgstr "" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "" #: ../xlgui/menu.py:115 msgid "Close Tab" msgstr "" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "" #: ../xlgui/properties.py:54 msgid "Website" msgstr "" #: ../xlgui/properties.py:55 ../xlgui/cover.py:777 msgid "Cover" msgstr "" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "" #: ../xlgui/properties.py:57 msgid "Author" msgstr "" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1096 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "" #: ../xlgui/cover.py:111 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:112 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:137 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:477 msgid "Show Cover" msgstr "" #: ../xlgui/cover.py:478 msgid "Fetch Cover" msgstr "" #: ../xlgui/cover.py:479 msgid "Remove Cover" msgstr "" #: ../xlgui/cover.py:779 #, python-format msgid "Cover for %s" msgstr "" #: ../xlgui/cover.py:949 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "" #: ../xlgui/cover.py:982 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1054 msgid "No covers found." msgstr "" #: ../xlgui/cover.py:1055 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "" #: ../xlgui/devices.py:81 msgid "Device" msgstr "" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "" #: ../xlgui/__init__.py:289 msgid "Scanning collection..." msgstr "" #: ../xlgui/__init__.py:373 #, python-format msgid "Scanning %s..." msgstr "" #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "" #: ../xlgui/oldmenu.py:264 msgid "Export as..." msgstr "" #: ../xlgui/oldmenu.py:289 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:299 ../xlgui/panel/playlists.py:1197 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "" #: ../xlgui/oldmenu.py:312 msgid "Enter the new name you want for your playlist" msgstr "" #: ../xlgui/oldmenu.py:313 msgid "Rename Playlist" msgstr "" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "" #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "" #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "" #: ../xlgui/panel/collection.py:177 msgid "Genre - Artist" msgstr "" #: ../xlgui/panel/collection.py:180 msgid "Genre - Album" msgstr "" #: ../xlgui/panel/collection.py:183 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:186 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:189 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:312 msgid "Rescan Collection" msgstr "" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:171 msgid "Size" msgstr "" #: ../xlgui/panel/files.py:433 #, python-format msgid "%d KB" msgstr "" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "" #: ../xlgui/panel/playlists.py:276 msgid "Playlist name:" msgstr "" #: ../xlgui/panel/playlists.py:277 msgid "Add new playlist..." msgstr "" #: ../xlgui/panel/playlists.py:286 ../xlgui/panel/playlists.py:768 #: ../xlgui/panel/playlists.py:851 msgid "You did not enter a name for your playlist" msgstr "" #: ../xlgui/panel/playlists.py:289 ../xlgui/panel/playlists.py:349 #: ../xlgui/panel/playlists.py:774 ../xlgui/panel/playlists.py:858 msgid "The playlist name you entered is already in use." msgstr "" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:443 ../xlgui/panel/playlists.py:457 #: ../xlgui/panel/playlists.py:471 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:448 ../xlgui/panel/playlists.py:462 #: ../xlgui/panel/playlists.py:476 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:688 msgid "Smart Playlists" msgstr "" #: ../xlgui/panel/playlists.py:691 msgid "Custom Playlists" msgstr "" #: ../xlgui/panel/playlists.py:746 msgid "Add Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:821 msgid "Edit Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:1144 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "" msgstr[1] "" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2010" msgstr "" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "" #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "" #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "" #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "GNOME" msgstr "" #: ../data/ui/preferences/playback.ui.h:16 #: ../plugins/previewdevice/previewprefs.ui.h:11 msgid "ALSA" msgstr "" #: ../data/ui/preferences/playback.ui.h:17 #: ../plugins/previewdevice/previewprefs.ui.h:12 msgid "OSS" msgstr "" #: ../data/ui/preferences/playback.ui.h:18 #: ../plugins/previewdevice/previewprefs.ui.h:13 msgid "PulseAudio" msgstr "" #: ../data/ui/preferences/playback.ui.h:19 #: ../plugins/previewdevice/previewprefs.ui.h:14 msgid "JACK" msgstr "" #: ../data/ui/preferences/playback.ui.h:20 #: ../plugins/previewdevice/previewprefs.ui.h:15 msgid "DirectSound" msgstr "" #: ../data/ui/preferences/playback.ui.h:22 #: ../plugins/previewdevice/previewprefs.ui.h:17 msgid "Normal" msgstr "" #: ../data/ui/preferences/playback.ui.h:23 #: ../plugins/previewdevice/previewprefs.ui.h:18 msgid "Unified (unstable)" msgstr "" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Always show tab bar" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Tab placement:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:6 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:9 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "Show tray icon" msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Minimize to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:15 msgid "Jump to current song on track change" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Show splash screen on startup" msgstr "" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Left" msgstr "" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Right" msgstr "" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Top" msgstr "" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Bottom" msgstr "" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "" #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "" #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "" #: ../plugins/streamripper/__init__.py:64 msgid "Error executing streamripper" msgstr "" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:185 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:204 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/awn/awn_prefs.py:32 msgid "AWN" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "" #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "" #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:155 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:161 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "" #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:130 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:95 #: ../plugins/grouptagger/__init__.py:112 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:106 #: ../plugins/grouptagger/gt_widgets.py:688 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:117 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:121 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:652 #: ../plugins/grouptagger/gt_widgets.py:753 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:512 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:709 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:735 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:746 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:746 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:746 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:746 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:754 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "" #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:356 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "" #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "" #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "" #: ../plugins/contextinfo/__init__.py:1127 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "" #: ../plugins/bpm/__init__.py:78 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:238 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "" #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "" #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 msgid "API Key:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgctxt "yes" msgid "Monday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgctxt "yes" msgid "Tuesday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgctxt "yes" msgid "Wednesday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgctxt "yes" msgid "Thursday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgctxt "yes" msgid "Friday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgctxt "yes" msgid "Saturday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgctxt "yes" msgid "Sunday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgctxt "yes" msgid "Use Fading" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgctxt "yes" msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgctxt "yes" msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgctxt "yes" msgid "Increment:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgctxt "yes" msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by " "\"Unknown\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango" " Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret key:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon.com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "" #: ../plugins/awn/PLUGININFO:3 msgid "Awn" msgstr "" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is " "played/resumed/stopped, with either the song cover or a media icon to " "indicate the latest action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides contextual wikipedia information.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" dist/copy/po/PaxHeaders.26361/cy.po0000644000175000017500000000012412233027260015412 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.021046929 exaile-3.3.2/po/cy.po0000644000000000000000000026634712233027260014374 0ustar00rootroot00000000000000# Welsh translation for exaile # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2009-08-24 19:23+0000\n" "Last-Translator: Adam Olsen \n" "Language-Team: Welsh \n" "Language: cy\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=n==1 ? 0 : n==2 ? 1 : (n != 8 && n != 11) ? " "2 : 3;\n" "X-Launchpad-Export-Date: 2012-08-28 05:29+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "" #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "" #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "" #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "" #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "" #: ../xl/formatter.py:702 msgid "Today" msgstr "" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "" #: ../xl/main.py:421 msgid "Playback Options" msgstr "" #: ../xl/main.py:423 msgid "Play the next track" msgstr "" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "" #: ../xl/main.py:429 msgid "Play" msgstr "" #: ../xl/main.py:431 msgid "Pause" msgstr "" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "" #: ../xl/main.py:440 msgid "Collection Options" msgstr "" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:454 msgid "Track Options" msgstr "" #: ../xl/main.py:456 msgid "Query player" msgstr "" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "" #: ../xl/main.py:490 msgid "Volume Options" msgstr "" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "" #: ../xl/main.py:507 msgid "Other Options" msgstr "" #: ../xl/main.py:509 msgid "Start new instance" msgstr "" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "" #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "" #: ../xl/main.py:536 msgid "Set data directory" msgstr "" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "" #: ../xl/main.py:543 msgid "LEVEL" msgstr "" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:555 msgid "TYPE" msgstr "" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "" #: ../xl/main.py:580 msgid "Entire Library" msgstr "" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "" #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr "" #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "" #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "" #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "" #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "" #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "" #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "" #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "" #: ../xl/lyrics.py:305 msgid "Local" msgstr "" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "" #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr "" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "" #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "" #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "" #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "" #: ../xlgui/properties.py:54 msgid "Website" msgstr "" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "" #: ../xlgui/properties.py:57 msgid "Author" msgstr "" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "" #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "" #: ../xlgui/devices.py:81 msgid "Device" msgstr "" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "" #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "" #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "" #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "" #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "" msgstr[1] "" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "" #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "" #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "" #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "" #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "" #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "" #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "" #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "" #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "" #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "" #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "" #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "" #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "" #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" #~ msgid "_Close" #~ msgstr "_Cau" dist/copy/po/PaxHeaders.26361/be.po0000644000175000017500000000012312233027260015364 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 29 ctime=1382821553.04104693 exaile-3.3.2/po/be.po0000644000000000000000000027234612233027260014343 0ustar00rootroot00000000000000# Belarusian translation for exaile # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2012-07-29 07:11+0000\n" "Last-Translator: d \n" "Language-Team: Belarusian \n" "Language: be\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" "X-Launchpad-Export-Date: 2012-08-28 05:24+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "" #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "" #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "" #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "" #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "" #: ../xl/formatter.py:702 msgid "Today" msgstr "" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "Памылка падчас міграцыі з 0.2.14" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "" #: ../xl/main.py:421 msgid "Playback Options" msgstr "" #: ../xl/main.py:423 msgid "Play the next track" msgstr "Граць наступны трэк" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "Граць папярэдні трэк" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "Спыніць прайграваньне" #: ../xl/main.py:429 msgid "Play" msgstr "Граць" #: ../xl/main.py:431 msgid "Pause" msgstr "" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "Спыніцца пасля бягучага трэка" #: ../xl/main.py:440 msgid "Collection Options" msgstr "" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:454 msgid "Track Options" msgstr "" #: ../xl/main.py:456 msgid "Query player" msgstr "" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "Паказаць назву бягучага трэка" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "Паказаць альбом бягучага трэка" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "Паказаць выканаўцу бягучага трэка" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "Паказаць працягласць бягучага трэка" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "" #: ../xl/main.py:490 msgid "Volume Options" msgstr "" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "Паказваць бягучую гучнасць працэнтамі" #: ../xl/main.py:507 msgid "Other Options" msgstr "" #: ../xl/main.py:509 msgid "Start new instance" msgstr "Пачаць новую сесію" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "" #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "Запускацца згорнутым (у трэй, калі магчыма)" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "" "Запускацца ў бяспечным рэжыме - бывае карысна, калі нешта не працуе належным " "чынам" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "" #: ../xl/main.py:536 msgid "Set data directory" msgstr "" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "" #: ../xl/main.py:543 msgid "LEVEL" msgstr "" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "Паказваць вывад адладкі" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:555 msgid "TYPE" msgstr "" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "Паменшыць узровень вываду" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "Адключыць падтрымку D-Bus" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "Адключыць падтрымку HAL" #: ../xl/main.py:580 msgid "Entire Library" msgstr "Уся бібліятэка" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "" #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "Вы не пазначылі шлях захавання базы дадзеных" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr "" #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "" #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "Аўтаматычна" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "" #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "" #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "" #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "" #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "" #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "" #: ../xl/lyrics.py:305 msgid "Local" msgstr "" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "" #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr "" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "" #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "" #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "" #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "" #: ../xlgui/properties.py:54 msgid "Website" msgstr "" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "" #: ../xlgui/properties.py:57 msgid "Author" msgstr "" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "" #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "" #: ../xlgui/devices.py:81 msgid "Device" msgstr "" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "" #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "" #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "" #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "" #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "" msgstr[1] "" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "" #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "" #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "" #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "" #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "" #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "" #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "" #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "" #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "" #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "" #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "" #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "" #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "" #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" #~ msgid "Toggle Play or Pause" #~ msgstr "Граць/спыніць" #~ msgid "Show a popup of the currently playing track" #~ msgstr "Паказаць нечаканку бягучага трэка" #~ msgid "Print the progress inside the current track as percentage" #~ msgstr "Паказваць пазыцыю ўнутры трэка як працэнты" #~ msgid "Print the position inside the current track as time" #~ msgstr "Паказваць пазыцыю ўнутры трэка як час" #~ msgid "Set rating for current song" #~ msgstr "Ацаніць бягучы трэк" #~ msgid "Get rating for current song" #~ msgstr "Паказаць адзнаку бягучага трэка" #~ msgid "Decreases the volume by VOL%" #~ msgstr "Змяншае гучнасць праз VOL%" #~ msgid "Increases the volume by VOL%" #~ msgstr "Павялічвае гучнасць праз VOL%" dist/copy/po/PaxHeaders.26361/sq.po0000644000175000017500000000012312233027260015421 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 29 ctime=1382821553.04104693 exaile-3.3.2/po/sq.po0000644000000000000000000026773012233027260014401 0ustar00rootroot00000000000000# Albanian translation for exaile # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2009-08-24 21:15+0000\n" "Last-Translator: Ermal Llanaj \n" "Language-Team: Albanian \n" "Language: sq\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-08-28 05:24+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "" #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "" #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "" #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "" #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "" #: ../xl/formatter.py:702 msgid "Today" msgstr "" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "" #: ../xl/main.py:421 msgid "Playback Options" msgstr "" #: ../xl/main.py:423 msgid "Play the next track" msgstr "" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "" #: ../xl/main.py:429 msgid "Play" msgstr "" #: ../xl/main.py:431 msgid "Pause" msgstr "" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "" #: ../xl/main.py:440 msgid "Collection Options" msgstr "" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:454 msgid "Track Options" msgstr "" #: ../xl/main.py:456 msgid "Query player" msgstr "" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "" #: ../xl/main.py:490 msgid "Volume Options" msgstr "" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "" #: ../xl/main.py:507 msgid "Other Options" msgstr "" #: ../xl/main.py:509 msgid "Start new instance" msgstr "" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "" #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "" #: ../xl/main.py:536 msgid "Set data directory" msgstr "" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "" #: ../xl/main.py:543 msgid "LEVEL" msgstr "" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:555 msgid "TYPE" msgstr "" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "" #: ../xl/main.py:580 msgid "Entire Library" msgstr "" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "" #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr "" #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "" #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "" #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "" #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "" #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "" #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "" #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "" #: ../xl/lyrics.py:305 msgid "Local" msgstr "" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "" #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr "" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "Artisti" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "Albumi" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "Raporti i bitit:" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "" #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "" #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "" #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "" #: ../xlgui/properties.py:54 msgid "Website" msgstr "" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "" #: ../xlgui/properties.py:57 msgid "Author" msgstr "" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "" #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "" #: ../xlgui/devices.py:81 msgid "Device" msgstr "" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "" #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "" #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "" #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "" #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "" msgstr[1] "" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "" #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "" #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "" #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "" #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "" #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "" #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "" #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "" #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "" #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "" #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "" #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "" #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "" #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "Ngjyra e Sfondit:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "Shto" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" #~ msgid "General" #~ msgstr "Të përgjithshme" #~ msgid "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgstr "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgid "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgstr "Levizni dritaren ne pozicionin tek i cili doni te shfaqet." #~ msgid "Autosize" #~ msgstr "Permasa Automatike" #~ msgid "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "Year - Artist\n" #~ "Year - Album\n" #~ "Artist - Year - Album" #~ msgstr "" #~ "Artisti\n" #~ "Albumi\n" #~ "Rryma - Artisti\n" #~ "Rryma - Albumi\n" #~ "Viti - Artisti\n" #~ "Viti - Albumi\n" #~ "Artisti - Viti - Albumi" dist/copy/po/PaxHeaders.26361/lt.po0000644000175000017500000000012312233027260015415 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 29 ctime=1382821553.03704693 exaile-3.3.2/po/lt.po0000644000000000000000000037065712233027260014400 0ustar00rootroot00000000000000# Lithuanian translation for exaile # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2010. # Vytautas Bačiulis , 2010. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2012-07-29 07:16+0000\n" "Last-Translator: Viktoras Jakovlevas \n" "Language-Team: Lithuanian \n" "Language: lt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n" "%100<10 || n%100>=20) ? 1 : 2;\n" "X-Launchpad-Export-Date: 2012-08-28 05:27+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "%d diena, " msgstr[1] "%d dienos, " msgstr[2] "%d dienų, " #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "%d valanda, " msgstr[1] "%d valandos, " msgstr[2] "%d valandų, " #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "%d minutė, " msgstr[1] "%d minutės, " msgstr[2] "%d minučių, " #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d sekundė" msgstr[1] "%d sekundės" msgstr[2] "%d sekundžių" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "%dd, " #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "%dh, " #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "%dm, " #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "%ds" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "%dd " #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "%d:%02d:%02d" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "%d:%02d" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "Niekada" #: ../xl/formatter.py:702 msgid "Today" msgstr "Šiandien" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "Vakar" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "Nepavyko migruoti iš 0.2.14" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "Naudojimas: exaile [PASIRINKTIS]... [URI]" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "Parinktys" #: ../xl/main.py:421 msgid "Playback Options" msgstr "Grojimo parinktys" #: ../xl/main.py:423 msgid "Play the next track" msgstr "Groti kitą takelį" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "Groti ankstesnį takelį" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "Sustabdyti grojimą" #: ../xl/main.py:429 msgid "Play" msgstr "Groti" #: ../xl/main.py:431 msgid "Pause" msgstr "" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "Pristabdyti arba tęsti grojimą" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "Po dabartinio takelio sustabdyti grojimą" #: ../xl/main.py:440 msgid "Collection Options" msgstr "Kolekcijos parinktys" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "LOCATION" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "Pridėti į kolekciją takelius iš LOCATION" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "Grojaraščio parinktys" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "Eksportuoti esamą grojaraštį į LOCATION" #: ../xl/main.py:454 msgid "Track Options" msgstr "Takelio parinktys" #: ../xl/main.py:456 msgid "Query player" msgstr "Grojimo eilė" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "Rodyti pranešimus su grojamo takelio informacija" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "Rodyti grojamo takelio pavadinimą" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "Rodyti grojamo takelio albumo pavadinimą" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "Rodyti grojamo takelio atlikėjo vardą" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "Rodyti grojamo takelio trukmę" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "N" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "Nustatyti grojamo takelio reitingą N%" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "Gauti grojamo takelio reitingą" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "Parodyti grojamo takelio poziciją kaip laiką" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "Rodyti grojamo takelio poziciją kaip procentinį lygį" #: ../xl/main.py:490 msgid "Volume Options" msgstr "Garsumo lygio parinktys" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "Pagarsina N%" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "Patildo N%" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "Įjungia arba išjungia garsą" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "Parodyti garsumo lygį procentais" #: ../xl/main.py:507 msgid "Other Options" msgstr "Kitos parinktys" #: ../xl/main.py:509 msgid "Start new instance" msgstr "Paleisti naują kopiją" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "Parodyti šį pagalbos pranešimą ir užverti programą" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "Parodyti programos versijos numerį ir užverti programą." #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "Pradėti sumažinta (programų dėkle, jei įmanoma)" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "Perjungti grafinės sąsajos matomumą (jei įmanoma)" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "" "Pradėti saugiu režimu - kartais naudinga, jei susiduriate su problemomis" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" "Priverstinis senų duomenų iš 0.2.x versijos importas (perrašo dabartinius " "duomenis)" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "Neimportuoti senų duomenų iš 0.2.x versijos" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" "Nurodyti, kad kontrolinės parinktys kaip --play paleistų Exaile (jeigu ji " "dar nepaleista)" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "Plėtojimo/Derinimo parinktys" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "DIRECTORY" #: ../xl/main.py:536 msgid "Set data directory" msgstr "Nustatyti duomenų aplanką" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "MODULE" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "Riboti informacijos į MODULE išvestį" #: ../xl/main.py:543 msgid "LEVEL" msgstr "LEVEL" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "Riboti informacijos į LEVEL išvestį" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "Rodyti derinimo išvestį" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "Įjungti xl.event derinimą. Generuoja DAUG išvesties" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "Prie žurnalo pranešimų pridėti ir giją." #: ../xl/main.py:555 msgid "TYPE" msgstr "TYPE" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "Riboti xl.event derinimo į TYPE išvestį" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "Sumažinti išvesties lygį" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "Išjungti D-Bus palaikymą" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "Išjungti HAL palaikymą." #: ../xl/main.py:580 msgid "Entire Library" msgstr "Visa biblioteka" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "Atsitiktinis %d" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "Reitingas > %d" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" "Exaile dar nebaigė įsikelti. Gal jums reikėtų klausyti exaile_loaded signalo?" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "Gairės" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "Įskiepio archyvas yra pateiktas netinkamu formatu." #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "Įskiepis pavadinimu \"%s\" jau yra įdiegtas." #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "Įskiepio archyve yra nurodytas nesaugus kelias." #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "Nenurodėte vietos, iš kurios įkelti db" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "Nenurodėte vietos db saugojimui" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "Įvairūs atlikėjai" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "Nežinomas" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr " / " #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "%dk" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" "Vorbis yra atviro kodo kokybę prarandantis garso kodekas, pateikiantis " "aukštos kokybės išvestį mažesniame negu saugant MP3 formatu faile." #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" "Free Lossless Audio Codec (FLAC) yra atviro kodo kodekas, suspaudžiantis " "duomenis, bet neprarandantis garso kokybės." #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" "Apple nuosavybinis garso formatas, pasiekiantis geresnę garso kokybę nei MP3 " "mažesniu duomenų srautu." #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" "Nuosavybinis ir senas, bet populiarus, kokybę prarandantis garso formatas. " "VBR perteikia geresnę kokybę nei CBR, bet jį gali atkurti ne visi grotuvai." #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" "Nuosavybinis ir senas, bet populiarus, kokybę prarandantis garso formatas. " "CBR perteikia blogesnę kokybę nei VBR, bet jį gali atkurti visi grotuvai." #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "" "Labai greitas laisvasis ir kokybės neprarandantis garso formatas su geru " "duomenų suspaudimu." #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "Automatinis" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "Pasirinktinis" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "Negrojama." #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" "statusas: %(status)s, pavadinimas: %(title)s, atlikėjas: %(artist)s, " "albumas: %(album)s, trukmė: %(length)s, pozicija: %(progress)s%% " "[%(position)s]" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "Nustatymų versija naujesnė nei dabartinė." #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "Nežinome kaip saugoti tokį nustatymų tipą: " #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "Rastas nežinomas nustatymų tipas!" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "Netinkamas grojaraščio tipas." #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "Grojaraštis" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "M3U grojaraštis" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "PLS grojaraštis" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "Netinkamas %s formatas." #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "Nepalaikoma versija %(version)s šio %(type)s" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "ASX grojaraštis" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "XSPF grojaraštis" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "Maišymas _išjungtas" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "Maišyti _takelius" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "Maišyti _albumus" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "Kartojimas _išjungtas" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "Kartoti _visus" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "Kartoti vie_ną" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "Dinaminis _išjungtas" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "Dinaminis pagal susijusius _atlikėjus" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "sekundės" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "minutės" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "valandos" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "dienos" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "savaitės" #: ../xl/lyrics.py:305 msgid "Local" msgstr "Vietinis" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "Pridėti į eilę" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "Pakeisti dabartinį" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "Pridėti prie dabartinio" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "Atverti aplanką" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "Failų negalima perkelti į šiukšlinę. Ištrinti juos iš disko?" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "Perkelti į šiukšlinę" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "_Rodyti grojamą takelį" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "Pavadinimas:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "Turi atitikti bet kurį iš kriterijų" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "Maišyti rezultatus" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "Riboti iki: " #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr " takeliai" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "Negrojama" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "Sekama: %s" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "Perkelti" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "Naujas žymeklis" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "Nutildyta" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "%d%%" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "Maksimalus garsumas" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" "$title\n" "pagal $artist\n" "iš albumo $album" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "Įvairūs" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "%(track_count)d iš visos (%(total_duration)s)" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "Kolekcijoje %d" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "Rodoma %d" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "Pasirinkta %d" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "Pridėti į grojimo eilę (%d)" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "Nr." #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "Takelio numeris" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "Pavadinimas" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "Atlikėjas" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "Kompozitorius" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "Albumas" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "Trukmė" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "Diskas" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "Disko numeris" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "Reitingas" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "Data" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "Žanras" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "Duomenų srautas" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "Vieta" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "Failo pavadinimas" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "Grojimų skaičius" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "BPM" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "Paskutinį kartą grota" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "Pridėjimo data" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "_Keičiamo dydžio" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "_Automatinio dydžio" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "Reitingas:" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "Išmaišyti" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "Kartoti" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "Dinaminis" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "Pašalinti dabartinį takelį iš grojaraščio" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "Naujas grojaraštis" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "Pervadinti" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "Po šio takelio, sustabdyti grojimą" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "Po šio takelio groti toliau" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "Reikalingi priedai, įgalinantys dinaminius grojaraščius" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "Dinamiškai pridėti susijusius takelius į grojaraštį" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "Įveskite URL" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "Atverti URL" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "Pasirinkite failo tipą (pagal plėtinį)" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "Pasirinkite Mediją" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "Palaikomi failų formatai" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "Muzikos failai" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "Grojaraščių failai" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "Visi failai" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "Pasirinkite aplanką" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "Eksportuoti dabartinį grojaraštį" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "Grojaraštis išsaugotas kaip %s." #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "Užverti %s" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "Prieš užveriant išsaugoti pakeitimus į %s?" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "Jeigu neišsaugosite, pakeitimai bus prarasti" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "Užverti neišsaugant" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "Išsaugota %(count)s iš %(total)s." #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "Neįvedėte grojaraščio pavadinimo" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "Toks grojaraščio pavadinimas jau užimtas." #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "Užverti kortelę" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "$title (pagal $artist)" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "Perjungimas: sustoti po pasirinkto takelio" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "Įvyko grojimo klaida!" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "Įkeliama: %d%%..." #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "Tęsti grojimą" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "Pristabdyti grojimą" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "Grojaraščio eksportavimas nepavyko!" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "Pradėti grojimą" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "Muzikos grotuvas Exaile" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "_Naujas grojaraštis" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "Atverti _URL" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "Atverti aplankus" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "_Eksportuoti dabartinį grojaraštį" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "Paleisti iš naujo" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "_Kolekcija" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "_Grojimo eilė" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "V_iršeliai" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "_Grojaraščio įrankių juosta" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "_Stulpeliai" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "Iš_valyti grojaraštį" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "_Įrenginių tvarkyklė" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "_Skenuoti kolekciją iš naujo" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "Takelio _savybės" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "Atšaukti" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "Originalo albumas" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "Dainos žodžių kūrėjas" #: ../xlgui/properties.py:54 msgid "Website" msgstr "Tinklalapis" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "Viršelis" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "Originalo atlikėjas" #: ../xlgui/properties.py:57 msgid "Author" msgstr "Autorius" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "Originalo data" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "Organizatorius" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "Dirigentas" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "Atlikėjas" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "Autorinės teisės" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "Dainos žodžiai" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "Takelis" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "Versija" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "ISRC" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "Koduota pasinaudojus" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "Organizacija" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "Pakeista" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "Grojimų skaičius" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "Redaguojamas takelis %(current)d iš %(total)d" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "iš:" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "Pritaikyti dabartinę reikšmę visiems takeliams" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "Rodyti viršelį" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "Atsisiųsti viršelį" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "Pašalinti viršelį" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "%s viršelis" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "%(artist)s - %(album)s viršelio parinktys" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "Viršelių nerasta." #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "Piktograma" #: ../xlgui/devices.py:81 msgid "Device" msgstr "Įrenginys" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "Tvarkyklė" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "Skenuojama kolekcija..." #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "Skenuojama %s..." #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "Perjungti grojimo eiliškumą" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "Pridėti elementus į grojimo eilę" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "Savybės" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "Nauja stotis" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "Naujas gudrusis grojaraštis" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "Redaguoti" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "Eksportuoti grojaraštį" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "Ištrinti grojaraštį" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "Ar tikrai norite visiškai ištrinti pasirinktą grojaraštį?" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "Įveskite naują norimą grojaraščio pavadinimą" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "Pervadinti grojaraštį" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "Pašalinti" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "Grojaraštis %d" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "Pridėti aplanką" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "Aplankas nebuvo pridėtas." #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" "Aplankas jau yra jūsų kolekcijoje arba jis yra kolekcijoje esančio aplanko " "poaplankis." #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "Perduodama į %s..." #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "Įkeliami kanalai..." #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "Pridėti radijo stotį" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "URL:" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "Išsaugotos stotys" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "Radijo kanalai" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "Atnaujinti" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "Įveskite norimą pavadinimą naujam grojaraščiui" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "Žanras - Atlikėjas" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "Žanras - Albumas" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "Skenuoti kolekciją iš naujo" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "Dydis" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s KB" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "ir" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "yra" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "nėra" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "savyje turi" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "savyje neturi" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "bent" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "daugiausia" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "prieš" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "po" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "tarp" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "daugiau nei" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "mažiau nei" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "per paskutines" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "ne per paskutines" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "Grojimų skaičius" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "Metai" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "%(first)s, %(second)s ir kiti" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "%(first)s ir %(second)s" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "Gudrieji grojaraščiai" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "Pasirinktiniai grojaraščiai" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "Pridėti gudrųjį grojaraštį" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "Redaguoti gudrųjį grojaraštį" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "Grojimas" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "Įskiepiai" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "Nepavyko įkelti įskiepio informacijos!" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "Neveikiantis įskiepis: %s" msgstr[1] "Neveikiantys įskiepiai: %s" msgstr[2] "Neveikiančių įskiepių: %s" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "Nepavyko išjungti įskiepio!" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "Nepavyko įjungti įskiepio!" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "Pasirinkite įskiepį" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "Įskiepių archyvai" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "Įskiepio įdiegimas nepavyko!" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "Viršeliai" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "Išvaizda" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "Kolekcija" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "Atkurti numatytuosius nustatymus" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "Paleisti Exaile iš naujo?" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "Pokyčių įsigaliojimui būtinas paleidimas iš naujo." #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "Veiksmas" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "Nuoroda" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "Grojaraščiai" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "Apie Exaile" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "© 2009-2012" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" "Autorinės teisės (C) 2008-2010 Adam Olsen \n" "\n" "Ši programa yra laisvoji programinė įranga. Jūs galite ją platinti ir/ar " "perdaryti\n" "laikantis GNU General Public licencijos sąlygų, kaip kad pateikia\n" "Free Software Foundation (Laisvosios programinės įrangos fondas), t.y.,\n" "laikantis 2 arba (jūsų pasirinkimu) kitos naujesnės versijos.\n" "\n" "Ši programa platinama su viltimi, kad ji bus naudinga,\n" "tačiau BE JOKIŲ GARANTIJŲ ir netgi be manymo apie\n" "PARDAVIMĄ ar PRITAIKYMĄ TAM TIKRAM TIKSLUI. Daugiau informacijos\n" "apie GNU General Public licenciją rasite jos apraše.\n" "\n" "GNU General Public licencijos kopiją turėjote gauti kartu su programa.\n" "Jeigu negavote, rašykite adresu Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "Viršelių tvarkyklė" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "Maišymo veiksena" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "Kartoti grojimą" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "Viršelių paieška" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "_Nustatyti kaip viršelį" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "_Failas" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "_Keitimas" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "_Rodymas" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "_Įrankiai" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "_Pagalba" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "Ankstesnis takelis" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" "Sustabdyti grojimą\n" "\n" "Funkcijos \"Sustabdymas po šio takelio\" aktyvavimui spustelėkite dešinį " "pelės klavišą" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "Kitas takelis" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0:00 / 0:00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "Takelio savybės" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "Pri_dėti gairę" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "_Pašalinti gairę" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "ab → A_b" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "Visų gairių pirmosios raidės didžiosios" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "_Ankstesnis" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "_Kitas" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "Aprašymas:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "Kolekcijos tvarkyklė" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "Stebima" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "Radijas" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "Priskirti grojaraščiui visus takelius" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "Importuoti CD" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "Pridėti stotį" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "Failai" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "Ankstesnis lankytas aplankas" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "Kitas lankytas aplankas" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "Grįžti aplanku atgal" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "Atnaujinti aplankų sąrašą" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "Namų aplankas" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "Ieškoti: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "Išvalyti paieškos laukelį" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "Kolekcija tuščia." #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "Pridėti muziką" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" "Atnaujinti kolekcijos vaizdą\n" "(laikykite nuspaudę Shift mygtuką)" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "Naudoti į gaires įterptus viršelius" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "Naudoti viršelius iš vietinių failų" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" "Ši parinktis ieškos viršelių paveiksliukų\n" "tame aplanke, kuriame yra muzikos failas." #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "Prasidėjus grojimui automatiškai atsisiųsti viršelius" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "Viršelių paieškos tvarka:" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "(tempkite eiliškumo keitimui)" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "Programos paleidimo metu atverti paskutinį naudotą grojaraštį" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "Užveriant klausti ar išsaugoti pasirinktinius grojaraščius" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "Dukart spragtelėjus pakeisti šoninio skydelio turinį" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" "Vietoje priskyrimo grojaraščiui, takeliai, kurie bus pridėti dvigubu pelės " "spustelėjimu polangiuose, pakeis grojaraščio turinį." #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "Atkūrimo variklis: " #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "Naudotojo veiksmų metu naudoti išblukimo perėjimus" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "Išblukimo trukmė (ms):" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "Naudoti perėjimą (EKSPERIMENTINIS)" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "Perėjimo trukmė (ms):" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "Audio Sink: " #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "Paleidus programą iš naujo tęsti grojimą" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "Tęsti grojimą iš pristabdytos padėties" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "Normalus" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "Suvienytas (nestabilus)" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "Įskiepis" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "Įjungtas" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "Nepasirinktas joks įskiepis" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "Įdiegti įskiepiai" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "Autoriai:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "Versija:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "Įdiegti" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "Nepasirinktas joks įskiepis" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "Prieinami įskiepiai" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "Įdiegti atnaujinimus" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "Atnaujinimai" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "Įdiegti įskiepio failą" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "Rodyti info lauką" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "Informacinėje srityje yra viršelio atvaizdas ir takelio informacija" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "Visada rodyti kortelių juostą" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "Kortelių išsidėstymas:" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "Kolekcijoje rodyti takelių skaičius" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "Naudoti alfa permatomumą:" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" "Perspėjimas: ši parinktis, jei yra naudojama su langų tvarkykle, " "nepalaikančia langų komponavimo, gali sukelti vaizdo problemų." #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "Rodyti piktogramą programų dėkle" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "Sumažinti į programų dėklą" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "Užverti į programų dėklą" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "Takelio keitimo metu pereiti į dabartinę dainą" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "Programos paleidimo metu rodyti pristatymo langą" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "Kairėje" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "Dešinėje" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "Viršuje" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "Apačioje" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "Nustatymai" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" "Ignoruotini žodžiai, kai rūšiuojama pagal atlikėjo gaires (atskirti tarpais):" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "(Numatytųjų nustatymų atkūrimui spustelėkite dešinį pelės klavišą)" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "Naudoti kompiliavimo aptikimą paremtą failu" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "Įrenginių tvarkyklė" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "Pridėti įrenginį" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "Įrenginio tipas:" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "Aptikti įrenginiai:" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "Pasirinktinis: " #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "Grojimo eilės tvarkyklė" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "Ieškoma nuotaika..." #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "Nuotaika rasta." #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "Nepavyko nuskaityti nuotaikų juostos." #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "Nuotaikų juostos vykdomasis failas nepasiekiamas." #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "Nuotaikų juosta" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "Nepavyko paleisti streamripper" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "Streamripper (srautų įrašymas)" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "Patinkantys Last.fm takeliai" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "API raktas yra klaidingas." #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "Prašome patikrinti ar įvesti duomenys yra teisingi." #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "Nepavyko paleisti naršyklės" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" "Nukopijuokite šį adresą ir atverkite jį savo naršyklėje:\n" "{url}" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "Patiko" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "Last.fm patiko" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "Patinka šis takelis" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "Šis takelis nepatinka" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "Žadintuvas" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "Jungiamasi prie Shoutcast serverio..." #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "Nepavyko prisijungti prie Shoutcast serverio." #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "Įveskite paieškos raktažodžius" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "Shoutcast paieška" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "Paieškos rezultatai" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "Ieškoti" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "Nepavyko rasti dainos žodžių." #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "Pereiti į: " #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "Bet kuris" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "Dainos žodžių peržiūra" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "AudioScrobbler" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "Įjungti \"audioscrobbling\"" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "Ekvalaizeris" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "Išjungti po grojimo" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "Paskirtas išjungimas" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "Kompiuteris bus išjungtas pasibaigus grojimui." #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "Neišvengiams išjungimas" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "Kompiuteris bus išjungtas po %d sekundžių." #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "Išjungti nepavyko" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "Kompiuteris negali būti išjungtas naudojantis D-Bus." #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "OSD pranešimai" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "%(title)s" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "pagal %(artist)s" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "iš albumo %(album)s" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "IPython konsolė - Exaile" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "Rodyti IPython konsolę" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "IPython konsolė" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "Pranešti" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" "pagal %(artist)s\n" "iš albumo %(album)s" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "Importuojamas CD..." #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "Audio diskas" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "CD" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "Takelio numeris" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "Disko numeris" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "Grojimų skaičius" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "Kartoti atkarpą" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "Kartoti pradžią" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "Kartoti pabaigą" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "Mini režimas" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "$tracknumber - $title" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "$title pagal $artist" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "$title ($__length)" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "Ankstesnis" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "Pereiti į ankstesnį takelį" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "Ankstesnis takelis" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "Kitas" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "Pereiti į kitą takelį" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "Kitas takelis" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "Groti/Pauzė" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "Pradėti, pristabdyti arba tęsti grojimą" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "Pradėti grojimą" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "Tęsti grojimą" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "Pristabdyti grojimą" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "Sustabdyti" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "Sustabdyti grojimą" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "Tęsti grojimą po dabartinio takelio" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "Garsumo lygis" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "Keisti garsumo lygį" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "Atstatyti" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "Atstatyti pagrindinį langą" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "Atstatyti pagrindinį langą" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "Pasirinkti dabartinio takelio reitingą" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "Takelių parinkiklis" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "Paprastas takelių sąrašo parinkiklis" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "Grojaraščio mygtukas" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "Pasiekti dabartinį grojaraštį" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "$title ($current_time / $total_time)" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "Pozicijos mygtukas" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "Grojimo pozicija ir dabartinio grojaraščio pasiekimas" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "Pozicijos juosta" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "Grojimo pozicija ir sekimas" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "ReplayGain" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "Tempkite pasirinkimui" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "Pridėti ir groti" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "Pridėti" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "Paruošta" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "Ieškomas Jamendo katalogas..." #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "Gaunami dainos duomenys..." #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "Rodymas ekrane" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "Amazon viršeliai" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "Podcast kanalai" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "Podcast kanalas" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "Atnaujinti Podcast kanalą" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "Ištrinti" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "Įveskite Podcast kanalo URL" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "Atverti Podcast" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "Įkeliama %s..." #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "Nepavyko įkelti Podcast kanalo." #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "Įkeliami Podcast kanalai..." #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "Nepavyko išsaugoti Podcast failo" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "Darbastalio viršeliai" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "Daugiafunkcinis žadintuvas" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "Kontekstas" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "Kontekstinė informacija" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "Pridėti šį takelį į žymes" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "Ištrinti žymę" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "Išvalyti žymes" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "Žymės" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "Pristabdyti įsijungus ekrano užsklandai" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "DAAP serveris" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "DAAP klientas" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "Rankiniu būdu..." #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "Viešinimui įveskite IP adresą ir prievadą" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "Įveskite IP adresą ir prievadą." #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" "Šis serveris nepalaiko kelių prisijungimų vienu metu.\n" "Prieš parsisiunčiant dainas jūs privalote sustabdyti grojimą." #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "Atnaujinti serverio sąrašą" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "Atsijungti nuo serverio" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "Pasirinkite išsaugojimo vietą" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "Prisijungti prie DAAP..." #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "Tamsinti grotą dalį vietoje žymeklio naudojimo" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "Tamsumo lygis:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "Naudoti bangų formos stilių" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "Rodyti tik bangų formą, ne nuotaiką" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "Naudoti spalvų temą " #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "Pagrindo spalva:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "Pagrindo spalva" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "Išsaugojimo vieta:" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "Perdavimo prievadas:" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "Saugoti į pavienį failą" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "štrinti nepilnus failus" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "API raktas:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "Paslaptis:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "Prašyti teisės prieiti" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" "Eikite į Jūsų API Paskyra puslapį kuriame gausite API raktą ir paslaptį ir įveskite " "juos čia. Kai įvedėte juos, paprašykite teisės prieiti ir pabaigai " "patvirtinkite." #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "Žadintuvo laikas" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "Pirmadienis" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "Antradienis" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "Trečiadienis" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "Ketvirtadienis" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "Penktadienis" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "Šeštadienis" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "Sekmadienis" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "Žadintuvo dienos" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "Naudoti stelbimą" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "Garsėjimas:" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "Vaizdo perdanga:" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "Rodyti viršelius" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "Apvalusis rodymas" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "Teksto procentinis lygis" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "Nėra" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "Atnaujinti dainos žodžius" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "Pateikti takelius naudojantis Audioscrobbler" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "Rodyti meniu elementą pateikimo eiliškumo keitimui" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "Slaptažodis:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "Naudotojo vardas:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "+12 dB" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "0" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "-24 dB" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "29" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "59" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "119" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "237" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "474" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "947" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "1.9K" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "3.8K" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "7.5K" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "15K" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "Takelio keitimo metu" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "Paleidus grojimą, pristabdžius ar sustabdžius" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "Kai pasikeičia žymė" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "Užslinkus pele ant piktogramos" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "Kai sufokusuotas pagrindinis langas" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "Vaizdavimas" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "Naudoti albumų viršelius kaip piktogramas" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "Naudoti medija piktogramas pristabdymui, sustabdymui ir tęsimui" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "Piktogramos" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "Atlikėjo eilutė:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" "Gairės \"%(title)s\", \"%(artist)s\" ir \"%(album)s\" bus pakeistos " "atitinkamomis reikšmėmis. Pavadinimas, jeigu nenurodyta kitaip, bus " "nustatytas kaip \"Nežinomas\"." #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "Santrauka:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "Albumo eilutė:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "Turinys" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "Terminalo permatomumo lygis:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "Šriftas:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "Fono spalva:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "Keisti rodomų viršelių matmenis" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "Tik atlikėjas:" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "Tik albumas:" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" "Žinutė, kuri bus rodoma pranešimo apibendrinimo dalyje. Kiekvienu atveju " "\"%(title)s\", \"%(artist)s\" ir \"%(album)s\" bus pakeisti atitinkamomis jų " "reikšmėmis. Jeigu gairė nenurodyta, tada jos vietoje bus užrašas \"Nežinomas" "\"." #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "Atlikėjas ir albumas:" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "Apibendrinimo žinutė" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "Ogg Vorbis" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "FLAC" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "AAC" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "MP3 (VBR)" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "MP3 (CBR)" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "WavPack" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "Importavimo formatas: " #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "Importavimo kokybė: " #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "Importavimo kelias: " #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" "Kiekviena žymė gali būti naudojama su $tag arba ${tag}. " "Vidinės žymės pvz. $__length turi būti nurodytas su dviem brūkšniais " "apačioje." #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" "Valdiklių tvarka gali būti keičiama, paprasčiausiai tempiant juos į viršų ar " "apačią. (Arba paspaudžiant Alt+Į viršų/Žemyn.)" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "Valdymas" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "Takelio pavadinimo formatas" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "Visada viršuje" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "Rodyti užduočių juostoje" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "Rodyti langų raštus (dekoracijas):" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "Rodyti visuose darbastaliuose" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "Rodyti mygtuką pagrindiniame lange" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "Pilnas" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "Paprastas" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "Teikti pirmenybę „kiekvienam albumui“ taisymui" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" "Teikti primenybę ReplayGain taisymui „kiekvienam albumui“, o ne taisymui " "„kiekvienam takeliui“." #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "Naudoti signalų nukarpymo apsaugą" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "Apsisaugoti nuo triukšmo, sukelto dėl per didelio sustiprinimo" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "Visiems failams taikyti papildomą sustiprinimą" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "Papildomas sustiprinimas (dB):" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" "Failams, kuriems trūksta ReplayGain informacijos, naudoti atsarginę korekciją" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "Atsarginis korekcijos lygis (dB):" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "Rūšiuoti pagal:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "Rūšiavimo kryptis:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "Rezultatai:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "Sudėtingesni" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "Mažėjimo tvarka" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "Didėjimo tvarka" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "Išleidimo data" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "Šios savaitės reitingas" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "Šio mėnesio reitingas" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "Pridėjimų į grojaraščius skaičius" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "Atsisiuntimų skaičius" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "Perklausų skaičius" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "Su žvaigždute" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "Vertinimo data" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "Žanras/Gairės" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" "Norėdami užregistruoti Amazon AWS sąskaitą ir gauti šią informaciją, \n" "apsilankykite http://aws.amazon.com/" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "Pridėti Podcast kanalą" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "Patvirtinimas:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "X poslinkis:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "pikseliai" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "Y poslinkis:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "Nekreipti dėmesio į viršelio dydį" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "Dydis:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "Naudoti išblukimą" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "Išblukimo trukmė:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "ms" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "Viršuje kairėje" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "Viršuje dešinėje" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "Apačioje kairėje" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "Apačioje dešinėje" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "Pridėti" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "Žadintuvai" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "Įgalinti garso stiprinimą" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "Pradinis stiprinimo garsumas:" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "Stiprinimo sustabdymo garsumas:" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "Stiprinimas:" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "Stiprinimo trukmė (s):" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "Atverti grojaraštį iš naujo" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "Atkūrimas" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "Įveskite Last.fm tapatumo nustatymo duomenis:" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "Registruotis Last.fm sistemoje" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" "Naudoti viršelius žymių meniu (pakeitimai įsigalios po paleidimo iš naujo)" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "Serverio pavadinimas:" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "Serveris:" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "Prievadas:" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "Serveris įjungtas" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "Dabartinė daina" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" "Nustato Pidgin programos statuse dabar grojamą dainą. Norėdami surasti " "palaikomas tarnybas, peržiūrėkite Pidgin DUK (angl. FAQ)." #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" "Pakeičia standartinę pozicijos juostą į nuotaikų juostą.\n" "Priklausomybės: moodbar" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "GNOME Multimedija klavišai" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" "Prideda Exaile valdymo palaikymą naudojantis GNOME multimedija klavišų " "sistema. Suderinama su GNOME >= 2.20.x" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" "Leidžia įrašyti srautus pasinaudojant streamripper.\n" "Priklausomybės: streamripper" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" "Parodo kurie takeliai patinka ir leidžia mėgti takelius.\n" "\n" "Įsitikinkite jog, įskiepio nustatymuose, įvedėte teisingą API raktą ir " "paslaptį.\n" "\n" "Priklausomai nuo „AudioScrobbler“ įskiepio naudotojo vardą bei slaptažodį." #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "Groja muziką nurodytu laiku.\n" "\n" "Įsidėmėkite, kad nurodytu laiku Exaile reaguos taip, tarsi būtumėte nuspaudę " "grojimo mygtuką, tad įsitikinkite, kad grojaraštyje turite norimą klausytis " "muziką" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "Last.fm viršeliai" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "Ieško viršelių Last.fm sistemoje" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "Nustato viršelį ir prideda į AWN keletą Exaile meniu elementų" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "Shoutcast radijas" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "Shoutcast radijo sąrašas" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "Ex Falso gairių redaktorius" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" "Integruoja į Exaile Ex Falso gairių redaktorių.\n" "Priklausomybės: Ex Falso." #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "Prideda šoninę kortelę, rodančią grojamos dainos žodžius." #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" "Naudojantis AudioScrobbler pateikia klausymosi informaciją Last.fm ir kitoms " "panašioms tarnyboms" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "XKeys" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "Visuotiniai mygtukai, naudojantys xlib (mmkeys.so)" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "Daugilaypės terpės klavišai Windows" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" "Vykdant Exaile Microsoft Windows sistemoje, prideda daugialypės terpės " "klavišų palaikymą (kurie yra daugumoje naujų klaviatūrų).\n" "\n" "Reikia: pyHook " #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "10 juostų ekvalaizeris" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "Lyrics Fly" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "Įskiepis dainų žodžių iš lyricsfly.com atsisiuntimui" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "Librivox" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "Naršyti ir klausyti audio knygas iš Librivox.org." #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "Įgalina kompiuterio išsijungimą vos pasibaigus grojimui." #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "Didelės talpos USB grotuvų palaikymas" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "Medija grotuvų palaikymas naudojantis USB Mass Storage protokolu" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "Įrenginiai" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "Last.fm dinaminiai grojaraščiai" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "Last.fm posistemė dinaminiams grojaraščiams." #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" "Šis įskiepis rodo pranešimus, kai daina yra grojama/pristabdyta/sustabdyta, " "su dainos viršeliu arba medija piktograma, nurodančia paskutinį atliktą " "veiksmą.\n" "\n" "Priklausomybės: python-notify\n" "Rekomenduojama: notify-osd" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" "Įgalina IPython konsolę, kuri gali būti panaudota Exaile manipuliavimui." #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "Rodo pranešimą, kai pradedamas takelio grojimas" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "CD grojimas" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "A-B kartojimas" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "Nuolat kartoja takelio atkarpą." #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "Kompaktiškas Exaile režimas su konfigūruojama sąsaja" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "Įjungia ReplayGain palaikymą" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "Programų dėklo piktograma (reaguojanti į nutempimus)" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" "Įgalina alternatyvią programų dėklo piktogramą, palaikančią\n" "ant jos tempiamų failų pridėjimą į grojaraštį.\n" "\n" "Priklausomybės: python-eggtrayicon" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "Jamendo" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "Įgalina priėjimą prie Jamendo muzikos katalogo." #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "iPod palaikymas" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" "Įskiepis iPod palaikymui. Kol kas veikia tik skaitymo režimu.\n" "\n" "Priklausomybės: python-gpod." #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" "Ieško viršelių Amazon sistemoje\n" "\n" "Norėdami naudotis šiuo įskiepiu, privalote įvesti AWS API ir slaptą raktus." #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "Karaoke" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "Pašalina balsą iš garso failo" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "Prideda paprastą Podcast palaikymą" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "Rodo darbastalyje dabartinio albumo viršelį" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "Sveikas, pasauli" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "Paprastas įskiepis bazinės įskiepių sistemos testavimui" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "Groja muziką nurodytais laikais ir dienomis.\n" "\n" "Įsidėmėkite, kad nurodytu laiku Exaile reaguos taip, tarsi būtumėte nuspaudę " "grojimo mygtuką, tad įsitikinkite, kad grojaraštyje turite norimą klausytis " "muziką" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "Kontekstinė informacija" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" "Rodo įvairią informaciją apie grojamą takelį.\n" "Priklausomybės: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging " "(a.k.a. PIL)" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "Leidžia garso failuose saugoti/tęsti žymių pozicijas." #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "Dainų žodžių Wiki" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" "Šis įskiepis į Exaile integruoja spydaap (http://launchpad.net/spydaap), tad " "kolekciją galima viešinti per DAAP." #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "Įgalina DAAP viešinamos muzikos klausymąsi." #~ msgid "Clear" #~ msgstr "Išvalyti" #~ msgid "Close" #~ msgstr "Užverti" #~ msgid "Close tab" #~ msgstr "Užverti kortelę" #~ msgid "Export as..." #~ msgstr "Eksportuoti kaip..." #~ msgid "%d KB" #~ msgstr "%d KB" #~ msgid "© 2009-2010" #~ msgstr "© 2009-2010" #~ msgid "GNOME" #~ msgstr "GNOME" #~ msgid "ALSA" #~ msgstr "ALSA" #~ msgid "OSS" #~ msgstr "OSS" #~ msgid "PulseAudio" #~ msgstr "PulseAudio" #~ msgid "JACK" #~ msgstr "JACK" #~ msgid "AWN" #~ msgstr "AWN" #~ msgid "API Key:" #~ msgstr "API raktas:" #~ msgctxt "yes" #~ msgid "Monday" #~ msgstr "Pirmadienis" #~ msgctxt "yes" #~ msgid "Tuesday" #~ msgstr "Antradienis" #~ msgctxt "yes" #~ msgid "Wednesday" #~ msgstr "Trečiadienis" #~ msgctxt "yes" #~ msgid "Thursday" #~ msgstr "Ketvirtadienis" #~ msgctxt "yes" #~ msgid "Friday" #~ msgstr "Penktadienis" #~ msgctxt "yes" #~ msgid "Saturday" #~ msgstr "Šeštadienis" #~ msgctxt "yes" #~ msgid "Sunday" #~ msgstr "Sekmadienis" #~ msgctxt "yes" #~ msgid "Use Fading" #~ msgstr "Naudoti išblukimą" #~ msgctxt "yes" #~ msgid "Minimum volume:" #~ msgstr "Minimalus garsumo lygis:" #~ msgctxt "yes" #~ msgid "Maximum volume:" #~ msgstr "Maksimalus garsumo lygis:" #~ msgctxt "yes" #~ msgid "Increment:" #~ msgstr "Garsėjimas:" #~ msgctxt "yes" #~ msgid "Time per increment:" #~ msgstr "Garsėjimo laikas:" #~ msgid "Secret key:" #~ msgstr "Slaptas raktas:" #~ msgid "Awn" #~ msgstr "Awn" #~ msgid "General" #~ msgstr "Bendrieji" #~ msgid "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgstr "" #~ "{pavadinimas}\n" #~ "{atlikėjas}\n" #~ "iš {albumas} - {trukmė}" #~ msgid "Autosize" #~ msgstr "Automatiškai nustatyti dydį" #~ msgid "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "Year - Artist\n" #~ "Year - Album\n" #~ "Artist - Year - Album" #~ msgstr "" #~ "Atlikėjas\n" #~ "Albumas\n" #~ "Žanras - atlikėjas\n" #~ "Žanras - albumas\n" #~ "Išleidimo metai - atlikėjas\n" #~ "Išleidimo metai - albumas\n" #~ "Atlikėjas - išleidimo metai - albumas" #~ msgid "New Search" #~ msgstr "Nauja paieška:" #~ msgid "Popup" #~ msgstr "Iškylantysis langas" #~ msgid "Resizable" #~ msgstr "Keičiamo dydžio" #~ msgid "Start" #~ msgstr "Pradėti" #~ msgid "Text Font:" #~ msgstr "Teksto šriftas:" #~ msgid "Text Color" #~ msgstr "Teksto spalva" #~ msgid "Display OSD when hovering over tray icon" #~ msgstr "Rodyti OSD užvedus žymeklį ant piktogramos dėkle" #~ msgid "Stopped" #~ msgstr "Sustabdyta" #~ msgid "Stop Playback" #~ msgstr "Stabdyti perklausą" #~ msgid "Vol:" #~ msgstr "Gars:" #~ msgid "_Close" #~ msgstr "_Užverti" #~ msgid "Alarm Days:" #~ msgstr "Perspėjimo dienos:" #~ msgid "Plugin archive is not in the correct format" #~ msgstr "Papildinio archyvas netinkamo formato" #~ msgid "A plugin with the name \"%s\" is already installed" #~ msgstr "Papildinys vardu \"%s\" jau įdiegtas" #~ msgid "Plugin archive contains an unsafe path" #~ msgstr "Papildinio archyvas turi nesaugų kelią" #~ msgid " New song, fetching cover." #~ msgstr " Nauja daina, ieškomas viršelis." #~ msgid "Clear Playlist" #~ msgstr "Išvalyti grojaraštį" #~ msgid "Exaile" #~ msgstr "Exaile" #~ msgid "Toggle Play or Pause" #~ msgstr "Groti ar sustoti" #~ msgid "Print the position inside the current track as time" #~ msgstr "Spausdinti poziciją dabar grojančiame takelyje kaip laiką" #~ msgid "Print the progress inside the current track as percentage" #~ msgstr "Spausdinti poziciją dabar grojančiame takelyje kaip dalį procentais" #~ msgid "order must be a list or tuple" #~ msgstr "sąrašas turi būti list arba tuple tipo" #~ msgid "Device class does not support transfer." #~ msgstr "Įrenginių klasė nepalaiko duomenų perdavimo." #~ msgid "New playlist title:" #~ msgstr "Naujas grojaraščio pavadinimas:" #~ msgid "%(minutes)d:%(seconds)02d" #~ msgstr "%(minutes)d:%(seconds)02d" #~ msgid "0:00" #~ msgstr "0:00" #~ msgid "Buffering: 100%..." #~ msgstr "Įkeliama: 100%..." #~ msgid "" #~ "Exaile Music Player\n" #~ "Not playing" #~ msgstr "" #~ "Exaile Music Player\n" #~ "Negroja" #~ msgid "Save As..." #~ msgstr "Išsaugoti kaip..." #~ msgid "Custom playlist name:" #~ msgstr "Nustatytas grojaraščio pavadinimas:" #~ msgid "_Rename Playlist" #~ msgstr "_Pervadinti grojaraštį" #~ msgid "_Save Changes To Playlist" #~ msgstr "_Išsaugoti pakeitimus grojaraštyje" #~ msgid "C_lear All Tracks" #~ msgstr "P_ašalinti visus takelius" #~ msgid "_Save As Custom Playlist" #~ msgstr "_Išsaugoti kaip naują grojaraštį" #~ msgid "Open" #~ msgstr "Atverti" #~ msgid "Export" #~ msgstr "Eksportuoti" #~ msgid "No covers found" #~ msgstr "Viršelių nerasta" #~ msgid "Enter the search text" #~ msgstr "Įvesktie paieškos tekstą" #~ msgid "No track" #~ msgstr "Jokio takelio" #~ msgid "Export current playlist..." #~ msgstr "Eksportuoti dabartinį grojaraštį..." #~ msgid "File Type" #~ msgstr "Failo tipas" #~ msgid "Extension" #~ msgstr "Plėtinys" #~ msgid "%(playlist_count)d showing, %(collection_count)d in collection" #~ msgstr "%(playlist_count)d rodomi, %(collection_count)d kolekcijoje" #~ msgid "" #~ "Path is already in your collection, or is a subdirectory of another path " #~ "in your collection" #~ msgstr "" #~ "Kelias jau jūsų kolekcijoje, arba jis yra tokio kelio subdirektorija" #~ msgid "Add a directory" #~ msgstr "Pridėti direktoriją" #~ msgid " songs" #~ msgstr " dainų" #~ msgid "%(year)d-%(month)02d-%(day)02d" #~ msgstr "%(year)d-%(month)02d-%(day)02d" #~ msgid "Add To New Playlist..." #~ msgstr "Pridėti prie naujo grojaraščio..." #~ msgid "Could not enable plugin: %s" #~ msgstr "Neįmanoma įjungti priedo: %s" #~ msgid "Could not disable plugin: %s" #~ msgstr "Neįmanoma išjungti priedo: %s" #~ msgid "Move selected item up" #~ msgstr "Pastumti pažymėtą elementą aukštyn" #~ msgid "Move selected item down" #~ msgstr "Pastumti pažymėtą elementą žemyn" #~ msgid "Remove current track from playlist" #~ msgstr "Pašalinti dabartinį takelį iš grojaraščio" #~ msgid "Remove item" #~ msgstr "Pašalinti elementą" #~ msgid "Repeat playlist" #~ msgstr "Kartoti grojaraštį" #~ msgid "Dynamically add similar tracks" #~ msgstr "Dinamiškai pridėti panašius takelius" #~ msgid "Album:" #~ msgstr "Albumas:" #~ msgid "Bitrate:" #~ msgstr "Bitų dažnis:" #~ msgid "Genre:" #~ msgstr "Žanras:" #~ msgid "Artist:" #~ msgstr "Atlikėjas:" #~ msgid "Location:" #~ msgstr "Vieta:" #~ msgid "Track Number:" #~ msgstr "Takelio numeris:" #~ msgid "Title:" #~ msgstr "Pavadinimas:" #~ msgid " & " #~ msgstr " ir " #~ msgid "Name - Time" #~ msgstr "Pavadinimas - Laikas" #~ msgid "Relay Port:" #~ msgstr "Perdavimo prievadas:" #~ msgid "Filter event debug output" #~ msgstr "Filtuorti įvykių derinamąjį išvedimą" #~ msgid "Show a popup of the currently playing track" #~ msgstr "Rodyti dabar grojančio takelio iššokantį langą" #~ msgid "Original Date" #~ msgstr "Originali Data" #~ msgid "Original Artist" #~ msgstr "Originalus Atlikėjas" #~ msgid "Original Album" #~ msgstr "Originalus Albumas" #~ msgid "Encoded By" #~ msgstr "Koduodas" #~ msgid "Last Played" #~ msgstr "Paskutinį kartą grota" #~ msgid "_Save As..." #~ msgstr "Iš_saugoti kaip..." #~ msgid "Set rating for current song" #~ msgstr "Reitinguoti dabar grojamą dainą" #~ msgid "Get rating for current song" #~ msgstr "Gauti grojamos dainos reitingą" #~ msgid "Decreases the volume by VOL%" #~ msgstr "Sumažina garsą VOL%" #~ msgid "Increases the volume by VOL%" #~ msgstr "Padidina garsą VOL%" #~ msgid "Date Added" #~ msgstr "Kada pridėta" #~ msgid "Toggle: Stop after selected track" #~ msgstr "Perjungti: Sustabdyti po dabartinės dainos" #~ msgid "Streaming..." #~ msgstr "Siunčiamasi..." #~ msgid "_Close Playlist" #~ msgstr "_Užverti grojaraštį" #~ msgid "Select File Type (By Extension)" #~ msgstr "Pasirinkti failo tipą (pagal plėtinį)" #~ msgid "Choose a file to open" #~ msgstr "Pasirinkite kurį failą atverti" #~ msgid "" #~ "This will permanantly delete the selected tracks from your disk, are you " #~ "sure you wish to continue?" #~ msgstr "" #~ "Tai visiškai pašalins pažymėtus takelius iš jūsų disko. Ar jūs tikrai " #~ "norite tęsti?" #~ msgid "Randomize the order of the current playlist" #~ msgstr "Maišyti dabartinio grojaraščio eiliškumą" #~ msgid "_Randomize Playlist" #~ msgstr "_Išmaišyti grojaraštį" #~ msgid "Search:" #~ msgstr "Paieška:" #~ msgid "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager" #~ msgstr "" #~ "Mathias Brodala\n" #~ " \n" #~ " Vertimų vadovas" #~ msgid "" #~ "OSD\n" #~ "Drag to the location you'd like the\n" #~ "OSD to appear" #~ msgstr "" #~ "OSD\n" #~ "Nutempkite į tą vietą, kur norėtumėte,\n" #~ "kad būtų rodomas OSD pranešimas" #~ msgid "" #~ "Adds support for playing audio CDs.\n" #~ "Requires python-cddb to look up tags." #~ msgstr "" #~ "Prideda audio CD grojimo palaikymą.\n" #~ "Gairių peržiūrai turi būti įdiegtas python-cddb." #~ msgid "A plugin for iPod support" #~ msgstr "Įskiepis iPod palaikymui" #~ msgid "Invalid file extension, file not saved" #~ msgstr "Netinkamas failų tipo plėtinys. Neišsaugota." #~ msgid "_Go to Playing Track" #~ msgstr "_Pereiti į grojamą takelį" #~ msgid "Opacity Level:" #~ msgstr "Permatomumo lygis:" #~ msgid "Show OSD on track change" #~ msgstr "Rodyti OSD keičiantis takeliams" #~ msgid "Window Height:" #~ msgstr "Lango aukštis:" #~ msgid "Window Width:" #~ msgstr "Lango plotis:" #~ msgid "Playback engine (requires restart): " #~ msgstr "Grojimo varikliukas (reikalauja paleidimo iš naujo): " #~ msgid "%d covers to fetch" #~ msgstr "Atsisiųsti %d viršelių" #~ msgid "Seeking: " #~ msgstr "Sekama: " #~ msgid "Alarm:" #~ msgstr "Žadintuvas:" #~ msgid "Fading:" #~ msgstr "Išblukimas:" #~ msgid "Creates an MPRIS D-Bus object to control Exaile" #~ msgstr "Sukuria MPRIS D-Bus objektą Exaile valdymui" #~ msgid "Pauses/resumes playback on screensaver start/stop" #~ msgstr "" #~ "Pristabdo/pratęsia grojimą ekrano užsklandos paleidimo/sustabdymo metu" #~ msgid "New custom playlist name:" #~ msgstr "Naujas pasirinktinio grojaraščio pavadinimas:" #~ msgid "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgstr "" #~ "Perkelkite Pranešimų ekrane langą į tą vietą, kurioje jis visada " #~ "turėtų pasirodyti" #~ msgid "Display a progressbar in the OSD" #~ msgstr "OSD pranešimuose rodyti pozicijos juostą" #~ msgid "Playing %s" #~ msgstr "%s grojama" #~ msgid "Add to custom playlist" #~ msgstr "Pridėti prie pasirinkto grojaraščio" #~ msgid "Choose a plugin" #~ msgstr "Pasirinkite įskiepį" #~ msgid "Add item" #~ msgstr "Pridėti objektą" dist/copy/po/PaxHeaders.26361/en.po0000644000175000017500000000012312233027260015400 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 29 ctime=1382821553.36904694 exaile-3.3.2/po/en.po0000644000000000000000000027121312233027260014347 0ustar00rootroot00000000000000# English translation for exaile # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-08-25 20:55+0200\n" "PO-Revision-Date: 2009-08-24 18:50+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: English \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-08-28 05:25+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "" #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "" #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "" #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "" #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "" #: ../xl/formatter.py:690 ../xl/formatter.py:695 msgid "Never" msgstr "" #: ../xl/formatter.py:701 msgid "Today" msgstr "" #: ../xl/formatter.py:703 msgid "Yesterday" msgstr "" #: ../xl/main.py:191 msgid "Failed to migrate from 0.2.14" msgstr "" #: ../xl/main.py:406 msgid "Usage: exaile [OPTION]... [URI]" msgstr "" #: ../xl/main.py:407 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "" #: ../xl/main.py:411 msgid "Playback Options" msgstr "" #: ../xl/main.py:413 msgid "Play the next track" msgstr "" #: ../xl/main.py:415 msgid "Play the previous track" msgstr "" #: ../xl/main.py:417 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "" #: ../xl/main.py:419 msgid "Play" msgstr "" #: ../xl/main.py:421 msgid "Pause" msgstr "" #: ../xl/main.py:424 msgid "Pause or resume playback" msgstr "" #: ../xl/main.py:427 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "" #: ../xl/main.py:430 msgid "Collection Options" msgstr "" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:433 ../xl/main.py:440 msgid "LOCATION" msgstr "" #: ../xl/main.py:433 msgid "Add tracks from LOCATION to the collection" msgstr "" #: ../xl/main.py:437 msgid "Playlist Options" msgstr "" #: ../xl/main.py:441 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:444 msgid "Track Options" msgstr "" #: ../xl/main.py:446 msgid "Query player" msgstr "" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:449 msgid "FORMAT" msgstr "" #: ../xl/main.py:450 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:453 msgid "TAGS" msgstr "" #: ../xl/main.py:454 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:457 msgid "Show a popup with data of the current track" msgstr "" #: ../xl/main.py:459 msgid "Print the title of current track" msgstr "" #: ../xl/main.py:461 msgid "Print the album of current track" msgstr "" #: ../xl/main.py:463 msgid "Print the artist of current track" msgstr "" #: ../xl/main.py:465 msgid "Print the length of current track" msgstr "" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:468 ../xl/main.py:483 ../xl/main.py:487 msgid "N" msgstr "" #: ../xl/main.py:469 msgid "Set rating for current track to N%" msgstr "" #: ../xl/main.py:471 msgid "Get rating for current track" msgstr "" #: ../xl/main.py:474 msgid "Print the current playback position as time" msgstr "" #: ../xl/main.py:476 msgid "Print the current playback progress as percentage" msgstr "" #: ../xl/main.py:480 msgid "Volume Options" msgstr "" #: ../xl/main.py:484 msgid "Increases the volume by N%" msgstr "" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:489 msgid "Decreases the volume by N%" msgstr "" #: ../xl/main.py:492 msgid "Mutes or unmutes the volume" msgstr "" #: ../xl/main.py:494 msgid "Print the current volume percentage" msgstr "" #: ../xl/main.py:497 msgid "Other Options" msgstr "" #: ../xl/main.py:499 msgid "Start new instance" msgstr "" #: ../xl/main.py:501 msgid "Show this help message and exit" msgstr "" #: ../xl/main.py:503 msgid "Show program's version number and exit." msgstr "" #: ../xl/main.py:506 msgid "Start minimized (to tray, if possible)" msgstr "" #: ../xl/main.py:509 msgid "Toggle visibility of the GUI (if possible)" msgstr "" #: ../xl/main.py:511 msgid "" "Start in safe mode - sometimes useful when you're running into problems" msgstr "" #: ../xl/main.py:514 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" #: ../xl/main.py:517 msgid "Do not import old data from version 0.2.x" msgstr "" #: ../xl/main.py:520 msgid "Make control options like --play start Exaile if it is not running" msgstr "" #: ../xl/main.py:524 msgid "Development/Debug Options" msgstr "" #: ../xl/main.py:526 ../xl/main.py:528 msgid "DIRECTORY" msgstr "" #: ../xl/main.py:526 msgid "Set data directory" msgstr "" #: ../xl/main.py:528 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:530 msgid "MODULE" msgstr "" #: ../xl/main.py:531 msgid "Limit log output to MODULE" msgstr "" #: ../xl/main.py:533 msgid "LEVEL" msgstr "" #: ../xl/main.py:534 msgid "Limit log output to LEVEL" msgstr "" #: ../xl/main.py:537 msgid "Show debugging output" msgstr "" #: ../xl/main.py:539 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "" #: ../xl/main.py:542 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:545 msgid "TYPE" msgstr "" #: ../xl/main.py:546 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:548 msgid "Reduce level of output" msgstr "" #: ../xl/main.py:552 msgid "Disable D-Bus support" msgstr "" #: ../xl/main.py:554 msgid "Disable HAL support." msgstr "" #: ../xl/main.py:570 msgid "Entire Library" msgstr "" #: ../xl/main.py:576 #, python-format msgid "Random %d" msgstr "" #: ../xl/main.py:584 #, python-format msgid "Rating > %d" msgstr "" #: ../xl/main.py:685 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "" #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "" #: ../xl/trax/trackdb.py:246 msgid "You did not specify a location to save the db" msgstr "" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr "" #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "" #: ../xl/player/pipe.py:309 ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Automatic" msgstr "" #: ../xl/player/pipe.py:345 ../data/ui/preferences/playback.ui.h:21 #: ../plugins/previewdevice/previewprefs.ui.h:16 msgid "Custom" msgstr "" #: ../xl/player/pipe.py:400 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "" #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "" #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "" #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "" #: ../xl/playlist.py:173 msgid "Playlist" msgstr "" #: ../xl/playlist.py:279 ../xlgui/oldmenu.py:269 msgid "M3U Playlist" msgstr "" #: ../xl/playlist.py:379 ../xlgui/oldmenu.py:270 msgid "PLS Playlist" msgstr "" #: ../xl/playlist.py:472 ../xl/playlist.py:488 #, python-format msgid "Invalid format for %s." msgstr "" #: ../xl/playlist.py:483 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "" #: ../xl/playlist.py:543 ../xlgui/oldmenu.py:271 msgid "ASX Playlist" msgstr "" #: ../xl/playlist.py:714 ../xlgui/oldmenu.py:272 msgid "XSPF Playlist" msgstr "" #: ../xl/playlist.py:829 msgid "Shuffle _Off" msgstr "" #: ../xl/playlist.py:830 msgid "Shuffle _Tracks" msgstr "" #: ../xl/playlist.py:830 msgid "Shuffle _Albums" msgstr "" #: ../xl/playlist.py:834 msgid "Repeat _Off" msgstr "" #: ../xl/playlist.py:834 msgid "Repeat _All" msgstr "" #: ../xl/playlist.py:834 msgid "Repeat O_ne" msgstr "" #: ../xl/playlist.py:838 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:838 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1779 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "" #: ../xl/playlist.py:1780 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "" #: ../xl/playlist.py:1781 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "" #: ../xl/playlist.py:1782 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "" #: ../xl/playlist.py:1783 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "" #: ../xl/lyrics.py:305 msgid "Local" msgstr "" #: ../xlgui/widgets/menuitems.py:93 msgid "Enqueue" msgstr "" #: ../xlgui/widgets/menuitems.py:115 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "" #: ../xlgui/widgets/menuitems.py:119 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "" #: ../xlgui/widgets/menuitems.py:129 ../xlgui/widgets/playlist.py:309 #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "" #: ../xlgui/widgets/menuitems.py:142 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "" #: ../xlgui/widgets/menuitems.py:164 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" #: ../xlgui/widgets/menuitems.py:179 msgid "Move to Trash" msgstr "" #: ../xlgui/widgets/menuitems.py:190 msgid "_Show Playing Track" msgstr "" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "" #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr "" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "" #: ../xlgui/widgets/queue.py:41 ../xlgui/widgets/playlist.py:208 #: ../xlgui/playlist.py:130 msgid "Clear" msgstr "" #: ../xlgui/widgets/queue.py:44 ../xlgui/widgets/playlist.py:211 #: ../plugins/history/__init__.py:239 msgid "Close" msgstr "" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:204 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "" #: ../xlgui/widgets/playlist_columns.py:205 msgid "Track Number" msgstr "" #: ../xlgui/widgets/playlist_columns.py:212 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "" #: ../xlgui/widgets/playlist_columns.py:219 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:171 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "" #: ../xlgui/widgets/playlist_columns.py:226 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "" #: ../xlgui/widgets/playlist_columns.py:233 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:174 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "" #: ../xlgui/widgets/playlist_columns.py:240 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "" #: ../xlgui/widgets/playlist_columns.py:247 ../xlgui/properties.py:75 msgid "Disc" msgstr "" #: ../xlgui/widgets/playlist_columns.py:248 msgid "Disc Number" msgstr "" #: ../xlgui/widgets/playlist_columns.py:255 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "" #: ../xlgui/widgets/playlist_columns.py:299 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "" #: ../xlgui/widgets/playlist_columns.py:305 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "" #: ../xlgui/widgets/playlist_columns.py:319 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "" #: ../xlgui/widgets/playlist_columns.py:326 ../xlgui/panel/files.py:147 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "" #: ../xlgui/widgets/playlist_columns.py:333 msgid "Playcount" msgstr "" #: ../xlgui/widgets/playlist_columns.py:340 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "" #: ../xlgui/widgets/playlist_columns.py:347 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "" #: ../xlgui/widgets/playlist_columns.py:359 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:478 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:487 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:606 msgid "_Resizable" msgstr "" #: ../xlgui/widgets/playlist_columns.py:611 msgid "_Autosize" msgstr "" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "" #: ../xlgui/widgets/playlist.py:126 msgid "Shuffle" msgstr "" #: ../xlgui/widgets/playlist.py:130 msgid "Repeat" msgstr "" #: ../xlgui/widgets/playlist.py:134 msgid "Dynamic" msgstr "" #: ../xlgui/widgets/playlist.py:149 msgid "Remove Current Track From Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:179 msgid "Randomize Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:203 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "" #: ../xlgui/widgets/playlist.py:246 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:253 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:302 ../xlgui/oldmenu.py:352 #: ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "" #: ../xlgui/widgets/playlist.py:499 msgid "Requires plugins providing dynamic playlists" msgstr "" #: ../xlgui/widgets/playlist.py:503 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "" #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/notebook.py:136 msgid "Close tab" msgstr "" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "" #: ../xlgui/main.py:463 msgid "Toggle: Stop after Selected Track" msgstr "" #: ../xlgui/main.py:566 ../plugins/previewdevice/__init__.py:354 msgid "Playback error encountered!" msgstr "" #: ../xlgui/main.py:573 #, python-format msgid "Buffering: %d%%..." msgstr "" #: ../xlgui/main.py:625 ../plugins/previewdevice/__init__.py:365 msgid "Continue Playback" msgstr "" #: ../xlgui/main.py:629 ../xlgui/main.py:817 #: ../plugins/previewdevice/__init__.py:336 #: ../plugins/previewdevice/__init__.py:369 msgid "Pause Playback" msgstr "" #: ../xlgui/main.py:771 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "" #: ../xlgui/main.py:829 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:347 msgid "Start Playback" msgstr "" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "" #: ../xlgui/menu.py:115 msgid "Close Tab" msgstr "" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "" #: ../xlgui/properties.py:54 msgid "Website" msgstr "" #: ../xlgui/properties.py:55 ../xlgui/cover.py:777 msgid "Cover" msgstr "" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "" #: ../xlgui/properties.py:57 msgid "Author" msgstr "" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1096 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "" #: ../xlgui/cover.py:111 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:112 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:137 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:477 msgid "Show Cover" msgstr "" #: ../xlgui/cover.py:478 msgid "Fetch Cover" msgstr "" #: ../xlgui/cover.py:479 msgid "Remove Cover" msgstr "" #: ../xlgui/cover.py:779 #, python-format msgid "Cover for %s" msgstr "" #: ../xlgui/cover.py:949 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "" #: ../xlgui/cover.py:982 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1054 msgid "No covers found." msgstr "" #: ../xlgui/cover.py:1055 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "" #: ../xlgui/devices.py:81 msgid "Device" msgstr "" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "" #: ../xlgui/__init__.py:289 msgid "Scanning collection..." msgstr "" #: ../xlgui/__init__.py:373 #, python-format msgid "Scanning %s..." msgstr "" #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "" #: ../xlgui/oldmenu.py:264 msgid "Export as..." msgstr "" #: ../xlgui/oldmenu.py:289 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:299 ../xlgui/panel/playlists.py:1197 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "" #: ../xlgui/oldmenu.py:312 msgid "Enter the new name you want for your playlist" msgstr "" #: ../xlgui/oldmenu.py:313 msgid "Rename Playlist" msgstr "" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "" #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "" #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "" #: ../xlgui/panel/collection.py:177 msgid "Genre - Artist" msgstr "" #: ../xlgui/panel/collection.py:180 msgid "Genre - Album" msgstr "" #: ../xlgui/panel/collection.py:183 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:186 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:189 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:312 msgid "Rescan Collection" msgstr "" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:171 msgid "Size" msgstr "" #: ../xlgui/panel/files.py:433 #, python-format msgid "%d KB" msgstr "" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "" #: ../xlgui/panel/playlists.py:276 msgid "Playlist name:" msgstr "" #: ../xlgui/panel/playlists.py:277 msgid "Add new playlist..." msgstr "" #: ../xlgui/panel/playlists.py:286 ../xlgui/panel/playlists.py:768 #: ../xlgui/panel/playlists.py:851 msgid "You did not enter a name for your playlist" msgstr "" #: ../xlgui/panel/playlists.py:289 ../xlgui/panel/playlists.py:349 #: ../xlgui/panel/playlists.py:774 ../xlgui/panel/playlists.py:858 msgid "The playlist name you entered is already in use." msgstr "" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:443 ../xlgui/panel/playlists.py:457 #: ../xlgui/panel/playlists.py:471 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:448 ../xlgui/panel/playlists.py:462 #: ../xlgui/panel/playlists.py:476 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:688 msgid "Smart Playlists" msgstr "" #: ../xlgui/panel/playlists.py:691 msgid "Custom Playlists" msgstr "" #: ../xlgui/panel/playlists.py:746 msgid "Add Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:821 msgid "Edit Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:1144 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "" msgstr[1] "" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2010" msgstr "" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "" #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "" #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "" #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "GNOME" msgstr "" #: ../data/ui/preferences/playback.ui.h:16 #: ../plugins/previewdevice/previewprefs.ui.h:11 msgid "ALSA" msgstr "" #: ../data/ui/preferences/playback.ui.h:17 #: ../plugins/previewdevice/previewprefs.ui.h:12 msgid "OSS" msgstr "" #: ../data/ui/preferences/playback.ui.h:18 #: ../plugins/previewdevice/previewprefs.ui.h:13 msgid "PulseAudio" msgstr "" #: ../data/ui/preferences/playback.ui.h:19 #: ../plugins/previewdevice/previewprefs.ui.h:14 msgid "JACK" msgstr "" #: ../data/ui/preferences/playback.ui.h:20 #: ../plugins/previewdevice/previewprefs.ui.h:15 msgid "DirectSound" msgstr "" #: ../data/ui/preferences/playback.ui.h:22 #: ../plugins/previewdevice/previewprefs.ui.h:17 msgid "Normal" msgstr "" #: ../data/ui/preferences/playback.ui.h:23 #: ../plugins/previewdevice/previewprefs.ui.h:18 msgid "Unified (unstable)" msgstr "" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Always show tab bar" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Tab placement:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:6 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:9 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "Show tray icon" msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Minimize to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:15 msgid "Jump to current song on track change" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Show splash screen on startup" msgstr "" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Left" msgstr "" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Right" msgstr "" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Top" msgstr "" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Bottom" msgstr "" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "" #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "" #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "" #: ../plugins/streamripper/__init__.py:64 msgid "Error executing streamripper" msgstr "" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:185 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:204 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/awn/awn_prefs.py:32 msgid "AWN" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "" #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "" #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:155 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:161 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "" #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:130 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:95 #: ../plugins/grouptagger/__init__.py:112 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:106 #: ../plugins/grouptagger/gt_widgets.py:688 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:117 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:121 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:652 #: ../plugins/grouptagger/gt_widgets.py:753 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:512 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:709 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:735 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:746 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:746 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:746 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:746 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:754 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "" #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:356 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "" #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "" #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "" #: ../plugins/contextinfo/__init__.py:1127 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "" #: ../plugins/bpm/__init__.py:78 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:238 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "" #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "" #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 msgid "API Key:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgctxt "yes" msgid "Monday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgctxt "yes" msgid "Tuesday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgctxt "yes" msgid "Wednesday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgctxt "yes" msgid "Thursday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgctxt "yes" msgid "Friday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgctxt "yes" msgid "Saturday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgctxt "yes" msgid "Sunday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgctxt "yes" msgid "Use Fading" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgctxt "yes" msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgctxt "yes" msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgctxt "yes" msgid "Increment:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgctxt "yes" msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by " "\"Unknown\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango" " Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret key:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon.com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "" #: ../plugins/awn/PLUGININFO:3 msgid "Awn" msgstr "" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is " "played/resumed/stopped, with either the song cover or a media icon to " "indicate the latest action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides contextual wikipedia information.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" dist/copy/po/PaxHeaders.26361/tl.po0000644000175000017500000000012412233027260015416 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.025046929 exaile-3.3.2/po/tl.po0000644000000000000000000026641512233027260014374 0ustar00rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2012-07-29 07:19+0000\n" "Last-Translator: Dustin Spicuzza \n" "Language-Team: Tagalog \n" "Language: tl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Launchpad-Export-Date: 2012-08-28 05:28+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "" #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "" #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "" #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "" #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "" #: ../xl/formatter.py:702 msgid "Today" msgstr "" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "" #: ../xl/main.py:421 msgid "Playback Options" msgstr "" #: ../xl/main.py:423 msgid "Play the next track" msgstr "" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "" #: ../xl/main.py:429 msgid "Play" msgstr "" #: ../xl/main.py:431 msgid "Pause" msgstr "" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "" #: ../xl/main.py:440 msgid "Collection Options" msgstr "" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:454 msgid "Track Options" msgstr "" #: ../xl/main.py:456 msgid "Query player" msgstr "" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "" #: ../xl/main.py:490 msgid "Volume Options" msgstr "" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "" #: ../xl/main.py:507 msgid "Other Options" msgstr "" #: ../xl/main.py:509 msgid "Start new instance" msgstr "" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "" #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "" #: ../xl/main.py:536 msgid "Set data directory" msgstr "" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "" #: ../xl/main.py:543 msgid "LEVEL" msgstr "" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:555 msgid "TYPE" msgstr "" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "" #: ../xl/main.py:580 msgid "Entire Library" msgstr "" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "" #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr "" #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" "Ang Vorbis ay isang open source, lossy audio codec na may mataas na kalidad " "na output at mas maliit sa MP3." #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "" #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "Automatic" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "" #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "" #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "" #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "" #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "" #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "" #: ../xl/lyrics.py:305 msgid "Local" msgstr "" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "" #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr "" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "" #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "" #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "" #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "" #: ../xlgui/properties.py:54 msgid "Website" msgstr "" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "" #: ../xlgui/properties.py:57 msgid "Author" msgstr "" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "" #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "" #: ../xlgui/devices.py:81 msgid "Device" msgstr "" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "" #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "" #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "" #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "" #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "" msgstr[1] "" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "" #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "" #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "" #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "" #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "" #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "" #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "" #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "" #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "" #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "" #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "" #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "" #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "" #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" #~ msgid "GNOME" #~ msgstr "GNOME" #~ msgid "ALSA" #~ msgstr "ALSA" #~ msgid "OSS" #~ msgstr "OSS" #~ msgid "PulseAudio" #~ msgstr "PulseAudio" #~ msgid "JACK" #~ msgstr "JACK" dist/copy/po/PaxHeaders.26361/de.po0000644000175000017500000000012312233027260015366 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 29 ctime=1382821553.05304693 exaile-3.3.2/po/de.po0000644000000000000000000042721212233027260014337 0ustar00rootroot00000000000000# German translation of Exaile music playyer. # Copyright (C) 2010 Adam Olsen # This file is distributed under the same license as the Exaile package. # Mathias Brodala # msgid "" msgstr "" "Project-Id-Version: Exaile music player 0.3.x\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2012-08-25 21:34+0000\n" "Last-Translator: Mathias Brodala \n" "Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-08-28 05:26+0000\n" "X-Generator: Launchpad (build 15864)\n" "X-Poedit-Country: GERMANY\n" "X-Poedit-Language: German\n" "X-Poedit-SourceCharset: utf-8\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "%d Tag, " msgstr[1] "%d Tage, " #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "%d Stunde, " msgstr[1] "%d Stunden, " #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "%d Minute, " msgstr[1] "%d Minuten, " #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d Sekunde" msgstr[1] "%d Sekunden" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "%d T., " #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "%d Std., " #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "%d Min., " #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "%d Sek." #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "%dd " #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "%d:%02d:%02d" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "%d:%02d" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "Niemals" #: ../xl/formatter.py:702 msgid "Today" msgstr "Heute" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "Gestern" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "Migration von 0.2.14 fehlgeschlagen" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "Aufruf: exaile [OPTION ]… [URI]" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "Optionen" #: ../xl/main.py:421 msgid "Playback Options" msgstr "Wiedergabeoptionen" #: ../xl/main.py:423 msgid "Play the next track" msgstr "Nächstes Stück spielen" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "Vorheriges Stück spielen" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "Wiedergabe stoppen" #: ../xl/main.py:429 msgid "Play" msgstr "Wiedergabe" #: ../xl/main.py:431 msgid "Pause" msgstr "Pause" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "Wiedergabe pausieren oder wieder aufnehmen" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "Wiedergabe nach dem aktuellen Stück beenden" #: ../xl/main.py:440 msgid "Collection Options" msgstr "Bibliotheksoptionen" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "ORT" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "Stücke von ORT der Bibliothek hinzufügen" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "Wiedergabelistenoptionen" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "Aktuelle Wiedergabeliste zu ORT exportieren" #: ../xl/main.py:454 msgid "Track Options" msgstr "Stückoptionen" #: ../xl/main.py:456 msgid "Query player" msgstr "Abfrage" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "FORMAT" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" "Ruft den aktuellen Wiedergabestatus und Stückinformationen als FORMAT ab" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "TAGS" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "Vom aktuellen Stück auszulesende TAGS, mit --format-query nutzen" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "Grafische Abfrage von Daten des aktuellen Stücks" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "Titel des aktuellen Stücks ausgeben" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "Album des aktuellen Stücks ausgeben" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "Künstler des aktuellen Stücks ausgeben" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "Länge des aktuellen Stücks ausgeben" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "N" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "Bewertung für das aktuelle Stück auf N% festlegen" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "Bewertung des aktuellen Stücks ausgeben" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "Aktuelle Wiedergabeposition als Zeit ausgeben" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "Aktuellen Wiedergabefortschritt in Prozent ausgeben" #: ../xl/main.py:490 msgid "Volume Options" msgstr "Lautstärke-Optionen" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "Lautstärke um N% erhöhen" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "Lautstärke um N% verringern" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "Lautstärke stumm schalten oder wiederherstellen" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "Aktuelle Lautstärke in Prozent ausgeben" #: ../xl/main.py:507 msgid "Other Options" msgstr "Andere Optionen" #: ../xl/main.py:509 msgid "Start new instance" msgstr "Neue Instanz starten" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "Diesen Hilfetext anzeigen und beenden" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "Programmversion anzeigen und beenden" #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "Minimiert starten (im Benachrichtigungssymbol, wenn möglich)" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "Sichtbarkeit der GUI wechseln (wenn möglich)" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "Im abgesicherten Modus starten (nützlich bei Problemen)" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" "Import alter Daten aus Version 0.2.x erzwingen (Überschreibt aktuelle Daten)" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "Alte Daten aus Version 0.2.x nicht importieren" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" "Führt in jedem Fall zum Start von Exaile durch Kontroll-Optionen wie --play" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "Entwicklungs-/Debug-Optionen" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "VERZEICHNIS" #: ../xl/main.py:536 msgid "Set data directory" msgstr "Datenverzeichnis festlegen" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "Daten- und Konfigurationsverzeichnis festlegen" #: ../xl/main.py:540 msgid "MODULE" msgstr "MODUL" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "Ausgaben auf MODUL beschränken" #: ../xl/main.py:543 msgid "LEVEL" msgstr "STUFE" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "Ausgaben auf STUFE beschränken" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "Debugging-Informationen ausgeben" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "Aktiviere Debugging von xl.event; sorgt für ENORM viel Ausgaben" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "Threadname zu Logeinträgen hinzufügen" #: ../xl/main.py:555 msgid "TYPE" msgstr "TYP" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "Ausgaben von xl.event auf TYP beschränken" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "Verringert die Menge der Ausgaben" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "D-Bus-Unterstützung deaktivieren" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "HAL-Unterstützung deaktivieren" #: ../xl/main.py:580 msgid "Entire Library" msgstr "Gesamte Bibliothek" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "Zufällige %d" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "Bewertung > %d" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" "Exaile wurde noch nicht vollständig geladen. Vielleicht sollte auf das " "Signal „exaile_loaded“ gewartet werden?" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "Tags" #: ../xl/covers.py:505 msgid "Local file" msgstr "Lokale Datei" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "Das Plugin-Archiv hat ein inkorrektes Format." #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "Ein Plugin namens „%s“ ist bereits installiert." #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "Plugin-Archiv enthält einen unsicheren Pfad." #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "Kein Ladeort für die Datenbank angegeben" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "Es wurde kein Speicherort für die Datenbank angegeben" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "Verschiedene Künstler" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "Unbekannt" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr " & " #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "%dk" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" "Vorbis ist ein Open-Source, verlustbehafteter Audio-Codec mit hoher Qualität " "bei niedrigerer Dateigröße als MP3." #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" "Free Lossless Audio Codec (FLAC) ist ein Open-Source-Codec welcher " "verlustfrei komprimiert." #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" "Apples proprietärer verlustbehaftetes Audio-Format erzielt bessere " "Klangqualität als MP3 bei niedrigeren Bitraten." #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" "Ein proprietäres und älteres aber zugleich beliebtes verlustbehaftetes Audio-" "Format. VBR ermöglicht höhere Qualität als CBR, kann aber zu Problemen mit " "einigen Playern führen." #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" "Ein proprietäres und älteres aber zugleich beliebtes verlustbehaftetes Audio-" "Format. CBR bietet weniger Klangqualität als VBR, ist aber kompatibel mit " "jedem Player." #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "" "Ein sehr schnelles freies und verlustfreies Audio-Format mit guter " "Kompression." #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "Automatisch" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "Benutzerdefiniert" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "Automatisch" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "Keine Wiedergabe." #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" "Status: %(status)s, Titel: %(title)s, Künstler: %(artist)s, Album: " "%(album)s, Länge: %(length)s, Position: %(progress)s%% [%(position)s]" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "Version der Einstellungen ist neuer als die aktuelle." #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "Folgende Einstellung konnte nicht gespeichert werden: " #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "Unbekannter Einstellungs-Typ gefunden!" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "Ungültiger Playlist Typ" #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "Wiedergabeliste" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "M3U-Wiedergabeliste" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "PLS-Wiedergabeliste" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "Ungültiges Format für %s" #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "Nicht unterstützte Version %(version)s für %(type)s" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "ASX-Wiedergabeliste" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "XSPF-Wiedergabeliste" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "Zufallswiedergabe a_us" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "Zufallswiedergabe von _Stücken" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "Zufallswiedergabe von _Alben" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "Wiederholung a_us" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "_Alle wiederholen" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "_Eins wiederholen" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "Dynamisch _aus" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "Dynamisch durch ähnliche _Künstler" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "Sekunden" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "Minuten" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "Stunden" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "Tage" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "Wochen" #: ../xl/lyrics.py:305 msgid "Local" msgstr "Lokal" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "Warteschlange" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "Aktuelle Wiedergabeliste ersetzen" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "An aktuelle Wiedergabeliste anhängen" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "Verzeichnis öffnen" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" "Diese Datei kann nicht in den Müll verschoben werden. Stattdessen permanent " "von der Festplatte löschen?" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "In den Müll verschieben" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "Aktuelles Stück zeigen" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "Name:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "Irgendeine Bedingung" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "Zufällige Ergebnisabfolge" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "Begrenzen auf: " #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr " Stücke" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "Keine Wiedergabe" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "Spulen: %s" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "Verschieben" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "Neue Markierung" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "Stumm" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "%d%%" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "Volle Lautstärke" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" "$title\n" "von $artist\n" "aus $album" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "Verschiedene" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "%(track_count)d insgesamt (%(total_duration)s)" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "%d in Bibliothek" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "%d angezeigt" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "%d ausgewählt" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "Warteschlange" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "Warteschlange (%d)" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "Nr." #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "Stücknummer" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "Titel" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "Künstler" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "Komponist" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "Album" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "Länge" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "Disk" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "CD-Nummer" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "Bewertung" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "Datum" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "Genre" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "Bitrate" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "Ort" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "Dateiname" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "Wiedergabeanzahl" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "BPM" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "Letzte Wiedergabe" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "Hinzufügedatum" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "Zeitplan" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "Kommentar" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "Gruppierung" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "Größe _veränderlich" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "_Automatische Größe" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "Bewertung:" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "Zufallswiedergabe" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "Wiederholung" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "Dynamisch" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "Momentanen Titel aus der Playlist entfernen" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "Wiedergabeliste mischen" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "Auswahl mischen" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "Neue Wiedergabeliste" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "Umbenennen" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "Wiedergabe nach diesem Stück beenden" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "Wiedergabe nach diesem Stück fortsetzen" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "Erfordert Plugins welche dynamische Wiedergabelisten bereitstellen" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "Dynamisch ähnliche Stücke der Wiedergabeliste hinzufügen" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "Zu öffnende Adresse eingeben" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "Adresse aufrufen" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "Dateityp wählen (nach Erweiterung)" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "Medium zum Öffnen auswählen" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "Unterstützte Dateien" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "Musikdateien" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "Wiedergabelisten" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "Alle Dateien" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "Ordner zum Öffnen auswählen" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "Wiedergabeliste importieren" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "Aktuelle Wiedergabeliste exportieren" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "Relative Pfade auf Stücke" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "Playlist gespeichert als %s" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "%s schließen" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "Änderungen an %s vor dem Schließen speichern?" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "Änderungen gehen ohne Sicherung verloren." #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "Schließen, ohne zu speichern" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "Ja zu allen" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "Nein zu allen" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "%(count)s von %(total)s gespeichert." #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "Fehler beim Kopieren von %s: %s" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "Datei existiert bereits, %s überschreiben?" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "Name der Wiedergabeliste:" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "Neue Wiedergabeliste hinzufügen …" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "Kein Name für die Wiedergabeliste eingegeben" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "Eine Wiedergabeliste mit dem angegebenen Namen existiert bereits." #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "Tab schließen" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "$title (von $artist)" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "Umschalten: nach diesem Stück stoppen" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "Fehler bei der Wiedergabe!" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "Puffern: %d%% …" #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "Wiedergabe fortsetzen" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "Wiedergabe unterbrechen" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "Export der Wiedergabeliste fehlgeschlagen!" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "Wiedergabe starten" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "Exaile Musikwiedergabe" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "_Neue Wiedergabeliste" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "_Adresse aufrufen" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "Verzeichnisse öffnen" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "Aktuelle Wiedergabeliste _exportieren" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "Neustarten" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "Bibliothek" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "_Warteschlange" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "C_over" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "_Wiedergabewerkzeugleiste" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "_Spalten" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "Wiedergabeliste _löschen" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "Gerätemanager" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "Bibliothek neu einlesen" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "Eigenschaften des Stücks" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "Abbrechen" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "Originalalbum" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "Textschreiber" #: ../xlgui/properties.py:54 msgid "Website" msgstr "Website" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "Cover" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "Originalkünstler" #: ../xlgui/properties.py:57 msgid "Author" msgstr "Autor" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "Originaldatum" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "Arrangeur" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "Dirigent" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "Interpret" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "Copyright" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "Liedtexte" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "Stück" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "Version" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "ISRC" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "Kodiert durch" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "Organisation" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "Modifikationsdatum" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "Wiedergabeanzahl" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "Schreiben der Tags fehlgeschlagen" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" "Die Tags konnten in folgende Dateien nicht geschrieben werden\n" "{files}" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "Stück %(current)d von %(total)d editieren" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "Änderungen vor dem Schließen anwenden?" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "Die Änderungen gehen verloren, wenn sie nicht jetzt angewendet werden." #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "%s:" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "von:" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "JPEG-Bild" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "PNG-Bild" #: ../xlgui/properties.py:919 msgid "Image" msgstr "Bild" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "Verlinktes Bild" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "{width}x{height} Pixel" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "{format} ({width}x{height} Pixel)" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "Bild für das Cover auswählen" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "Unterstützte Bildformate" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "Aktuellen Wert allen Stücken zuweisen" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "{outstanding} Cover zu holen" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "Alle Cover geholt" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "Alben und Cover sammeln …" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "Cover anzeigen" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "Cover abrufen" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "Cover entfernen" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "Cover für %s" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "Coveroptionen für %(artist)s - %(album)s" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "Laden …" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "Keine Cover gefunden." #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" "Keine der aktivierten Quellen hat ein Cover für dieses Stück, bei Bedarf " "sollten weitere Quellen aktiviert werden." #: ../xlgui/devices.py:76 msgid "Icon" msgstr "Symbol" #: ../xlgui/devices.py:81 msgid "Device" msgstr "Gerät" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "Treiber" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "Bibliothek einlesen …" #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "%s einlesen …" #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "Warteschlangenstatus umschalten" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "An Warteschlange anhängen" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "Eigenschaften" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "Neuer Sender" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "Neue dynamische Wiedergabeliste" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "Bearbeiten" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "Wiedergabeliste exportieren" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "Dateien exportieren" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "Wiedergabeliste entfernen" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "Verzeichnis für den Dateiexport auswählen" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "Soll diese Wiedergabeliste unwiederbringlich entfernt werden?" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "Neuen Namen für die Wiedergabeliste eingeben" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "Wiedergabeliste umbenennen" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "Entfernen" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "Für eine neue Wiedergabeliste hier ablegen" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "Kürzlich geschlossene Tabs" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "Wiedergabeliste %d" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" "{playlist_name} ({track_count} Stücke, geschlossen vor {minutes} Minuten)" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" "{playlist_name} ({track_count} Stücke, geschlossen vor {seconds} Sekunden)" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "Verzeichnis hinzufügen" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "Verzeichnis nicht hinzugefügt." #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" "Dieses Verzeichnis oder ein übergeordnetes ist bereits Teil der Bibliothek." #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "Übertrage auf %s …" #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "Streams laden …" #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "Radiostation hinzufügen" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "Adresse:" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "Gespeicherte Stationen" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "Radio-Streams" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "Aktualisieren" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "Name für die neue Wiedergabeliste eingeben" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "Genre – Künstler" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "Genre – Album" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "Jahr – Künstler" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "Jahr – Album" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "Künstler (Jahr – Album)" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "Bibliothek neu einlesen" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "Größe" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s KB" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "und" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "ist" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "ist nicht" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "ist gesetzt" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "ist nicht gesetzt" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "enthält" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "enthält nicht" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "RegExp" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "nicht RegExp" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "mindestens" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "höchstens" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "vor" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "nach" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "zwischen" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "größer als" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "kleiner als" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "in den letzten" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "nicht in den letzten" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "Wiedergaben" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "Jahr" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "%(first)s, %(second)s und andere" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "%(first)s und %(second)s" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "Dynamische Wiedergabelisten" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "Eigene Wiedergabelisten" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "Dynamische Wiedergabeliste hinzufügen" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "Dynamische Wiedergabeliste bearbeiten" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "Exportiere %s" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "Wiedergabe" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "Plugins" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "Unkategorisiert" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "Plugin-Informationen konnten nicht geladen werden!" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "Fehlgeschlagenes Plugin: %s" msgstr[1] "Fehlgeschlagene Plugins: %s" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "Plugin konnte nicht deaktiviert werden!" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "Plugin konnte nicht aktiviert werden!" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "Plugin auswählen" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "Plugin-Archive" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "Installation der Plugindatei fehlgeschlagen!" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "Cover" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "Erscheinung" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "Bibliothek" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "der die das" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "Auf Standardwerte zurücksetzen" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "Exaile neustarten?" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "Ein Neustart ist erforderlich, um diese Änderung durchzuführen." #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "Aktion" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "Tastenkürzel" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "Wiedergabelisten" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "Über Exaile" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "© 2009-2012" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "Dieses Programm ist freie Software. Sie können es unter den Bedingungen der " "GNU\n" "General Public License, wie von der Free Software Foundation " "veröffentlicht,\n" "weitergeben und/oder modifizieren, entweder gemäß Version 2 der Lizenz oder\n" "(nach Ihrer Option) jeder späteren Version. \n" "\n" "Die Veröffentlichung dieses Programms erfolgt in der Hoffnung, daß es Ihnen " "von\n" "Nutzen sein wird, aber OHNE IRGENDEINE GARANTIE, sogar ohne die implizite\n" "Garantie der MARKTREIFE oder der VERWENDBARKEIT FÜR EINEN BESTIMMTEN ZWECK.\n" "Details finden Sie in der GNU General Public License. \n" "\n" "Sie sollten ein Exemplar der GNU General Public License zusammen mit diesem\n" "Programm erhalten haben. Falls nicht, schreiben Sie an die Free Software\n" "Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA.\n" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "Mathias Brodala" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "Covermanager" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "Cover _holen" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "Zufällige Reihenfolge der Wiedergabe" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "Wiedergabe wiederholen" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "_Suche:" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "Covermanager" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "Die Herkunft dieses Covers" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "Als Cover _festlegen" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "_Datei" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "_Bearbeiten" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "_Ansicht" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "_Werkzeuge" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "_Hilfe" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "Vorheriges Stück" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" "Wiedergabe beenden\n" "\n" "Rechtsklick zum Stoppen nach dem gewählten Stück" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "Nächstes Stück" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0:00 / 0:00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "Eigenschaften des Stücks" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "Tag _Hinzufügen" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "Tag _Entfernen" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "ab → A_b" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "Ersten Buchstaben aller Tags groß schreiben" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "Vorheriges" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "Nächstes" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "Andere" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "32x32 Pixel Symboldatei (nur PNG)" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "Andere Symboldatei" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "Vorderseite" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "Rückseite" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "Faltblatt" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "Medium (z.B. Oberseite der CD)" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "Hauptinterpret/-darsteller/-solist" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "Interpret/Darsteller" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "Band/Orchester" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "Lyriker/Textautor" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "Aufnahmeort" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "Während der Aufnahme" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "Während der Aufführung" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "Film-/Video-Bildschirmfoto" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "Ein hell gefärbter Fisch" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "Illustration" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "Band-/Künstlerlogo" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "Verlags-/Studiologo" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "Klicken oder Dateien hierher ziehen, um das Coverbild festzulegen" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "Typ:" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "Beschreibung:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "Bibliotheksverwaltung" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "Überwacht" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "Radio" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "Alle Stücke der Wiedergabeliste hinzufügen" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "CD importieren" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "Station hinzufügen" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "Dateien" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "Vorheriges besuchtes Verzeichnis" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "Nächstes besuchtes Verzeichnis" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "Übergeordnetes Verzeichnis" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "Verzeichnisliste neu einlesen" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "Heimverzeichnis" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "Suche: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "Suchfeld leeren" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "Die Bibliothek ist leer." #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "Musik hinzufügen" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" "Bibliotheksansicht aktualisieren\n" "(Umschalt-Taste gedrückt halten um die Bibliothek neu einzulesen)" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "In Tags eingebettete Cover nutzen" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "Cover aus lokalen Dateien nutzen" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" "Diese Option sucht Cover im gleichen\n" "Verzeichnis wie das Stück." #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "Bevorzugte Dateinamen:" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "Kommaseparierte Liste von Dateinamen ohne Erweiterungen" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "Cover automatisch beim Start der Wiedergabe holen" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "Suchreihenfolge für Quellen:" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "(Verschieben zum Umsortieren)" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "Letzte Wiedergabeliste beim Starten anzeigen" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "Beim Schließen eigener Wiedergabelisten nachfragen" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "Inhalt bei Doppelklick in den Seitenleisten ersetzen" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" "Stücke hinzugefügt durch Doppelklick in den Paneelen ersetzen den Inhalt der " "aktuellen Wiedergabeliste, anstatt an diese angehängt zu werden." #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "Anhängen/Ersetzen via Menüeintrag startet Wiedergabe" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" "Bei Nutzung eines Menüeintrags zum Hinzufügen/Ersetzen von Stücken in der " "Wiedergabeliste wird die Wiedergabe gestartet wenn gerade ein Stück " "abgespielt wird. Dies war das Standardverhalten vor Exaile 0.3.3." #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "Stücke standardmäßig in Warteschlange einreihen statt abzuspielen" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" "Bei Doppelklick oder Druck auf die Eingabe-Taste in einer Wiedergabeliste " "Stück in die Wiedergabeliste einreihen, statt es abzuspielen" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "Wiedergabe-Engine: " #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "Weiche Übergange bei Interaktion" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "Übergangs-Dauer (ms):" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "Crossfading (EXPERIMENTELL)" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "Crossfade-Dauer (ms):" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "Wiedergabe-Puffer: " #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "Gerät: " #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "Benutzerdefinierte Pipeline:" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "Wiedergabe beim Starten wiederaufnehmen" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "Wiedergabe im Pausezustand wiederaufnehmen" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "Hinzufügen eines Stücks zur leeren Warteschlange startet Wiedergabe" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "Bei Wiedergabe Stück aus der Warteschlange entfernen" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "Automatisch zum nächsten Stück gehen" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "Normal" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "Vereinigt (instabil)" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "Plugin" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "Aktiviert" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "Kein Plugin ausgewählt" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "Installierte Plugins" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "Autoren:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "Version:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "Installieren" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "Kein Plugin ausgewählt" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "Verfügbare Plugins" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "Updates installieren" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "Updates" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "Plugindatei installieren" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "Infobereich anzeigen" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "Der Infobereich enthält das Cover und Stückinformationen" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "Cover im Infobereich anzeigen" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "Tableiste immer anzeigen" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "Platzierung der Tabs:" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "Schrift der Wiedergabeliste:" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "Auf System-Standardschrift zurücksetzen" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "Anzahl der Stücke in der Bibliothek anzeigen" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "Alphatransparenz nutzen:" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" "Warnung: diese Option kann zu Anzeigefehlern bei Fenstermanagern ohne " "Composite-Unterstützung führen." #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "Benachrichtigungssymbol anzeigen" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "Ins Benachrichtigungssymbol minimieren" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "Minimieren" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "Aktuelles Stück sichtbar halten" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "Begrüßungsbildschirm beim Starten anzeigen" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "Links" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "Rechts" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "Oben" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "Unten" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "Einstellungen" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" "Vom Anfang von Künstler-Tags zum Sortieren zu entfernende Wörter (getrennt " "durch Leerzeichen):" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "(Zum Wiederherstellen der Standardwerte rechtsklicken)" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "Dateibasierte Erkennung von Compilations" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "Gerätemanager" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "Gerät hinzufügen" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "Gerätetyp:" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "Erkannte Geräte:" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "Benutzerdefiniert: " #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "Warteschlangenmanager" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "Ermittle Stimmung ..." #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "Stimmung ermittelt." #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "Stimmungsleiste konnte nicht eingelesen werden." #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "Moodbar-Anwendung ist nicht verfügbar." #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "Stimmungsleiste" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "Fehler beim Ausführen von Streamripper" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "Streamripper" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "Last.fm Lieblinge" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "Der API-Schlüssel ist ungültig." #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "Bitte die eingegebenen Daten kontrollieren." #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "Webbrowser konnte nicht gestartet werden" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" "Bitte die folgende Adresse kopieren und mit dem Webbrowser öffnen:\n" "{url}" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "Liebling" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "Last.fm-Liebling" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "Als Liebling markieren" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "Aus Lieblingen entfernen" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "Weckuhr" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "Dieses Plugin benötigt mindestens PyGTK 2.22 und GTK 2.20." #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "Hauptmenü" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "Shoutcast-Server kontaktieren …" #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "Fehler beim Verbindungsaufbau zum Shoutcast-Server." #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "Suchbegriffe eingeben" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "Shoutcast-Suche" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "Suchergebnisse" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "Suche" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "Keine Liedtexte gefunden." #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "Gehe zu: " #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "Beliebig" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "Liedtext-Betrachter" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "AudioScrobbler" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "Überprüfung erfolgreich" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "Überprüfung fehlgeschlagen" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "Audioscrobbler aktivieren" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "Equalizer" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "Herunterfahren nach Wiedergabe" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "Herunterfahren vorgemerkt" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "Der Computer wird am Ende der Wiedergabe heruntergefahren." #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "Bevorstehendes Herunterfahren" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "Der Computer wird in %d Sekunden heruntergefahren." #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "Herunterfahren fehlgeschlagen" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "Der Computer konnte nicht mit Hilfe von D-Bus heruntergefahren werden." #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "Vorschau-Gerät" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "Vorschau-Wiedergabe" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "Vorschau" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "Notify-OSD Benachrichtigungen" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "%(title)s" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "von %(artist)s" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "aus %(album)s" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "IPython-Konsole – Exaile" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "IPython-Konsole anzeigen" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "IPython-Konsole" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "Benachrichtigungen" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" "von %(artist)s\n" "aus %(album)s" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "CD importieren …" #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "Audio-CD" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "CD" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "Stücknummer" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "CD-Nummer" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "Wiedergabeanzahl" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "Künstler: " #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" "Schon gewusst …\n" "\n" "%s" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "Wikipedia" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "Anzeige der Wikipedia-Seite des aktuellen Interpreten." #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "Abschnitt wiederholen" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "Beginn wiederholen" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "Wiederholungs-Ende" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "Minimodus" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "$tracknumber - $title" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "$title von $artist" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "$title ($__length)" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "Zurück" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "Zum vorherigen Stück gehen" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "Vorheriges Stück" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "Weiter" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "Zum nächsten Stück gehen" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "Nächster Titel" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "Wiedergabe/Pause" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "Wiedergabe starten, pausieren oder wiederaufnehmen" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "Wiedergabe starten" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "Wiedergabe fortsetzen" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "Wiedergabe pausieren" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "Stopp" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "Wiedergabe beenden" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "Wiedergabe nach dem aktuellen Stück fortsetzen" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "Lautstärke" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "Lautstärke ändern" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "Wiederherstellen" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "Das Hauptfenster wiederherstellen" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "Hauptfenster wiederherstellen" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "Bewertung des aktuellen Stücks festlegen" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "Stückwähler" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "Einfacher Wähler für Stücklisten" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "Wiedergabelisten-Knopf" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "Zugriff auf die aktuelle Wiedergabeliste" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "$title ($current_time / $total_time)" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "Fortschrittsknopf" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "Wiedergabefortschritt und Zugriff auf die aktuelle Wiedergabeliste" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "Fortschrittsanzeige" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "Wiedergabefortschritt und Spulen" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "Gruppen-Tagger" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "Alle Tags von der Sammlung holen" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "Stücke mit allen Tags anzeigen" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "Stücke mit Tags anzeigen (benutzerdefiniert)" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "Stücke mit gewählten anzeigen" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "Stücke mit Tag „%s“ anzeigen" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "Stücke mit allen gewählten anzeigen" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "Gruppe" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "Neue Gruppe hinzufügen" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "Gruppe löschen" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "Neue Kategorie hinzufügen" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "Kategorie entfernen" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "Stücke mit gewählten anzeigen (benutzerdefiniert)" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "Neuer Tag-Wert?" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "Neuen Tag-Wert eingeben" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "Neue Kategorie?" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "Neuen Gruppen-Kategorie-Wert eingeben" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "Gruppe hinzufügen" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "Gewählte zur Auswahl hinzufügen" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "Stücke mit Gruppen anzeigen" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "Muss Tag haben [UND]" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "Kann Tag haben [ODER]" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "Darf Tag nicht haben [NICHT]" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "Ignoriert" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "Gewählte Stücke" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "Wiedergabe-Verstärkung" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "Auswählen durch Ablegen" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "Anhängen und Abspielen" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "Anhängen" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "Verlauf" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "Wiedergabe-Verlauf" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "Verlauf leeren?" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "Verlauf speichern" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "Verlauf leeren" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "Bereit" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "Jamendo-Katalog durchsuchen …" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "Stückinformationen abrufen …" #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "Bildschirmanzeige" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" "$title\n" "von $artist\n" "aus $album" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" "$title\n" "von $artist\n" "aus $album" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "Amazon-Cover" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "Podcasts" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "Podcast" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "Podcast aktualisieren" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "Löschen" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "Adresse des neuen Podcasts eingeben" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "Podcast öffnen" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "%s laden …" #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "Fehler beim Laden des Podcasts." #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "Podcasts laden …" #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "Podcast-Datei konnte nicht gespeichert werden" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "Desktopcover" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "Multi-Weckuhr" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "Kontext" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "Kontextinformationen" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "Lesezeichen für dieses Stück setzen" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "Lesezeichen entfernen" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "Lesezeichen verwerfen" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "Lesezeichen" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "Pause durch Bildschirmschoner" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "DAAP-Server" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "BPM-Zähler" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "BPM von %d für %s festlegen?" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "DAAP-Client" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "Manuell …" #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "IP-Adresse und Port für Share eingeben" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "IP-Adresse und Port eingeben." #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" "Dieser Server unterstützt multiple Verbindungen nicht.\n" "Vor dem Herunterladen muss die Wiedergabe gestoppt werden." #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "Serverliste neu einlesen" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "Vom Server trennen" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "Ort zum Speichern wählen" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "Mit DAAP verbinden …" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "Abgedunkelte Abspielposition an Stelle des Cursors" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "Dunkelheit:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "Funktions-Stil verwenden" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "Nur Funktion anzeigen" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "Farbthema verwenden " #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "Grundfarbe:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "Grundfarbe" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "Speicherort:" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "Übertragungs-Port:" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "In eine einzige Datei rippen" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "Unvollständige Dateien löschen" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "API-Schlüssel:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "Geheimnis:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "Zugriffsgenehmigung anfragen" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" "Um einen API-Schlüssel und ein Geheimnis zu erhalten bitte " "Your API Account " "aufrufen. Nachdem diese Daten hier eingegeben und die Zugriffsgenehmigung " "angefragt und bestätigt wurde sind alle Vorbereitungen abgeschlossen." #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "Alarmzeit" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "Montag" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "Dienstag" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "Mittwoch" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "Donnerstag" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "Freitag" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "Samstag" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "Sonntag" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "Alarmtage" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "Überblendungen aktivieren" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "Minimale Lautstärke:" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "Maximale Lautstärke:" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "Schrittweite:" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "Zeit pro Schritt:" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "Überlagerung:" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "Cover anzeigen" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "Kreis-Anzeige" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "Prozentualer Text" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "Keine" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "Schrift der Liedtexte:" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "Liedtexte aktualisieren" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "Stücke mittels Audioscrobbler übermitteln" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "Menüeintrag zum De-/Aktivieren von Übertragungen" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "Passwort:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "Benutzername:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "Anmeldedaten überprüfen" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "pre" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "+12 dB" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "0" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "-24 dB" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "29" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "59" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "119" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "237" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "474" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "947" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "1.9K" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "3.8K" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "7.5K" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "15K" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "Beim Stückwechsel" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "Beim Starten, Pausieren und Stoppen der Wiedergabe" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "Bei Veränderung der Meta-Daten" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "Beim Hovern des Benachrichtigungssymbols" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "Wenn das Hauptfenster fokussiert ist" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "Anzeigen" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "Album-Cover als Symbole anzeigen" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" "Mediensymbole für Benachrichtungen über Pause, Stopp und Wiederaufnahme " "verwenden" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "Symbole" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "Künstlerzeile:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" "Die Platzhalter „%(title)s“, „%(artist)s“ und „%(album)s“ werden durch " "Titel, Künstler und Album des betreffenden Stücks ersetzt. Ist der jeweilige " "Wert unbekannt, wird dies so gekennzeichnet." #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "Titelbereich:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "Albumzeile:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "Inhalt" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "Linux" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "LightBG" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "NoColor" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "Sichtbarkeit:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "Schrift:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "Textfarbe:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "Hintergrundfarbe:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "IPython-Farbschema:" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "Größe anzeigter Cover anpassen" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "Nur Künstler:" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "Nur Album:" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" "Der Inhalt des Benachrichtigungsfensters. Hierbei werden die Platzhalter " "„%(title)s“, „%(artist)s“ und „%(album)s“ durch Titel, Künstler und Album " "des betreffenden Stücks ersetzt. Ist der jeweilige Wert unbekannt, wird dies " "so gekennzeichnet." #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "Künstler und Album:" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "Nachrichtentext" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "Ogg Vorbis" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "FLAC" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "AAC" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "MP3 (VBR)" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "MP3 (CBR)" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "WavPack" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "Importformat: " #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "Importqualität: " #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "Zielverzeichnis: " #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" "Jeder Tag kann mittels $tag oder ${tag} genutzt werden. " "Internen Tags wie $__length müssen zwei Unterstriche vorangestellt " "werden." #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "Kurzcode der Wikipedia-Sprachversion (en, de, fr, …)" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "Sprache:" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "Start" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "Zurück" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "Vorwärts" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" "Die Reihenfolge von Steuerelementen kann durch einfaches Hoch- und " "Runterziehen verändert werden. (Alternativ per Alt+Oben/Unten)" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "Steuerelemente" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "Format des Stücktitels" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "Immer im Vordergrund" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "In der Taskliste anzeigen" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "Fensterdekoration anzeigen:" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "Auf allen Desktops anzeigen" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "Knopf im Hauptfenster anzeigen" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "Komplett" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "Einfach" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "Gruppen-/Kategorie-Schrift:" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "Korrektur für ganze Alben bevorzugen" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "Korrektur pro Album über Korrektur pro Stück bevorzugen" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "Übersteuerungsschutz" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "Gegen Geräuschverzerrung durch Über-Verstärkung schützen" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "Zusätzliche Verstärkung für alle Dateien" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "Zusätzliche Verstärkung (dB):" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "Fallback-Korrektur für Dateien ohne Verstärkungsinformationen" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "Ersatz-Korrekturpegel (dB):" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "Verlauf nach Beenden beibehalten" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "Verlauf-Länge:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "Sortieren nach:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "Sortierrichtung:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "Ergebnisse:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "Erweitert" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "Absteigend" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "Aufsteigend" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "Veröffentlichungsdatum" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "Bewertung diese Woche" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "Bewertung diesen Monat" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "Hinzufügezahl zu Wiedergabelisten" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "Anzahl der Downloads" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "Anhörzahl" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "Highlight" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "Highlight-Datum" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "Genre/Tags" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" "Jeder Tag kann mittels $tag oder ${tag} genutzt werden. " "Internen Tags wie $__length müssen zwei Unterstriche vorangestellt " "werden.\n" "Pango Text Attribute Markup wird unterstützt." #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "Anzeigeformat" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "Anzeigedauer:" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "Hintergrund:" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "Fortschritt anzeigen" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "Rahmen-Abrundung:" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" "Um diese Informationen zu erhalten ist die Registierung eines \n" "Amazon AWS-Accounts auf http://aws.amazon." "com/ erforderlich." #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "Podcast hinzufügen" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "Schwerpunkt:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "X-Abstand:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "Pixel" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "Y-Abstand:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "Covergröße erzwingen" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "Größe:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "Überblendungen aktivieren" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "Übergangs-Dauer:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "ms" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "Oben links" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "Oben rechts" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "Unten links" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "Unten rechts" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "Hinzufügen" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "Alarme" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "Lautstärke einblenden" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "Lautstärke vor Einblenden:" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "Lautstärke nach Ausblenden:" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "Übergangs-Schrittweite:" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "Übergangs-Dauer (s):" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "Wiedergabeliste erneut durchlaufen" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "Wiedergabe" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "Bitte Last.fm-Authentifizierung eingeben:" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "Auf Last.fm registrieren" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "Cover im Lesezeichenmenü anzeigen (erfordert Neustart)" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "Wiedergabe beim Schließen des Bildschirmschoners fortsetzen" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "Servername" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "Serverhost:" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "Port:" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "Server aktiviert" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "IPv6-Server anzeigen (experimentell)" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "Letzte DAAP-Server speichern" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "Aktuelles Stück" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" "Legt den Status des aktuell abgespielten Stücks in Pidgin fest. Unterstützte " "Dienste werden in der Pidgin-FAQ genannt." #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "Benachrichtigungen" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" "Ersetzt die normale Fortschrittsleiste durch eine Stimmungsleiste.\n" "Benötigt: moodbar" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "Grafische Oberfläche" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "GNOME-Multimediatasten" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" "Ermöglicht die Steuerung Exailes durch das Multimediatasten-System von " "GNOME. Kompatibel mit GNOME >= 2.20.x" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "Tastenkürzel" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" "Ermöglicht die Aufzeichnung von Streams via streamripper.\n" "Benötigt: streamripper" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "Ausgabe" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "MusicBrainz-Cover" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "Bezieht MusicBrainz bei der Suche nach Covern ein." #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" "Zeigt an, welche Stücke geliebt wurden und ermöglicht das Lieben von " "Stücken.\n" "\n" "Bitte unbedingt sicherstellen, dass in den Plugin-Einstellungen ein " "korrekter API-Schlüssel und das Geheimnis eingetragen wurden.\n" "\n" "Benötigt das Plugin „AudioScrobbler“ für Nutzername und Passwort." #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "Taggen" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "Spielt Musik zu einer angegebenen Zeit\n" "\n" "Allerdings wird Exaile zu diesem Zeitpunkt nur die Wiedergabe starten, es " "sollten sich also die zu spielenden Stücke in der Wiedergabeliste befinden." #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "Werkzeuge" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "Hauptmenü-Schaltfläche" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" "Verschiebt das Hauptmenü in eine Schaltfläche über den Paneelen.\n" "Benötigt: PyGTK >= 2.22, GTK >= 2.20" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "Last.fm-Cover" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "Bezieht Last.FM bei der Suche nach Covern ein" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" "Aktiviert die Coveranzeige und fügt AWN einige Menüelemente für Exaile hinzu" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "Shoutcast-Radio" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "Radioliste von Shoutcast" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "Medien-Quellen" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "Ex Falso Tag-Editor" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" "Integriert den Ex Falso Tag-Editor in Exaile.\n" "Benötigt: Ex Falso." #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" "Fügt einen Tab hinzu, worin Liedtexte für das\n" "abgespielte Stück angezeigt werden." #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" "Übermittelt Wiedergabe-Informationen an Last.fm und ähnliche Dienste welche " "AudioScrobbler unterstützen." #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "XKeys" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "Globale Tastenkürzel mittels Xlib (mmkeys.so)" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "Multimediatasten für Windows" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" "Ermöglicht die Nutzung von Multimediatasten (zu finden auf den meisten " "modernen Tastaturen) bei Nutzung von Exaile unter Windows.\n" "\n" "Benötigt: pyHook " #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "Ein 10-Band-Equalizer" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "Effekt" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "Lyrics Fly" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "Holt Liedtexte von lyricsfly.com" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "Ruhezustand unterbinden" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" "Verhindert die Aktivierung des Ruhezustands während der Musik-Wiedergabe." #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "Librivox" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "Audiobücher auf librivox.org durchsuchen und anhören" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "Ermöglicht das Herunterfahren des Computers am Ende der Wiedergabe." #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "USB-Massenspeicher-Abspielgeräte" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" "Unterstützung von tragbaren Abspielgeräten durch das USB-Massenspeicher-" "Protokoll" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "Geräte" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" "Ermöglicht die Wiedergabe von Musik über ein zweites Gerät (mittels " "„Vorschau“ im Kontextmenü von Wiedergabelisten). Nützlich für DJs." #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "Last.fm Dynamische Wiedergabelisten" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "Das Last.fm-Backend für dynamische Wiedergabelisten" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "Dynamische Wiedergabelisten" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" "Dieses Plugin zeigt Benachrichtigungen beim Starten, Wiederaufnehmen und " "Stoppen der Wiedergabe eines Stückes an. Entweder das zugehörige Cover oder " "ein Media-Symbol wird hierbei angezeigt um die letzte Aktion darzustellen.\n" "\n" "Benötigt: python-notify\n" "Empfiehlt: notify-osd" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "Bietet eine IPython-Konsole zur Manipulation Exailes." #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "Entwicklung" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "Zeigt eine Benachrichtigung beim Wiedergeben eines Stücks an" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "CD-Wiedergabe" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" "Ermöglicht die Wiedergabe von Audio-CDs.\n" "\n" "Benötigt: HAL für die automatische Erkennung von CDs, cddb-py (http://cddb-" "py.sourceforge.net/) für die Suche nach Tags" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" "Bietet Wikipedia-Informationen über den aktuellen Künstler.\n" "Benötigt: python-webkit" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "Information" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "A-B Wiederholung" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "Wiederholt kontinuierlich einen Teil eines Titels" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "Kompakter Modus für Exaile mit konfigurierbarem Erscheinungsbild" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "Gruppen-Tagger" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" "Ermöglicht das Kategorisieren mittels Verwaltung des des grouping/category-" "Tags in Audiodateien." #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "Ermöglicht Wiedergabe-Verstärkung" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "Ablage-Kontrollleistensymbol" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" "Bietet ein alternatives Kontollleistensymbol, welches abgelegte Dateien " "akzeptiert.\n" "\n" "Benötigt: python-eggtrayicon" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" "Implementiert das MPRIS-DBus-interface (org.freedesktop.MediaPlayer) zur " "Steuerung von Exaile." #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "Jamendo" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "Ermöglicht Zugriff auf den Jamendo-Musikkatalog." #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "Ein Popup-Fenster mit Informationen zum aktuell abgespielten Stück." #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "iPod-Unterstützung" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" "Ein Plugin für iPod-Unterstützung. Momentan nur lesend, keine " "Übertragungen.\n" "\n" "Benötigt: python-gpod." #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" "Bezieht Amazon bei der Suche nach Covern ein\n" "\n" "Um dieses Plugin zu nutzen sind ein AWS-API-Schlüssel sowie ein geheimer " "Schlüssel erforderlich." #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "Karaoke" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "Filtert Gesang aus" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "Bietet einfache Podcast-Unterstützung" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "Zeigt das aktuelle Cover auf dem Desktop an" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "Hallo Welt" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "Ein einfaches Plugin zum Testen des grundlegenden Plugin-Systems" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "Spielt Musik zu angegebenen Zeiten und Tagen\n" "\n" "Allerdings wird Exaile zu diesem Zeitpunkt nur die Wiedergabe starten, es " "sollten sich also die zu spielenden Stücke in der Wiedergabeliste befinden." #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "Kontextinformationen" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" "Zeigt verschiedenste Informationen über das aktuelle Stück an.\n" "Benötigt: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" "Ermöglicht das Setzen von Lesezeichen zur Speicherung und Wiederaufnahme von " "Positionen in Audiostücken." #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" "Pausiert die Wiedergabe abhängig vom Bildschirmschoner-Status und setzt sie " "optional wieder fort.\n" "\n" "Benötigt: GNOME- oder KDE-Bildschirmchoner (XScreenSaver oder XLockMore " "nicht unterstützt)" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "Lyrics Wiki" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" "Holt Liedtexte von lyrics.wikia.com\n" "Benötigt: python-beautifulsoup" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" "Dieses Plugin integriert spydaap (http://launchpad.net/spydaap) in Exaile, " "womit eine Bibliothek über DAAP freigegeben werden kann." #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "Ermöglicht die Wiedergabe von DAAP-Musikshares." #~ msgid "Clear" #~ msgstr "Leeren" #~ msgid "Close" #~ msgstr "_Schließen" #~ msgid "Close tab" #~ msgstr "Tab schließen" #~ msgid "Export as..." #~ msgstr "Exportieren als …" #~ msgid "%d KB" #~ msgstr "%d KB" #~ msgid "© 2009-2010" #~ msgstr "© 2009-2010" #~ msgid "GNOME" #~ msgstr "GNOME" #~ msgid "ALSA" #~ msgstr "ALSA" #~ msgid "OSS" #~ msgstr "OSS" #~ msgid "PulseAudio" #~ msgstr "PulseAudio" #~ msgid "JACK" #~ msgstr "JACK" #~ msgid "DirectSound" #~ msgstr "DirectSound" #~ msgid "AWN" #~ msgstr "AWN" #~ msgid "API Key:" #~ msgstr "API-Schlüssel:" #~ msgctxt "yes" #~ msgid "Monday" #~ msgstr "Montag" #~ msgctxt "yes" #~ msgid "Tuesday" #~ msgstr "Dienstag" #~ msgctxt "yes" #~ msgid "Wednesday" #~ msgstr "Mittwoch" #~ msgctxt "yes" #~ msgid "Thursday" #~ msgstr "Donnerstag" #~ msgctxt "yes" #~ msgid "Friday" #~ msgstr "Freitag" #~ msgctxt "yes" #~ msgid "Saturday" #~ msgstr "Samstag" #~ msgctxt "yes" #~ msgid "Sunday" #~ msgstr "Sonntag" #~ msgctxt "yes" #~ msgid "Use Fading" #~ msgstr "Überblendungen aktivieren" #~ msgctxt "yes" #~ msgid "Minimum volume:" #~ msgstr "Minimale Lautstärke:" #~ msgctxt "yes" #~ msgid "Maximum volume:" #~ msgstr "Maximale Lautstärke:" #~ msgctxt "yes" #~ msgid "Increment:" #~ msgstr "Schrittweite:" #~ msgctxt "yes" #~ msgid "Time per increment:" #~ msgstr "Zeit pro Schritt:" #~ msgid "Secret key:" #~ msgstr "Geheimer Schlüssel:" #~ msgid "Awn" #~ msgstr "Awn" #~ msgid "" #~ "Provides contextual wikipedia information.\n" #~ "Depends: python-webkit" #~ msgstr "" #~ "Bietet kontextabhängige Wikipedia-Informationen\n" #~ "Benötigt: python-webkit" #~ msgid "Add Playlist" #~ msgstr "Wiedergabeliste hinzufügen" #~ msgid "Quit" #~ msgstr "Beenden" #~ msgid "Add to Playlist" #~ msgstr "Zu Wiedergabeliste hinzufügen" #~ msgid "Autosize" #~ msgstr "Automatisch" #~ msgid "Exaile" #~ msgstr "Exaile" #~ msgid "Resizable" #~ msgstr "Änderbar" #~ msgid "Search:" #~ msgstr "Suche:" #~ msgid "Part" #~ msgstr "Teil" #~ msgid "Import" #~ msgstr "Import" #~ msgid "Date Added" #~ msgstr "Hinzufügedatum" #~ msgid "LastFM Radio" #~ msgstr "Last.fm-Radio" #~ msgid "Increases the volume by VOL%" #~ msgstr "Erhöht die Lautstärke um VOL%" #~ msgid "No covers found" #~ msgstr "Keine Cover gefunden" #~ msgid "0:00" #~ msgstr "0:00" #~ msgid "" #~ "Exaile now uses absolute URI's, please delete/rename your %s directory" #~ msgstr "" #~ "Exaile nutzt nun absolute URIs, bitte das %s-Verzeichnis löschen/" #~ "umbenennen." #~ msgid "Playing %s" #~ msgstr "Spiele %s" #~ msgid "Toggle Play or Pause" #~ msgstr "Wiedergabe oder Pause" #~ msgid "Show a popup of the currently playing track" #~ msgstr "Grafische Abfrage mit Hilfe eines Dialogs" #~ msgid "Set rating for current song" #~ msgstr "Bewertung für das aktuelle Stück festlegen" #~ msgid "Get rating for current song" #~ msgstr "Bewertung des aktuellen Stücks ausgeben" #~ msgid "Print the position inside the current track as time" #~ msgstr "Wiedergabeposition des aktuellen Stücks als Zeitpunkt ausgeben" #~ msgid "Print the progress inside the current track as percentage" #~ msgstr "Wiedergabefortschritt des aktuellen Stücks in Prozent ausgeben" #~ msgid "Decreases the volume by VOL%" #~ msgstr "Verringert die Lautstärke um VOL%" #~ msgid "Filter event debug output" #~ msgstr "Event-Debugging-Ausgabe filtern" #~ msgid "order must be a list or tuple" #~ msgstr "oder muss vom Typ Liste oder Tupel sein" #~ msgid " New song, fetching cover." #~ msgstr " Neues Stück, rufe Cover ab." #~ msgid "Device class does not support transfer." #~ msgstr "Geräteklasse unterstützt keine Transfers." #~ msgid "Plugin archive is not in the correct format" #~ msgstr "Inkorrektes Format des Plugin-Archivs" #~ msgid "A plugin with the name \"%s\" is already installed" #~ msgstr "Ein Plugin namens „%s“ ist bereits installiert" #~ msgid "%(minutes)d:%(seconds)02d" #~ msgstr "%(minutes)d:%(seconds)02d" #~ msgid "Streaming..." #~ msgstr "Streamen …" #~ msgid "New playlist title:" #~ msgstr "Neuer Titel der Wiedergabeliste:" #~ msgid "Save As..." #~ msgstr "Speichern unter …" #~ msgid "Toggle: Stop after selected track" #~ msgstr "Umschalten: nach diesem Stück stoppen" #~ msgid "%(playlist_count)d showing, %(collection_count)d in collection" #~ msgstr "%(playlist_count)d angezeigt, %(collection_count)d in Bibliothek" #~ msgid " (%(queue_count)d queued)" #~ msgstr " (%(queue_count)d in Warteschlange)" #~ msgid "Buffering: 100%..." #~ msgstr "Puffern: 100% …" #~ msgid "Stopped" #~ msgstr "Gestoppt" #~ msgid "" #~ "Exaile Music Player\n" #~ "Not playing" #~ msgstr "" #~ "Exaile Musikwiedergabe\n" #~ "Keine Wiedergabe" #~ msgid "%(title)s (by %(artist)s)" #~ msgstr "%(title)s (von %(artist)s)" #~ msgid "by %s" #~ msgstr "von %s" #~ msgid "from %s" #~ msgstr "aus %s" #~ msgid "In pause: %s" #~ msgstr "Pausiert: %s" #~ msgid "_Rename Playlist" #~ msgstr "Wiedergabeliste umbenennen" #~ msgid "_Save Changes To Playlist" #~ msgstr "Änderungen an der Wiedergabeliste speichern" #~ msgid "_Save As..." #~ msgstr "_Speichern unter …" #~ msgid "C_lear All Tracks" #~ msgstr "Alle Stücke entfernen" #~ msgid "_Close Playlist" #~ msgstr "Wiedergabeliste schließen" #~ msgid "Delete track" #~ msgstr "Stück löschen" #~ msgid "Open" #~ msgstr "Öffnen" #~ msgid "Export" #~ msgstr "Exportieren" #~ msgid "%d covers to fetch" #~ msgstr "%d Cover zu holen" #~ msgid "Start" #~ msgstr "Starten" #~ msgid "Enter the search text" #~ msgstr "Suchtext eingeben" #~ msgid "No track" #~ msgstr "Kein Stück" #~ msgid "Export current playlist..." #~ msgstr "Aktuelle Wiedergabeliste exportieren …" #~ msgid "Invalid file extension, file not saved" #~ msgstr "Ungültige Dateierweiterung, Datei nicht gespeichert" #~ msgid "Choose a file to open" #~ msgstr "Zu öffnende Datei auswählen" #~ msgid "Select File Type (By Extension)" #~ msgstr "Dateityp wählen (nach Erweiterung)" #~ msgid "File Type" #~ msgstr "Dateityp" #~ msgid "Extension" #~ msgstr "Erweiterung" #~ msgid "Add a directory" #~ msgstr "Verzeichnis hinzufügen" #~ msgid "" #~ "Path is already in your collection, or is a subdirectory of another path " #~ "in your collection" #~ msgstr "" #~ "Dieser oder ein übergeordneter Pfad befindet sich bereits in der " #~ "Bibliothek" #~ msgid "%(year)d-%(month)02d-%(day)02d" #~ msgstr "%(day)02d. %(month)02d. %(year)d" #~ msgid " songs" #~ msgstr " Stücke" #~ msgid "Add To New Playlist..." #~ msgstr "Zu neuer Wiedergabeliste hinzufügen …" #~ msgid "Idle." #~ msgstr "Inaktiv" #~ msgid "" #~ "This will permanantly delete the selected tracks from your disk, are you " #~ "sure you wish to continue?" #~ msgstr "" #~ "Dies wird die gewählten Stücke endgültig löschen. Soll wirklich " #~ "fortgefahren werden?" #~ msgid "Choose a plugin" #~ msgstr "Plugin auswählen" #~ msgid "Could not enable plugin: %s" #~ msgstr "Plugin %s konnte nicht aktiviert werden" #~ msgid "Could not disable plugin: %s" #~ msgstr "Plugin %s konnte nicht deaktiviert werden" #~ msgid "Repeat playlist" #~ msgstr "Wiedergabeliste wiederholen" #~ msgid "Dynamically add similar tracks" #~ msgstr "Dynamisch ähnliche Stücke hinzufügen" #~ msgid "Remove current track from playlist" #~ msgstr "Aktuelles Stück aus der Wiedergabeliste entfernen" #~ msgid "..." #~ msgstr "…" #~ msgid "Add device" #~ msgstr "Gerät hinzufügen" #~ msgid "New Search" #~ msgstr "Neue Suche" #~ msgid "Album:" #~ msgstr "Album:" #~ msgid "Artist:" #~ msgstr "Künstler:" #~ msgid "Basic" #~ msgstr "Allgemein" #~ msgid "Bitrate:" #~ msgstr "Bitrate:" #~ msgid "Date:" #~ msgstr "Datum:" #~ msgid "Details" #~ msgstr "Details" #~ msgid "File Size:" #~ msgstr "Dateigröße:" #~ msgid "Genre:" #~ msgstr "Genre:" #~ msgid "Length:" #~ msgstr "Länge:" #~ msgid "Location:" #~ msgstr "Ort:" #~ msgid "Play Count:" #~ msgstr "Wiedergabeanzahl:" #~ msgid "Track Number:" #~ msgstr "Stücknummer:" #~ msgid "© 2009" #~ msgstr "© 2009" #~ msgid "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager" #~ msgstr "" #~ "Mathias Brodala\n" #~ " \n" #~ " Übersetzungsmanager" #~ msgid "" #~ "Left\n" #~ "Right\n" #~ "Top\n" #~ "Bottom" #~ msgstr "" #~ "Links\n" #~ "Rechts\n" #~ "Oben\n" #~ "Unten" #~ msgid "Use alpha transparency (if supported)" #~ msgstr "Alphatransparenz nutzen (wenn möglich)" #~ msgid "Popup" #~ msgstr "Meldungsfenster" #~ msgid "_Close" #~ msgstr "_Schließen" #~ msgid "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgstr "" #~ "{title}\n" #~ "{artist}\n" #~ "aus {album} - {length}" #~ msgid "Opacity Level:" #~ msgstr "Sichtbarkeit:" #~ msgid "Text Color" #~ msgstr "Textfarbe" #~ msgid "Text Font:" #~ msgstr "Schriftart:" #~ msgid "Window Height:" #~ msgstr "Fensterhöhe:" #~ msgid "Window Width:" #~ msgstr "Fensterbreite:" #~ msgid "Close this dialog" #~ msgstr "Diesen Dialog schließen" #~ msgid "Remove All" #~ msgstr "Alle entfernen" #~ msgid "" #~ "Automatic\n" #~ "GNOME\n" #~ "ALSA\n" #~ "OSS\n" #~ "PulseAudio\n" #~ "JACK" #~ msgstr "" #~ "Automatisch\n" #~ "GNOME\n" #~ "ALSA\n" #~ "OSS\n" #~ "PulseAudio\n" #~ "JACK" #~ msgid "" #~ "Normal\n" #~ "Unified (unstable)" #~ msgstr "" #~ "Normal\n" #~ "Vereinigt (instabil)" #~ msgid "Playback engine (requires restart): " #~ msgstr "Wiedergabe-Engine (Neustart erforderlich): " #~ msgid "These options only affect the unified engine." #~ msgstr "Folgende Optionen betreffen nur die Vereinigte Wiedergabe-Engine" #~ msgid "Install a third party plugin from a file" #~ msgstr "Plugindatei eines Drittanbieters installieren" #~ msgid "Install plugin file" #~ msgstr "Plugindatei installieren" #~ msgid " + " #~ msgstr " + " #~ msgid " - " #~ msgstr " - " #~ msgid "0/0 tracks" #~ msgstr "0/0 Stücken" #~ msgid "Clear Playlist" #~ msgstr "Wiedergabeliste leeren" #~ msgid "Page 1" #~ msgstr "Seite 1" #~ msgid "Randomize the order of the current playlist" #~ msgstr "Inhalt der aktuellen Wiedergabeliste mischen" #~ msgid "Start/Pause Playback" #~ msgstr "Wiedergabe starten/pausieren" #~ msgid "Track _properties" #~ msgstr "_Eigenschaften des Stücks" #~ msgid "Vol:" #~ msgstr "Lautstärke:" #~ msgid "_Export current playlist" #~ msgstr "Aktuelle Wiedergabeliste exportieren" #~ msgid "_Go to Playing Track" #~ msgstr "Zum laufenden Stück springen" #~ msgid "_Randomize Playlist" #~ msgstr "Wiedergabeliste mischen" #~ msgid "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "Year - Artist\n" #~ "Year - Album\n" #~ "Artist - Year - Album" #~ msgstr "" #~ "Künstler\n" #~ "Album\n" #~ "Genre – Künstler\n" #~ "Genre – Album\n" #~ "Jahr – Künstler\n" #~ "Jahr – Album\n" #~ "Künstler – Jahr – Album" #~ msgid "General" #~ msgstr "Allgemein" #~ msgid "Bookmark this track" #~ msgstr "Lesezeichen für dieses Stück setzen" #~ msgid "Delete bookmark" #~ msgstr "Lesezeichen entfernen" #~ msgid "Clear bookmarks" #~ msgstr "Lesezeichen verwerfen" #~ msgid "Stop Playback" #~ msgstr "Wiedergabe beenden" #~ msgid "Restore Main Window" #~ msgstr "Hauptfenster wiederherstellen" #~ msgid "Available controls" #~ msgstr "Verfügbare Kontrollelemente" #~ msgid "Selected controls" #~ msgstr "Gewählte Kontrollelemente" #~ msgid "$title ($length)" #~ msgstr "$title ($length)" #~ msgid " & " #~ msgstr " & " #~ msgid "Streamripper can only record streams." #~ msgstr "Streamripper kann nur Streams aufnehmen." #~ msgid "Alarm Days:" #~ msgstr "Alarmtage:" #~ msgid "Alarm Name:" #~ msgstr "Alarmtitel:" #~ msgid "Alarm Time:" #~ msgstr "Alarmzeit:" #~ msgid "Alarm:" #~ msgstr "Alarm:" #~ msgid "Enable Fading" #~ msgstr "Überblendeffekte aktivieren" #~ msgid "Fading:" #~ msgstr "Überblendung:" #~ msgid "Maximum Volume:" #~ msgstr "Maximale Lautstärke:" #~ msgid "Minimum Volume:" #~ msgstr "Minimale Lautstärke:" #~ msgid "Name - Time" #~ msgstr "Name – Uhrzeit" #~ msgid "Restart Playlist" #~ msgstr "Wiedergabeliste erneut durchlaufen" #~ msgid "Time per Increment:" #~ msgstr "Zeit pro Schritt:" #~ msgid "Timer per Increment:" #~ msgstr "Zeit pro Schritt:" #~ msgid "Show Menuitem to toggle Submission" #~ msgstr "Menüeintrag zum De-/Aktivieren von Übertragungen" #~ msgid "Album Line:" #~ msgstr "Albumzeile:" #~ msgid "Artist Line:" #~ msgstr "Künstlerzeile:" #~ msgid "On Playback Start, Pause or Stop" #~ msgstr "Beim Starten, Pausieren und Stoppen der Wiedergabe" #~ msgid "On Track Change" #~ msgstr "Beim Stückwechsel" #~ msgid "" #~ "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " #~ "replaced by their respective values. The title will be replaced by " #~ "\"Unknown\" if it is empty." #~ msgstr "" #~ "Der Inhalt des Benachrichtigungsfensters. Hierbei werden die Platzhalter " #~ "„%(title)s“, „%(artist)s“ und „%(album)s“ durch Titel, Künstler und Album " #~ "des betreffenden Stücks ersetzt. Ist der jeweilige Wert unbekannt, wird " #~ "dies so gekennzeichnet." #~ msgid "Use Album Covers As Icons" #~ msgstr "Album-Cover als Symbole anzeigen" #~ msgid "Use Media Icons For Pause, Stop and Resume" #~ msgstr "" #~ "Mediensymbole für Benachrichtungen über Pause, Stopp und Wiederaufnahme " #~ "verwenden" #~ msgid "When GUI is Focused" #~ msgstr "Wenn das Hauptfenster fokussiert ist" #~ msgid "Both artist and album" #~ msgstr "Künstler und Album" #~ msgid "" #~ "Message that should be displayed in the body of the notification. In each " #~ "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced " #~ "by their respective values. If the tag is not known, \"Unknown\" will be " #~ "filled in its place" #~ msgstr "" #~ "Der Inhalt des Benachrichtigungsfensters. Hierbei werden die Platzhalter " #~ "„%(title)s“, „%(artist)s“ und „%(album)s“ durch Titel, Künstler und Album " #~ "des betreffenden Stücks ersetzt. Ist der jeweilige Wert unbekannt, wird " #~ "dies so gekennzeichnet." #~ msgid "Only album" #~ msgstr "Nur Album" #~ msgid "Only artist" #~ msgstr "Nur Künstler" #~ msgid "Summary" #~ msgstr "Zusammenfassung" #~ msgid "Terminal Opacity:" #~ msgstr "Sichtbarkeit:" #~ msgid "Position" #~ msgstr "Position" #~ msgid "Center horizontally" #~ msgstr "Horizontal zentrieren" #~ msgid "Center vertically" #~ msgstr "Vertikal zentrieren" #~ msgid "Display window decorations" #~ msgstr "Fensterdekoration anzeigen" #~ msgid "Horizontal:" #~ msgstr "Horizontal:" #~ msgid "Vertical:" #~ msgstr "Vertikal:" #~ msgid "Relay Port:" #~ msgstr "Port:" #~ msgid "Save Location:" #~ msgstr "Speicherort:" #~ msgid "Plugin Manager" #~ msgstr "Pluginmanager" #~ msgid "Personal" #~ msgstr "Persönliches" #~ msgid "Recommended" #~ msgstr "Empfehlungen" #~ msgid "Neighbourhood" #~ msgstr "Nachbarschaft" #~ msgid "Loved Tracks" #~ msgstr "Favorisierte Stücke" #~ msgid "Choose a file" #~ msgstr "Datei auswählen" #~ msgid "Number of Plays" #~ msgstr "Wiedergabeanzahl" #~ msgid "Custom playlist name:" #~ msgstr "Name der eigenen Wiedergabeliste:" #~ msgid "Add to custom playlist" #~ msgstr "Eigener Wiedergabeliste hinzufügen" #~ msgid "_Save As Custom Playlist" #~ msgstr "Als eigene Wiedergabeliste speichern" #~ msgid "New custom playlist name:" #~ msgstr "Neuer Name für die eigene Wiedergabeliste:" #~ msgid "Add item" #~ msgstr "Element hinzufügen" #~ msgid "Remove item" #~ msgstr "Element entfernen" #~ msgid "Move selected item up" #~ msgstr "Auswahl nach oben verschieben" #~ msgid "On Tray Icon Hover" #~ msgstr "Beim Hovern des Benachrichtigungssymbols" #~ msgid "Secret Key:" #~ msgstr "Geheimer Schlüssel:" #~ msgid "" #~ "To sign up for an Amazon AWS account and get \n" #~ "this information visit http://aws.amazon.com/" #~ msgstr "" #~ "Um diese Informationen zu erhalten ist die Registierung eines \n" #~ "Amazon AWS-Accounts auf http://aws.amazon.com/ erforderlich." #~ msgid "" #~ "Adds support for playing audio CDs.\n" #~ "Requires python-cddb to look up tags." #~ msgstr "" #~ "Ermöglicht die Wiedergabe von Audio-CDs.\n" #~ "Benötigt python-cddb für die Suche nach Tags." #~ msgid "MPRIS" #~ msgstr "MPRIS" #~ msgid "Creates an MPRIS D-Bus object to control Exaile" #~ msgstr "Erstellt ein Dbus-Objekt für MPRIS zur Kontrolle Exailes" #~ msgid "Last.fm Dynamic Search" #~ msgstr "Dynamische Suche durch Last.FM" #~ msgid "iPod support" #~ msgstr "iPod-Unterstützung" #~ msgid "A plugin for iPod support" #~ msgstr "Ein Plugin zur Unterstützung von iPods" #~ msgid "Pauses/resumes playback on screensaver start/stop" #~ msgstr "" #~ "Unterbricht die Wiedergabe bzw. setzt sie fort, wenn ein " #~ "Bildschirmschoner aktiv oder inaktiv wird." #~ msgid "Tag Covers" #~ msgstr "Tag-Cover" #~ msgid "Searches track tags for covers" #~ msgstr "Durchsucht Tags von Stücken nach Covern" #~ msgid "" #~ "Show various informations about the track currently playing.\n" #~ "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2" #~ msgstr "" #~ "Zeigt verschiedenste Informationen über das aktuelle Stück an.\n" #~ "Benötigt: libwebkit >= 1.0.1, python-webkit >= 1.1.2" #~ msgid "Plugin to fetch lyrics from lyricwiki.org" #~ msgstr "Holt Liedtexte von lyricwiki.org" #~ msgid "Move selected item down" #~ msgstr "Auswahl nach unten verschieben" #~ msgid "" #~ "Copyright (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "This program is free software; you can redistribute it and/or modify\n" #~ "it under the terms of the GNU General Public License as published by\n" #~ "the Free Software Foundation; either version 2 of the License, or\n" #~ "(at your option) any later version.\n" #~ "\n" #~ "This program is distributed in the hope that it will be useful,\n" #~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" #~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" #~ "GNU General Public License for more details.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along\n" #~ "with this program; if not, write to the Free Software Foundation, Inc.,\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ msgstr "" #~ "Copyright (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "Dieses Programm ist freie Software. Sie können es unter den Bedingungen " #~ "der GNU\n" #~ "General Public License, wie von der Free Software Foundation " #~ "veröffentlicht,\n" #~ "weitergeben und/oder modifizieren, entweder gemäß Version 2 der Lizenz " #~ "oder\n" #~ "(nach Ihrer Option) jeder späteren Version. \n" #~ "\n" #~ "Die Veröffentlichung dieses Programms erfolgt in der Hoffnung, daß es " #~ "Ihnen von\n" #~ "Nutzen sein wird, aber OHNE IRGENDEINE GARANTIE, sogar ohne die " #~ "implizite\n" #~ "Garantie der MARKTREIFE oder der VERWENDBARKEIT FÜR EINEN BESTIMMTEN " #~ "ZWECK.\n" #~ "Details finden Sie in der GNU General Public License. \n" #~ "\n" #~ "Sie sollten ein Exemplar der GNU General Public License zusammen mit " #~ "diesem\n" #~ "Programm erhalten haben. Falls nicht, schreiben Sie an die Free Software\n" #~ "Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA.\n" #~ msgid "Track title format:" #~ msgstr "Format des Stücktitels:" #~ msgid "Original Album" #~ msgstr "Original-Album" #~ msgid "Original Artist" #~ msgstr "Original-Künstler" #~ msgid "Original Date" #~ msgstr "Originaldatum" #~ msgid "Encoded By" #~ msgstr "Kodiert durch" #~ msgid "Last Played" #~ msgstr "Letzte Wiedergabe" #~ msgid "Select a save location" #~ msgstr "Speicherort wählen" #~ msgid "Plugin archive contains an unsafe path" #~ msgstr "Plugin-Archiv enthält einen unsicheren Pfad" #~ msgid "Display OSD when hovering over tray icon" #~ msgstr "" #~ "Bildschirmanzeige beim Hovern des Benachrichtigungssymbols einblenden" #~ msgid "Display a progressbar in the OSD" #~ msgstr "Fortschrittsbalken in der Bildschirmanzeige einblenden" #~ msgid "Show OSD on track change" #~ msgstr "Bildschirmanzeige beim Stückwechsel einblenden" #~ msgid "Seeking: " #~ msgstr "Suchen: " #~ msgid "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgstr "" #~ "Zielposition der Bildschirmanzeige durch Verschieben festlegen" #~ msgid "" #~ "OSD\n" #~ "Drag to the location you'd like the\n" #~ "OSD to appear" #~ msgstr "" #~ "Bildschirmanzeige\n" #~ "Gewünschte Zielposition durch\n" #~ "Verschieben festlegen." #~ msgid "Title:" #~ msgstr "Titel:" dist/copy/po/PaxHeaders.26361/it.po0000644000175000017500000000012412233027260015413 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.017046929 exaile-3.3.2/po/it.po0000644000000000000000000040605312233027260014363 0ustar00rootroot00000000000000# Italian translation for exaile # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2012-07-29 07:14+0000\n" "Last-Translator: Valter Mura \n" "Language-Team: Italian \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-08-28 05:26+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "%d giorno, " msgstr[1] "%d giorni, " #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "%d ora, " msgstr[1] "%d ore, " #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "%d minuto, " msgstr[1] "%d minuti, " #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d secondo" msgstr[1] "%d secondi" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "%dg, " #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "%do, " #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "%dm, " #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "%ds" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "%dg " #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "%d:%02d:%02d" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "%d:%02d" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "Mai" #: ../xl/formatter.py:702 msgid "Today" msgstr "Oggi" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "Ieri" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "Migrazione dalla versione 0.2.14 non riuscita" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "Uso: exaile [OPZIONE]... [URI]" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "Opzioni" #: ../xl/main.py:421 msgid "Playback Options" msgstr "Opzioni di riproduzione" #: ../xl/main.py:423 msgid "Play the next track" msgstr "Riproduce la traccia successiva" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "Riproduce la traccia precedente" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "Ferma la riproduzione" #: ../xl/main.py:429 msgid "Play" msgstr "Riproduci" #: ../xl/main.py:431 msgid "Pause" msgstr "Pausa" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "Sospende o riprende la riproduzione" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "Ferma la riproduzione al termine della traccia corrente" #: ../xl/main.py:440 msgid "Collection Options" msgstr "Opzioni per le collezioni" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "POSIZIONE" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "Aggiunge tracce da POSIZIONE alla collezione" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "Opzioni della scaletta" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "Esporta la scaletta corrente nel PERCORSO" #: ../xl/main.py:454 msgid "Track Options" msgstr "Opzioni per le tracce" #: ../xl/main.py:456 msgid "Query player" msgstr "Interroga il lettore" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "Mostra una finestra a comparsa con informazioni sulla traccia corrente" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "Visualizza il titolo della traccia corrente" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "Visualizza l'album della traccia corrente" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "Visualizza l'artista della traccia corrente" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "Visualizza la durata della traccia corrente" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "N" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "Imposta la valutazione per la traccia corrente a N%" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "Ottiene la valutazione della traccia corrente" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "Visualizza la posizione della riproduzione corrente come tempo" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "Visualizza l'avanzamento della riproduzione corrente come percentuale" #: ../xl/main.py:490 msgid "Volume Options" msgstr "Opzioni del volume" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "Aumenta il volume di N%" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "Riduce il volume di N%" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "Attiva o disattiva il volume" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "Visualizza il livello percentuale del volume" #: ../xl/main.py:507 msgid "Other Options" msgstr "Altre opzioni" #: ../xl/main.py:509 msgid "Start new instance" msgstr "Avvia nuova istanza" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "Mostra questo messaggio d'aiuto ed esce" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "Mostra il numero di versione del programma ed esce" #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "Avvia minimizzato (nell'area di notifica, se possibile)" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "Commuta la visibilità dell'interfaccia grafica (se possibile)" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "" "Avvia in modalità sicura - alcune volte è utile quando capitano dei problemi" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" "Forza l'importazione dei dati dalla versione 0.2.x (sovrascrive i dati " "attuali)" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "Non importare i dati dalla versione 0.2.x" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" "Fa in modo che le opzioni di controllo come --play avviino Exaile, se non è " "in esecuzione" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "Opzioni di sviluppo/debug" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "DIRECTORY" #: ../xl/main.py:536 msgid "Set data directory" msgstr "Imposta la directory dei dati" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "MODULO" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "Limita l'output del registro a MODULO" #: ../xl/main.py:543 msgid "LEVEL" msgstr "LIVELLO" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "Limita l'output del registro a LIVELLO" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "Mostra l'output di debug" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "Abilita il debug di xl.event. Genera MOLTO output" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:555 msgid "TYPE" msgstr "TIPO" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "Limita il debug di xl.event all'output di TIPO" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "Riduce il livello di output" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "Disabilita il supporto D-Bus" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "Disabilita il supporto HAL" #: ../xl/main.py:580 msgid "Entire Library" msgstr "Intera libreria" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "%d casuale" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "Valutazione > %d" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" "Caricamento non ancora completato. Potrebbe essere necessario attendere il " "segnale exaile_loaded." #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "Tag" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "Il formato dell'archivio del plugin non è corretto." #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "Un plugin di nome «%s» è già installato." #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "L'archivio del plugin contiene un percorso non sicuro." #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "Non è stata specificata una posizione da cui caricare il db" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "Non è stata specificata una posizione per salvare il db" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "Artisti vari" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "Sconosciuto" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr " / " #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "%dk" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" "Vorbis è un codec audio open source che garantisce un output di alta qualità " "con file di dimensioni minori rispetto all'MP3." #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" "Free Lossless Audio Codec (FLAC) è un codec audio open source che comprime " "l'audio senza alcuna perdita di qualità." #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" "Formato audio di proprietà di Apple con perdita della qualità audio, ma " "migliore dell'MP3 avendo un bitrate più basso." #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" "Un formato audio con perdita di qualità, proprietario e più datato, ma " "comunque diffuso. VBR offre una qualità superiore rispetto a CBR, ma può " "essere incompatibile con alcuni riproduttori audio." #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" "Un formato audio con perdita di qualità, proprietario e più datato, ma " "comunque diffuso. CBR offre meno qualità di VBR, ma è compatibile con " "qualunque riproduttore audio." #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "" "Un formato audio senza perdita di qualità molto veloce e con una buona " "compressione." #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "Automatico" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "Personalizzato" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "Non in esecuzione." #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" "stato: %(status)s, titolo: %(title)s, artista: %(artist)s, album: %(album)s, " "durata: %(length)s, posizione: %(progress)s%% [%(position)s]" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "La versione delle impostazioni è più recente di quella attuale." #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "Modalità di salvataggio sconosciuta per questo tipo di impostazione: " #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "È stato trovato un tipo di impostazione sconosciuto." #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "Tipo di scaletta non valido." #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "Scaletta" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "Scaletta M3U" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "Scaletta PLS" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "Formato non valido per %s." #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "Versione %(version)s non supportata per %(type)s" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "Scaletta ASX" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "Scaletta XSPF" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "Riproduzione casuale _off" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "Riproduzione casuale delle _tracce" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "Riproduzione casuale degli _album" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "Ripeti spent_o" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "Ripeti _tutto" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "Ripeti u_no" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "Modalità dinamica spenta" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "Dinamica per _artisti simili" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "secondi" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "minuti" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "ore" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "giorni" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "settimane" #: ../xl/lyrics.py:305 msgid "Local" msgstr "Locale" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "Accoda" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "Sostituisci attuale" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "Aggiungi alla corrente" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "Apri directory" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" "Impossibile spostare i file nel cestino. Eliminarli definitivamente dal " "disco?" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "Sposta nel cestino" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "_Mostra traccia in riproduzione" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "Nome:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "Nessun criterio soddisfatto" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "Mischiare i risultati" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "Fino a: " #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr " tracce" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "Non in riproduzione" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "Ricerca: %s" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "Sposta" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "Nuovo indicatore" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "Muto" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "%d%%" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "Volume massimo" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" "$title\n" "di $artist\n" "da $album" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "Varie" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "%(track_count)d in totale (%(total_duration)s)" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "%d nella collezione" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "%d in visualizzazione" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "Coda" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "Coda (%d)" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "N." #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "Numero traccia" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "Titolo" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "Artista" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "Compositore" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "Album" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "Durata" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "Disco" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "Numero disco" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "Valutazione" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "Data" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "Genere" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "Bitrate" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "Posizione" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "Nome file" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "Contatore di riproduzione" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "BPM" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "Ultima riproduzione" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "Aggiunta il" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "_Ridimensionabili" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "_Dimensione automatica" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "Giudizio:" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "Casuale" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "Ripeti" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "Dinamica" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "Rimuove la traccia corrente dalla scaletta" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "Scaletta casuale" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "Nuova scaletta" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "Rinomina" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "Ferma la riproduzione dopo questa traccia" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "Continua la riproduzione dopo questa traccia" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "Richiede plugin per fornire scalette dinamiche" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "Aggiunge dinamicamente tracce simili alla scaletta" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "Inserisci l'URL da aprire" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "Apri URL" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "Seleziona il tipo di file (per estensione)" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "File supportati" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "File musicali" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "File della scaletta" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "Tutti i Files" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "Seleziona la directory da aprire" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "Esporta la scaletta corrente" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "Scaletta salvata come %s." #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "Chiudi %s" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "Salvare le modifiche a %s prima di chiudere?" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "Le modifiche andranno perse se non vengono salvate" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "Chiudi senza salvare" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "Salvate %(count)s di %(total)s" #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "Non è stato inserito alcun nome per la scaletta" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "Il nome inserito per la scaletta è già in uso." #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "Chiudi scheda" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "$title (di $artist)" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "Commuta: interrompe dopo la traccia selezionata" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "È stato riscontrato un errore di riproduzione" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "Buffering: %d%%..." #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "Riprendi riproduzione" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "Sospendi riproduzione" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "Esportazione della scaletta non riuscita." #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "Avvia riproduzione" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "Riproduttore musicale Exaile" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "_Nuova scaletta..." #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "Apri _URL" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "Apri directory" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "_Esporta scaletta corrente" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "Riavvia" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "_Collezione" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "_Coda di riproduzione" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "C_opertine" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "Barra Utilità della _scaletta" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "_Colonne" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "_Pulisci scaletta" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "Gestione _dispositivo" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "_Analizza la collezione" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "_Proprietà traccia" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "Annulla" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "Album originale" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "Autore testi" #: ../xlgui/properties.py:54 msgid "Website" msgstr "Sito web" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "Copertina" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "Artista originale" #: ../xlgui/properties.py:57 msgid "Author" msgstr "Autore" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "Data originale" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "Arrangiatore" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "Direttore d'orchestra" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "Interprete" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "Copyright" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "Testi" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "Traccia" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "Versione" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "ISRC" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "Codificata da" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "Organizzazione" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "Modificata" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "Numero di riproduzioni" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "Modifica della traccia %(current)d di %(total)d" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "di:" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "Applica il valore corrente a tutte le tracce" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "Mostra copertina" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "Recupera copertina" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "Rimuovi copertina" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "Copertina per %s" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "Opzioni copertina per %(artist)s - %(album)s" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "Nessuna copertina trovata." #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "Icona" #: ../xlgui/devices.py:81 msgid "Device" msgstr "Dispositivo" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "Driver" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "Scansione della collezione..." #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "Analisi di %s..." #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "Accoda" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "Accoda gli elementi" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "Proprietà" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "Nuova stazione" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "Nuova scaletta automatica" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "Modifica" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "Esporta Scaletta" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "Elimina scaletta" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "Eliminare definitivamente la scaletta selezionata?" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "Inserisci il nuovo nome per la scaletta" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "Rinomina scaletta" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "Rimuovi" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "Scaletta %d" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "Aggiungi una directory" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "Directory non aggiunta." #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" "La directory è già nella tua collezione o è una directory secondaria di " "un'altra presente nella tua collezione." #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "Trasferimento a %s in corso..." #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "Caricamento flussi..." #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "Aggiungi stazione radio" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "URL:" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "Stazioni Salvate" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "Flussi radio" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "Aggiorna" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "Inserire il nome per la nuova scaletta" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "Genere - Artista" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "Genere - Album" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "Nuova scansione della collezione" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "Dimensione" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s Kb" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "e" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "è" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "non è" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "contiene" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "non contiene" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "almeno" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "al massimo" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "prima" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "dopo" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "tra" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "maggiore di" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "minore di" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "negli ultimi" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "non negli ultimi" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "Riproduzioni" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "Anno" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "%(first)s, %(second)s e successivi" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "%(first)s e %(second)s" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "Scalette automatiche" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "Scalette personalizzate" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "Aggiungi scaletta automatica" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "Modifica scaletta automatica" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "Riproduzione" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "Plugin" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "Impossibile caricare le informazioni sul plugin!" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "Plugin non funzionante: %s" msgstr[1] "Plugin non funzionanti: %s" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "Impossibile disabilitare il plugin!" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "Impossibile abilitare il plugin!" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "Scegli un plugin" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "Archivi Dei Plugin" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "Installazione del plugin non riuscita!" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "Copertine" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "Aspetto" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "Collezione" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "il lo la i gli le" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "Reimposta valori predefiniti" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "Riavviare Exaile?" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "È richiesto un riavvio affinché questa modifica abbia effetto." #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "Azione" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "Scorciatoia" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "Scalette" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "Informazioni su Exaile" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "© 2009-2012" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "Gestore copertine" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "Ordine casuale di riproduzione" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "Ripeti la riproduzione" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "Trova copertine" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "Impo_sta come copertina" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "_File" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "_Modifica" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "_Visualizza" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "_Strumenti" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "_Aiuto" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "Traccia precedente" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" "Ferma la riproduzione\n" "\n" "Clic destro per fermare dopo aver evidenziato la traccia" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "Traccia successiva" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0.00 / 0.00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "Proprietà traccia" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "A_ggiungi tag" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "_Rimuovi tag" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "ab → A_b" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "La prima lettera di tutti i tag in maiuscolo" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "_Precedente" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "_Successivo" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "Descrizione:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "Gestore collezione" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "Monitorato" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "Radio" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "Aggiungi tutte le tracce alla scaletta" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "Importa CD" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "Aggiungi stazione" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "File" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "Directory visitata precedente" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "Prossima directory visitata" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "Directory superiore" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "Aggiorna lista directory" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "Cartella Home" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "Cerca: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "Pulisci il campo di ricerca" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "La collezione è vuota." #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "Aggiungi musica" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" "Aggiorna la visualizzazione della collezione\n" "(tenere premuto il tasto Maiusc per eseguire una nuova scansione della " "collezione)" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "Usare copertine incorporate nelle etichette" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "Usare file locali come copertine" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" "Questa opzione cercherà i file immagine delle copertine \n" "nella stessa cartella dei file musicali." #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" "Recuperare automaticamente le copertine quando si avvia la riproduzione" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "Ordine Di Ricerca Delle Copertine:" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "(trascina per riordinare)" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "Aprire le ultime scalette all'avvio" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "Chiedere se salvare le scalette personalizzate alla chiusura" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "Doppio clic sul riquadro laterale per sostituire il contenuto" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" "Le tracce aggiunte tramite doppio clic non saranno aggiunte ma sostituiranno " "il contenuto della scaletta attuale." #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "Motore per la riproduzione: " #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "Usare transizioni in dissolvenza nelle azioni dell'utente" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "Durata dissolvenza (ms):" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "Usare dissolvenza incrociata (sperimentale)" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "Durata della dissolvenza incrociata (ms):" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "Sink audio: " #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "Flusso sink personalizzato:" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "Riprendi esecuzione dall'inizio" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "Riprendi esecuzione in pausa" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "Normale" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "Unificato (instabile)" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "Plugin" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "Attivato" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "Nessun plugin selezionato" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "Plugin installati" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "Autori:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "Versione:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "Installa" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "Nessun plugin selezionato" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "Plugin disponibili" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "Installa gli aggiornamenti" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "Aggiornamenti" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "Installa il plugin" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "Mostra area informazioni" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "L'area informazioni contiene la copertina e informazioni sulla traccia" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "Mostrare sempre la barra delle schede" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "Posizione schede:" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "Visualizza il conteggio delle tracce nella collezione" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "Usa trasparenza alfa:" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" "Attenzione: questa opzione può causare errori di visualizzazione se usata " "con un gestore delle finestre senza supporto di composizione." #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "Mostrare l'icona nell'area di notifica" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "Minimizzare nell'area di notifica" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "Minimizza nell'area di notifica" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "Passare al brano corrente quando cambia la traccia" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "Mostrare la schermata di avvio all'inizio" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "Sinistra" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "Destra" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "Alto" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "Basso" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "Preferenze" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "(Clic col pulsante destro per ripristinare i valori predefiniti)" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "Utilizzare la ricerca delle raccolte basata su file" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "Gestore dei dispositivi" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "Aggiungi dispositivo" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "Tipo di dispositivo:" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "Dispositivi rilevati:" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "Personalizzato: " #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "Gestore code" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "Ricerca dell'atmosfera..." #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "Atmosfera trovata." #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "Impossibile leggere la barra dell'atmosfera." #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "L'eseguibile moodbar non è disponibile." #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "Barra dell'atmosfera" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "Errore nell'eseguire streamripper" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "Streamripper" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "Traccie preferite su Last.fm" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "La chiave API non è valida." #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "Assicurarsi che i dati inseriti siano corretti." #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "Impossibile avviare il browser web" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" "Copiare il seguente URL e aprirlo col browser web:\n" "{url}" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "Preferiti" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "Preferiti Last.fm" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "Inserisci tra i preferiti questa traccia" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "Rimuovi dai preferiti questa traccia" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "Sveglia" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "Connessione al server Shoutcast..." #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "Errore nel connettersi al server Shoutcast." #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "Inserire le parole da cercare" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "Ricerca Shoutcast" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "Risultati ricerca" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "Cerca" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "Nessun testo trovato." #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "Vai: " #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "Qualsiasi" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "Visualizzatore testi" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "AudioScrobbler" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "Abilitare l'audioscrobbling" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "Equalizzatore" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "Spegni dopo la riproduzione" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "Il computer verrà spento al termine della riproduzione." #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "Il computer sarà arrestato tra %d secondi." #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "Il computer non può essere spento utilizzando D-Bus." #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "Notifiche a schermo" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "%(title)s" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "artista %(artist)s" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "album %(album)s" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "Console IPython - Exaile" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "Mostrare la console IPython" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "Console IPython" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "Notifica" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" "artista %(artist)s\n" "album %(album)s" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "Importazione CD..." #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "Disco audio" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "CD" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "Numero traccia" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "Numero disco" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "Numero di riproduzioni" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "Artista: " #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" "Lo sapevi che...\n" "\n" "%s" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "Ripeti segmento" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "Ripeti inizio" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "Ripeti fine" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "Modalità minima" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "$tracknumber - $title" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "$title by $artist" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "$title ($__length)" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "Precedente" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "Vai alla traccia precedente" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "Traccia precedente" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "Successiva" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "Vai alla traccia successiva" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "Traccia successiva" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "Riproduci/Pausa" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "Avvia, ferma o riprende la riproduzione" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "Avvia la riproduzione" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "Continua la riproduzione" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "Mette in pausa la riproduzione" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "Interrompi" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "Ferma la riproduzione" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "Continua la riproduzione dopo la traccia corrente" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "Volume" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "Cambia il volume" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "Ripristina" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "Ripristina la finestra principale" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "Ripristina finestra principale" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "Seleziona la valutazione della traccia corrente" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "Selettore traccia" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "Semplice selettore di elenchi tracce" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "Pulsante scaletta" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "Accede all'attuale scaletta" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "$title ($current_time / $total_time)" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "Pulsante di avanzamento" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "Avanzamento della riproduzione e accesso alla scaletta corrente" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "Barra di avanzamento" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "Avanzamento di riproduzione e ricerca" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "Gruppo" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "Guadagno riproduzione" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "Rilascia per scegliere" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "Aggiungi e riproduci" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "Aggiungi" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "Pronto" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "Ricerca del catalogo Jamendo..." #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "Recupero dati del brano..." #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "Vista a schermo" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "Copertine Amazon" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "Podcast" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "Podcast" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "Aggiorna podcast" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "Elimina" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "Inserire l'URL del podcast da aggiungere" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "Apri podcast" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "Caricamento di %s..." #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "Errore nel caricare il podcast." #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "Caricamento podcast..." #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "Impossibile salvare il file del podcast" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "Desktop Cover" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "Sveglia multipla" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "Contesto" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "Informazioni contesto" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "Aggiungi traccia ai segnalibri" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "Elimina segnalibro" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "Pulisci segnalibri" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "Segnalibri" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "Pausa con salvaschermo" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "Server DAAP" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "Client DAAP" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "Manualmente..." #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "Inserisci l'indirizzo IP e la porta per la condivisione" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "Inserisci indirizzo IP e porta." #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" "Questo server non supporta le connessioni multiple.\n" "Arrestare la riproduzione prima di scaricare i brani." #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "Aggiorna elenco dei server" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "Disconnetti dal server" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "Seleziona una posizione per salvare i dati" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "Connetti a DAAP..." #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "Scurire la sezione riprodotta anziché usare il cursore" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "Livello di scuro:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "Usa lo stile forma d'onda" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "Mostrare solo la forma d'onda, non l'atmosfera" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "Usa tema dei colori " #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "Colore di base:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "Colore di base" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "Salva posizione:" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "Porta per la trasmissione:" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "Estrai in un singolo file" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "Elimina i file incompleti" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "Chiave API:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "Segreto:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "Richiesta permesso di accesso" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "Orario sveglia" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "Lunedì" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "Martedì" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "Mercoledì" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "Giovedì" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "Venerdì" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "Sabato" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "Domenica" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "Giorni della sveglia" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "Usa dissolvenza" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "Incremento:" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "Mostra sovrapposizione:" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "Mostra copertine" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "Vista circolare" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "Percentuale di testo" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "Nessuno" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "Aggiorna testi" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "Invia le tracce utilizzando Audioscrobbler" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "Mostra elemento nel menu per attivare / disattivare l'invio" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "Password:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "Nome utente:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "pre" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "+12 dB" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "0" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "-24 dB" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "29" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "59" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "119" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "237" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "474" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "947" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "1.9K" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "3.8K" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "7.5K" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "15K" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "Al cambio traccia" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "A riproduzione avviata, in pausa o interrotta" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "Al cambio etichetta" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "Al passaggio del mouse sull'icona nell'area di notifica" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "Quando la finestra principale è selezionata" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "Visualizzazione" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "Usa le copertine album come icone" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "Usa le icone multimediali per le azioni di pausa, arresto e ripresa" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "Icone" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "Riga artista:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" "I tag «%(title)s», «%(artist)s» e «%(album)s» saranno sostituiti dai " "rispettivi valori. In caso fosse vuoto, il titolo sarà sostituito da " "«Sconosciuto»." #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "Riepilogo:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "Riga album:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "Contenuto" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "Opacità del terminale:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "Carattere:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "Colore di sfondo:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "Ridimensionare le copertine visualizzate" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "Solo artista:" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "Solo album:" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" "Messaggio da visualizzare nel corpo della notifica. In ogni caso, " "«%(title)s», «%(artist)s» e «%(album)s» saranno sostituiti dai rispettivi " "valori. Se il tag non è conosciuto, verrà inserito il valore «Sconosciuto»." #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "Artista e album:" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "Corpo del messaggio" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "Ogg Vorbis" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "FLAC" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "AAC" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "MP3 (VBR)" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "MP3 (CBR)" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "WavPack" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "Formato di importazione: " #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "Qualità di importazione: " #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "Percorso di importazione: " #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" "Ogni etichetta può essere usata con $tag o ${tag}. Etichette " "interne come $__length devono essere specificate con due trattini " "bassi." #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" "L'ordine dei controlli può essere cambiato semplicemente trascinandoli in " "alto o in basso (pppure premendo Alt+Su/Giù)." #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "Controlli" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "Formato titolo della traccia" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "Sempre in primo piano" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "Mostra nell'elenco delle operazioni" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "Mostrare decorazioni finestra:" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "Mostra in tutti i desktop" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "Mostra il pulsante nella finestra principale" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "Pieno" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "Semplice" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "Privilegiare correzione per album" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "Privilegia la correzione ReplayGain per album a quella per traccia." #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "Usa protezione da clipping" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "Proteggi dal rumore causato dalla sovra amplificazione" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "Amplificazione aggiuntiva da applicare a tutti i file" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "Amplificazione aggiuntiva (dB):" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "Correzione del ripiego per file privi di attributi ReplayGain" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "Livello di correzione del ripiego (dB):" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "Ordina per:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "Direzione ordinamento:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "Risultati:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "Avanzate" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "Decrescente" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "Crescente" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "Data di rilascio" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "Valutazione in questa settimana" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "Valutazione in questo mese" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "Numero di aggiunte alla scaletta" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "Numero di scaricamenti" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "Numero di ascolti" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "Genere/Tag" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" "Per iscriversi a un account Amazon AWS e \n" "ottenere informazioni al riguardo, visitare il sito http://aws.amazon.com/" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "Aggiungi podcast" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "Àncora:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "Scostamento X:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "pixel" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "Scostamento Y:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "Ignora dimensione copertina" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "Dimensione:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "Usa dissolvenza" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "Durata dissolvenza:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "ms" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "In alto a sinistra" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "In alto a destra" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "In basso a sinistra" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "In basso a destra" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "Aggiungi" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "Avvisi" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "Abilita dissolvenza in entrata del volume" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "Volume a inizio dissolvenza:" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "Volume a fine dissolvenza:" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "Durata dissolvenza (s)" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "Riavvia la scaletta" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "Riproduzione" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "Inserire i dati di autenticazione Last.fm:" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "Registrati a Last.fm" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" "Usare le copertine nel menù dei segnalibri (applicato al prossimo avvio)" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "Nome del server:" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "Host del server:" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "Porta:" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "Server abilitato" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "Brano corrente" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" "Imposta lo stato di riproduzione corrente in Pidgin. Controllare le FAQ di " "Pidgin per verificare i servizi supportati." #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" "Sostituisce la barra di avanzamento classica con una barra dell'atmosfera.\n" "Dipendenze: moodbar" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "Tasti multimediali di GNOME" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" "Aggiunge il supporto per controllare Exaile tramite il sistema di tasti " "multimediali di GNOME. Compatibile con GNOME >= 2.20.x" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" "Permette di registrare flussi audio con streamripper.\n" "Dipendenze: streamripper" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "Riproduce la musica a un'ora determinata.\n" "\n" "All'ora specificata Exaile agirà come se fosse stato premuto il pulsante di " "riproduzione, quindi assicurarsi che la musica che si desidera ascoltare sia " "in scaletta." #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "Copertine Last.fm" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "Cerca le copertine su Last.fm" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "Imposta la copertina e aggiunge ad AWN alcune voci di menù per Exaile" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "Radio Shoutcast" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "Elenco radio houtcast" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "Editor di etichette Ex Falso" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" "Integra l'editor di etichette Ex Falso con Exaile.\n" "Dipendenze: Ex Falso." #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" "Aggiunge una scheda laterale per visualizzare il testo della traccia " "attualmente in riproduzione." #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" "Invia le informazioni di ascolto a Last.fm e a servizi simili che supportano " "AudioScrobbler" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "Tasti X" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "Combinazioni globali di tasti che utilizzano xlib (mmkeys.so)" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "Tasti multimediali per Windows" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "Equalizzatore a 10 bande" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "Lyrics Fly" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "Plugin per recuperare i testi da lyricsfly.com" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "Librivox" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "Scegliere e ascoltare audiolibri da Librivox.org." #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "Permette lo spegnimento del computer alla fine della riproduzione." #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "Supporto ai riproduttori multimediali con archivio di massa USB" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" "Supporto per accedere ai riproduttori multimediali portatili usando il " "protocollo USB per archivi di massa." #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "Periferiche" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "Scalette dinamiche di Last.fm" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "Strumento di Last.fm per scalette dinamiche" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" "Questa estensione mostra delle notifiche quando una canzone è eseguita/" "ripresa/fermata, includendo la copertina della canzone o l'icona " "multimediale corrispondente all'ultima azione.\n" "\n" "Dipendenze: python-notify\n" "Raccomandati: notify-osd" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" "Fornisce una console IPython che può essere usata per controllare il " "programma." #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "Mostra una notifica quando si avvia la riproduzione di una traccia" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "Riproduzione CD" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "Informazione" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "Ripeti A-B" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "Ripete continuamente il segmento di una traccia." #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "Modalità compatta con un'interfaccia configurabile" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "Abilita il supporto a ReplayGain" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "Rilascio sull'icona" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" "Fornisce un'icona nell'area di notifica che accetta i file rilasciati.\n" "\n" "Dipende da: python-eggtrayicon" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "Jamendo" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "Abilita l'accesso al catalogo musicale Jamendo." #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "Supporto iPod" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" "Plugin per il supporto iPod. Al momento di sola lettura, non sono possibili " "trasferimenti.\n" "\n" "Dipende da: python-gpod." #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" "Cerca le copertine su Amazon.\n" "\n" "Per poter usare questa estensione è necessaria una chiave AWS API e una " "chiave segreta." #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "Karaoke" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "Rimuove la voce dall'audio" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "Aggiunge un semplice supporto ai podcast" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "Mostra la copertina dell'album corrente sul desktop" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "Ciao mondo" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "Un semplice plugin per provare il sistema di base delle estensioni" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "Riproduce la musica in determinati giorni e ore.\n" "\n" "All'ora specificata Exaile agirà come se fosse stato premuto il pulsante di " "riproduzione, quindi assicurarsi che la musica che si desidera ascoltare sia " "in scaletta." #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "Informazioni contestuali" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" "Mostra varie informazioni sulla traccia attualmente in riproduzione.\n" "Dipende da: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging " "(detto anche PIL)" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" "Consente di salvare/ripristinare le posizioni dei segnalibri nei file audio." #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "Lyrics Wiki" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" "Questo plugin integra spydaap (http://launchpad.net/spydaap) all'interno di " "Exaile affinché una collezione possa essere condivisa in DAAP." #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "Consente la riproduzione di condivisioni musicali DAAP." #~ msgid "Clear" #~ msgstr "Pulisci" #~ msgid "Close" #~ msgstr "Chiudi" #~ msgid "Close tab" #~ msgstr "Chiudi scheda" #~ msgid "Export as..." #~ msgstr "Esporta come..." #~ msgid "%d KB" #~ msgstr "%d KB" #~ msgid "© 2009-2010" #~ msgstr "© 2009-2010" #~ msgid "GNOME" #~ msgstr "GNOME" #~ msgid "ALSA" #~ msgstr "ALSA" #~ msgid "OSS" #~ msgstr "OSS" #~ msgid "PulseAudio" #~ msgstr "PulseAudio" #~ msgid "JACK" #~ msgstr "JACK" #~ msgid "AWN" #~ msgstr "AWN" #~ msgid "API Key:" #~ msgstr "Chiave API:" #~ msgctxt "yes" #~ msgid "Monday" #~ msgstr "Lunedì" #~ msgctxt "yes" #~ msgid "Tuesday" #~ msgstr "Martedì" #~ msgctxt "yes" #~ msgid "Wednesday" #~ msgstr "Mercoledì" #~ msgctxt "yes" #~ msgid "Thursday" #~ msgstr "Giovedì" #~ msgctxt "yes" #~ msgid "Friday" #~ msgstr "Venerdì" #~ msgctxt "yes" #~ msgid "Saturday" #~ msgstr "Sabato" #~ msgctxt "yes" #~ msgid "Sunday" #~ msgstr "Domenica" #~ msgctxt "yes" #~ msgid "Use Fading" #~ msgstr "Usa dissolvenza" #~ msgctxt "yes" #~ msgid "Minimum volume:" #~ msgstr "Volume minimo:" #~ msgctxt "yes" #~ msgid "Maximum volume:" #~ msgstr "Volume massimo:" #~ msgctxt "yes" #~ msgid "Increment:" #~ msgstr "Incremento:" #~ msgctxt "yes" #~ msgid "Time per increment:" #~ msgstr "Tempo di incremento:" #~ msgid "Secret key:" #~ msgstr "Chiave segreta:" #~ msgid "Awn" #~ msgstr "Awn" #~ msgid "General" #~ msgstr "Generale" #~ msgid "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgstr "" #~ "{title}\n" #~ "{artist}\n" #~ "in {album} - {length}" #~ msgid "Autosize" #~ msgstr "Ridimensiona Automaticamente" #~ msgid "Display OSD when hovering over tray icon" #~ msgstr "Mostra OSD quando si passa sull'icona nell'area di notifica" #~ msgid "New Search" #~ msgstr "Nuova Ricerca" #~ msgid "Popup" #~ msgstr "Popup" #~ msgid "Resizable" #~ msgstr "Ridimensionabile" #~ msgid "Start" #~ msgstr "Avvia" #~ msgid "Stopped" #~ msgstr "Arrestato" #~ msgid "Text Color" #~ msgstr "Colore del testo" #~ msgid "Vol:" #~ msgstr "Vol:" #~ msgid "_Close" #~ msgstr "_Chiudi" #~ msgid "Open" #~ msgstr "Apri" #~ msgid "Relay Port:" #~ msgstr "Porta di inoltro:" #~ msgid "from %s" #~ msgstr "da %s" #~ msgid "%(title)s (by %(artist)s)" #~ msgstr "%(title)s (di %(artist)s)" #~ msgid "by %s" #~ msgstr "di %s" #~ msgid "Number of Plays" #~ msgstr "Numero di ascolti" #~ msgid "Clear Playlist" #~ msgstr "Svuota Scaletta" #~ msgid "Exaile" #~ msgstr "Exaile" #~ msgid "Location:" #~ msgstr "Posizione:" #~ msgid "Search:" #~ msgstr "Cerca:" #~ msgid "Select a save location" #~ msgstr "Selezionare la destinazione di salvataggio" #~ msgid "Add Playlist" #~ msgstr "Aggiungi Scaletta" #~ msgid "Choose a file" #~ msgstr "Scegliere un file" #~ msgid "Quit" #~ msgstr "Esci" #~ msgid "Part" #~ msgstr "Parte" #~ msgid "Encoded By" #~ msgstr "Codificato da" #~ msgid "Title:" #~ msgstr "Titolo:" #~ msgid "Bitrate:" #~ msgstr "Bitrate:" #~ msgid "Genre:" #~ msgstr "Genere:" #~ msgid "Track Number:" #~ msgstr "Numero Traccia:" #~ msgid "Album:" #~ msgstr "Album:" #~ msgid "Artist:" #~ msgstr "Artista:" #~ msgid "Import" #~ msgstr "Importa" #~ msgid "Date Added" #~ msgstr "Data di aggiunta" #~ msgid "Last Played" #~ msgstr "Ultimo ascolto" #~ msgid "Plugin Manager" #~ msgstr "Gestione Plugin" #~ msgid "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "Year - Artist\n" #~ "Year - Album\n" #~ "Artist - Year - Album" #~ msgstr "" #~ "Artista\n" #~ "Album\n" #~ "Genere - Artista\n" #~ "Genere - Album\n" #~ "Anno - Artista\n" #~ "Anno - Album\n" #~ "Artista - Anno - Album" #~ msgid " songs" #~ msgstr " canzoni" #~ msgid "Playing %s" #~ msgstr "Riproduzione di %s" #~ msgid "Opacity Level:" #~ msgstr "Livello di opacità:" #~ msgid "Alarm Days:" #~ msgstr "Sveglia nei giorni:" #~ msgid "LastFM Radio" #~ msgstr "Radio di LastFM" #~ msgid "Recommended" #~ msgstr "Raccomandato" #~ msgid "Personal" #~ msgstr "Personale" #~ msgid "Export" #~ msgstr "Esporta" #~ msgid "Extension" #~ msgstr "Estensione" #~ msgid "No covers found" #~ msgstr "Nessuna copertina trovata" #~ msgid "Invalid file extension, file not saved" #~ msgstr "Estensione del file non valida, file non salvato" #~ msgid " - " #~ msgstr " - " #~ msgid " + " #~ msgstr " + " #~ msgid "0/0 tracks" #~ msgstr "0/0 tracce" #~ msgid "..." #~ msgstr "..." #~ msgid "Page 1" #~ msgstr "Pagina 1" #~ msgid "Toggle: Stop after selected track" #~ msgstr "Ferma dopo la traccia selezionata" #~ msgid "Text Font:" #~ msgstr "Carattere del testo:" #~ msgid "Select File Type (By Extension)" #~ msgstr "Selezionare il tipo di file (per estensione)" #~ msgid "File Type" #~ msgstr "Tipo di file" #~ msgid "Add to Playlist" #~ msgstr "Aggiungi alla scaletta" #~ msgid "0:00" #~ msgstr "0.00" #~ msgid "Stop Playback" #~ msgstr "Ferma riproduzione" #~ msgid "Add device" #~ msgstr "Aggiungi dispositivo" #~ msgid "Choose a file to open" #~ msgstr "Seleziona il file da aprire" #~ msgid "Show a popup of the currently playing track" #~ msgstr "Mostra un popup della traccia in esecuzione" #~ msgid "Toggle Play or Pause" #~ msgstr "Riproduci o sospendi" #~ msgid "Set rating for current song" #~ msgstr "Vota la canzone corrente" #~ msgid "Get rating for current song" #~ msgstr "Ottieni votazioni per la canzone corrente" #~ msgid " New song, fetching cover." #~ msgstr " Nuova canzone, recupero copertina." #~ msgid "Streaming..." #~ msgstr "Streaming..." #~ msgid "order must be a list or tuple" #~ msgstr "l'ordine deve essere una lista o una tupla" #~ msgid "Buffering: 100%..." #~ msgstr "Buffering: 100%..." #~ msgid "%d covers to fetch" #~ msgstr "%d copertine da recuperare" #~ msgid "Fading:" #~ msgstr "Dissolvenza:" #~ msgid "Alarm:" #~ msgstr "Sveglia:" #~ msgid "Restart Playlist" #~ msgstr "Riavvia scaletta" #~ msgid "Name - Time" #~ msgstr "Nome - Orario" #~ msgid "Close this dialog" #~ msgstr "Chiudi questa finestra" #~ msgid "Plugin archive is not in the correct format" #~ msgstr "L'archivio del plugin non è nel formato corretto" #~ msgid "Enable Fading" #~ msgstr "Abilita Dissolvenza" #~ msgid "Alarm Name:" #~ msgstr "Nome Sveglia:" #~ msgid "Alarm Time:" #~ msgstr "Orario Sveglia:" #~ msgid "Neighbourhood" #~ msgstr "Vicinato" #~ msgid "Loved Tracks" #~ msgstr "Tracce Preferite" #~ msgid "Streamripper can only record streams." #~ msgstr "Streamripper può registrare solo flussi." #~ msgid "" #~ "OSD\n" #~ "Drag to the location you'd like the\n" #~ "OSD to appear" #~ msgstr "" #~ "OSD\n" #~ "Sposta nella posizione in cui vuoi \n" #~ "che appaia l'OSD" #~ msgid "" #~ "Exaile now uses absolute URI's, please delete/rename your %s directory" #~ msgstr "" #~ "Exaile adesso usa URI assolute, si prega di cancellare/rinominare la " #~ "directory %s" #~ msgid "Choose a plugin" #~ msgstr "Seleziona un plugin" #~ msgid "Minimum Volume:" #~ msgstr "Volume Minimo:" #~ msgid "Maximum Volume:" #~ msgstr "Volume Massimo:" #~ msgid "In pause: %s" #~ msgstr "In pausa: %s" #~ msgid "Dynamically add similar tracks" #~ msgstr "Aggiungi dinamicamente tracce simili" #~ msgid "Delete bookmark" #~ msgstr "Elimina segnalibro" #~ msgid "Selected controls" #~ msgstr "Controlli selezionati" #~ msgid "Available controls" #~ msgstr "Controlli disponibili" #~ msgid "Summary" #~ msgstr "Sommario" #~ msgid "Both artist and album" #~ msgstr "Artista e album" #~ msgid "Position" #~ msgstr "Posizione" #~ msgid "Vertical:" #~ msgstr "Verticale:" #~ msgid "Horizontal:" #~ msgstr "Orizzontale:" #~ msgid "Increases the volume by VOL%" #~ msgstr "Aumenta il volume del VOL%" #~ msgid "Device class does not support transfer." #~ msgstr "La classe del dispositivo non supporta il trasferimento." #~ msgid "%(playlist_count)d showing, %(collection_count)d in collection" #~ msgstr "" #~ "%(playlist_count)d visualizzate, %(collection_count)d nella collezione" #~ msgid "Decreases the volume by VOL%" #~ msgstr "Abbassa il volume del VOL%" #~ msgid "Filter event debug output" #~ msgstr "Filtra l'output degli eventi di debug" #~ msgid "Randomize the order of the current playlist" #~ msgstr "Rendi casuale l'ordine della scaletta corrente" #~ msgid " & " #~ msgstr " & " #~ msgid "Save As..." #~ msgstr "Salva con nome..." #~ msgid "Custom playlist name:" #~ msgstr "Nome della scaletta personalizzata:" #~ msgid "_Rename Playlist" #~ msgstr "_Rinomima scaletta" #~ msgid "_Save Changes To Playlist" #~ msgstr "_Salva modifiche nella scaletta" #~ msgid "_Save As Custom Playlist" #~ msgstr "_Salva come scaletta personalizzata" #~ msgid "Delete track" #~ msgstr "Elimina traccia" #~ msgid "Export current playlist..." #~ msgstr "Esporta la scaletta corrente..." #~ msgid "Remove current track from playlist" #~ msgstr "Rimuovi la traccia corrente dalla scaletta" #~ msgid "Basic" #~ msgstr "Base" #~ msgid "Repeat playlist" #~ msgstr "Ripeti scaletta" #~ msgid "Length:" #~ msgstr "Durata:" #~ msgid "" #~ "Left\n" #~ "Right\n" #~ "Top\n" #~ "Bottom" #~ msgstr "" #~ "Sinistra\n" #~ "Destra\n" #~ "In alto\n" #~ "In basso" #~ msgid "Remove All" #~ msgstr "Rimuovi tutto" #~ msgid "" #~ "Normal\n" #~ "Unified (unstable)" #~ msgstr "" #~ "Normale\n" #~ "Unico (instabile)" #~ msgid "Track _properties" #~ msgstr "_Proprietà traccia" #~ msgid "_Go to Playing Track" #~ msgstr "_Vai alla traccia in riproduzione" #~ msgid "Clear bookmarks" #~ msgstr "Pulisci segnalibri" #~ msgid "Seeking: " #~ msgstr "Ricerca: " #~ msgid "On Tray Icon Hover" #~ msgstr "Al passaggio sull'icona nell'area di notifica" #~ msgid "Last.fm Dynamic Search" #~ msgstr "Ricerca dinamica su Last.fm" #~ msgid "MPRIS" #~ msgstr "MPRIS" #~ msgid " (%(queue_count)d queued)" #~ msgstr " (%(queue_count)d accodate)" #~ msgid "A plugin with the name \"%s\" is already installed" #~ msgstr "Un plugin con il nome «%s» è già stato installato" #~ msgid "Plugin archive contains an unsafe path" #~ msgstr "L'archivio dei plugin contiene un percorso non sicuro" #~ msgid "Original Artist" #~ msgstr "Artista originale" #~ msgid "Original Album" #~ msgstr "Album originale" #~ msgid "Original Date" #~ msgstr "Data originale" #~ msgid "Print the progress inside the current track as percentage" #~ msgstr "Stampa l'avanzamento in percentuale della traccia corrente" #~ msgid "%(year)d-%(month)02d-%(day)02d" #~ msgstr "%(day)02d/%(month)02d/%(year)d" #~ msgid "%(minutes)d:%(seconds)02d" #~ msgstr "%(minutes)d.%(seconds)02d" #~ msgid "Add to custom playlist" #~ msgstr "Aggiungi alla scaletta personalizzata" #~ msgid "" #~ "Exaile Music Player\n" #~ "Not playing" #~ msgstr "" #~ "Riproduttore musicale Exaile\n" #~ "Non in riproduzione" #~ msgid "_Save As..." #~ msgstr "Sa_lva come..." #~ msgid "C_lear All Tracks" #~ msgstr "_Pulisci tutte le tracce" #~ msgid "_Close Playlist" #~ msgstr "_Chiudi scaletta" #~ msgid "No track" #~ msgstr "Nessuna traccia" #~ msgid "Enter the search text" #~ msgstr "Inserire il testo da cercare" #~ msgid "" #~ "Path is already in your collection, or is a subdirectory of another path " #~ "in your collection" #~ msgstr "" #~ "Il percorso è già presente nella propria collezione o in una " #~ "sottodirectory di un altro percorso." #~ msgid "Add a directory" #~ msgstr "Aggiungi una directory" #~ msgid "Idle." #~ msgstr "Inattivo." #~ msgid "New custom playlist name:" #~ msgstr "Nome della scaletta personalizzata:" #~ msgid "Add To New Playlist..." #~ msgstr "Aggiungi alla nuova scaletta..." #~ msgid "" #~ "This will permanantly delete the selected tracks from your disk, are you " #~ "sure you wish to continue?" #~ msgstr "Questo eliminerà permanentemente le tracce selezionate. Continuare?" #~ msgid "Could not enable plugin: %s" #~ msgstr "Impossibile abilitare il plugin: %s" #~ msgid "Could not disable plugin: %s" #~ msgstr "Impossibile disabilitare il plugin: %s" #~ msgid "File Size:" #~ msgstr "Dimensione file:" #~ msgid "Date:" #~ msgstr "Data:" #~ msgid "Details" #~ msgstr "Dettagli" #~ msgid "© 2009" #~ msgstr "© 2009" #~ msgid "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager" #~ msgstr "" #~ "Mathias Brodala\n" #~ " \n" #~ " Direttore traduzione" #~ msgid "Use alpha transparency (if supported)" #~ msgstr "Usare trasparenza alfa (se supportata)" #~ msgid "" #~ "Automatic\n" #~ "GNOME\n" #~ "ALSA\n" #~ "OSS\n" #~ "PulseAudio\n" #~ "JACK" #~ msgstr "" #~ "Automatico\n" #~ "GNOME\n" #~ "ALSA\n" #~ "OSS\n" #~ "PulseAudio\n" #~ "JACK" #~ msgid "Install a third party plugin from a file" #~ msgstr "Installa un plugin di terze parti da file" #~ msgid "These options only affect the unified engine." #~ msgstr "Queste opzioni riguardano solo il motore «Unico»." #~ msgid "Playback engine (requires restart): " #~ msgstr "Motore di riproduzione (richiede riavvio): " #~ msgid "Install plugin file" #~ msgstr "Installa plugin" #~ msgid "_Export current playlist" #~ msgstr "_Esporta scaletta corrente" #~ msgid "$title ($length)" #~ msgstr "$title ($length)" #~ msgid "On Track Change" #~ msgstr "Al cambio di traccia" #~ msgid "On Playback Start, Pause or Stop" #~ msgstr "All'avvio, pausa o arresto della riproduzione" #~ msgid "Use Media Icons For Pause, Stop and Resume" #~ msgstr "Usare icone multimediali per le azioni di pausa, arresto e ripresa" #~ msgid "When GUI is Focused" #~ msgstr "Quando l'interfaccia grafica ha il focus" #~ msgid "" #~ "To sign up for an Amazon AWS account and get \n" #~ "this information visit http://aws.amazon.com/" #~ msgstr "" #~ "Per registrare un account Amazon AWS e ottenere\n" #~ "queste informazioni, visitare http://aws.amazon.com/" #~ msgid "Secret Key:" #~ msgstr "Chiave segreta:" #~ msgid "Use Album Covers As Icons" #~ msgstr "Usare le copertine degli album come icone" #~ msgid "" #~ "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " #~ "replaced by their respective values. The title will be replaced by " #~ "\"Unknown\" if it is empty." #~ msgstr "" #~ "I tag \"%(title)s\", \"%(artist)s\" e \"%(album)s\" saranno rimpiazzati " #~ "dai loro rispettivi valori. Il titolo sarà rimpiazzato da \"Sconosciuto\" " #~ "se vuoto." #~ msgid "Only artist" #~ msgstr "Artista" #~ msgid "" #~ "Message that should be displayed in the body of the notification. In each " #~ "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced " #~ "by their respective values. If the tag is not known, \"Unknown\" will be " #~ "filled in its place" #~ msgstr "" #~ "Messaggio da mostrare nel corpo della notifica. In ogni caso, \"%(title)s" #~ "\", \"%(artist)s\" e \"%(album)s\" saranno rimpiazzati dai loro " #~ "rispettivi valori. Se vuoto, il valore verrà indicato come \"Sconosciuto" #~ "\"." #~ msgid "Only album" #~ msgstr "Album" #~ msgid "Terminal Opacity:" #~ msgstr "Opacità del terminale:" #~ msgid "Save Location:" #~ msgstr "Posizione di salvataggio:" #~ msgid "" #~ "Adds support for playing audio CDs.\n" #~ "Requires python-cddb to look up tags." #~ msgstr "" #~ "Aggiunge il supporto all'esecuzione di CD audio.\n" #~ "È richiesto python-cddb per cercare le etichette." #~ msgid "Track title format:" #~ msgstr "Formato del titolo della traccia:" #~ msgid "Creates an MPRIS D-Bus object to control Exaile" #~ msgstr "Crea un oggetto D-Bus MPRIS per controllare Exaile" #~ msgid "iPod support" #~ msgstr "Supporto iPod" #~ msgid "A plugin for iPod support" #~ msgstr "Un plugin per il supporto agli iPod" #~ msgid "" #~ "Show various informations about the track currently playing.\n" #~ "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2" #~ msgstr "" #~ "Mostra varie informazioni sulla traccia in esecuzione.\n" #~ "Dipendenze: libwebkit >= 1.0.1, python-webkit >= 1.1.2" #~ msgid "Plugin to fetch lyrics from lyricwiki.org" #~ msgstr "Plugin per scaricare i testi da lyricwiki.org" #~ msgid "Print the position inside the current track as time" #~ msgstr "Stampa la posizione all'interno della traccia corrente come tempo" #~ msgid "Move selected item down" #~ msgstr "Sposta l'elemento selezionato in giù" #~ msgid "Move selected item up" #~ msgstr "Sposta l'elemento selezionato in su" #~ msgid "_Randomize Playlist" #~ msgstr "Riproduzione _casuale della scaletta" #~ msgid "" #~ "Copyright (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "This program is free software; you can redistribute it and/or modify\n" #~ "it under the terms of the GNU General Public License as published by\n" #~ "the Free Software Foundation; either version 2 of the License, or\n" #~ "(at your option) any later version.\n" #~ "\n" #~ "This program is distributed in the hope that it will be useful,\n" #~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" #~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" #~ "GNU General Public License for more details.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along\n" #~ "with this program; if not, write to the Free Software Foundation, Inc.,\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ msgstr "" #~ "Copyright (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "This program is free software; you can redistribute it and/or modify\n" #~ "it under the terms of the GNU General Public License as published by\n" #~ "the Free Software Foundation; either version 2 of the License, or\n" #~ "(at your option) any later version.\n" #~ "\n" #~ "This program is distributed in the hope that it will be useful,\n" #~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" #~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" #~ "GNU General Public License for more details.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along\n" #~ "with this program; if not, write to the Free Software Foundation, Inc.,\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ msgid "Remove item" #~ msgstr "Rimuovi elemento" #~ msgid "Add item" #~ msgstr "Aggiungi elemento" #~ msgid "New playlist title:" #~ msgstr "Nuovo titolo della scaletta:" #~ msgid "Window Height:" #~ msgstr "Altezza finestra:" #~ msgid "Window Width:" #~ msgstr "Larghezza finestra:" #~ msgid "Pauses/resumes playback on screensaver start/stop" #~ msgstr "Ferma/riprende la riproduzione all'avvio/arresto del salvaschermo" #~ msgid "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgstr "" #~ "Sposta la finestra della Vista a schermo nella posizione desiderata" #~ msgid "Display a progressbar in the OSD" #~ msgstr "Visualizzare una barra di avanzamento nell'OSD" #~ msgid "Show OSD on track change" #~ msgstr "Mostrare l'OSD al cambiamento della traccia" dist/copy/po/PaxHeaders.26361/os.po0000644000175000017500000000012412233027260015420 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.381046941 exaile-3.3.2/po/os.po0000644000000000000000000027124112233027260014367 0ustar00rootroot00000000000000# Ossetian translation for exaile # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2011. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-08-25 20:55+0200\n" "PO-Revision-Date: 2011-05-10 08:15+0000\n" "Last-Translator: Soslan Khubulov \n" "Language-Team: Ossetian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-08-28 05:27+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "" #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "" #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "" #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "" #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "" #: ../xl/formatter.py:690 ../xl/formatter.py:695 msgid "Never" msgstr "" #: ../xl/formatter.py:701 msgid "Today" msgstr "" #: ../xl/formatter.py:703 msgid "Yesterday" msgstr "" #: ../xl/main.py:191 msgid "Failed to migrate from 0.2.14" msgstr "" #: ../xl/main.py:406 msgid "Usage: exaile [OPTION]... [URI]" msgstr "" #: ../xl/main.py:407 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "" #: ../xl/main.py:411 msgid "Playback Options" msgstr "" #: ../xl/main.py:413 msgid "Play the next track" msgstr "" #: ../xl/main.py:415 msgid "Play the previous track" msgstr "" #: ../xl/main.py:417 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "" #: ../xl/main.py:419 msgid "Play" msgstr "Цæгъд" #: ../xl/main.py:421 msgid "Pause" msgstr "" #: ../xl/main.py:424 msgid "Pause or resume playback" msgstr "" #: ../xl/main.py:427 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "" #: ../xl/main.py:430 msgid "Collection Options" msgstr "" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:433 ../xl/main.py:440 msgid "LOCATION" msgstr "" #: ../xl/main.py:433 msgid "Add tracks from LOCATION to the collection" msgstr "" #: ../xl/main.py:437 msgid "Playlist Options" msgstr "" #: ../xl/main.py:441 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:444 msgid "Track Options" msgstr "" #: ../xl/main.py:446 msgid "Query player" msgstr "" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:449 msgid "FORMAT" msgstr "" #: ../xl/main.py:450 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:453 msgid "TAGS" msgstr "" #: ../xl/main.py:454 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:457 msgid "Show a popup with data of the current track" msgstr "" #: ../xl/main.py:459 msgid "Print the title of current track" msgstr "" #: ../xl/main.py:461 msgid "Print the album of current track" msgstr "" #: ../xl/main.py:463 msgid "Print the artist of current track" msgstr "" #: ../xl/main.py:465 msgid "Print the length of current track" msgstr "" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:468 ../xl/main.py:483 ../xl/main.py:487 msgid "N" msgstr "" #: ../xl/main.py:469 msgid "Set rating for current track to N%" msgstr "" #: ../xl/main.py:471 msgid "Get rating for current track" msgstr "" #: ../xl/main.py:474 msgid "Print the current playback position as time" msgstr "" #: ../xl/main.py:476 msgid "Print the current playback progress as percentage" msgstr "" #: ../xl/main.py:480 msgid "Volume Options" msgstr "" #: ../xl/main.py:484 msgid "Increases the volume by N%" msgstr "" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:489 msgid "Decreases the volume by N%" msgstr "" #: ../xl/main.py:492 msgid "Mutes or unmutes the volume" msgstr "" #: ../xl/main.py:494 msgid "Print the current volume percentage" msgstr "" #: ../xl/main.py:497 msgid "Other Options" msgstr "" #: ../xl/main.py:499 msgid "Start new instance" msgstr "" #: ../xl/main.py:501 msgid "Show this help message and exit" msgstr "" #: ../xl/main.py:503 msgid "Show program's version number and exit." msgstr "" #: ../xl/main.py:506 msgid "Start minimized (to tray, if possible)" msgstr "" #: ../xl/main.py:509 msgid "Toggle visibility of the GUI (if possible)" msgstr "" #: ../xl/main.py:511 msgid "" "Start in safe mode - sometimes useful when you're running into problems" msgstr "" #: ../xl/main.py:514 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" #: ../xl/main.py:517 msgid "Do not import old data from version 0.2.x" msgstr "" #: ../xl/main.py:520 msgid "Make control options like --play start Exaile if it is not running" msgstr "" #: ../xl/main.py:524 msgid "Development/Debug Options" msgstr "" #: ../xl/main.py:526 ../xl/main.py:528 msgid "DIRECTORY" msgstr "" #: ../xl/main.py:526 msgid "Set data directory" msgstr "" #: ../xl/main.py:528 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:530 msgid "MODULE" msgstr "" #: ../xl/main.py:531 msgid "Limit log output to MODULE" msgstr "" #: ../xl/main.py:533 msgid "LEVEL" msgstr "" #: ../xl/main.py:534 msgid "Limit log output to LEVEL" msgstr "" #: ../xl/main.py:537 msgid "Show debugging output" msgstr "" #: ../xl/main.py:539 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "" #: ../xl/main.py:542 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:545 msgid "TYPE" msgstr "" #: ../xl/main.py:546 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:548 msgid "Reduce level of output" msgstr "" #: ../xl/main.py:552 msgid "Disable D-Bus support" msgstr "" #: ../xl/main.py:554 msgid "Disable HAL support." msgstr "" #: ../xl/main.py:570 msgid "Entire Library" msgstr "" #: ../xl/main.py:576 #, python-format msgid "Random %d" msgstr "" #: ../xl/main.py:584 #, python-format msgid "Rating > %d" msgstr "" #: ../xl/main.py:685 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "" #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "" #: ../xl/trax/trackdb.py:246 msgid "You did not specify a location to save the db" msgstr "" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr "" #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "" #: ../xl/player/pipe.py:309 ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Automatic" msgstr "" #: ../xl/player/pipe.py:345 ../data/ui/preferences/playback.ui.h:21 #: ../plugins/previewdevice/previewprefs.ui.h:16 msgid "Custom" msgstr "" #: ../xl/player/pipe.py:400 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "" #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "" #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "" #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "" #: ../xl/playlist.py:173 msgid "Playlist" msgstr "" #: ../xl/playlist.py:279 ../xlgui/oldmenu.py:269 msgid "M3U Playlist" msgstr "" #: ../xl/playlist.py:379 ../xlgui/oldmenu.py:270 msgid "PLS Playlist" msgstr "" #: ../xl/playlist.py:472 ../xl/playlist.py:488 #, python-format msgid "Invalid format for %s." msgstr "" #: ../xl/playlist.py:483 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "" #: ../xl/playlist.py:543 ../xlgui/oldmenu.py:271 msgid "ASX Playlist" msgstr "" #: ../xl/playlist.py:714 ../xlgui/oldmenu.py:272 msgid "XSPF Playlist" msgstr "" #: ../xl/playlist.py:829 msgid "Shuffle _Off" msgstr "" #: ../xl/playlist.py:830 msgid "Shuffle _Tracks" msgstr "" #: ../xl/playlist.py:830 msgid "Shuffle _Albums" msgstr "" #: ../xl/playlist.py:834 msgid "Repeat _Off" msgstr "" #: ../xl/playlist.py:834 msgid "Repeat _All" msgstr "" #: ../xl/playlist.py:834 msgid "Repeat O_ne" msgstr "" #: ../xl/playlist.py:838 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:838 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1779 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "" #: ../xl/playlist.py:1780 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "" #: ../xl/playlist.py:1781 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "" #: ../xl/playlist.py:1782 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "" #: ../xl/playlist.py:1783 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "" #: ../xl/lyrics.py:305 msgid "Local" msgstr "" #: ../xlgui/widgets/menuitems.py:93 msgid "Enqueue" msgstr "" #: ../xlgui/widgets/menuitems.py:115 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "" #: ../xlgui/widgets/menuitems.py:119 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "" #: ../xlgui/widgets/menuitems.py:129 ../xlgui/widgets/playlist.py:309 #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "" #: ../xlgui/widgets/menuitems.py:142 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "" #: ../xlgui/widgets/menuitems.py:164 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" #: ../xlgui/widgets/menuitems.py:179 msgid "Move to Trash" msgstr "" #: ../xlgui/widgets/menuitems.py:190 msgid "_Show Playing Track" msgstr "" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "" #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr "" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "" #: ../xlgui/widgets/queue.py:41 ../xlgui/widgets/playlist.py:208 #: ../xlgui/playlist.py:130 msgid "Clear" msgstr "" #: ../xlgui/widgets/queue.py:44 ../xlgui/widgets/playlist.py:211 #: ../plugins/history/__init__.py:239 msgid "Close" msgstr "" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:204 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "" #: ../xlgui/widgets/playlist_columns.py:205 msgid "Track Number" msgstr "" #: ../xlgui/widgets/playlist_columns.py:212 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "" #: ../xlgui/widgets/playlist_columns.py:219 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:171 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "" #: ../xlgui/widgets/playlist_columns.py:226 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "" #: ../xlgui/widgets/playlist_columns.py:233 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:174 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "" #: ../xlgui/widgets/playlist_columns.py:240 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "" #: ../xlgui/widgets/playlist_columns.py:247 ../xlgui/properties.py:75 msgid "Disc" msgstr "" #: ../xlgui/widgets/playlist_columns.py:248 msgid "Disc Number" msgstr "" #: ../xlgui/widgets/playlist_columns.py:255 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "" #: ../xlgui/widgets/playlist_columns.py:299 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "" #: ../xlgui/widgets/playlist_columns.py:305 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "" #: ../xlgui/widgets/playlist_columns.py:319 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "" #: ../xlgui/widgets/playlist_columns.py:326 ../xlgui/panel/files.py:147 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "" #: ../xlgui/widgets/playlist_columns.py:333 msgid "Playcount" msgstr "" #: ../xlgui/widgets/playlist_columns.py:340 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "" #: ../xlgui/widgets/playlist_columns.py:347 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "" #: ../xlgui/widgets/playlist_columns.py:359 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:478 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:487 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:606 msgid "_Resizable" msgstr "" #: ../xlgui/widgets/playlist_columns.py:611 msgid "_Autosize" msgstr "" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "" #: ../xlgui/widgets/playlist.py:126 msgid "Shuffle" msgstr "" #: ../xlgui/widgets/playlist.py:130 msgid "Repeat" msgstr "" #: ../xlgui/widgets/playlist.py:134 msgid "Dynamic" msgstr "" #: ../xlgui/widgets/playlist.py:149 msgid "Remove Current Track From Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:179 msgid "Randomize Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:203 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "" #: ../xlgui/widgets/playlist.py:246 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:253 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:302 ../xlgui/oldmenu.py:352 #: ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "" #: ../xlgui/widgets/playlist.py:499 msgid "Requires plugins providing dynamic playlists" msgstr "" #: ../xlgui/widgets/playlist.py:503 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "" #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/notebook.py:136 msgid "Close tab" msgstr "" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "" #: ../xlgui/main.py:463 msgid "Toggle: Stop after Selected Track" msgstr "" #: ../xlgui/main.py:566 ../plugins/previewdevice/__init__.py:354 msgid "Playback error encountered!" msgstr "" #: ../xlgui/main.py:573 #, python-format msgid "Buffering: %d%%..." msgstr "" #: ../xlgui/main.py:625 ../plugins/previewdevice/__init__.py:365 msgid "Continue Playback" msgstr "" #: ../xlgui/main.py:629 ../xlgui/main.py:817 #: ../plugins/previewdevice/__init__.py:336 #: ../plugins/previewdevice/__init__.py:369 msgid "Pause Playback" msgstr "" #: ../xlgui/main.py:771 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "" #: ../xlgui/main.py:829 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:347 msgid "Start Playback" msgstr "" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "" #: ../xlgui/menu.py:115 msgid "Close Tab" msgstr "" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "" #: ../xlgui/properties.py:54 msgid "Website" msgstr "" #: ../xlgui/properties.py:55 ../xlgui/cover.py:777 msgid "Cover" msgstr "" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "" #: ../xlgui/properties.py:57 msgid "Author" msgstr "" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1096 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "" #: ../xlgui/cover.py:111 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:112 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:137 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:477 msgid "Show Cover" msgstr "" #: ../xlgui/cover.py:478 msgid "Fetch Cover" msgstr "" #: ../xlgui/cover.py:479 msgid "Remove Cover" msgstr "" #: ../xlgui/cover.py:779 #, python-format msgid "Cover for %s" msgstr "" #: ../xlgui/cover.py:949 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "" #: ../xlgui/cover.py:982 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1054 msgid "No covers found." msgstr "" #: ../xlgui/cover.py:1055 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "" #: ../xlgui/devices.py:81 msgid "Device" msgstr "" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "" #: ../xlgui/__init__.py:289 msgid "Scanning collection..." msgstr "" #: ../xlgui/__init__.py:373 #, python-format msgid "Scanning %s..." msgstr "" #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "" #: ../xlgui/oldmenu.py:264 msgid "Export as..." msgstr "" #: ../xlgui/oldmenu.py:289 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:299 ../xlgui/panel/playlists.py:1197 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "" #: ../xlgui/oldmenu.py:312 msgid "Enter the new name you want for your playlist" msgstr "" #: ../xlgui/oldmenu.py:313 msgid "Rename Playlist" msgstr "" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "" #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "" #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "" #: ../xlgui/panel/collection.py:177 msgid "Genre - Artist" msgstr "" #: ../xlgui/panel/collection.py:180 msgid "Genre - Album" msgstr "" #: ../xlgui/panel/collection.py:183 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:186 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:189 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:312 msgid "Rescan Collection" msgstr "" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:171 msgid "Size" msgstr "" #: ../xlgui/panel/files.py:433 #, python-format msgid "%d KB" msgstr "" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "" #: ../xlgui/panel/playlists.py:276 msgid "Playlist name:" msgstr "" #: ../xlgui/panel/playlists.py:277 msgid "Add new playlist..." msgstr "" #: ../xlgui/panel/playlists.py:286 ../xlgui/panel/playlists.py:768 #: ../xlgui/panel/playlists.py:851 msgid "You did not enter a name for your playlist" msgstr "" #: ../xlgui/panel/playlists.py:289 ../xlgui/panel/playlists.py:349 #: ../xlgui/panel/playlists.py:774 ../xlgui/panel/playlists.py:858 msgid "The playlist name you entered is already in use." msgstr "" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:443 ../xlgui/panel/playlists.py:457 #: ../xlgui/panel/playlists.py:471 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:448 ../xlgui/panel/playlists.py:462 #: ../xlgui/panel/playlists.py:476 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:688 msgid "Smart Playlists" msgstr "" #: ../xlgui/panel/playlists.py:691 msgid "Custom Playlists" msgstr "" #: ../xlgui/panel/playlists.py:746 msgid "Add Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:821 msgid "Edit Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:1144 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "" msgstr[1] "" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2010" msgstr "" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "" #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "" #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "" #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "GNOME" msgstr "" #: ../data/ui/preferences/playback.ui.h:16 #: ../plugins/previewdevice/previewprefs.ui.h:11 msgid "ALSA" msgstr "" #: ../data/ui/preferences/playback.ui.h:17 #: ../plugins/previewdevice/previewprefs.ui.h:12 msgid "OSS" msgstr "" #: ../data/ui/preferences/playback.ui.h:18 #: ../plugins/previewdevice/previewprefs.ui.h:13 msgid "PulseAudio" msgstr "" #: ../data/ui/preferences/playback.ui.h:19 #: ../plugins/previewdevice/previewprefs.ui.h:14 msgid "JACK" msgstr "" #: ../data/ui/preferences/playback.ui.h:20 #: ../plugins/previewdevice/previewprefs.ui.h:15 msgid "DirectSound" msgstr "" #: ../data/ui/preferences/playback.ui.h:22 #: ../plugins/previewdevice/previewprefs.ui.h:17 msgid "Normal" msgstr "" #: ../data/ui/preferences/playback.ui.h:23 #: ../plugins/previewdevice/previewprefs.ui.h:18 msgid "Unified (unstable)" msgstr "" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Always show tab bar" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Tab placement:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:6 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:9 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "Show tray icon" msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Minimize to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:15 msgid "Jump to current song on track change" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Show splash screen on startup" msgstr "" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Left" msgstr "" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Right" msgstr "" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Top" msgstr "" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Bottom" msgstr "" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "" #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "" #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "" #: ../plugins/streamripper/__init__.py:64 msgid "Error executing streamripper" msgstr "" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:185 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:204 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/awn/awn_prefs.py:32 msgid "AWN" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "" #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "" #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:155 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:161 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "" #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:130 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:95 #: ../plugins/grouptagger/__init__.py:112 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:106 #: ../plugins/grouptagger/gt_widgets.py:688 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:117 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:121 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:652 #: ../plugins/grouptagger/gt_widgets.py:753 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:512 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:709 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:735 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:746 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:746 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:746 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:746 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:754 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "" #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:356 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "" #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "" #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "" #: ../plugins/contextinfo/__init__.py:1127 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "" #: ../plugins/bpm/__init__.py:78 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:238 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "" #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "" #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 msgid "API Key:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgctxt "yes" msgid "Monday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgctxt "yes" msgid "Tuesday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgctxt "yes" msgid "Wednesday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgctxt "yes" msgid "Thursday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgctxt "yes" msgid "Friday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgctxt "yes" msgid "Saturday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgctxt "yes" msgid "Sunday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgctxt "yes" msgid "Use Fading" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgctxt "yes" msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgctxt "yes" msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgctxt "yes" msgid "Increment:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgctxt "yes" msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by " "\"Unknown\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango" " Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret key:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon.com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "" #: ../plugins/awn/PLUGININFO:3 msgid "Awn" msgstr "" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is " "played/resumed/stopped, with either the song cover or a media icon to " "indicate the latest action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides contextual wikipedia information.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" dist/copy/po/PaxHeaders.26361/gl.po0000644000175000017500000000012312233027260015400 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 29 ctime=1382821553.03304693 exaile-3.3.2/po/gl.po0000644000000000000000000030257312233027260014353 0ustar00rootroot00000000000000# Galician translation for exaile # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2010-06-03 22:28+0000\n" "Last-Translator: Xosé \n" "Language-Team: Galician \n" "Language: gl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-08-28 05:26+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d segundo" msgstr[1] "%d segundos" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "" #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "" #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "" #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "" #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "" #: ../xl/formatter.py:702 msgid "Today" msgstr "" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "Fallo ao mirar dende 0.2.14" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "" #: ../xl/main.py:421 msgid "Playback Options" msgstr "" #: ../xl/main.py:423 msgid "Play the next track" msgstr "" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "" #: ../xl/main.py:429 msgid "Play" msgstr "Reproducir" #: ../xl/main.py:431 msgid "Pause" msgstr "Pausar" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "" #: ../xl/main.py:440 msgid "Collection Options" msgstr "" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:454 msgid "Track Options" msgstr "" #: ../xl/main.py:456 msgid "Query player" msgstr "" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "" #: ../xl/main.py:490 msgid "Volume Options" msgstr "" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "" #: ../xl/main.py:507 msgid "Other Options" msgstr "" #: ../xl/main.py:509 msgid "Start new instance" msgstr "" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "" #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "" #: ../xl/main.py:536 msgid "Set data directory" msgstr "" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "" #: ../xl/main.py:543 msgid "LEVEL" msgstr "" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:555 msgid "TYPE" msgstr "" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "" #: ../xl/main.py:580 msgid "Entire Library" msgstr "Biblioteca Enteira" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "Etiquetas" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "" #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "Descoñecido" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr "" #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "" #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "Automático" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "Personalizado" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "" #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "" #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "" #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "" #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "Lista de reprodución" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "" #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "segundos" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "minutos" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "horas" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "días" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "semanas" #: ../xl/lyrics.py:305 msgid "Local" msgstr "" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "Engadir á Actual" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "Nome:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "Coincidir calquera criterio" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "Limitar a: " #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr "" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "Sen Reproducción" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "%d na colección" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "Mostrando %d" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "Cola" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "#" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "Número de Pista" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "Título" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "Artista" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "Compositor" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "Álbume" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "Duración" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "Disco" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "Número de disco" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "Valoración" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "Data" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "Xénero" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "Taxa de bits" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "Ubicación" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "Nome de arquivo" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "Contador de reproduccións" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "BPM" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "Misturar" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "Repetir" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "Dinámico" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "Misturar a Lista de Reproducción" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "Nova Lista de Reproducción" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "Renomear" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "Arquivos Soportados" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "Arquivos de Música" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "Arquivos de Listas de Reproducción" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "Todos os arquivos" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "" #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "Non introduciches un nome para a lista" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "" #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "" #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "Reprodutor de Música Exaile" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "_Nova Lista de Reproducción" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "Abrir _URL" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "_Columnas" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "Cancelar" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "Letra" #: ../xlgui/properties.py:54 msgid "Website" msgstr "Páxina web" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "" #: ../xlgui/properties.py:57 msgid "Author" msgstr "Autor" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "Arranxo" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "Director" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "Intérprete" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "Copyright" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "Letras" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "Pista" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "Versión" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "ISRC" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "Organización" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "Quitar carátula" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "Non se atoparon carátulas." #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "" #: ../xlgui/devices.py:81 msgid "Device" msgstr "" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "Analizando colección..." #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "" #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "Alternar Cola" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "Cola de Artigos" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "Nova Emisora" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "Editar" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "Exportar a Lista de Reproducción" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "Borrar Lista" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "¿Estás seguro de querer eliminar permanentemente a lista seleccionada?" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "Renomear Lista de Reproducción" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "Eliminar" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "" #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "Cargando fluxos..." #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "URL:" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "Emisoras Gardadas" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "Fluxos de Radio" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "Actualizar" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "Introduce o nome que queres para a lista" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "Tamaño" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s KiB" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "e" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "é" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "non é" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "contén" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "non contén" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "polo menos" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "como moito" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "antes" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "despois" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "entre" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "nos últimos" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "non nos últimos" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "Ano" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "Listas Intelixentes" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "Listas Personalizadas" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "Engadir Lista Intelixente" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "Complementos" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "" msgstr[1] "" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "Colección" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "Listas de reproducción" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "Buscador de Carátulas" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "_Ficheiro" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "_Editar" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "_Ver" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "Ferramen_tas" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "_Axuda" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "Pista anterior" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "Pista seguinte" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "Descrición:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "Radio" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "Importar CD" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "Engadir Emisora" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "Arquivos" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "Procurar: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "" #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "" #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "Complemento" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "Activado" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "Ningún Complemento Seleccionado" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "Complementos Instalados" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "Autores:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "Versión:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "Instalar" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "Ningún Complemento Seleccionado" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "Complementos Dispoñibles" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "Instalar Actualizacións" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "Actualizacións" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "Amosar icona na bandexa" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "Saltar á canción actual ó cambiar a pista" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "Mostrar pantalla ó arrancar" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "Preferencias" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "" #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "" #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "Alarma" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "" #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "Procurar" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "" #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "" #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "Disco de Audio" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "Artista: " #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" "Sabías que...\n" "\n" "%s" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "Modo Mini" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "Anterior" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "Seguinte" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "Reproducir/Pausar" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "Grupo" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "" #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "Podcasts" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "" #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "" #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "Carátulas no Escritorio" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "" #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "Introduce a dirección IP e o porto para compartir" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "Introduce a dirección IP e porto." #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" "Este servidor non soporta conexións múltiples.\n" "Tes que parar a reproducción antes de descargar." #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "Luns" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "Martes" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "Mércores" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "Xoves" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "Venres" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "Sábado" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "Domingo" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "Usar Fundido" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "Ningún" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "Contrasinal:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "Nome de usuario:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "0" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "Cor de fondo:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "Sempre enriba" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "Avanzado" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "Engadir" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "Porto:" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "Radio Shoutcast" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "Dispositivos" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "Información" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "Mostra a portada do álbume no escritorio" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" #~ msgid "Close" #~ msgstr "Pechar" #~ msgid "AWN" #~ msgstr "AWN" #~ msgid "General" #~ msgstr "Xeral" #~ msgid "Popup" #~ msgstr "Emerxente" #~ msgid "Text Font:" #~ msgstr "Fonte do texto:" #~ msgid "Text Color" #~ msgstr "Cor do texto" #~ msgid "Vol:" #~ msgstr "Vol:" #~ msgid "_Close" #~ msgstr "_Pechar" #~ msgid "Open" #~ msgstr "Abrir" #~ msgid " songs" #~ msgstr " cancións" #~ msgid "Quit" #~ msgstr "Saír" #~ msgid "from %s" #~ msgstr "de %s" #~ msgid "by %s" #~ msgstr "de %s" #~ msgid "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgstr "" #~ "{title}\n" #~ "{artist}\n" #~ "en {album} - {length}" #~ msgid "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgstr "Move a notificación OSD onde queiras que apareza" #~ msgid "Autosize" #~ msgstr "Autoaxustar" #~ msgid "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "Year - Artist\n" #~ "Year - Album\n" #~ "Artist - Year - Album" #~ msgstr "" #~ "Artista\n" #~ "Álbume\n" #~ "Xénero - Artista\n" #~ "Xénero - Álbume\n" #~ "Ano - Artista\n" #~ "Ano - Álbume\n" #~ "Artista - Ano - Álbume" #~ msgid "Display OSD when hovering over tray icon" #~ msgstr "Mostrar a OSD ó pasar por riba da icona da bandexa" #~ msgid "Opacity Level:" #~ msgstr "Nivel de Opacidade:" #~ msgid "Resizable" #~ msgstr "Redimensionable." #~ msgid "Show OSD on track change" #~ msgstr "Mostrar a OSD ó cambiar de pista" #~ msgid "Start" #~ msgstr "Comezar" #~ msgid "Stopped" #~ msgstr "Detido" #~ msgid "Stop Playback" #~ msgstr "Parar Reproducción" #~ msgid "Window Height:" #~ msgstr "Altura da fiestra" #~ msgid "Window Width:" #~ msgstr "Largura da fiestra" #~ msgid "Alarm Days:" #~ msgstr "Días programados:" #~ msgid "Add Playlist" #~ msgstr "Engadir á Lista de Reproducción" #~ msgid "Relay Port:" #~ msgstr "Porto de Relay:" #~ msgid "Enter the search text" #~ msgstr "Introduce o texto a procurar" #~ msgid "New Search" #~ msgstr "Nova Procura" #~ msgid "Add a directory" #~ msgstr "Engadir un cartafol" #~ msgid "Choose a file" #~ msgstr "Escolle un arquivo" #~ msgid "" #~ "Path is already in your collection, or is a subdirectory of another path " #~ "in your collection" #~ msgstr "" #~ "A ruta xa está na túa colección, ou é un subcartafol doutro que xa está " #~ "na túa colección" #~ msgid "%(title)s (by %(artist)s)" #~ msgstr "%(title)s (de %(artist)s)" #~ msgid "Playing %s" #~ msgstr "Reproducindo %s" #~ msgid "Add to Playlist" #~ msgstr "Engadir á Lista" #~ msgid "Number of Plays" #~ msgstr "Número de Reproduccións" #~ msgid "LastFM Radio" #~ msgstr "Radio LastFM" #~ msgid "Personal" #~ msgstr "Personal" #~ msgid "Recommended" #~ msgstr "Recomendado" #~ msgid "Neighbourhood" #~ msgstr "Vecindario" #~ msgid "Loved Tracks" #~ msgstr "Pistas Preferidas" #~ msgid "Clear Playlist" #~ msgstr "Limpar a lista de reprodución" #~ msgid "Exaile" #~ msgstr "Exaile" #~ msgid "Location:" #~ msgstr "Ubicación:" #~ msgid "Search:" #~ msgstr "Procurar:" #~ msgid "Select a save location" #~ msgstr "Selecciona unha ubicación para gardar" #~ msgid "Bitrate:" #~ msgstr "Taxa de bits:" #~ msgid "Genre:" #~ msgstr "Xénero:" #~ msgid "Part" #~ msgstr "Parte" #~ msgid "Original Date" #~ msgstr "Data orixinal" #~ msgid "Original Album" #~ msgstr "Álbume Orixinal" #~ msgid "Original Artist" #~ msgstr "Artista orixinal" #~ msgid "Encoded By" #~ msgstr "Codificado por" #~ msgid "Title:" #~ msgstr "Título:" #~ msgid "Artist:" #~ msgstr "Artista:" #~ msgid "Album:" #~ msgstr "Álbume:" #~ msgid "Track Number:" #~ msgstr "Número de Pista:" #~ msgid "Import" #~ msgstr "Importar" #~ msgid "Date Added" #~ msgstr "Data Engadido" #~ msgid "Last Played" #~ msgstr "Última vez Reproducido" #~ msgid "Plugin Manager" #~ msgstr "Xestor de Complementos" dist/copy/po/PaxHeaders.26361/ru.po0000644000175000017500000000012412233027260015425 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.025046929 exaile-3.3.2/po/ru.po0000644000000000000000000047102112233027260014372 0ustar00rootroot00000000000000# Russian translation for exaile # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2012-08-26 13:29+0000\n" "Last-Translator: Eugene Marshal \n" "Language-Team: Russian \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" "X-Launchpad-Export-Date: 2012-08-28 05:28+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "%d день, " msgstr[1] "%d дня, " msgstr[2] "%d дней, " #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "%d час, " msgstr[1] "%d часов (часа), " msgstr[2] "%d часов (часа), " #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "%d минута, " msgstr[1] "%d минут(ы), " msgstr[2] "%d минут(ы), " #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d секунда" msgstr[1] "%d секунды" msgstr[2] "%d секунд" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "%dд, " #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "%dч, " #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "%dм, " #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "%dс" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "%dd " #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "%d:%02d:%02d" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "%d:%02d" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "Никогда" #: ../xl/formatter.py:702 msgid "Today" msgstr "Сегодня" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "Вчера" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "Не удалось мигрировать с 0.2.14" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "Использование: exaile [ПАРАМЕТРЫ]... [URI]" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "Настройки" #: ../xl/main.py:421 msgid "Playback Options" msgstr "Настройки воспроизведения" #: ../xl/main.py:423 msgid "Play the next track" msgstr "Воспроизвести следующую композицию" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "Воспроизвести предыдущую композицию" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "Остановить воспроизведение" #: ../xl/main.py:429 msgid "Play" msgstr "Воспроизвести" #: ../xl/main.py:431 msgid "Pause" msgstr "Приостановить Воспроизведение" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "Приостановить или продолжить воспроизведение" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "Остановить воспроизведение после текущей дорожки" #: ../xl/main.py:440 msgid "Collection Options" msgstr "Параметры коллекции" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "Размещение" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "Добавить дорожки из LOCATION в коллекцию" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "Параметры плейлиста" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "Экспорт текущего списка воспроизведения в текущее местоположение" #: ../xl/main.py:454 msgid "Track Options" msgstr "Опции дорожки" #: ../xl/main.py:456 msgid "Query player" msgstr "Опросить плеер" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "Показать всплывающее окно с данными о текущем треке" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "Показывать название текущей дорожки" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "Показывать название альбома для текущей дорожки" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "Показывать исполнителя текущей дорожки" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "Показывать продолжительность текущей дорожки" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "N" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "Установить рейтинг текущего трэка N%" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "Получить рейтинг текущей дорожки" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "Показывать текущую позицию воспроизведения как время" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "Показывать текущий прогресс воспроизведения в процентах" #: ../xl/main.py:490 msgid "Volume Options" msgstr "Настройки звука" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "Увеличить громкость на N%" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "Уменьшить громкость на N%" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "Приглушить или включить громкость" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "Показывать текущий уровень громкости" #: ../xl/main.py:507 msgid "Other Options" msgstr "Прочие настройки" #: ../xl/main.py:509 msgid "Start new instance" msgstr "Запустить новый экземпляр" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "Показать это справочное сообщение и выйти" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "Показать номер версии программы и выйти" #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "Запускать свёрнутым в трей (если возможно)" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "Переключить видимость \"Графического интерфейса\" (если возможно)" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "" "Запускать в безопасном режиме - иногда это бывает полезно при возникновении " "проблем" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" "Принудительно импортировать старые данные из версии 0.2.x (Перезапишет " "текущие данные)" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "Не импортировать старые данные из версии 0.2.x" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" "Запускать Exaile при использовании таких параметров, как --play, если он еще " "не запущен" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "Настройки разработки/отладки" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "ДИРЕКТОРИЯ" #: ../xl/main.py:536 msgid "Set data directory" msgstr "Установить директорию с данными" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "МОДУЛЬ" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "Ограничить журнал событий до MODULE" #: ../xl/main.py:543 msgid "LEVEL" msgstr "УРОВЕНЬ" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "Ограничить журнал событий до LEVEL" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "Отображать отладочный вывод" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "Включить отладку xl.event. Создает ОГРОМНОЕ количество вывода" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "Добавить имя нити для регистрации сообщений" #: ../xl/main.py:555 msgid "TYPE" msgstr "ТИП" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "Снизить уровень сигнала" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "Отключить поддержку D-Bus" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "Отключить поддержку HAL" #: ../xl/main.py:580 msgid "Entire Library" msgstr "Вся фонотека" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "Случайный %d" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "Рейтинг > %d" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" "Exaile ещё не запустился. Возможно, вам следует дождаться сигнала " "exaile_loaded" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "Теги" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "Неверный формат архива с дополнением." #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "Модуль \"%s\" уже установлен." #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "Архив с дополнением содержит небезопасный путь." #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "Вы не указали местоположение базы данных" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "Вы не указали место для сохранения базы данных" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "Разные исполнители" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "Неизвестно" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr " / " #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "%dк" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" "Vorbis - открытый кодек для сжатия звука с потерями, дающий высокое качество " "при меньшем размере файла, чем MP3." #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" "FLAC (Free Lossless Audio Codec) - открытый кодек, сжимающий звук без потери " "качества." #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" "Формат сжатия звука принадлежащий Apple, дающий более высокое качество на " "низких частотах, чем MP3." #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" "Закрытый, устаревший, но всё ещё популярный формат сжатия звука с потерями. " "VBR дает более высокое качество звука, чем CBR, но может оказаться " "несовместимым с некоторыми плеерами." #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" "Закрытый, устаревший, но всё ещё популярный формат сжатия звука с потерями. " "CBR дает более низкое качество звука, чем VBR, но совместим с любыми " "плеерами." #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "" "Cвободный формат сжатия звука без потери качества с высокой скоростью и " "хорошей компрессией." #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "Автоматически" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "Вручную" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "Не воспроизводится." #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" "статус: %(status)s, название: %(title)s, исполнитель: %(artist)s, альбом: " "%(album)s, длина: %(length)s, позиция: %(progress)s%% [%(position)s]" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "Версия параметров новее текущей." #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "Нам неизвестно, как сохранить этот тип параметров: " #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "Обнаружен неизвестный тип параметров!" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "Неверный тип плейлиста." #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "Список воспроизведения" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "M3U список воспроизведения" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "PLS список воспроизведения" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "Неверный форма для %s." #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "Не поддерживаемая версия %(version)s для %(type)s" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "ASX список воспроизведения" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "XSPF список воспроизведения" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "Перемешивание _выкл." #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "Перемешивать _дорожки" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "Перемешивать _Альбомы" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "Отключить повтор" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "Повторять всегда" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "Повтор один раз" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "Выключить динамический плейлист" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "Динамический плейлист с похожими исполнителями" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "секунд(ы)" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "минут(ы)" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "час (ов)" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "дн." #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "неделя(ль, ли)" #: ../xl/lyrics.py:305 msgid "Local" msgstr "Локально" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "Поставить в очередь" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "Переместить текущий" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "Добавить к текущему" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "Открыть каталог" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" "Файл невозможно переместить в корзину. Удалить файл с диска окончательно?" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "Переместить в корзину" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "Показать проигрываемый трек" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "Название:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "Добавить все по критерию" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "Случайные результаты" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "Ограничен до: " #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr " дорожки" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "Не воспроизводится" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "Поиск: %s" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "Переместить" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "Новая метка" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "звук выключен" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "%d%%" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "Полная громкость" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" "$title\n" "в исполнении $artist\n" "из $album" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "Разные" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "%(track_count)d всего (%(total_duration)s)" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "%d в коллекции" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "%d показано" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "%d выбрано" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "Очередь (%d)" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "№" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "Номер дорожки" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "Название" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "Исполнитель" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "Композитор" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "Альбом" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "Время" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "Диск" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "Номер диска" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "Оценка" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "Дата" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "Жанр" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "Битрейт" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "Местоположение" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "Название файла" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "Прослушиваний" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "BPM" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "Последнее воспроизведение" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "Дата добавления" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "Описание" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "Группирование" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "_Изменяемый размер" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "_Автоматический размер" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "Рейтинг:" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "В случайном порядке" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "Повтор" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "Динамический" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "Удалить текущую композицию из плейлиста" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "Перемешать Список Воспроизведения" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "Создать список воспроизведения" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "Переименовать" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "Остановить воспроизведение после этого трека" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "Продолжить воспроизведение после этого трека" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "" "Требуется модуль, обеспечивающий поддержку динамических списков " "воспроизведения" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "Добавлять похожие дорожки в список воспроизведения" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "Введите URL для открытия" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "Открыть URL" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "Выберите тип файла" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "Выберите медиафайл для открытия" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "Поддерживаемые типы файлов" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "Музыкальные файлы" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "Файлы Списков Воспроизведения" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "Все файлы" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "Выберите папку для открытия" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "Импортировать список воспроизведения" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "Экспортировать текущий список воспроизведения" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "Плейлист сохранен как %s." #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "Закрыть %s" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "Сохранить изменения в %s перед выходом?" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "Ваши изменения будут потеряны, если вы их не сохраните" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "Закрыть без Сохранения" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "Да для всех" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "Нет для всех" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "сохранено %(count)s из %(total)s." #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "Произошла ошибка во время копирования %s: %s" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "Файл существует, заменить %s ?" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "Название списка воспроизведения:" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "Добавить новый список воспроизведения..." #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "Вы не указали имя для вашего списка воспроизведения" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "Введённое вами название списка воспроизведения уже используется." #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "Закрыть вкладку" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "$title ($artist)" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "Переключатель: остановить после выбранной дорожки" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "При воспроизведении произошла ошибка!" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "Буферизация: %d%%..." #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "Продолжить воспроизведение" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "Приостановить воспроизведение" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "Ошибка экспорта плейлиста!" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "Начать воспроизведение" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "Музыкальный проигрыватель Exaile" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "_Новый список воспроизведения" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "Открыть _URL" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "Открыть папку" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "Экспортировать текущий список воспроизведения" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "Перезапустить" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "_Фонотека" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "_Очередь" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "_Обложки" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "Панель управления плейлистом." #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "С_толбцы" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "Очистить плейлист" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "_Менеджер устройств" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "Заново про_сканировать фонотеку" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "Опции дорожки" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "Отмена" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "Исходный альбом" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "Автор текста" #: ../xlgui/properties.py:54 msgid "Website" msgstr "Сайт" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "Обложка" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "Оригинальный исполнитель" #: ../xlgui/properties.py:57 msgid "Author" msgstr "Автор" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "Оригинальная дата" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "Обработка" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "Дирижёр" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "Исполнитель" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "Авторские права" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "Текст песни" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "Дорожка" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "Версия" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "ISRC" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "Кодирован" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "Организация" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "Изменён" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "Проигран раз" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "Ошибка записи меток" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "Редактируется дорожка %(current)d из %(total)d" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "Применить изменения перед закрытием?" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "Внесённые изменения будут потеряны, если вы не примените их сейчас." #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "%s:" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "в месяце:" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "Изображение JPEG" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "Изображение PNG" #: ../xlgui/properties.py:919 msgid "Image" msgstr "Изображение" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "Применить эти значения ко всем дорожкам" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "Сбор альбомов и обложек..." #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "Показать обложку" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "Загрузить Обложку" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "Удалить обложку" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "Обложка для %s" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "опции обложки альбома для %(artist)s - %(album)s" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "Загрузка…" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "Обложки не найдены." #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "Значок" #: ../xlgui/devices.py:81 msgid "Device" msgstr "Устройство" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "Драйвер" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "Сканирование фонотеки..." #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "Сканирование %s..." #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "Переключить очередь воспроизведения" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "Элементы Очереди Воспроизведения" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "Свойства" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "Новая Станция" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "Новый 'умный' список воспроизведения" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "Правка" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "Экспорт списка воспроизведения" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "Экспортировать файлы" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "Удалить список воспроизведения" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "" "Вы уверены, что хотите полностью удалить выбранный список воспроизвадения?" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "Введите новое имя для вашего списка воспроизведения" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "Переименовать список воспроизведения" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "Удалить" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "Перетащите сюда, чтобы создать новый список воспроизведения" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "Недавно закрытые вкладки" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "Список воспроизведения %d" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "Добавить каталог" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "Каталог не добавлен." #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" "Каталог уже включен в вашу коллекцию или находится в одном из каталогов " "вашей коллекции." #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "Передача в %s..." #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "Загрузка потоков..." #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "Добавить радиостанцию" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "URL:" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "Сохранённые станции" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "Потоковое радио" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "Обновить" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "Введите новое имя для вашего списка воспроизведения" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "Жанр - Исполнитель" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "Жанр - Альбом" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "Дата - Исполнитель" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "Дата - Альбом" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "Исполнитель - (Дата - Альбом)" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "Заново просканировать фонотеку" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "Размер" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s Кбайт" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "и" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "является" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "не является" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "содержит" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "не содержит" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "не менее" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "не больше" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "до" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "после" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "между" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "больше чем" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "меньше чем" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "за последние" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "не за последние" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "Воспроизведение" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "Год" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "%(first)s, %(second)s и другие" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "%(first)s и %(second)s" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "'Умные' списки воспроизведения" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "Текущий список воспроизведения" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "Добавить 'умный' список воспроизведения" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "Редактировать 'умный' список воспроизведения" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "Экспортирование %s" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "Воспроизведение" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "Модули" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "Не удалось загрузить информацию о модуле!" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "Ошибка дополнения: %s" msgstr[1] "Ошибка дополнений: %s" msgstr[2] "Ошибка дополнений: %s" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "Не удалось включить модуль!" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "Невозможно активировать дополнение!" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "Выбрать плагин" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "Архивы модулей" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "Установка модуля не удалась!" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "Обложки" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "Оформление" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "Коллекция" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "the" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "Установить настройки по умолчанию" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "Перезапустить Exaile?" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "Необходим перезапуск для того чтобы изменения вступили в силу." #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "Действие" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "Комбинация клавиш" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "Списки воспроизведения" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "Об Exaile" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "© 2009-2012" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "Неизвестный переводчик" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "Менеджер Обложек" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "Проигрывать дорожки случайно" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "Повторить воспроизведение" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "_Найти:" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "Поисковик Обложек" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "_Использовать в качестве Обложки альбома" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "_Файл" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "_Правка" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "_Вид" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "_Инструменты" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "_Помощь" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "Предыдущая дорожка" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" "Остановить воспроизведение\n" "\n" "Щёлкните правой кнопкой мыши для остановки после выделенной дорожки" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "Следующая дорожка" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0:00 / 0:00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "Свойства дорожки" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "_Добавить метку" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "_Удалить метку" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "аб → А_б" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "Большие первые буквы во всех метках" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "_Назад" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "_Вперед" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "Обложка (спереди)" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "Обложка (сзади)" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "Исполнитель" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "Группа / Оркестр" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "Автор текста" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "Иллюстрация" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "Тип:" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "Описание:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "Управление фонотекой" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "Следить" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "Радио" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "Добавить все дорожки в список воспроизведения" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "Импорт CD" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "Добавить станцию" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "Файлы" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "Предыдущий посещённый каталог" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "Следующий посещённый каталог" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "Вверх на один каталог" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "Обновить содержимое каталога" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "Домашний каталог" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "Поиск: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "Очистить поле поиска" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "Фонотека пуста." #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "Добавить музыку" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" "Обновить панель фонотеки\n" "(Зажмите Shift для повторного сканирования фонотеки)" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "Использовать обложки, указанные в теге" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "Использовать обложки из локальных файлов" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" "Данная опция позволяет искать файлы обложки альбома в \n" "той же директории, что и звуковой файл." #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "Получать обложки автоматически при начале воспроизведения" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "Порядок поиска обложек:" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "(переместите для изменения порядка)" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "Открывать последний список воспроизведения при запуске программы" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "" "Спрашивать о сохранении текущего списка воспроизведения перед закрытием" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "Заменить содержание боковой панели двойным щелчком" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" "Вместо добавления, дорожки, добавленные двойным щелчком на панелях, заменят " "содержание текущего списка воспроизведения." #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "Система воспроизведения: " #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "Использовать плавные переходы при действиях пользователя" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "Время плавного затухания (мс):" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "Использовать микширование (ЭКСПЕРИМЕНТАЛЬНО)" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "Время плавного микширования (мс):" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "Аудиоустройство: " #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "Устройство: " #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "Другой конвейер-приёмник:" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "Возобновлять воспроизведение при запуске программы" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "Возобновлять воспроизведение в приостановленном состоянии" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "Нормальный" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "Объединённый (нестабильно)" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "Модуль" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "Включен" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "Модуль не выбран" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "Установленные модули" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "Авторы:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "Версия:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "Установить" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "Ни один модуль не выбран" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "Доступные модули" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "Установить Обновления" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "Обновления" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "Установить файл модуля" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "Показать область информации" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "Панель информации содержит обложку альбома и сведения о треке" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "Всегда показывать полосу вкладок" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "Местоположение вкладки:" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "Шрифт списка воспроизведения:" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "Использовать системный шрифт" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "Отображать номера дорожек в коллекции" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "Использовать прозрачность" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" "Внимание: этот параметр может вызвать ошибки отображения при использовании с " "менеджером окон, который не поддерживает совмещение." #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "Отображать иконку в системном трее" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "Свернуть в трей" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "Свернуть в трей" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "Переходить к текущей дорожке в списке при смене" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "Показывать сплеш-заставку при загрузке" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "Лево" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "Право" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "Верх" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "Низ" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "Настройки" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" "Слова, которые нужно убрать из тегов исполнителя при сортировке (через " "пробел):" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "(Щелкните правой кнопкой мыши для сброса к настройкам по умолчанию)" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "Определять файлы по содержимому" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "Менеджер устройств" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "Добавить устройство" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "Тип устройства:" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "Обнаруженные устройства:" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "Текущий: " #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "Менеджер очереди" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "Подбор тональности..." #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "Тональность подобрана." #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "Невозможно прочитать регулятор тональности." #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "Приложение регулятора тональности недоступно." #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "Moodbar" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "Ошибка выполнения риппера потоков" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "Запись аудиопотока" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "Любимые треки на Last.fm" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "API ключ не корректен" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "Пожалуйста проверьте правильность введённых данных." #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "Не возможно запустить веб-браузер" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" "Пожалуйста, скопируйте и откройте следующую ссылку в вашем веб-браузере:\n" "{url}" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "Избранное" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "Last.fm Избранное" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "Мне нравиться этот трек." #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "Мне не нравится этот трек." #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "Будильник" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "Надстройке необходим, минимум PyGTK 2.22 и GTK 2.20." #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "Главное меню" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "Соединение с сервером Shoutcast" #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "Ошибка при подключении к серверу Shoutcast" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "Введите ключевые слова для поиска" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "Поиск Потоковых Радиостанций" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "Результаты Поиска" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "Поиск" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "Текст песни не найден." #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "Перейти к: " #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "Любой" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "Обозреватель текстов песен" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "AudioScrobbler" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "Подтверждение успешно!" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "Проверка не удалась" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "Включить аудио-скробблинг" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "Эквалайзер" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "Выключить после воспроизведения" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "Выключение по расписанию" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "Компьютер выключится по завершении воспроизведения" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "Предстоящее завершение работы" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "Компьютер будет выключен через %d секунд" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "Выключение не удалось" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "Компьютер не может быть выключен через D-Bus." #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "Предпросмотр" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "Всплывающие подсказки" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "%(title)s" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "(%(artist)s)" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "из %(album)s" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "Консоль IPython - Exaile" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "Показать Консоль IPython" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "Консоль IPython" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "Уведомление" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" "(%(artist)s)\n" "из альбома %(album)s" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "Импортирование CD..." #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "Звуковой Диск" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "CD" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "Номер дорожки" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "Номер диска" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "Прослушиваний" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "Исполнитель: " #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" "Знаете ли вы...\n" "\n" "%s" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "Википедия" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "Показывает статью Википедии о текущем исполнителе." #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "Повторить сегмент" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "Повторить начало" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "Повторить конец" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "Компактный Режим" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "$tracknumber - $title" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "$title - $artist" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "$заголовок ($__длина)" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "Предыдущая" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "К предыдущей дорожке" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "Предыдущая дорожка" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "Следующая" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "К следующей дорожке" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "Следующая дорожка" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "Воспроизведение/пауза" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "Начать, приостановить или возобновить воспроизведение" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "Начать воспроизведение" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "продолжить воспроизведение" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "Приостановить воспроизведение" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "Остановить воспроизведение" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "Остановить" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "Воспроизвести после текущего трека" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "Громкость" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "Изменить громкость" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "Восстановить" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "Восстановить главное окно" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "Восстановить главное окно" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "Выберите рейтинг для данного трека" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "Выбор дорожек" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "Селектор списка простых треков" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "Кнопка списка воспроизведения" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "Доступ к списку воспроизведения" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "$title ($current_time / $total_time)" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "Прогресс кнопкa" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "Прогресс воспроизведения и поиск и доступ к текущему плейлисту" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "Индикатор воспроизведения" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "Прогресс воспроизведения и поиск" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "Показать дорожки со всеми метками" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "Показать дорожки с метками \"%s\"" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "Добавить новую группу" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "Удалить группу" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "Добавить новую категорию" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "Удалить категорию" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "Новая категория?" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "Добавить группу" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "Выбранные дорожки" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "ReplayGain" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "Сбросить для выбора" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "Добавить и воспроизвести" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "Добавить" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "Журнал" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "Журнал воспроизведения" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "Стереть сохранённые события журнала?" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "Сохранить журнал" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "Очистить журнал" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "Готово" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "Ищу в каталоге Jamendo..." #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "Получаю информацию о треке..." #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "Всплывающие уведомления" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "Обложки с Amazon" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "Подкасты" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "Подкаст" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "Обновить Подкасты" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "Удалить" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "Для добавления подкаста введите его URL" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "Открыть подкаст" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "Загрузка %s..." #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "Ошибка загрузки подкаста." #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "Загрузка Подкастов...." #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "Не удалось сохранить файл подкаста" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "Обложка рабочего стола" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "Мультибудильник" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "Содержание" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "контекстная информация" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "Добавить дорожку в закладки" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "Удалить закладку" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "Очистить закладки" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "Закладки" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "Пауза при активации хранителя экрана" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "Сервер DAAP" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "Клиент DAAP" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "Вручную..." #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "Введите IP адрес и порт для" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "Введите ip-адрес и порт." #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" "Этот сервер не поддерживает множественные соединения.\n" "Вы должны остановить воспроизведение перед скачиванием песен." #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "Обновить список серверов" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "Отключиться от сервера" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "Выбрать место для сохранения" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "Соеденяюсь с DAAP..." #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "Затемнять проигранную часть трека, вместо использования курсора" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "Степень затемнения:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "Показывать в виде осциллограммы" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "Залить однородным цветом" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "Включить цветовую тему " #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "Базовый цвет:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "Базовый цвет" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "Путь для сохранения:" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "Смените порт:" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "Извлечь в единый файл" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "удалить(-ять) незавершенные файлы" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "API ключ:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "Пароль:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "Запрос доступа" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" "Перейдите на страницу API " "вашего аккаунта чтобы получить API-ключ и пароль и " "введите их сюда. После того, как вы введете их сюда, запросите разрешение " "доступа и подтвердите его для завершения установки." #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "Время напоминания" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "Понедельник" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "Вторник" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "Среда" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "Четверг" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "Пятница" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "Суббота" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "Воскресенье" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "Дни напоминания" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "Использовать Затухание" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "Увеличение:" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "Дисплей наложения:" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "Показывать обложки" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "Серкл дисплей" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "Доля текста" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "Нет" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "Шрифт текста:" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "Обновить слова песни" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "Передать дорожки, используя Audioscrobbler" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "Показать пункт меню для переключения представления" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "Пароль:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "Имя пользователя:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "перед" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "+12 dB" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "0" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "-24 dB" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "29" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "59" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "119" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "237" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "474" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "947" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "1.9K" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "3.8K" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "7.5K" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "15K" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "Во время смены дорожки" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "Во время запуска, паузы или остановки воспроизведения" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "При смене тега" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "На иконке в трее" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "Когда главное окно в фокусе" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "Отображение" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "Использовать обложки как иконки" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "Использовать медиа значки для паузы, остановки и возобновления" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "Иконки" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "Строка исполнителя:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" "Теги \"%(title)s\", \"%(artist)s\", и \"%(album)s\" будут заменены своими " "значениями. Если заголовок пуст, он будет заменен на \"Unknown\"." #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "Резюме:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "Строка альбома:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "Содержимое" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "Linux" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "Прозрачность терминала" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "Шрифт:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "Цвет текста:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "Цвет фона:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "Изменить размер отображаемых обложек" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "Только исполнителя:" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "Только альбом:" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" "Сообщение должно быть показано в теле уведомления. Поэтому, \"%(title)s" "\", \"%(artist)s\", и \"%(album)s\" будут заменены своими значениями. Если " "тег неизвестен, будет вставлено \"Unknown\"." #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "И исполнитель, и альбом:" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "Тело Сообщения" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "Ogg Vorbis" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "FLAC" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "AAC" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "MP3 (VBR)" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "MP3 (CBR)" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "WavPack" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "Формат импортируемых файлов: " #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "Качество: " #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "Каталог: " #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" "Квждый тэг может быть использован с $tag или ${tag}. " "Внутренние тэги такие как $__lenght должны быть указанны с двумя " "предшествующими подчеркиваниями." #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "Язык:" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "Назад" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "Вперёд" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" "Порядок элементов управления можно изменить, перетаскивая их вверх или вниз. " "(Или нажатием Alt+Up/Down.)" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "Управление" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "Формат заголовка трека" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "Поверх всех окон" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "Показать в плейлисте" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "Показать оформления окна:" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "Показывать на всех рабочих столах" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "Показать кнопку в главном окне." #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "Полный" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "Простой" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "Предпочитаемая поальбомная коррекция" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "Предпочитать корректировать звук по албомам, а не по дорожкам." #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "Использовать защиту от обрезки сигнала" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "Защитить от шума, вызванного сильным усилением громкости" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "Дополнительное усиление для всех файлов" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "Дополнительное усиление (dB):" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "Заранее анализировать треки, не имеющие информацию ReplayGain" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "Уровень восстанавливающей корректировки (дБ):" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "Упорядочить по:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "Порядок" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "Результаты:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "Дополнительно" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "По убыванию" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "По возрастанию" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "Дата релиза" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "Рейтинг недели" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "Рейтинг месяца" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "Количество добавлений в список воспроизведения" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "Количество скачиваний" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "Количество прослушиваний" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "Оцененные" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "Время оценки" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "Жанр/Теги" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "Формат отображения" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "Фон:" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" "Для регистрации в веб-сервисах Amazon и получения \n" "этой информации посетите http://aws." "amazon.com/" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "Добавить подкаст" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "Якорь:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "Отступ по X:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "пикселей" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "Отступ по Y:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "Задать размер обложки" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "Размер:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "Использовать затухание" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "Продолжительность затухания:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "мс" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "Вверху слева" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "Сверху справа" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "Внизу слева" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "Внизу справа" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "Добавить" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "Предупреждения" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "Включить нарастание громкости" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "Громкость начала нарастания" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "Громкость окончания нарастания" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "Инкремент нарастания:" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "Время нарастания (с):" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "Перезагрузить список воспроизведения" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "Воспроизведение" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "Пожалуйста введите аутентификационные данные вашего профиля Last.fm" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "Зарегистрироваться в Last.fm" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" "Использовать обложки в меню закладок (активизируется при следующем запуске)" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "Имя сервера:" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "Адрес сервера" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "Порт:" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "Сервер активирован" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "Текущая песня" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" "Устанавливает имя текущей аудиозаписи как статус в Pidgin. Проверьте FAQ по " "Pidgin чтобы найти поддерживаемые услуги." #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "Уведомления" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" "Заменяет стандартную полосу промотки трека на цветовое представление трека " "(Moodbar).\n" "Необходима библиотека: Moodbar" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "Графический интерфейс пользователя" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "Мультимедийные клавиши GNOME" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" "Добавляет возможность управления Exaile через мультимедийные клавиши GNOME. " "Работает в GNOME >= 2.20.x" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "Сочетания клавиш" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" "Позволяет записывать аудиопотоки с помощью streamripper\n" "Необходимы библиотеки: streamripper" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" "Показывает избранные треки и позволяетдобавляеть в избранное.\n" "\n" "Проверьте что ввели правельный API ключ и секрет в настройки плагина.\n" "\n" "Зависит от плагина \"AudioScrobbler\" для логина и пароля." #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "Проигрывает музыку в определенное время.\n" "\n" "Внимание: Exaile всего лишь нажмет кнопку воспроизведения, когда наступит " "указанное время, поэтому будьте уверены в том, что музыка, которую вы хотите " "услышать, в будет плейлисте" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "Обложки альбомов из Last.fm" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "Поиск обложек альбомов на Last.fm" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "Поставьте обложку и добавьте элементы меню в AWN для Exaile" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "Радио Shoutcast" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "Список Shoutcast Radio" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "Редактор меток Ex Falso" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" "Интеграция редактора тегов Ex Falso с Exaile.\n" "Необходимо: Ex Falso." #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "Добавляет вкладку с текстом проигрываемого трека." #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" "Отправляет информацию о прослушанном на сервер Last.fm и похожие сервисы, " "поддерживающие АудиоСкробблинг" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "XKeys" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "Глобальные горячие клавиши через xlib (mmkeys.so)" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "Мультимедийные клавиши для Windows" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" "Добавляет поддержку мультимедийных клавиш (присутствуют на большинстве новых " "клавиатур) при работе Exaile в Microsoft Windows.\n" "\n" "Требуется: pyHook " #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "10-ти полосный эквалайзер" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "Эффект" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "Lyrics Fly" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "Плагин для получения текстов песен от lyricsfly.com" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "Librivox" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "Обзор и прослушивание аудио-книг из Librivox.org." #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "Позволяет выключить компьютер при окончании проигрывания" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "Поддержка USB Медиа Плеера" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" "Добавляет возможность доступа к медиа плеерам через протокол USB Mass Storage" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "Устройства" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "Динамические списки воспроизведение Last.fm" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "Поддержка динамических плейлистов Last.fm" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "Динамические списки воспроизведения" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" "Этот модуль показывает всплывающее сообщение при запуске или остановке " "воспроизведения. В сообщении показывается обложка альбома или иконка " "воспроизведение/пауза/стоп.\n" "\n" "Необходима библиотека: python-notify\n" "Рекомендуется плагин: notify-osd" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" "Добавляет консоль IPython, которая может быть использована для управления " "Exaile." #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "Показывает всплывающе сообщение при начале воспроизведения дорожки" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "Воспроизведение CD" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "Сведения" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "А-Б Повтор" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "Непрерывно повторять часть трека." #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "Компактный режим плеера с настраиваемым интерфейсом" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "Включает поддержку ReplayGain" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "Сбросить трей-иконку" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" "Альтернативная иконка в трей, которая принимает сброшенные на нее файлы.\n" "\n" "Зависимость: python-eggtrayicon" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "Jamendo" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "Включение доступа к музыкальному каталогу Jamendo" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "Поддержка iPod" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" "Плагин для поддержки iPod. На данный момент поддерживается только режим " "чтения, без возможности передачи.\n" "Зависит от python-gpod." #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" "Поиск обложек альбомов на Amazon\n" "\n" "Чтобы использовать этот плагин, необходим ключ AWS API и секретный ключ." #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "Караоке" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "Удаляет голос из аудио" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "Простая поддержка Подкастов" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "Отображает обложку текущего альбома на рабочем столе" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "Привет, мир" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "Простой плагин для тестирования системы плагинов" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "Проигрывает музыку в определенное время и день.\n" "\n" "Внимание: Exaile всего лишь нажмет кнопку воспроизведения, когда наступит " "указанное время, поэтому будьте уверены в том, что музыка, которую вы хотите " "услышать, в будет плейлисте" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "Контекстная информация" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" "Показывает различную информацию о проигрываемой дорожке.\n" "Зависит от: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging " "( или PIL)" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "Позволяет запоминать и воспроизводить с определенного места в треке" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "Wiki Тексты Песен" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" "Данный плагин интегрирует spydaap (http://launchpad.net/spydaap) в Exaile, " "таким образом коллекцией можно поделиться через DAAP" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "Разрешить проигрывание музыки из DAAP." #~ msgid "Clear" #~ msgstr "Очистить" #~ msgid "Close" #~ msgstr "Закрыть" #~ msgid "Close tab" #~ msgstr "Закрыть вкладку" #~ msgid "Export as..." #~ msgstr "Экспортировать как..." #~ msgid "%d KB" #~ msgstr "%d Кб" #~ msgid "© 2009-2010" #~ msgstr "© 2009-2010" #~ msgid "GNOME" #~ msgstr "GNOME" #~ msgid "ALSA" #~ msgstr "ALSA" #~ msgid "OSS" #~ msgstr "OSS" #~ msgid "PulseAudio" #~ msgstr "PulseAudio" #~ msgid "JACK" #~ msgstr "JACK" #~ msgid "AWN" #~ msgstr "AWN" #~ msgid "API Key:" #~ msgstr "API ключ" #~ msgctxt "yes" #~ msgid "Monday" #~ msgstr "Понедельник" #~ msgctxt "yes" #~ msgid "Tuesday" #~ msgstr "Вторник" #~ msgctxt "yes" #~ msgid "Wednesday" #~ msgstr "Среда" #~ msgctxt "yes" #~ msgid "Thursday" #~ msgstr "Четверг" #~ msgctxt "yes" #~ msgid "Friday" #~ msgstr "Пятница" #~ msgctxt "yes" #~ msgid "Saturday" #~ msgstr "Суббота" #~ msgctxt "yes" #~ msgid "Sunday" #~ msgstr "Воскресенье" #~ msgctxt "yes" #~ msgid "Use Fading" #~ msgstr "Использовать затухание" #~ msgctxt "yes" #~ msgid "Minimum volume:" #~ msgstr "Минимальная громкость:" #~ msgctxt "yes" #~ msgid "Maximum volume:" #~ msgstr "Максимальная громкость:" #~ msgctxt "yes" #~ msgid "Increment:" #~ msgstr "Приращение:" #~ msgctxt "yes" #~ msgid "Time per increment:" #~ msgstr "Приращение времени:" #~ msgid "Secret key:" #~ msgstr "Секретный ключ:" #~ msgid "Awn" #~ msgstr "Awn" #~ msgid "Choose a file" #~ msgstr "Выберите файл" #~ msgid "Number of Plays" #~ msgstr "Количество проигрываний" #~ msgid "Add to Playlist" #~ msgstr "Добавить в плейлист" #~ msgid "Add Playlist" #~ msgstr "Добавить плейлист" #~ msgid "Plugin archive is not in the correct format" #~ msgstr "Не поддерживаемый формат архива" #~ msgid "" #~ "Exaile now uses absolute URI's, please delete/rename your %s directory" #~ msgstr "" #~ "Exaile теперь использует абсолютные URL, пожалуйста, удалите/переименуйте " #~ "вашу %s директорию" #~ msgid "Stopped" #~ msgstr "Остановлено" #~ msgid "Open" #~ msgstr "Открыть" #~ msgid "No covers found" #~ msgstr "Обложек не найдено" #~ msgid "Choose a file to open" #~ msgstr "Выбрать файл для открытия" #~ msgid "File Type" #~ msgstr "Тип файла" #~ msgid "Extension" #~ msgstr "Расширение" #~ msgid "0:00" #~ msgstr "0:00" #~ msgid "Add a directory" #~ msgstr "Добавить директорию" #~ msgid "Only artist" #~ msgstr "Только исполнитель" #~ msgid "Only album" #~ msgstr "Только альбом" #~ msgid "Center vertically" #~ msgstr "Центрировать по вертикали" #~ msgid "Center horizontally" #~ msgstr "Центрировать по горизонтали" #~ msgid "Playing %s" #~ msgstr "Воспроизводится %s" #~ msgid "Decreases the volume by VOL%" #~ msgstr "Уменьшить громкость на VOL%" #~ msgid "Increases the volume by VOL%" #~ msgstr "Увеличить громкость на VOL%" #~ msgid "Toggle Play or Pause" #~ msgstr "Переключить на воспроизведение или паузу" #~ msgid "order must be a list or tuple" #~ msgstr "порядок должен быть списком или хешем" #~ msgid " New song, fetching cover." #~ msgstr " Новая песня, загружаем обложку." #~ msgid "Plugin archive contains an unsafe path" #~ msgstr "Архив с плагином содержит небезопасный путь" #~ msgid "Streaming..." #~ msgstr "Создание потоков..." #~ msgid "New playlist title:" #~ msgstr "Новый заголовок списка воспроизведения:" #~ msgid "Buffering: 100%..." #~ msgstr "Буферизация: 100%..." #~ msgid "by %s" #~ msgstr "(%s)" #~ msgid "" #~ "Exaile Music Player\n" #~ "Not playing" #~ msgstr "" #~ "Проигрыватель музыки Exaile\n" #~ "Ничего не воспроизводится" #~ msgid "%(title)s (by %(artist)s)" #~ msgstr "%(title)s (%(artist)s)" #~ msgid "Add to custom playlist" #~ msgstr "Добавить к текущему списку воспроизведения" #~ msgid "_Rename Playlist" #~ msgstr "_Переименовать список воспроизведения" #~ msgid "In pause: %s" #~ msgstr "Приостановлено: %s" #~ msgid "from %s" #~ msgstr "из альбома %s" #~ msgid "Export" #~ msgstr "Экспортировать" #~ msgid "Start" #~ msgstr "Запуск" #~ msgid "%d covers to fetch" #~ msgstr "%d обложек для загрузки" #~ msgid "%(minutes)d:%(seconds)02d" #~ msgstr "%(minutes)d:%(seconds)02d" #~ msgid "Enter the search text" #~ msgstr "Введите текст для поиска" #~ msgid "Export current playlist..." #~ msgstr "Экспортирование текущего списка воспроизведения..." #~ msgid " songs" #~ msgstr " композиции" #~ msgid "Repeat playlist" #~ msgstr "Повторять список воспроизведения" #~ msgid "Quit" #~ msgstr "Выйти" #~ msgid "Add device" #~ msgstr "Добавить устройство" #~ msgid "..." #~ msgstr "..." #~ msgid "" #~ "Copyright (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "This program is free software; you can redistribute it and/or modify\n" #~ "it under the terms of the GNU General Public License as published by\n" #~ "the Free Software Foundation; either version 2 of the License, or\n" #~ "(at your option) any later version.\n" #~ "\n" #~ "This program is distributed in the hope that it will be useful,\n" #~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" #~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" #~ "GNU General Public License for more details.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along\n" #~ "with this program; if not, write to the Free Software Foundation, Inc.,\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ msgstr "" #~ "Copyright (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "This program is free software; you can redistribute it and/or modify\n" #~ "it under the terms of the GNU General Public License as published by\n" #~ "the Free Software Foundation; either version 2 of the License, or\n" #~ "(at your option) any later version.\n" #~ "\n" #~ "This program is distributed in the hope that it will be useful,\n" #~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" #~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" #~ "GNU General Public License for more details.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along\n" #~ "with this program; if not, write to the Free Software Foundation, Inc.,\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ msgid "© 2009" #~ msgstr "© 2009" #~ msgid "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager" #~ msgstr "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager" #~ msgid "" #~ "Left\n" #~ "Right\n" #~ "Top\n" #~ "Bottom" #~ msgstr "" #~ "Слева\n" #~ "Справа\n" #~ "Сверху\n" #~ "Снизу" #~ msgid "New Search" #~ msgstr "Новый Поиск" #~ msgid "_Close" #~ msgstr "_Закрыть" #~ msgid "" #~ "OSD\n" #~ "Drag to the location you'd like the\n" #~ "OSD to appear" #~ msgstr "" #~ "OSD\n" #~ "Перетащите это окно в то место экрана,\n" #~ "где вы хотите видеть OSD" #~ msgid "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgstr "" #~ "{title}\n" #~ "{artist}\n" #~ "из альбома {album} - {length}" #~ msgid "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgstr "Вы можете перетащить окно OSD в удобное для вас место экрана" #~ msgid "Display OSD when hovering over tray icon" #~ msgstr "Показывать OSD при наведении мыши на иконку в трее" #~ msgid "Popup" #~ msgstr "Всплывающее окно" #~ msgid "Window Height:" #~ msgstr "Высота Окна:" #~ msgid "Window Width:" #~ msgstr "Ширина Окна:" #~ msgid "Opacity Level:" #~ msgstr "Уровень Прозрачности:" #~ msgid "Display a progressbar in the OSD" #~ msgstr "Показывать прогрессбар на OSD" #~ msgid "Text Font:" #~ msgstr "Шрифт:" #~ msgid "Text Color" #~ msgstr "Цвет Текста" #~ msgid "Close this dialog" #~ msgstr "Закрыть это окно" #~ msgid "Plugin Manager" #~ msgstr "Менеджер Плагинов" #~ msgid "Remove All" #~ msgstr "Удалить Всё" #~ msgid "" #~ "Automatic\n" #~ "GNOME\n" #~ "ALSA\n" #~ "OSS\n" #~ "PulseAudio\n" #~ "JACK" #~ msgstr "" #~ "Автоматически\n" #~ "GNOME\n" #~ "ALSA\n" #~ "OSS\n" #~ "PulseAudio\n" #~ "JACK" #~ msgid " - " #~ msgstr " - " #~ msgid " + " #~ msgstr " + " #~ msgid "Playback engine (requires restart): " #~ msgstr "Модуль вопроизведения (требуется перезапуск): " #~ msgid "Autosize" #~ msgstr "Авторазмер" #~ msgid "Page 1" #~ msgstr "Страница 1" #~ msgid "Vol:" #~ msgstr "Громкость:" #~ msgid "Resizable" #~ msgstr "Изменяемый Размер" #~ msgid "_Export current playlist" #~ msgstr "_Экспорт текущего списка воспроизведения" #~ msgid "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "Year - Artist\n" #~ "Year - Album\n" #~ "Artist - Year - Album" #~ msgstr "" #~ "Исполнитель\n" #~ "Альбом\n" #~ "Жанр - Исполнитель\n" #~ "Жанр - Альбом\n" #~ "Год - Исполнитель\n" #~ "Год - Альбом\n" #~ "Исполнитель - Год - Альбом" #~ msgid "General" #~ msgstr "Общее" #~ msgid "Bookmark this track" #~ msgstr "Добавить в закладки" #~ msgid "Clear bookmarks" #~ msgstr "Очистить закладки" #~ msgid "Delete bookmark" #~ msgstr "Удалить закладку" #~ msgid "Neighbourhood" #~ msgstr "Окружение" #~ msgid "Personal" #~ msgstr "Личное" #~ msgid "Recommended" #~ msgstr "Рекомендуется" #~ msgid "Loved Tracks" #~ msgstr "Любимые Композиции" #~ msgid "LastFM Radio" #~ msgstr "Радио LastFM" #~ msgid "Restore Main Window" #~ msgstr "Восстановить Главное Окно" #~ msgid "Selected controls" #~ msgstr "Выбранные элементы управления" #~ msgid "Available controls" #~ msgstr "Доступные элементы управления" #~ msgid " & " #~ msgstr " & " #~ msgid "Alarm Days:" #~ msgstr "Дни Оповещений:" #~ msgid "Streamripper can only record streams." #~ msgstr "Риппер потоков может только записывать потоки." #~ msgid "Minimum Volume:" #~ msgstr "Минимальный Уровень Звука:" #~ msgid "Alarm:" #~ msgstr "Оповещение:" #~ msgid "Alarm Name:" #~ msgstr "Имя Оповещения:" #~ msgid "Alarm Time:" #~ msgstr "Время Оповещения:" #~ msgid "Maximum Volume:" #~ msgstr "Максимальный Уровень Звука:" #~ msgid "Name - Time" #~ msgstr "Название - Время" #~ msgid "Use Media Icons For Pause, Stop and Resume" #~ msgstr "Использовать Медия-Иконки Для Паузы, Остановки и Возобновления" #~ msgid "On Tray Icon Hover" #~ msgstr "При Наведении Мыши На Иконку В Трее" #~ msgid "Use Album Covers As Icons" #~ msgstr "Использовать Обложки Альбомов Как Иконки" #~ msgid "" #~ "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " #~ "replaced by their respective values. The title will be replaced by " #~ "\"Unknown\" if it is empty." #~ msgstr "" #~ "Шаблоны \"%(title)s\", \"%(artist)s\", и \"%(album)s\" будут заменены на " #~ "их значения. Заголовок будет заменён на \"Неизвестно\" в случае его " #~ "отсутствия." #~ msgid "On Playback Start, Pause or Stop" #~ msgstr "При Старте, Приостановке или Остановке Воспроизведения" #~ msgid "Summary" #~ msgstr "Сводка" #~ msgid "" #~ "Message that should be displayed in the body of the notification. In each " #~ "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced " #~ "by their respective values. If the tag is not known, \"Unknown\" will be " #~ "filled in its place" #~ msgstr "" #~ "Сообщение, отображаемое в теле всплывающего уведомления. Каждый раз " #~ "\"%(title)s\", \"%(artist)s\", и \"%(album)s\" будут заменены " #~ "соответствующими значениями. Если теги отсутствуют, будет вставляться " #~ "\"Неизвестно\"" #~ msgid "Position" #~ msgstr "Позиция" #~ msgid "Both artist and album" #~ msgstr "И исполнитель, и альбом" #~ msgid "Relay Port:" #~ msgstr "Порт радиосервера:" #~ msgid "Vertical:" #~ msgstr "Вертикально:" #~ msgid "Horizontal:" #~ msgstr "Горизонтально:" #~ msgid "Save Location:" #~ msgstr "Путь Сохранения:" #~ msgid " (%(queue_count)d queued)" #~ msgstr " (%(queue_count)d добавлено в очередь)" #~ msgid "Enable Fading" #~ msgstr "Включить затухание" #~ msgid "" #~ "Normal\n" #~ "Unified (unstable)" #~ msgstr "" #~ "Нормальный\n" #~ "Универсальный (нестабилен)" #~ msgid "These options only affect the unified engine." #~ msgstr "" #~ "Эти настройки действуют только для универсального модуля воспроизведения." #~ msgid "Fading:" #~ msgstr "Затухание:" #~ msgid "Album Line:" #~ msgstr "Строка Альбома:" #~ msgid "Artist Line:" #~ msgstr "Строка Исполнителя:" #~ msgid "Timer per Increment:" #~ msgstr "Приращение времени:" #~ msgid "Time per Increment:" #~ msgstr "Приращение времени:" #~ msgid "_Save As..." #~ msgstr "_Сохранить Как..." #~ msgid "_Save Changes To Playlist" #~ msgstr "_Сохранить Изменения В Списке Воспроизведения" #~ msgid "Save As..." #~ msgstr "Сохранить Как..." #~ msgid "Custom playlist name:" #~ msgstr "Название текущего списка воспроизведения:" #~ msgid "Idle." #~ msgstr "Ожидание." #~ msgid "%(year)d-%(month)02d-%(day)02d" #~ msgstr "%(year)d-%(month)02d-%(day)02d" #~ msgid "New custom playlist name:" #~ msgstr "Новое название текущего списка воспроизведения:" #~ msgid "Could not enable plugin: %s" #~ msgstr "Не удалось включить плагин: %s" #~ msgid "Could not disable plugin: %s" #~ msgstr "Не удалось отключить плагин: %s" #~ msgid "File Size:" #~ msgstr "Размер Файла:" #~ msgid "Basic" #~ msgstr "Основной" #~ msgid "Date:" #~ msgstr "Дата:" #~ msgid "Details" #~ msgstr "Подробности" #~ msgid "Bitrate:" #~ msgstr "Битрейт:" #~ msgid "Genre:" #~ msgstr "Жанр:" #~ msgid "Album:" #~ msgstr "Альбом:" #~ msgid "Artist:" #~ msgstr "Исполнитель:" #~ msgid "Length:" #~ msgstr "Длительность:" #~ msgid "Use alpha transparency (if supported)" #~ msgstr "Использовать прозрачность (если поддерживается)" #~ msgid "Play Count:" #~ msgstr "Количество Воспроизведений:" #~ msgid "Title:" #~ msgstr "Название:" #~ msgid "Location:" #~ msgstr "Местоположение:" #~ msgid "Import" #~ msgstr "Импортировать" #~ msgid "" #~ "Path is already in your collection, or is a subdirectory of another path " #~ "in your collection" #~ msgstr "" #~ "Каталог уже присутствует в вашей фонотеке или он является поддиректорий " #~ "одного из присутствующих каталогов" #~ msgid "%(playlist_count)d showing, %(collection_count)d in collection" #~ msgstr "%(playlist_count)d показано, %(collection_count)d в фонотеке" #~ msgid "Remove item" #~ msgstr "Удалить элемент" #~ msgid "Add item" #~ msgstr "Добавить элемент" #~ msgid "Track Number:" #~ msgstr "Номер Композиции:" #~ msgid "Seeking: " #~ msgstr "Переход: " #~ msgid "$title ($length)" #~ msgstr "$title ($length)" #~ msgid "Move selected item up" #~ msgstr "Переместить выбранный элемент вверх" #~ msgid "Move selected item down" #~ msgstr "Переместить выбранный элемент вниз" #~ msgid "Show Menuitem to toggle Submission" #~ msgstr "Добавить пункт меню для включение скробблинга" #~ msgid "When GUI is Focused" #~ msgstr "Когда окно в фокусе" #~ msgid "" #~ "To sign up for an Amazon AWS account and get \n" #~ "this information visit http://aws.amazon.com/" #~ msgstr "" #~ "Для получения аккаунта на Amazon AWS и дополнительной \n" #~ "информации посетите сайт http://aws.amazon.com/" #~ msgid "Secret Key:" #~ msgstr "Секретный ключ:" #~ msgid "Creates an MPRIS D-Bus object to control Exaile" #~ msgstr "Создает объект MPRIS D-Bus для управления Exaile" #~ msgid "" #~ "Adds support for playing audio CDs.\n" #~ "Requires python-cddb to look up tags." #~ msgstr "" #~ "Позволяет проигрывать CD-диски\n" #~ "Для прочтения тегов нужен python-cddb." #~ msgid "Terminal Opacity:" #~ msgstr "Прозрачность терминала" #~ msgid "iPod support" #~ msgstr "Поддержка iPod" #~ msgid "" #~ "Show various informations about the track currently playing.\n" #~ "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2" #~ msgstr "" #~ "Показывает размичную информацию о проигрываемом треке.\n" #~ "Необходимы библиотеки: libwebkit >= 1.0.1, python-webkit >= 1.1.2" #~ msgid "Tag Covers" #~ msgstr "Обложки из тегов" #~ msgid "Searches track tags for covers" #~ msgstr "Поиск обложек альбомов в тегах" #~ msgid "Plugin to fetch lyrics from lyricwiki.org" #~ msgstr "Ищет тексты песен в lyricwiki.org" #~ msgid "Last.fm Dynamic Search" #~ msgstr "Динамические плейлисты Last.fm" #~ msgid "Filter event debug output" #~ msgstr "Фильтровать вывод отладки приложения" #~ msgid "Print the progress inside the current track as percentage" #~ msgstr "Отображать текущую позицию воспроизведения в процентах" #~ msgid "MPRIS" #~ msgstr "MPRIS" #~ msgid "Exaile" #~ msgstr "Exaile" #~ msgid "Search:" #~ msgstr "Искать:" #~ msgid "Invalid file extension, file not saved" #~ msgstr "Недопустимое расширение файла; файл не сохранён" #~ msgid "Device class does not support transfer." #~ msgstr "Класс устройства не поддерживает передачу" #~ msgid "Part" #~ msgstr "Часть" #~ msgid "Original Date" #~ msgstr "Дата оригинала" #~ msgid "Original Album" #~ msgstr "Первоначальный альбом" #~ msgid "Date Added" #~ msgstr "Время добавления" #~ msgid "Encoded By" #~ msgstr "Кодировано" #~ msgid "Last Played" #~ msgstr "Последнее" #~ msgid "Original Artist" #~ msgstr "Исполнитель" #~ msgid "Select a save location" #~ msgstr "Выберите место сохранения" #~ msgid "Show a popup of the currently playing track" #~ msgstr "Показывать всплывающее уведомление о проигрываемой дорожке" #~ msgid "Print the position inside the current track as time" #~ msgstr "Отображать текущую позицию дорожки в виде времени" #~ msgid "No track" #~ msgstr "Нет дорожки" #~ msgid "Delete track" #~ msgstr "Удалить дорожку" #~ msgid "C_lear All Tracks" #~ msgstr "_Удалить все дорожки" #~ msgid "Toggle: Stop after selected track" #~ msgstr "Переключатель: остановить воспроизведение после выбранной дорожки" #~ msgid "Track _properties" #~ msgstr "Свойства _дорожки" #~ msgid "_Go to Playing Track" #~ msgstr "_Перейти к проигрываемой дорожке" #~ msgid "" #~ "This will permanantly delete the selected tracks from your disk, are you " #~ "sure you wish to continue?" #~ msgstr "" #~ "Эта операция полностью удалит выбранные дорожки с вашего диска, вы " #~ "уверены, что хотите продолжить?" #~ msgid "0/0 tracks" #~ msgstr "0/0 дорожек" #~ msgid "Dynamically add similar tracks" #~ msgstr "Добавлять похожие дорожки" #~ msgid "On Track Change" #~ msgstr "При смене дорожки" #~ msgid "Show OSD on track change" #~ msgstr "Показывать OSD при смене дорожки" #~ msgid "Track title format:" #~ msgstr "Формат заголовка дорожки:" #~ msgid "Set rating for current song" #~ msgstr "Оценить текущую дорожку" #~ msgid "Get rating for current song" #~ msgstr "Получить оценку текущей дорожки" #~ msgid "Add To New Playlist..." #~ msgstr "Добавить в новый список воспроизведения...." #~ msgid "_Close Playlist" #~ msgstr "_Закрыть список воспроизведения" #~ msgid "_Save As Custom Playlist" #~ msgstr "_Сохранить Как текущий список воспроизведения" #~ msgid "_Randomize Playlist" #~ msgstr "_Перемешать список воспроизведения" #~ msgid "Restart Playlist" #~ msgstr "Перезапустить список воспроизведения" #~ msgid "A plugin with the name \"%s\" is already installed" #~ msgstr "Модуль \"%s\" уже установлен" #~ msgid "Select File Type (By Extension)" #~ msgstr "Выбрать тип файлов (по расширению)" #~ msgid "Install plugin file" #~ msgstr "Установить файл модуля" #~ msgid "Install a third party plugin from a file" #~ msgstr "Установить модуль из файла" #~ msgid "Clear Playlist" #~ msgstr "Очистить список воспроизведения" #~ msgid "Remove current track from playlist" #~ msgstr "Удалить эту дорожку из списка" #~ msgid "Randomize the order of the current playlist" #~ msgstr "Случайно изменить порядок дорожек в текущем списке воспроизведения" #~ msgid "Choose a plugin" #~ msgstr "Выбрать модуль" #~ msgid "Stop Playback" #~ msgstr "Остановить воспроизведение" #~ msgid "Start/Pause Playback" #~ msgstr "Начать/приостановить воспроизведение" #~ msgid "Pauses/resumes playback on screensaver start/stop" #~ msgstr "" #~ "Приостанавливать/продолжать воспроизведение при активации/деактивации " #~ "хранителя экрана" #~ msgid "A plugin for iPod support" #~ msgstr "Плагмн для поддержки iPod" #~ msgid "Display window decorations" #~ msgstr "Показывать декорации окна" dist/copy/po/PaxHeaders.26361/Makefile0000644000175000017500000000012412233027260016077 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.281046938 exaile-3.3.2/po/Makefile0000644000000000000000000000010012233027260015026 0ustar00rootroot00000000000000locale: find . -name "*.po" -exec ../tools/compilepo.sh {} \; dist/copy/po/PaxHeaders.26361/frp.po0000644000175000017500000000012412233027260015566 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.061046931 exaile-3.3.2/po/frp.po0000644000000000000000000026730312233027260014541 0ustar00rootroot00000000000000# Franco-Provençal translation for exaile # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2009-08-24 23:38+0000\n" "Last-Translator: Adam Olsen \n" "Language-Team: Franco-Provençal \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Launchpad-Export-Date: 2012-08-28 05:29+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "" #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "" #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "" #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "" #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "" #: ../xl/formatter.py:702 msgid "Today" msgstr "" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "" #: ../xl/main.py:421 msgid "Playback Options" msgstr "" #: ../xl/main.py:423 msgid "Play the next track" msgstr "" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "" #: ../xl/main.py:429 msgid "Play" msgstr "" #: ../xl/main.py:431 msgid "Pause" msgstr "" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "" #: ../xl/main.py:440 msgid "Collection Options" msgstr "" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:454 msgid "Track Options" msgstr "" #: ../xl/main.py:456 msgid "Query player" msgstr "" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "" #: ../xl/main.py:490 msgid "Volume Options" msgstr "" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "" #: ../xl/main.py:507 msgid "Other Options" msgstr "" #: ../xl/main.py:509 msgid "Start new instance" msgstr "" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "" #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "" #: ../xl/main.py:536 msgid "Set data directory" msgstr "" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "" #: ../xl/main.py:543 msgid "LEVEL" msgstr "" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:555 msgid "TYPE" msgstr "" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "" #: ../xl/main.py:580 msgid "Entire Library" msgstr "" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "" #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr "" #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "" #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "" #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "" #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "" #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "" #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "" #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "" #: ../xl/lyrics.py:305 msgid "Local" msgstr "" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "" #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr "" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "Artisto" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "Albom" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "" #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "" #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "" #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "" #: ../xlgui/properties.py:54 msgid "Website" msgstr "" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "" #: ../xlgui/properties.py:57 msgid "Author" msgstr "" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "" #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "" #: ../xlgui/devices.py:81 msgid "Device" msgstr "" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "" #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "" #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "" #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "" #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "" msgstr[1] "" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "" #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "" #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "" #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "" #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "" #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "" #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "" #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "" #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "" #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "" #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "" #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "" #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "" #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "Apondre" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" #~ msgid "General" #~ msgstr "General" #~ msgid "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgstr "" #~ "{title}\n" #~ "{artist}\n" #~ "sus {album} - {length}" #~ msgid "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "Year - Artist\n" #~ "Year - Album\n" #~ "Artist - Year - Album" #~ msgstr "" #~ "Artisto\n" #~ "Albom\n" #~ "Stilo - Artisto\n" #~ "Stilo - Albom\n" #~ "Aná - Artisto\n" #~ "Aná - Albom\n" #~ "Artisto - Aná - Albom" dist/copy/po/PaxHeaders.26361/ka.po0000644000175000017500000000012312233027260015371 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 29 ctime=1382821553.04104693 exaile-3.3.2/po/ka.po0000644000000000000000000027626712233027260014356 0ustar00rootroot00000000000000# Georgian translation for exaile # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2009-08-25 05:42+0000\n" "Last-Translator: Aren Olson \n" "Language-Team: Georgian \n" "Language: ka\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Launchpad-Export-Date: 2012-08-28 05:25+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "" #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "" #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "" #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "" #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "" #: ../xl/formatter.py:702 msgid "Today" msgstr "" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "" #: ../xl/main.py:421 msgid "Playback Options" msgstr "" #: ../xl/main.py:423 msgid "Play the next track" msgstr "" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "" #: ../xl/main.py:429 msgid "Play" msgstr "" #: ../xl/main.py:431 msgid "Pause" msgstr "პაუზა" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "" #: ../xl/main.py:440 msgid "Collection Options" msgstr "" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:454 msgid "Track Options" msgstr "" #: ../xl/main.py:456 msgid "Query player" msgstr "" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "" #: ../xl/main.py:490 msgid "Volume Options" msgstr "" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "" #: ../xl/main.py:507 msgid "Other Options" msgstr "" #: ../xl/main.py:509 msgid "Start new instance" msgstr "" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "" #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "" #: ../xl/main.py:536 msgid "Set data directory" msgstr "" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "" #: ../xl/main.py:543 msgid "LEVEL" msgstr "" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:555 msgid "TYPE" msgstr "" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "" #: ../xl/main.py:580 msgid "Entire Library" msgstr "" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "" #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr "" #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "" #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "" #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "" #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "" #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "" #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "" #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "" #: ../xl/lyrics.py:305 msgid "Local" msgstr "" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "" #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr "" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "არ უკრავს" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "ბილიკის ნომერი" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "სათაური" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "შემსრულებელი" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "ალბომი" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "სიგრძე" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "დისკი" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "რეიტინგი" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "ჟანრი" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "მდებარეობა" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "ფაილის სახელი" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "დაკვრების რაოდენობა" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "შემთხვევითი შერჩევა" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "გმეორება" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "დინამიური" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "ახალი ფლეილისტი" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "" #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "" #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "" #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "ბმულის გახნა" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "კოლონები" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "გუქმება" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "" #: ../xlgui/properties.py:54 msgid "Website" msgstr "" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "" #: ../xlgui/properties.py:57 msgid "Author" msgstr "" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "" #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "" #: ../xlgui/devices.py:81 msgid "Device" msgstr "" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "" #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "" #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "ამოშლა" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "" #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "" #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "განახლება" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "წელი" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "" msgstr[1] "" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "კოლექცია" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "რეპერტუარები" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "ყდის ძიება" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "ფაილი" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "რედაქტირება" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "_დახმარება" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "წინა ბილიკი" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "შემდეგი ბილიკი" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "აღწერილობა:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "რადიო" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "ფაილები" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "ძიება: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "" #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "" #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "დაყენებული მოდულები" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "ავტორები:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "ვერსია:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "ხელმისაწვდომი მოდულები" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "პროგრამის აბრის ჩვენება გაშვებისას" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "პარამეტრები" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "" #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "" #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "" #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "" #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "" #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "წინა" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "შემდეგი" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "" #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "" #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "" #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "" #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "" #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "ორშაბათი" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "სამშაბათი" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "ოთხშაბათი" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "ხუთშაბათი" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "პარასკევი" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "შაბათი" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "კვირა" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "პაროლი:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "სახელი:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "დამატება" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" #~ msgid "General" #~ msgstr "მთავარი" #~ msgid "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgstr "" #~ "{სათაური}\n" #~ "{ალბომი}\n" #~ "on {ალბომი} - {ხანგრძლივობა}" #~ msgid "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgstr "გადაიტანეთ OSD ფანჯარა თქვენთვის სასურველ ადგილას" #~ msgid "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "Year - Artist\n" #~ "Year - Album\n" #~ "Artist - Year - Album" #~ msgstr "" #~ "შემსრულებელი\n" #~ "ალბომი\n" #~ "ჟანრი - შემსრულებელი\n" #~ "ჟანრი - ალბომი\n" #~ "წელი - შემსრულებელი\n" #~ "წელი - ალბომი\n" #~ "შემსრულებელი - წელი - ალბომი" #~ msgid "Display OSD when hovering over tray icon" #~ msgstr "OSD-ს ჩვენება სისტემურ პანელზე მაუსის გადატარებისას" #~ msgid "New Search" #~ msgstr "ახალი ძიება" #~ msgid "Resizable" #~ msgstr "ცვლადი ზომით" #~ msgid "Text Font:" #~ msgstr "ტექსტის ფონტი:" #~ msgid "Text Color" #~ msgstr "ტექსტის ფერი" #~ msgid "_Close" #~ msgstr "დახურვა" #~ msgid "Window Height:" #~ msgstr "ფანჯრის სიმაღლე:" #~ msgid "Window Width:" #~ msgstr "ფანჯრის სიგანე" #~ msgid "Start" #~ msgstr "დაწყება" #~ msgid "Show OSD on track change" #~ msgstr "აჩვენე OSD ბილიკის შეცვლისას" #~ msgid "Opacity Level:" #~ msgstr "გამჭვირვალობის დონე" #~ msgid "A plugin with the name \"%s\" is already installed" #~ msgstr "პლაგინი \"%s\" სახელით უკვე დაყენებულია" #~ msgid "Plugin archive is not in the correct format" #~ msgstr "პლაგინის არქივი არ არის კორექტულ ფორმატში" #~ msgid "Plugin archive contains an unsafe path" #~ msgstr "პლაგინის არქივი შეიცავს სახიფათო გზას" #~ msgid "Exaile" #~ msgstr "ექსაილი" dist/copy/po/PaxHeaders.26361/uk.po0000644000175000017500000000012412233027260015416 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.025046929 exaile-3.3.2/po/uk.po0000644000000000000000000045611212233027260014367 0ustar00rootroot00000000000000# Ukrainian translation for exaile # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2010. # Kenji , 2010. # Sergiy Gavrylov , 2010. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2012-07-29 07:19+0000\n" "Last-Translator: Sergiy Gavrylov \n" "Language-Team: Ukrainian \n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" "X-Launchpad-Export-Date: 2012-08-28 05:29+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "%d день, " msgstr[1] "%d дні, " msgstr[2] "%d днів, " #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "%d година, " msgstr[1] "%d години, " msgstr[2] "%d годин, " #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "%d хвилина, " msgstr[1] "%d хвилини, " msgstr[2] "%d хвилин, " #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d секунда" msgstr[1] "%d секунди" msgstr[2] "%d секунд" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "%dd, " #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "%dh, " #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "%dm, " #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "%ds" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "%dd " #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "%d:%02d:%02d" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "%d:%02d" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "Ніколи" #: ../xl/formatter.py:702 msgid "Today" msgstr "Сьогодні" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "Вчора" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "Не вдалося мігрувати з 0.2.14" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "Використання: exaile [OPTION]... [URI]" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "Параметри" #: ../xl/main.py:421 msgid "Playback Options" msgstr "Параметри відтворення" #: ../xl/main.py:423 msgid "Play the next track" msgstr "Відтворити наступну доріжку" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "Відтворити попередню доріжку" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "Зупинити відтворення" #: ../xl/main.py:429 msgid "Play" msgstr "Відтворити" #: ../xl/main.py:431 msgid "Pause" msgstr "Пауза" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "Призупинити або відновити відтворення" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "Зупинити відтворення після поточної доріжки" #: ../xl/main.py:440 msgid "Collection Options" msgstr "Параметри збірки" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "АДРЕСА" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "Додати доріжки до фонотеки з АДРЕСИ" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "Параметри списку композицій" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "Експортувати поточний список композицій до РОЗМІЩЕННЯ" #: ../xl/main.py:454 msgid "Track Options" msgstr "Параметри доріжки" #: ../xl/main.py:456 msgid "Query player" msgstr "Опитати програвача" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "Показувати повідомлення з даними про поточну композицію" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "Показувати назву поточної композиції" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "Показувати назву альбому поточної композиції" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "Показувати виконавця поточної композиції" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "Показувати тривалість поточної композиції" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "N" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "Встановити рейтинг поточної композиції N%" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "Отримати рейтинг поточної композиції" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "Показувати позицію відтворення, як час" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "Показувати позицію відтворення у відсотках" #: ../xl/main.py:490 msgid "Volume Options" msgstr "Параметри гучності" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "Збільшити гучність на N%" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "Зменшити гучність на N%" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "Приглушити або увімкнути гучність" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "Показувати поточний рівень гучності" #: ../xl/main.py:507 msgid "Other Options" msgstr "Інші параметри" #: ../xl/main.py:509 msgid "Start new instance" msgstr "Запускати новий екзкмпляр" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "Показати довідкове повідомлення і вийти" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "Показати номер версії програми і вийти." #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "Запускати згорнутим (у лоток, якщо можливо)" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "Змінити видимість ГІП (якщо можливо)" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "Запускати у безпечному режимі — іноді корисно, якщо виникають проблеми" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" "Швидке імпортування старих даних з версії 0.2.x (перезапише чинні дані)" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "Не імпортувати старі дані з версії 0.2.х" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" "Встановити параметри подібні до --play для запуску Exaile, якщо він не працює" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "Параметри розробки та налагодження" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "КАТАЛОГ" #: ../xl/main.py:536 msgid "Set data directory" msgstr "Встановити каталог з даними" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "МОДУЛЬ" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "Обмежити виведення записів у МОДУЛЬ" #: ../xl/main.py:543 msgid "LEVEL" msgstr "РІВЕНЬ" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "Обмежити виведення записів у РІВЕНЬ" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "Показувати вивід налагодження" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "Увімкнути налагодження xl.event. Генерує ВЕЛИКУ кількість виведення" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "Додавати назву потоку до повідомлень журналу" #: ../xl/main.py:555 msgid "TYPE" msgstr "ТИП" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "Обмежити виведення xl.event налагоджування ТИПУ" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "Понизити рівень сигналу" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "Вимкнути підтримку D-Bus" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "Вимкнути підтримку HAL." #: ../xl/main.py:580 msgid "Entire Library" msgstr "Вся фонотека" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "Випадковий %d" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "Рейтинг > %d" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" "Завантаження Exaile ще не завершилося. Можливо, варто дочекатись сигналу " "exaile_loaded." #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "Позначки" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "Архів модуля має не коректний формат" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "Модуль під назвою \"%s\" вже встановлений." #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "Архів модуля містить ненадійний шлях." #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "Ви не вказали розташування бази даних" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "Ви не вказали місце для збереження бази даних" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "Різні виконавці" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "Невідомо" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr " / " #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "%dk" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" "Vorbis — відкритий аудіо кодек для стиснення звуку зі втратами. Забезпечує " "високу якість та менший розмір файла порівняно з MP3." #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "FLAC — відкритий аудіо кодек для стиснення звуку без втрат якості." #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" "Закритий (власність Apple) формат стиснення звуку з втратами. Дає кращу, ніж " "MP3 якість, при меншій бітовій швидкості." #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" "Закритий та застарілий, але все ще популярний аудіо формат з втратами. VBR " "дає кращу якість, ніж CBR, але не несумісний з деякими програвачами." #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" "Закритий та застарілий, але все ще популярний аудіо формат з втратами. VBR " "дає гіршу якість, ніж CBR, але сумісний з усіма програвачами." #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "Вільний формат стиснення звуку без втрат з високою швидкістю." #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "Автоматично" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "Довільно" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "Не відтворюється." #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" "статус: %(status)s, назва: %(title)s, виконавець: %(artist)s, альбом: " "%(album)s, довжина: %(length)s, позиція: %(progress)s%% [%(position)s]" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "Версія параметрів новіша за чинну." #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "Не знаю, як зберігати такий тип параметрів: " #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "Знайдено невідомий тип параметрів!" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "Недопустимий тип списку відтворення." #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "Список відтворення" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "Список відтворення M3U" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "Список відтворення PLS" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "Неправильний формат %s." #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "Непідтримувана версія %(version)s для %(type)s" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "Список відтворення ASX" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "Список відтворення XSPF" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "Перемішування в_имкнене" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "Перемішувати ко_мпозиції" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "Перемішувати _альбоми" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "Вимкнут_и повтор" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "Повторювати _все" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "Повторювати о_дин" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "Динаміку в_имкнено" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "Динаміка за схожим _виконавцем" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "секунд" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "хвилин" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "години" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "днів" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "тижнiв" #: ../xl/lyrics.py:305 msgid "Local" msgstr "Локальні" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "Поставити в чергу" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "Замінити поточний" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "Додати до поточного" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "Відкрити каталог" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "Не вдалось перемістити файли на смітник. Назавжди вилучити їх з диска?" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "Перемістити у смітник" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "П_оказати відтворювану доріжку" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "Назва:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "Збіг за будь-якими критеріями" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "Випадкові результати" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "Обмежити до: " #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr " композицій" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "Нічого не відтворюється" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "Пошук: %s" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "Перемістити" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "Нова мітка" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "Приглушено" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "%d%%" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "Повна гучність" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" "$title\n" "виконує $artist\n" "з альбому $album" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "Різне" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "%(track_count)d загальною тривалістю (%(total_duration)s)" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "%d у фонотеці" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "%d показано" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "вибрано %d" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "Черга" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "Черга (%d)" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "№" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "Номер доріжки" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "Назва" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "Виконавець" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "Композитор" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "Альбом" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "Тривалість" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "Диск" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "Номер диска" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "Рейтинг" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "Дата" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "Жанр" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "Бітова швидкість" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "Розташування" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "Назва файла" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "Кількість відтворень" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "Бітів за хвилину" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "Останнє відтворення" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "Дата додавання" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "_Змінюваний розмір" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "_Автоматичний розмір" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "Рейтинг:" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "Перемішати" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "Повторювати" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "Динамічно" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "Вилучити чинну доріжку зі списку відтворення" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "Перемішати список відтворення" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "Новий список відтворення" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "Перейменувати" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "Зупинити програвання після цієї доріжки" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "Продовжити програвання після цієї доріжки" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "Потребує модулів для підтримки динамічних списків відтворення" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "Додавати схожі композиції до списку відтворення" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "Введіть URL, яку потрібно відкрити" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "Вiдкрити URL" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "Вибрати тип файла (за розширенням)" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "Вибрати носій для відкривання" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "Підтримувані типи файлів" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "Музичні файли" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "Файли списків відтворення" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "Усі файли" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "Вибрати каталог для відкривання" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "Експорт чинного списку відтворення" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "Список відтворення збережено як %s." #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "Закрити %s" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "Зберегти зміни в %s перед закриттям?" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "Зміни будуть втрачені, якщо ви їх не збережете" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "Закрити без збереження" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "Збережено %(count)s з %(total)s." #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "Ви не вказали назву списку відтворення" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "Назва списку, яку ви ввели, вже використовується." #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "Закрити вкладку" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "$title (виконує $artist)" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "Перемкнути: зупинити після вибраної доріжки" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "Виникла помилка відтворення!" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "Буферизація: %d%%..." #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "Продовжити вітворення" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "Призупинити відтворення" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "Не вдалось експортувати список відтворення!" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "Почати відтворення" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "Музичний програвач Exaile" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "_Новий список відтворення" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "Відкрити _URL" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "Відкрити теку" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "_Експорт чинного списку відтворення" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "Перезапустити" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "_Фонотека" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "_Черга" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "О_бкладинки" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "Панель утиліт _списку відтворення" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "_Стовпчики" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "О_чистити список відтворення" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "_Менеджер пристроїв" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "Пе_ресканувати збірку" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "В_ластивості доріжки" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "Скасувати" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "Оригінальний альбом" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "Автор тексту" #: ../xlgui/properties.py:54 msgid "Website" msgstr "Веб-сайт" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "Обкладинка" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "Початковий виконавець" #: ../xlgui/properties.py:57 msgid "Author" msgstr "Автор" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "Початкова дата" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "Аранжувальник" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "Диригент" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "Виконавець" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "Авторські права" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "Тексти пісень" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "Доріжка" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "Версія" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "Код ISRC" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "Кодований" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "Організація" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "Змінено" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "Кількість відтворень" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "Редагування доріжки %(current)d з %(total)d" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "з:" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "Застосувати чинне значення до всіх доріжок" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "Показати обкладинку" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "Завантажити обкладинку" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "Вилучити обкладинку" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "Обкладинка для %s" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "Варіанти обкладинок для %(artist)s - %(album)s" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "Обкладинки не знайдені." #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "Значок" #: ../xlgui/devices.py:81 msgid "Device" msgstr "Пристрій" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "Драйвер" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "Сканування фонотеки..." #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "Сканування %s..." #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "Перемкнути чергу відтворення" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "Елементи черги відтворення" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "Властивості" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "Нова станція" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "Новий «розумний» список відтворення" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "Змiнити" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "Експорт списку відтворення" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "Вилучити список відтворення" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "Вилучити назавжди вибрані списки відтворення?" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "Введіть нову назву списку відтворення" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "Перейменувати список відтворення" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "Вилучити" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "Список відтворення %d" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "Додати теку" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "Тека не додана." #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "Ця тека вже є у фонотеці або це під-тека в іншому каталозі фонотеки." #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "Передача до %s..." #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "Завантаження потоків..." #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "Додати радіостанцію" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "Адреса URL:" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "Збережені станції" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "Потокове радіо" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "Оновити" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "Введіть назву нового списку відтворення" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "Жанр - Виконавець" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "Жанр - Альбом" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "Пересканувати збірку" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "Розмір" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s Кб" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "та" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "збігається з" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "не збігається з" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "містить" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "не містить" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "щонайменше" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "щонайбільше" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "до" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "після" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "між" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "більше, ніж" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "менше, ніж" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "за останні" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "не за останні" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "Відтворення" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "Рік" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "%(first)s, %(second)s та інші" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "%(first)s та %(second)s" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "«Розумні» списки відтворення" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "Власні списки відтворення" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "Додати «розумний» список відтворення" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "Редагувати «розумний» список відтворення" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "Відтворення" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "Модулі" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "Не вдалось завантажити інфо про модуль!" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "Помилка в модулі: %s" msgstr[1] "Помилки в модулі: %s" msgstr[2] "Помилок в модулі: %s" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "Не вдалось вимкнути модуль!" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "Не вдалось увімкнути модуль!" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "Виберіть модуль" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "Архіви модулів" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "Файл завантаження модуля пошкоджений!" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "Обкладинки" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "Зовнішній вигляд" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "Фонотека" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "the" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "Відновити типові параметри" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "Перезапустити Exaile?" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "Необхідний перезапуск, щоб зміни набрали чинності." #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "Дія" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "Комбінації клавіш" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "Списки відтворення" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "Про Exaile" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "© 2009-2012" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "Ця програма є вільним ПЗ; ви можете розповсюджувати і/або\n" "змінювати її за умовами ліцензії GNU General Public License, як\n" "опубліковано у Free Software Foundation; або у версії 2 цієї\n" "ліцензії, або (на ваш вибір) у пізнішій версії.\n" "\n" "Ця програма розповсюджується із сподіванням, що вона буде\n" "корисною, але БЕЗ БУДЬ-ЯКИХ ГАРАНТІЙ; навіть без непрямих\n" "гарантій ПРИДАТНОСТІ ДЛЯ ВИЗНАЧЕНОЇ МЕТИ. Детальніше\n" "дивіться GNU General Public License.\n" "\n" "Ви мали отримати копію GNU General Public License разом з\n" "цією програмою; якщо ні, напишіть листа за адресою Free\n" "Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" "02110-1301 USA.\n" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "Менеджер обкладинок" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "Відтворювати випадково" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "Повторити відтворення" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "Пошук обкладинок" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "В_становити як обкладинку" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "_Файл" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "_Правка" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "_Вигляд" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "_Інструменти" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "_Довідка" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "Попередня доріжка" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" "Зупинити відтворення\n" "\n" "Натисніть праву кнопку миші для зупинки після відтворення" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "Наступна доріжка" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0:00 / 0:00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "Властивості доріжки" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "_Додати позначку" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "_Вилучити позначку" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "ab → A_b" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "Велика перша буква у всіх позначках" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "_Назад" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "_Вперед" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "Опис:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "Керування фонотекою" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "Перевірено" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "Радіо" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "Додати усі композиції до списку відтворення" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "Імпорт CD" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "Додати станцію" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "Файли" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "Попередня оглянута тека" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "Наступна оглянута тека" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "Вверх на один каталог" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "Оновити вміст каталогу" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "Домашній каталог" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "Пошук: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "Очистити поле пошуку" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "Фонотека порожня." #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "Додати музику" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" "Оновити вигляд фонотеки\n" "(Утримуйте клавішу Shift, щоб пересканувати фонотеку)" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "Використовувати обкладинки вказані в позначках" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "Отримувати обкладинки з локальних файлів" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" "Пошук файлів із зображенням обкладинок \n" "вестиметься в теці з музичними файлами." #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "Отримувати обкладинки автоматично після початку відтворення" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "Порядок пошуку обкладинок:" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "(перемістити для перевпорядкування)" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "Після запуску, відкривати останній список відтворення" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "Запитувати про збереження списку відтворювання під час закривання" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "Замінити вміст у бічній панелі подвійним клацанням" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" "Композиції, які додаються через подвійний клік в панелях, замість додавання, " "змінюють вміст чинного списку відтворення." #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "Система програвання " #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "Використовувати плавні переходи під час дій користувача" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "Тривалість плавного затухання (мс):" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "Використовувати перехресне згасання (ПРОБА)" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "Тривалість перехресного згасання (мс):" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "Аудіопристрій: " #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "Нетиповий конвеєр пристрою:" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "Продовжити відтворення після запуску" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "Відновити відтворення у призупиненому стані" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "Normal" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "Об’єднане (нестабільно)" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "Модуль" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "Активний" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "Модуль не вибраний" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "Встановлені модулі" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "Автори:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "Версія:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "Встановити" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "Модуль не вибраний" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "Доступні модулі" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "Встановити оновлення" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "Оновлення" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "Встановити файл модуля" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "Показати інформаційну область" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "Інформаційна область містить інформацію про обкладинку та доріжку" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "Завжди показувати рядок вкладок" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "Розташування вкладки:" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "Показувати номер доріжки в збірці" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "Використовувати альфа-прозорість:" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" "Попередження: цей параметр може викликати помилки, якщо використовується " "віконний менеджер без підтримки композиції." #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "Показувати значок в лотку" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "Згорнути до лотка" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "Згорнути в лоток" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "Переходити до поточної композиції під час зміни доріжки" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "Показувати заставку під час запуску" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "Ліворуч" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "Праворуч" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "Вверху" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "Внизу" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "Налаштування" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" "Під час сортування брати початкові слова з позначок виконавця (через пробіл):" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "(Клацання правою кнопкою миші повертає типові параметри)" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "Виявляти файли по вмісту" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "Керування пристроями" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "Додати пристрій" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "Тип пристрою:" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "Виявлені пристрої:" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "Власний: " #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "Керування чергою" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "Підбирання настрою..." #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "Настрій вибраний." #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "Не вдалось прочитати смужку настрою." #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "Смужка настрою не доступна." #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "Смужка настрою" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "Помилка виконання запису аудіопотоку" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "Запис аудіопотоку" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "Улюблені доріжки Last.fm" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "Невірний ключ API." #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "Будь-ласка, переконайтеся, що введені дані є вірними" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "Неможливо запустити веб-браузер" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" "Будь-ласка, зкопіюйте дану URL та відкрийте її у веб=браузері:\n" "{url}" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "Улюблене" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "Улюблене Last.fm" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "Сподобалось" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "Не сподобалось" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "Будильник" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "Під’єднання до сервера Shoutcast" #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "Помилка під’єднання до сервера Shoutcast." #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "Введіть ключове слово для пошуку" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "Пошук радіостанцій Shoutcast" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "Результати пошуку" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "Пошук" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "Текст пісні не знайдений." #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "Перейти до: " #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "Будь-який" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "Lyrics Viewer" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "AudioScrobbler" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "Увімкнути audioscrobbling" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "Еквалайзер" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "Вимкнути після відтворення" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "Завершення роюоти системи заплановано" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "Комп’ютер вимкнеться після завершення відтворення." #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "Неминуче вимкнення системи" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "Комп’ютер буде вимкнено через %d секунд." #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "Помилка вимкнення комп’ютера" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "Комп'ютер не може бути вимкнений через D-Bus." #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "Повідомлення про доріжку" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "%(title)s" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "у виконанні %(artist)s" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "з альбому %(album)s" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "Консоль IPython - Exaile" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "Показувати консоль IPython" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "Консоль IPython" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "Повідомлення" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" "у виконанні %(artist)s\n" "з альбому %(album)s" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "Імпортування CD..." #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "Звуковий диск" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "CD" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "Номер доріжки" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "Номер диска" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "Кількість відтворень" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "Виконавець: " #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" "Чи знаєте ви...\n" "\n" "%s" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "Повторити відрізок" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "Повторити початок" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "Повторити кінець" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "Компактний режим" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "$tracknumber - $title" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "$title виконує $artist" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "$title ($__length)" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "Попередня" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "До попередньої доріжки" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "Попередня доріжка" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "Наступна" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "До наступної доріжки" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "Наступна доріжка" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "Відтворення/пауза" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "Розпочати, призупинити або відновити відтворення" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "Почати відтворення" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "Продовжити відтворення" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "Призупинити відтворення" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "Зупинити" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "Зупинити відтворення" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "Продовжити відтворення після чинної доріжки" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "Гучність" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "Змінити гучність" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "Відновити" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "Відновити головне вікно" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "Відновити основне вікно" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "Вибрати оцінку поточної доріжки" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "Вибір доріжок" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "Простий список вибору доріжок" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "Кнопка списку відтворення" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "Доступ до поточного списку відтворення" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "$title ($current_time / $total_time)" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "Кнопка поступу" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "Поступ відтворення та доступ до чинного списку відтворення" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "Смужка поступу" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "Поступ відтворення та пошук" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "Група" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "ReplayGain" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "Скинути для вибору" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "Додати і відтворити" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "Додати" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "Завершено" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "Пошук в каталозі Jamendo..." #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "Отримання даних пісні..." #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "Повідомлення на екрані" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "Обкладинки з Amazon" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "Подкасти" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "Подкаст" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "Оновити подкаст" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "Вилучити" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "Введіть URL для додавання подкаста" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "Відкрити подкаст" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "Завантаження %s..." #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "Помилка завантаження подкаста." #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "Завантаження подкастів..." #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "Не вдалося зберегти файл подкаста" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "Обкладинка на стільницю" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "Багатофункціональний будильник" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "Зміст" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "Контекстна інформація" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "Додати в закладки цю доріжку" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "Вилучити закладку" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "Очистити закладки" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "Закладки" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "Пауза під час активації зберігача екрана" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "Сервер DAAP" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "Клієнт DAAP" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "Вручну..." #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "Введіть IP адресу та порт для спільних файлів" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "Введіть IP адресу та порт." #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" "Цей сервер не підтримує численні з'єднання.\n" "Зупиніть відтворення перед завантаженням пісень." #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "Оновити список серверів" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "Від’єднатись від сервера" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "Виберіть місце для збереження" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "Під’єднатись до DAAP..." #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "Затінювати відтворену частину замість показу курсору" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "Рівень затінення:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "Використовувати стиль хвилі" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "Показувати хвилю а не смужку настрою" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "Використовувати кольорову тему " #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "Основний колір:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "Основний колір" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "Зберегти адресу:" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "Порт передачі:" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "Витягти в один файл" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "Вилучити неповні файли" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "API ключ:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "Секретна фраза:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "Зробити запит на доступ" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" "Перейдіть на сторінку Вашого " "облікового запису API та отримайте ключ API та секретну " "фразу та введіть їх тут. Після цього зробіть запит на доступ та " "підтвердьте його для завершення процедури налаштування." #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "Час нагадування" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "Понеділок" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "Вівторок" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "Середа" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "Четвер" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "П'ятниця" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "Субота" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "Неділя" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "Дні нагадування" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "Використовувати затухання" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "Збільшення:" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "Показувати трафарет:" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "Показувати обкладинки" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "Показувати коло" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "Відсоток тексту" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "Немає" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "Оновити текст пісні" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "Передавати доріжки через Audioscrobbler" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "Показати пункт меню для перемикання відправлення" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "Пароль:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "Ім’я користувача:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "до" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "+12 dB" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "0" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "-24 dB" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "29" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "59" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "119" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "237" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "474" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "947" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "1.9K" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "3.8K" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "7.5K" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "15K" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "Під час зміни доріжки" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "Під час запуску, паузи або зупинки відтворення" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "При зміні мітки" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "Під час наведення на значок в лотку" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "Якщо головне вікно у фокусі" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "Показ" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "Використовувати обкладинки альбомів як значки" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "Використовувати значки пристроїв для паузи, зупинки та відновлення" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "Значки" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "Рядок виконавця:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" "Позначки \"%(title)s\", \"%(artist)s\" та \"%(album)s\" будуть замінені " "відповідними значеннями. Якщо назви немає, буде підставлене значення " "«Невідомо»." #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "Зведення:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "Рядок альбому:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "Вміст" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "Прозорість терміналу:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "Шрифт:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "Колір фону:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "Змінити розмір обкладинок" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "Лише виконавець:" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "Лише альбом:" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" "Повідомлення, яке буде показане в тілі повідомлення. У всіх випадках, " "позначки \"%(title)s\", \"%(artist)s\" та \"%(album)s\" будуть замінені " "відповідними значеннями. Якщо немає позначки назви, буде підставлене " "значення «Невідомо»." #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "І виконавець, і альбом:" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "Тіло повідомлення" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "Ogg Vorbis" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "FLAC" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "AAC" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "MP3 (VBR)" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "MP3 (CBR)" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "WavPack" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "Формат імпортованих файлів: " #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "Якість імпортованого: " #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "Шлях для імпортованого: " #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" "Кожна мітка може бути обрамлена у вигляді: $tag or ${tag}. " "Внутрішні мітки подібно $__length мають бути вказані з двома знаками " "підкреслення попереду." #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" "Порядок елементів керування може бути змінено їх перетягуванням вниз чи " "вгору. (Або натисканням Alt+Вгору/Вниз.)" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "Елементи керування" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "Відстежувати формат заголовку" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "Завжди поверх інших вікон" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "Показувати в списку завдань" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "Показувати обрамлення вікна:" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "Показувати на всіх стільницях" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "Показати кнопку у головному вікні" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "Повністю" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "Спрощено" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "Віддавати перевагу коригуванню за альбомами" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "Коригувати ReplayGain за альбомами а не за доріжками." #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "Захист від обрізки звуку" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "Захист від шумів спричинених надмірною гучністю" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "Додаткове підсилення для всіх файлів" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "Додаткове підсилення (dB):" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "Вносити коригування у файли, в яких відсутня інформація ReplayGain" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "Рівень внесення коригування (dB):" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "Упорядкувати за:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "Напрямок упорядкування:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "Результати:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "Додатково" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "За спаданням" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "За зростанням" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "Дата випуску" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "Рейтинг тижня" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "Рейтинг місяця" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "Кількість додавань до списку відтворення" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "Кількість завантажень" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "Кількість прослуховувань" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "Оцінені" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "Дата оцінки" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "Жанр/позначки" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" "Щоб отримати інформацію про реєстрацію облікового\n" "запису Amazon AWS, відвідайте http://aws." "amazon.com/" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "Додати подкаст" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "Прив’язка:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "Зміщення по осі X:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "пікселів" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "Зміщення по осі Y:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "Розмір обкладинки для заміни" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "Розмір:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "Використовувати затухання" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "Тривалість затухання:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "мс" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "Вгорі ліворуч" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "Вгорі праворуч" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "Внизу ліворуч" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "Внизу праворуч" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "Додати" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "Нагадування" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "Увімкнути затухання" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "Початкова гучність затухання:" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "Кінцева гічність затухання:" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "Коефіцієнт затухання" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "Час плавного затухання (с):" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "Перезапуск списку відтворення" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "Відтворення" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "Введіть дані реєстрації на Last.fm:" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "Зареєструватись на Last.fm" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" "Використовувати обкладинки в меню закладок (набирає чинності після " "перезапуску)" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "Назва серверу:" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "Головний сервер:" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "Порт:" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "Сервер увімкнений" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "Поточна пісня" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" "Встановлює статус відтворюваної на цей час музики в Pidgin. Перегляньте " "розділ FAQ в Pidgin, щоб знайти підтримувані служби." #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" "Замінює стандартну смужку поступу на смужку настрою.\n" "Залежить від: moodbar" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "Мультимедійні клавіші GNOME" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" "Надає підтримку для керування Exaile через системні мультимедійні клавіші " "GNOME. Сумісний з GNOME >= 2.20.x" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" "Дає змогу записувати аудіопотоки через streamripper.\n" "Залежить від: streamripper" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" "Показує, які доріжки були відмічені як улюблені та дозволяє встановлювати " "дані відмітки.\n" "\n" "Переконайтесь, що ключ API та секретна фраза введено у налаштуваннях " "плагіну.\n" "\n" "Залежить від плагіну \"AudioScrobbler\" для використання імені та паролю " "користувача." #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "Відтворює музику у вказаний час.\n" "\n" "Зауважимо, що коли настане вказаний час, Exaile почне діяти, якщо ви " "натиснете кнопку відтворення, переконайтесь, що музика, яку ви хочете почути " "є в списку відтворення" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "Обкладинки з Last.fm" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "Пошук обкладинок на Last.fm" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "Встановлює обкладинку та додає деякі пункти в меню AWN для Exaile" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "Радіо Shoutcast" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "Список радіостанцій Shoutcast" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "Редактор позначок Ex Falso" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" "Інтегрує редактор позначок Ex Falso з Exaile.\n" "Залежить від: Ex Falso." #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "Додає бічну вкладку для показу тексту відтворюваної пісні." #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" "Надсилає інформацію про прослуховування на Last.fm та аналогічні служби, що " "підтримують Audioscrobbler" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "XKeys" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "Глобальні «гарячі клавіші» через xlib (mmkeys.so)" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "Клавіші мультимедіа для Windows" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" "Додає підтримку для клавіш мультимедіа (присутні на більшості мультимедійних " "клавіатур) під час використання Exaile в Microsoft Windows.\n" "\n" "Вимагає: pyHook " #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "10-смуговий еквалайзер" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "Lyrics Fly" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "Модуль для пошуку текстів пісень на lyricsfly.com" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "Librivox" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "Перегляд та прослуховування аудіо-книг з Librivox.org." #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "Дає змогу вимкнути комп’ютер після завершення відтворення." #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "USB Mass Storage Media Player Support" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" "Підтримка доступу до портативних медіа-плеєрів через протокол USB Mass " "Storage" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "Пристрої" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "Динамічні списки відтворення Last.fm" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "Оболонка Last.fm для динамічних списків відтворення" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" "Модуль показує повідомлення під час відтворення, зупинки та відновлення " "пісні з обкладинкою або значком пристрою та показом останньої дії.\n" "\n" "Залежить від: python-notify\n" "Рекомендується: notify-osd" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "Надає консоль IPython, через яку можна керувати програвачем Exaile." #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "Показує повідомлення про початок відтворення доріжки" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "Відтворення CD" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "Інформація" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "Повторювати A-B" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "Безперервно повторювати відрізок доріжки." #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "Компактний режим Exaile з налаштовним інтерфейсом" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "Вмикає підтримку ReplayGain" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "Drop Trayicon" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" "Надає інший значок в лоток, що приймає скинуті на нього файли.\n" "\n" "Залежить від: python-eggtrayicon" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "Jamendo" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "Надає доступ до музичного каталогу Jamendo." #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "Підтримка iPod" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" "Модуль для підтримки iPod. На цей час лише для читання, не для передачі.\n" "\n" "Залежить від python-gpod." #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" "Шукає обкладинки на Amazon\n" "\n" "Щоб користуватись цим модулем, потрібний AWS API-ключ та секретний ключ." #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "Караоке" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "Вилучає голос з аудіо запису" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "Додає підтримку для простих подкастів" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "Показує обкладинку відтворюваного альбому на стільниці" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "Hello World" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "Простий модуль для тестування базової системи модулів" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "Відтворює музику у вказаний час та дні.\n" "\n" "Зауважимо, що коли настане вказаний час, Exaile почне діяти, якщо ви " "натиснете кнопку відтворення, переконайтесь, що музика, яку ви хочете почути " "є в списку відтворення" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "Contextual Info" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" "Показує різноманітну інформацію про відтворювану доріжку.\n" "Залежить від: libwebkit >= 1.0.1, python-webkit >= 1.1.2 та python-imaging " "(також відому як PIL)" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" "Дає змогу запам'ятовувати та відтворювати музику в аудіо файлі з певного " "місця." #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "Lyrics Wiki" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" "Цей модуль інтегрує функцію spydaap (http://launchpad.net/spydaap) в Exaile " "для спільного використання фонотеки через DAAP." #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "Дає змогу прослуховувати спільну музику через DAAP." #~ msgid "Clear" #~ msgstr "Очистити" #~ msgid "Close" #~ msgstr "Закрити" #~ msgid "Close tab" #~ msgstr "Закрити вкладку" #~ msgid "Export as..." #~ msgstr "Експортувати як..." #~ msgid "%d KB" #~ msgstr "%d Кбайт" #~ msgid "© 2009-2010" #~ msgstr "© 2009-2010" #~ msgid "GNOME" #~ msgstr "Середовище GNOME" #~ msgid "ALSA" #~ msgstr "ALSA" #~ msgid "OSS" #~ msgstr "OSS" #~ msgid "PulseAudio" #~ msgstr "PulseAudio" #~ msgid "JACK" #~ msgstr "JACK" #~ msgid "AWN" #~ msgstr "AWN" #~ msgid "API Key:" #~ msgstr "Ключ API:" #~ msgctxt "yes" #~ msgid "Monday" #~ msgstr "Понеділок" #~ msgctxt "yes" #~ msgid "Tuesday" #~ msgstr "Вівторок" #~ msgctxt "yes" #~ msgid "Wednesday" #~ msgstr "Середа" #~ msgctxt "yes" #~ msgid "Thursday" #~ msgstr "Четвер" #~ msgctxt "yes" #~ msgid "Friday" #~ msgstr "П'ятниця" #~ msgctxt "yes" #~ msgid "Saturday" #~ msgstr "Субота" #~ msgctxt "yes" #~ msgid "Sunday" #~ msgstr "Неділя" #~ msgctxt "yes" #~ msgid "Use Fading" #~ msgstr "Використовувати затухання" #~ msgctxt "yes" #~ msgid "Minimum volume:" #~ msgstr "Мінімальна гучність:" #~ msgctxt "yes" #~ msgid "Maximum volume:" #~ msgstr "Максимальна гучність:" #~ msgctxt "yes" #~ msgid "Increment:" #~ msgstr "Збільшення:" #~ msgctxt "yes" #~ msgid "Time per increment:" #~ msgstr "Приріст часу:" #~ msgid "Secret key:" #~ msgstr "Секретний ключ:" #~ msgid "Awn" #~ msgstr "Awn" #~ msgid "General" #~ msgstr "Загальне" #~ msgid "Autosize" #~ msgstr "Авторозмір" #~ msgid "New Search" #~ msgstr "Новий пошук" #~ msgid "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgstr "" #~ "{title}\n" #~ "{artist}\n" #~ "з {album} - {length}" #~ msgid "Opacity Level:" #~ msgstr "Рівень прозорості:" #~ msgid "Stopped" #~ msgstr "Зупинено" #~ msgid "Text Font:" #~ msgstr "Шрифт тексту:" #~ msgid "Text Color" #~ msgstr "Колір тексту" #~ msgid "_Close" #~ msgstr "_Закрити" #~ msgid "Window Height:" #~ msgstr "Висота вікна:" #~ msgid "Window Width:" #~ msgstr "Ширина вікна:" #~ msgid "Buffering: 100%..." #~ msgstr "Буферизація: 100%..." #~ msgid "0:00" #~ msgstr "0:00" #~ msgid "No covers found" #~ msgstr "Обкладинок не знайдено" #~ msgid "Enter the search text" #~ msgstr "Введіть текст для пошуку" #~ msgid "Add to Playlist" #~ msgstr "Додати до списку відтворення" #~ msgid "Add Playlist" #~ msgstr "Додати список відтворення" #~ msgid "0/0 tracks" #~ msgstr "0/0 доріжок" #~ msgid "Add device" #~ msgstr "Додати пристрій" #~ msgid "LastFM Radio" #~ msgstr "Радіо LastFM" #~ msgid "Toggle Play or Pause" #~ msgstr "Грати/Пауза" #~ msgid "Set rating for current song" #~ msgstr "Оцінити поточний трек" #~ msgid "Get rating for current song" #~ msgstr "Запитати оцінку поточоного треку" #~ msgid " New song, fetching cover." #~ msgstr " Новий трек! Завантажується обкладинка." #~ msgid "Toggle: Stop after selected track" #~ msgstr "Зупинити після завершення вибраного треку" #~ msgid "Export" #~ msgstr "Експортувати" #~ msgid "Open" #~ msgstr "Вiдкрити" #~ msgid "Quit" #~ msgstr "Вийти" #~ msgid "Choose a plugin" #~ msgstr "Оберiть доповнення" #~ msgid "Minimum Volume:" #~ msgstr "Мiнiмальна гучнiсть" #~ msgid "Name - Time" #~ msgstr "Назва - Час" #~ msgid "Maximum Volume:" #~ msgstr "Максимальна гучнiсть" #~ msgid " - " #~ msgstr " - " #~ msgid " + " #~ msgstr " + " #~ msgid "Streamripper can only record streams." #~ msgstr "Streamripper може записувати тiльки потоки." #~ msgid "" #~ "Exaile now uses absolute URI's, please delete/rename your %s directory" #~ msgstr "" #~ "Exaile тепер використовує абсолютні URL, будь-ласка, видаліть/" #~ "переіменуйте ваш каталог %s" #~ msgid "Playing %s" #~ msgstr "Відтворюється %s" #~ msgid "Show a popup of the currently playing track" #~ msgstr "Показувати зринаюче повідомлення про поточну композицію" #~ msgid "from %s" #~ msgstr "з альбому %s" #~ msgid "Decreases the volume by VOL%" #~ msgstr "Зменшує гучність на VOL%" #~ msgid "Increases the volume by VOL%" #~ msgstr "Збільшує гучність на VOL%" #~ msgid "Filter event debug output" #~ msgstr "Фільтрувати виведення відлагоджування подій" #~ msgid "Print the position inside the current track as time" #~ msgstr "Показувати поточну позицію відтворювання у вигляді часу" #~ msgid "Print the progress inside the current track as percentage" #~ msgstr "Показувати поточну позицію відтворювання у процентному вигляді" #~ msgid "order must be a list or tuple" #~ msgstr "порядок мусить бути списком або кортежем" #~ msgid "Device class does not support transfer." #~ msgstr "Клас пристрою не підтримує передавання." #~ msgid "Streaming..." #~ msgstr "Потокова трансляція..." #~ msgid "%(minutes)d:%(seconds)02d" #~ msgstr "%(minutes)d:%(seconds)02d" #~ msgid "New playlist title:" #~ msgstr "Нова назва списку відтворення:" #~ msgid "Add to custom playlist" #~ msgstr "Додати до поточного списку відтворення" #~ msgid "In pause: %s" #~ msgstr "Призупинено: %s" #~ msgid "Save As..." #~ msgstr "Зберегти як..." #~ msgid " (%(queue_count)d queued)" #~ msgstr " (%(queue_count)d додано до черги)" #~ msgid "_Save As..." #~ msgstr "_Зберегти як..." #~ msgid "_Save Changes To Playlist" #~ msgstr "_Зберегти зміни до списку відтворення" #~ msgid "_Save As Custom Playlist" #~ msgstr "_Зберегти як поточний список відтворення" #~ msgid "Delete track" #~ msgstr "Видалити композицію" #~ msgid "%d covers to fetch" #~ msgstr "%d обкладинок для завантаження" #~ msgid "Extension" #~ msgstr "Розширення" #~ msgid "Export current playlist..." #~ msgstr "Експортувати поточний список відтворення..." #~ msgid "%(year)d-%(month)02d-%(day)02d" #~ msgstr "%(year)d-%(month)02d-%(day)02d" #~ msgid "New custom playlist name:" #~ msgstr "Нова власна назва списку відтворення:" #~ msgid "Add To New Playlist..." #~ msgstr "Додати до нового списку відтворення..." #~ msgid "Idle." #~ msgstr "Бездіяльність." #~ msgid "Remove item" #~ msgstr "Вилучити елемент" #~ msgid "Could not enable plugin: %s" #~ msgstr "Не вжається увімкнути плагін: %s" #~ msgid "Could not disable plugin: %s" #~ msgstr "Не вдається вимкнути плагін: %s" #~ msgid "Add item" #~ msgstr "Додати елемент" #~ msgid "Move selected item down" #~ msgstr "Пересунути вибраний елемент вниз" #~ msgid "Remove current track from playlist" #~ msgstr "Видалити поточну композицію зі списку відтворювання" #~ msgid "..." #~ msgstr "..." #~ msgid "Dynamically add similar tracks" #~ msgstr "Динамічно додавати схожі композиції" #~ msgid "File Size:" #~ msgstr "Розмір файлу:" #~ msgid "Length:" #~ msgstr "Тривалість:" #~ msgid "Basic" #~ msgstr "Базове" #~ msgid "Date:" #~ msgstr "Дата:" #~ msgid "Details" #~ msgstr "Подробиці" #~ msgid "Bitrate:" #~ msgstr "Бітрейт:" #~ msgid "Genre:" #~ msgstr "Жанр:" #~ msgid "Album:" #~ msgstr "Альбом:" #~ msgid "Artist:" #~ msgstr "Виконавець:" #~ msgid "Title:" #~ msgstr "Назва:" #~ msgid "" #~ "Left\n" #~ "Right\n" #~ "Top\n" #~ "Bottom" #~ msgstr "" #~ "Зліва\n" #~ "Справа\n" #~ "Зверху\n" #~ "Знизу" #~ msgid "" #~ "Copyright (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "This program is free software; you can redistribute it and/or modify\n" #~ "it under the terms of the GNU General Public License as published by\n" #~ "the Free Software Foundation; either version 2 of the License, or\n" #~ "(at your option) any later version.\n" #~ "\n" #~ "This program is distributed in the hope that it will be useful,\n" #~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" #~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" #~ "GNU General Public License for more details.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along\n" #~ "with this program; if not, write to the Free Software Foundation, Inc.,\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ msgstr "" #~ "Copyright (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "This program is free software; you can redistribute it and/or modify\n" #~ "it under the terms of the GNU General Public License as published by\n" #~ "the Free Software Foundation; either version 2 of the License, or\n" #~ "(at your option) any later version.\n" #~ "\n" #~ "This program is distributed in the hope that it will be useful,\n" #~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" #~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" #~ "GNU General Public License for more details.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along\n" #~ "with this program; if not, write to the Free Software Foundation, Inc.,\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ msgid "© 2009" #~ msgstr "© 2009" #~ msgid "Play Count:" #~ msgstr "Кількість відтворень:" #~ msgid "Remove All" #~ msgstr "Вилучити все" #~ msgid "" #~ "Automatic\n" #~ "GNOME\n" #~ "ALSA\n" #~ "OSS\n" #~ "PulseAudio\n" #~ "JACK" #~ msgstr "" #~ "Автоматично\n" #~ "GNOME\n" #~ "ALSA\n" #~ "OSS\n" #~ "PulseAudio\n" #~ "JACK" #~ msgid "" #~ "OSD\n" #~ "Drag to the location you'd like the\n" #~ "OSD to appear" #~ msgstr "" #~ "OSD\n" #~ "Пересуньте це вікно у те місце екрану,\n" #~ "де ви хочете бачити OSD" #~ msgid "Use alpha transparency (if supported)" #~ msgstr "Використовувати прозорість (якщо підтримується)" #~ msgid "Close this dialog" #~ msgstr "Закрити це вікно" #~ msgid "" #~ "Normal\n" #~ "Unified (unstable)" #~ msgstr "" #~ "Нормальный\n" #~ "Універсальний (нестабільно)" #~ msgid "These options only affect the unified engine." #~ msgstr "Ці налаштування впливають лише на універсальний модуль відтворення." #~ msgid "Page 1" #~ msgstr "Сторінка 1" #~ msgid "Install plugin file" #~ msgstr "Встановити файл плагіну" #~ msgid "Track _properties" #~ msgstr "Властивості _композиції" #~ msgid "_Go to Playing Track" #~ msgstr "_Перейти до відтворюваної композиції" #~ msgid "_Export current playlist" #~ msgstr "_Експорт поточного списку відтворювання" #~ msgid "Start/Pause Playback" #~ msgstr "Почати/Призупинити відтворювання" #~ msgid "Original Date" #~ msgstr "Дата оригіналу" #~ msgid "Date Added" #~ msgstr "Дата додавання" #~ msgid "Encoded By" #~ msgstr "Кодовано" #~ msgid "Last Played" #~ msgstr "Востаннє відтворювалося" #~ msgid " & " #~ msgstr " & " #~ msgid "" #~ "Exaile Music Player\n" #~ "Not playing" #~ msgstr "" #~ "Музикальний програвач Exaile\n" #~ "Нічого не відтворюється" #~ msgid "Plugin archive is not in the correct format" #~ msgstr "Некоректний формат архіву модуля" #~ msgid "A plugin with the name \"%s\" is already installed" #~ msgstr "Модуль \"%s\" вже встановлений" #~ msgid "Plugin archive contains an unsafe path" #~ msgstr "Архів модуля містить ненадійний шлях" #~ msgid "Custom playlist name:" #~ msgstr "Назва спеціального списку відтворення:" #~ msgid "%(title)s (by %(artist)s)" #~ msgstr "%(title)s (by %(artist)s)" #~ msgid "_Rename Playlist" #~ msgstr "Пе_рейменувати список відтворення" #~ msgid "C_lear All Tracks" #~ msgstr "Ви_лучити усі доріжки" #~ msgid "_Close Playlist" #~ msgstr "Закрити _список відтворення" #~ msgid "Start" #~ msgstr "Запуск" #~ msgid "No track" #~ msgstr "Немає доріжки" #~ msgid "Invalid file extension, file not saved" #~ msgstr "Неправильне розширення файла; файл не збережено" #~ msgid "Choose a file to open" #~ msgstr "Виберіть файл, щоб відкрити" #~ msgid "%(playlist_count)d showing, %(collection_count)d in collection" #~ msgstr "%(playlist_count)d показано, %(collection_count)d в збірці" #~ msgid "Select File Type (By Extension)" #~ msgstr "Вибрати тип файла (за розширенням)" #~ msgid "File Type" #~ msgstr "Тип файла" #~ msgid "Move selected item up" #~ msgstr "Пересунути вибраний елемент вверх" #~ msgid "" #~ "Path is already in your collection, or is a subdirectory of another path " #~ "in your collection" #~ msgstr "Такий каталог вже є у фонотеці, або це підкаталог іншого каталогу" #~ msgid "" #~ "This will permanantly delete the selected tracks from your disk, are you " #~ "sure you wish to continue?" #~ msgstr "" #~ "Ця дія назавжди вилучить виділені доріжки з диска. Ви впевнені, " #~ "продовжити?" #~ msgid "Repeat playlist" #~ msgstr "Повторювати список відтворення" #~ msgid "Clear Playlist" #~ msgstr "Очистити список відтворення" #~ msgid "Randomize the order of the current playlist" #~ msgstr "Випадково перемішати доріжки у чинному списку відтворення" #~ msgid "_Randomize Playlist" #~ msgstr "_Випадковий список відтворення" #~ msgid "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgstr "" #~ "Розташуйте вікно з повідомленням про композицію в бажаному місці" #~ msgid "Display OSD when hovering over tray icon" #~ msgstr "Показувати OSD, коли вказівник наведений на значок в лотку" #~ msgid "Display a progressbar in the OSD" #~ msgstr "Показувати рядок поступу у вікні OSD" #~ msgid "Show OSD on track change" #~ msgstr "Показувати OSD під час зміни композиції" #~ msgid "Install a third party plugin from a file" #~ msgstr "Встановити сторонній модуль з файла" #~ msgid "Playback engine (requires restart): " #~ msgstr "Рушій відтворення (потрібен перезапуск): " #~ msgid "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager" #~ msgstr "" #~ "Mathias Brodala\n" #~ " \n" #~ " Керування перекладами" #~ msgid "Stop Playback" #~ msgstr "Зупини відтворення" #~ msgid "Seeking: " #~ msgstr "Шукати: " #~ msgid "Alarm:" #~ msgstr "Нагадування:" #~ msgid "Fading:" #~ msgstr "Затухання:" #~ msgid "" #~ "Adds support for playing audio CDs.\n" #~ "Requires python-cddb to look up tags." #~ msgstr "" #~ "Додає підтримку для відтворення аудіо CD.\n" #~ "Для пошуку позначок потрібно python-cddb." #~ msgid "Creates an MPRIS D-Bus object to control Exaile" #~ msgstr "Створює об’єкт MPRIS D-Bus для керування Exaile" #~ msgid "A plugin for iPod support" #~ msgstr "Модуль для підтримки iPod" #~ msgid "Pauses/resumes playback on screensaver start/stop" #~ msgstr "" #~ "Призупиняє та відновлює відтворення під час активації та деактивації " #~ "зберігача екрана" #~ msgid "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "Year - Artist\n" #~ "Year - Album\n" #~ "Artist - Year - Album" #~ msgstr "" #~ "Виконавець\n" #~ "Альбом\n" #~ "Жанр - Виконавець\n" #~ "Жанр - Альбом\n" #~ "Рік - Виконавець\n" #~ "Рік - Альбом\n" #~ "Виконавець - Рік - Альбом" #~ msgid "Exaile" #~ msgstr "Exaile" #~ msgid "Location:" #~ msgstr "Розташування:" #~ msgid "Popup" #~ msgstr "Виринаюче вікно" #~ msgid "Resizable" #~ msgstr "Зі змінюваними розмірами" #~ msgid "Search:" #~ msgstr "Пошук:" #~ msgid "Vol:" #~ msgstr "Гучність:" #~ msgid "Alarm Days:" #~ msgstr "Дні нагадування:" #~ msgid "Select a save location" #~ msgstr "Вибрати місце для збереження" #~ msgid "Personal" #~ msgstr "Особисте" #~ msgid "Recommended" #~ msgstr "Рекомендоване" #~ msgid "Neighbourhood" #~ msgstr "Суміжне оточення" #~ msgid "Loved Tracks" #~ msgstr "Улюблені композиції" #~ msgid "Relay Port:" #~ msgstr "Порт ретрансляції:" #~ msgid " songs" #~ msgstr " творів" #~ msgid "Add a directory" #~ msgstr "Додати теку" #~ msgid "Choose a file" #~ msgstr "Виберіть файл" #~ msgid "Part" #~ msgstr "Частина" #~ msgid "Original Album" #~ msgstr "Початковий альбом" #~ msgid "Original Artist" #~ msgstr "Початковий виконавець" #~ msgid "Track Number:" #~ msgstr "Номер доріжки:" #~ msgid "Plugin Manager" #~ msgstr "Менеджер модулів" #~ msgid "by %s" #~ msgstr "виконує %s" #~ msgid "Import" #~ msgstr "Імпорт" #~ msgid "Number of Plays" #~ msgstr "Кількість відтворень" #~ msgid "Bookmark this track" #~ msgstr "Додати трек в закладки" #~ msgid "Clear bookmarks" #~ msgstr "Очистити закладки" #~ msgid "Delete bookmark" #~ msgstr "Видалити закладку" #~ msgid "Only album" #~ msgstr "Тільки альбом" #~ msgid "Use Album Covers As Icons" #~ msgstr "Використовувати обкладинку альбому як іконку" #~ msgid "Summary" #~ msgstr "Підсумок" #~ msgid "Position" #~ msgstr "Розташування" #~ msgid "Only artist" #~ msgstr "Тільки виконавець" #~ msgid "Both artist and album" #~ msgstr "Виконавець і альбом" #~ msgid "Terminal Opacity:" #~ msgstr "Прозорість вікна:" #~ msgid "Center vertically" #~ msgstr "Центрувати вертикально" #~ msgid "Center horizontally" #~ msgstr "Центрувати горизонтально" #~ msgid "Restart Playlist" #~ msgstr "Перезавантажити плейлист" #~ msgid "Alarm Time:" #~ msgstr "Час сигналу:" #~ msgid "Restore Main Window" #~ msgstr "Відновити головне вікно" #~ msgid "$title ($length)" #~ msgstr "$title ($length)" #~ msgid "Alarm Name:" #~ msgstr "Назва будильника:" #~ msgid "MPRIS" #~ msgstr "MPRIS" #~ msgid "Last.fm Dynamic Search" #~ msgstr "Динамічний пошук Last.fm" #~ msgid "" #~ "To sign up for an Amazon AWS account and get \n" #~ "this information visit http://aws.amazon.com/" #~ msgstr "" #~ "Щоб отримати обліковий запис Amazon AWS \n" #~ "та отримати необхідну інформацію, відвідайте \n" #~ "http://aws.amazon.com/" #~ msgid "Secret Key:" #~ msgstr "Секретний ключ:" #~ msgid "Track title format:" #~ msgstr "Формат назви доріжки:" #~ msgid "Display window decorations" #~ msgstr "Відображати оформлення вікна" #~ msgid "Plugin to fetch lyrics from lyricwiki.org" #~ msgstr "Доповнення для отримання слів доріжки із lyrics.wikia.com" #~ msgid "Tag Covers" #~ msgstr "Теги обгортки" #~ msgid "Searches track tags for covers" #~ msgstr "Шукати обгортки альбомів у тегах доріжок" #~ msgid "iPod support" #~ msgstr "Підтримка iPod" #~ msgid "Enable Fading" #~ msgstr "Дозволити згасання" #~ msgid "Available controls" #~ msgstr "Доступні налаштування" #~ msgid "Selected controls" #~ msgstr "Обрані регулювання" #~ msgid "Album Line:" #~ msgstr "Рядок альбому" #~ msgid "Artist Line:" #~ msgstr "Рядок виконавця" #~ msgid "" #~ "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " #~ "replaced by their respective values. The title will be replaced by " #~ "\"Unknown\" if it is empty." #~ msgstr "" #~ "Теги \"%(title)s\", \"%(artist)s\" та \"%(album)s\" будуть замінені на " #~ "відповідні значення. При відсутності назви доріжки вона буде іменована в " #~ "\"Невідомо\"." #~ msgid "" #~ "Show various informations about the track currently playing.\n" #~ "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2" #~ msgstr "" #~ "Відображати інформацію про поточну доріжку.\n" #~ "Залежності: libwebkit >= 1.0.1, python-webkit >= 1.1.2" dist/copy/po/PaxHeaders.26361/nl.po0000644000175000017500000000012412233027260015410 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.073046931 exaile-3.3.2/po/nl.po0000644000000000000000000042505212233027260014360 0ustar00rootroot00000000000000# Dutch translation for exaile # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2012-08-25 06:59+0000\n" "Last-Translator: rob \n" "Language-Team: Dutch \n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-08-28 05:25+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "%d dag, " msgstr[1] "%d dagen, " #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "%d uur, " msgstr[1] "%d uren, " #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "%d minuut, " msgstr[1] "%d minuten, " #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d seconde" msgstr[1] "%d seconden" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "%dd, " #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "%du, " #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "%dm, " #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "%ds" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "%dd " #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "%d:%02d:%02d" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "%d:%02d" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "Nooit" #: ../xl/formatter.py:702 msgid "Today" msgstr "Vandaag" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "Gisteren" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "Kon niet upgraden van 0.2.14" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "Gebruik: exaile [OPTION]... [URI]" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "Voorkeuren" #: ../xl/main.py:421 msgid "Playback Options" msgstr "Afspeelopties" #: ../xl/main.py:423 msgid "Play the next track" msgstr "Het volgende nummer afspelen" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "Het vorige nummer afspelen" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "Afspelen stoppen" #: ../xl/main.py:429 msgid "Play" msgstr "Afspelen" #: ../xl/main.py:431 msgid "Pause" msgstr "Pauze" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "Afspelen pauzeren of hervatten" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "Stoppen met afspelen na dit nummer" #: ../xl/main.py:440 msgid "Collection Options" msgstr "Collectie-opties" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "LOCATIE" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "Nummers vanaf LOCATIE toevoegen aan de collectie" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "Afspeellijstopties" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "Exporteert de huidige afspeellijst naar LOCATIE" #: ../xl/main.py:454 msgid "Track Options" msgstr "Nummeropties" #: ../xl/main.py:456 msgid "Query player" msgstr "Queryspeler" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "FORMAAT" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "Haalt huidige afspeelstatus en nummerinformatie op als FORMAAT" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "LABELS" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" "LABELS om op te halen van het huidige nummer, gebruiken met --format-query" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "Pop-up van het huidige nummer tonen" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "Titel van het huidige nummer weergeven" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "Album van het huidige nummer weergeven" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "Artiest van het huidige nummer weergeven" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "Tijdsduur van het huidige nummer weergeven" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "N" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "Waardering van het huidige nummer instellen op N%" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "Waardering voor het huidige nummer ophalen" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "Afspeelpositie weergeven als tijd" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "Vooruitgang van het huidige nummer weergeven als percentage" #: ../xl/main.py:490 msgid "Volume Options" msgstr "Volume-opties" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "Verhoogt het volume met N%" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "Verlaagt het volume met N%" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "Zet volumedemping aan of uit" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "Volumepercentage van het huidige nummer weergeven" #: ../xl/main.py:507 msgid "Other Options" msgstr "Andere opties" #: ../xl/main.py:509 msgid "Start new instance" msgstr "Start een nieuwe instantie" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "Dit hulpbericht tonen en daarna afsluiten" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "Versienummer toepassing tonen en daarna afsluiten" #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "Geminimaliseerd starten (naar het systeemvak, indien mogelijk)" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "Zichtbaarheid van de GUI wisselen (indien mogelijk)" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "Starten in veilige modus - soms nuttig wanneer u problemen heeft" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" "Importeren van oude data van 0.2.x forceren (overschrijft huidige data)" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "Geen oude data importeren van versie 0.2.x" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" "Laat besturingsopties zoals --play Exaile starten indien nog niet gestart" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "Ontwikkeling/Debug Opties" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "MAP" #: ../xl/main.py:536 msgid "Set data directory" msgstr "Stel de datamap in" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "Data en configuratiemap instellen" #: ../xl/main.py:540 msgid "MODULE" msgstr "MODULE" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "Logresultaten beperken tot MODULE" #: ../xl/main.py:543 msgid "LEVEL" msgstr "NIVEAU" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "Logresultaten beperken tot NIVEAU" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "Debug uitvoer tonen" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "Zet debuggen van xl.event aan. Genereert VEEL uitvoer" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "Thread-naam aan logberichten toeveoegen." #: ../xl/main.py:555 msgid "TYPE" msgstr "TYPE" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "Xl.event debug-resultaten beperken tot TYPE" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "Verminder hoeveelheid uitvoer" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "D-Bus-ondersteuning uitschakelen" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "HAL-ondersteuning uitschakelen" #: ../xl/main.py:580 msgid "Entire Library" msgstr "Hele bibliotheek" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "Willekeurig %d" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "Waardering > %d" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" "Exaile is nog niet klaar met laden. Misschien moet u even wachten op het " "signaal wanneer exaile ge_laden is ?" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "Labels" #: ../xl/covers.py:505 msgid "Local file" msgstr "Lokaal bestand" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "Plug-inarchief is niet in het goede formaat." #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "Een plug-in met de naam \"%s\" is al geïnstalleerd." #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "Plug-inarchief bevat een onveilig pad." #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "U heeft geen locatie opgegeven om de databank van te laden" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "U heeft geen locatie opgegeven om de databank op te slaan" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "Diverse artiesten" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "Onbekend" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr " / " #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "%dk" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" "Vorbis is een open bron, audioformaat (met verlies) met hoge kwaliteit " "uitvoer bij een kleinere bestandsgrootte dan MP3." #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" "Free Lossless Audio Codec (FLAC) is een open bron codec die wel comprimeert " "maar niet de geluidskwaliteit vermindert." #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" "Apple's eigen, niet-vrije audioformaat (met verlies) dat betere " "geluidskwaliteit bereikt bij lagere bitrates dan MP3." #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" "Een niet-vrij, oud, maar populair audioformaat (met verlies). VBR geeft een " "hogere kwaliteit dan CBR, maar kan niet goed werken met sommige spelers." #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" "Een niet-vrij, oud, maar populair audioformaat (met verlies). CBR geeft een " "lagere kwaliteit dan VBR, maar werkt met alle spelers." #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "Een erg snel vrij audioformaat (zonder verlies) met goede compressie." #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "Automatisch" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "Aangepast" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "Auto" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "Niet aan het afspelen" #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" "status: %(status)s, titel: %(title)s, artiest: %(artist)s, album: %(album)s, " "tijd: %(length)s, positie: %(progress)s%% [%(position)s]" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "De instellingenversie is nieuwer dan de huidige." #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "We weten niet hoe we dat soort instelling op moeten slaan: " #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "Een onbekend type instelling werd gevonden!" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "Ongeldige afspeellijsttype." #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "Afspeellijst" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "M3U-afspeellijst" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "PLS-afspeellijst" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "Ongeldig formaat voor %s." #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "Niet ondersteunde versie %(version)s voor %(type)s" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "ASX-afspeellijst" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "XSPF-afspeellijst" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "Willekeurig afspelen _uitschakelen" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "_Nummers in willekeurige volgorde afspelen" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "_Albums in willekeurige volgorde afspelen" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "Herhalen _van" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "_Alles herhalen" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "Eé_n herhalen" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "Dynamisch _uitzetten" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "Dynamisch met soortgelijke _artiesten" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "seconden" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "minuten" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "uren" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "dagen" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "weken" #: ../xl/lyrics.py:305 msgid "Local" msgstr "Lokaal" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "Toevoegen aan wachtrij" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "Huidige afspeellijst vervangen" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "Toevoegen aan huidige afspeellijst" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "Map openen" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" "Deze bestanden kunnen niet verplaatst worden naar de prullenbak. Wilt u ze " "definitief verwijderen van uw schijf?" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "Naar prullenbak verplaatsen" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "Afspelend nummer _tonen" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "Naam:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "Een of meer overeenkomende criteria" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "Resultaten in willekeurige volgorde" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "Beperk tot: " #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr " nummers" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "Niet aan het afspelen" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "Zoeken: %s" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "Verplaatsen" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "Nieuwe markering" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "Gedempt" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "%d%%" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "Maximum volume" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" "$title\n" "van $artist\n" "van $album" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "Diversen" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "%(track_count)d in totaal (%(total_duration)s)" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "%d in collectie" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "%d weergegeven" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "%d geselecteerd" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "Wachtrij" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "Wachtrij (%d)" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "#" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "Tracknummer" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "Titel" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "Artiest" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "Componist" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "Album" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "Tijd" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "Schijf" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "Schijfnummer" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "Waardering" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "Datum" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "Genre" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "Bitrate" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "Locatie" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "Bestandsnaam" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "Aantal keren afgespeeld" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "BPM" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "Laatst afgespeeld" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "Toegevoegd op" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "Planning" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "Commentaar" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "Groepering" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "Herschaalbaar" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "Automatisch inschalen" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "Waardering:" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "Willekeurig afspelen" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "Herhalen" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "Dynamisch" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "Huidig nummer uit afspeellijst verwijderen" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "Afspeellijst randomiseren" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "Selectie in willekeurige volgorde zetten" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "Nieuwe afspeellijst" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "Hernoemen" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "Stoppen met afspelen na dit nummer" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "Doorgaan met afspelen na dit nummer" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "Vereist plug-ins voor dynamische afspeellijsten" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "Soortgelijke nummers dynamisch aan afspeellijst toevoegen." #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "Voer de te openen URL in" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "URL openen" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "Selecteer bestandstype (op extensie)" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "Selecteer media om te openen" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "Ondersteunde bestanden" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "Muziekbestanden" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "Afspeellijstbestanden" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "Alle bestanden" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "Selecteer map om te openen" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "Afspeellijst importeren" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "Huidige afspeellijst exporteren" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "Relatieve paden naar nummers gebruiken" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "Afspeellijst opgeslagen als %s." #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "Sluit %s" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "Wijzigingen aan %s opslaan alvorens te sluiten?" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "De wijzigingen zullen verloren gaan als u ze niet opslaat" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "Sluiten zonder opslaan" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "Ja op alles" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "Nee op alles" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "%(count)s opgeslagen van %(total)s." #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "Er is een fout opgetreden tijdens het kopiëren van %s: %s" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "Bestand bestaat al, %s overschrijven?" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "Afspeellijstnaam:" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "Nieuwe afspeellijst toevoegen…" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "U heeft geen naam ingevoerd voor uw afspeellijst" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "De ingevoerde naam van de afspeellijst wordt al gebruikt!" #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "Tabblad sluiten" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "$title (door $artist)" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "Stoppen na geselecteerde nummer" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "Er is een fout opgetreden tijdens het afspelen!" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "Bufferen: %d%%..." #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "Doorgaan met afspelen" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "Afspelen pauzeren" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "Exporteren afspeellijst mislukt!" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "Afspelen starten" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "Exaile muziekspeler" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "_Nieuwe afspeellijst" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "_Url openen" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "Mappen openen" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "Huidige afspeellijst _exporteren" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "Herstarten" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "_Collectie" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "_Wachtrij" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "Albumh_oezen" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "Afs_peellijstoptiesbalk" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "_Kolommen" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "Afspee_llijst wissen" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "_Apparaatbeheer" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "Collectie opnieuw _laden" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "Nummereigenscha_ppen" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "Annuleren" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "Originele album" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "Tekstschrijver" #: ../xlgui/properties.py:54 msgid "Website" msgstr "Website" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "Albumhoes" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "Originele artiest" #: ../xlgui/properties.py:57 msgid "Author" msgstr "Auteur" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "Originele datum" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "Samensteller" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "Dirigent" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "Uitvoerend artiest" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "Auteursrecht" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "Songteksten" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "Nummer" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "Versie" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "ISRC" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "Gecodeerd door" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "Organisatie" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "Gewijzigd" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "Keren gespeeld" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "Aanmaken labels mislukt" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" "Er konden geen labels aangemaakt worden voor:\n" "{files}" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "Nummer %(current)d van de %(total)d aan het bewerken" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "Wijzigingen toepassen voordat u afsluit?" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "Uw wijzigingen zullen verloren gaan wanneer u deze niet toepast." #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "%s:" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "van:" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "JPEG-afbeelding" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "PNG-afbeelding" #: ../xlgui/properties.py:919 msgid "Image" msgstr "Afbeelding" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "Gekoppelde afbeelding" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "{width}x{height} pixels" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "{format} ({width}x{height} pixels)" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "Selecteer afbeelding om in te stellen als albumhoes" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "Ondersteunde afbeeldingsformaten" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "Huidige waarde op alle nummers toepassen" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "nog {outstanding} albumhoezen op te halen" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "Alle albumhoezen opgehaald" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "Albums en albumhoezen ophalen…" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "Albumhoes tonen" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "Albumhoes ophalen" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "Albumhoes verwijderen" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "Albumhoes voor %s" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "Albumhoesopties voor %(artist)s - %(album)s" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "Laden…" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "Geen albumhoezen gevonden." #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" "Geen van de ingeschakelde bronnen heeft een albumhoes voor dit nummer, " "probeer om meer bronnen in te schakelen." #: ../xlgui/devices.py:76 msgid "Icon" msgstr "Icoon" #: ../xlgui/devices.py:81 msgid "Device" msgstr "Apparaat" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "Stuurprogramma" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "Collectie herladen..." #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "%s herladen..." #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "Wachtrij aan/uitzetten" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "Nummers in de wachtrij zetten" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "Eigenschappen" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "Nieuw station" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "Nieuwe intelligente afspeellijst" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "Bewerken" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "Afspeellijst exporteren" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "Bestanden exporteren" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "Afspeellijst verwijderen" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "Selecteer map om bestanden naar te exporteren" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "" "Weet u zeker dat u de geselecteerde afspeellijst definitief wilt verwijderen?" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "Voer een nieuwe naam in voor de afspeellijst" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "Afspeellijst hernoemen" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "Verwijderen" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "Versleep hiernaartoe om een nieuwe afspeellijst aan te maken" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "Recent gesloten tabbladen" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "Afspeellijst %d" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" "{playlist_name} ({track_count} nummers, {minutes} min geleden afgesloten)" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" "{playlist_name} ({track_count} nummers, {seconds} sec geleden afgesloten)" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "Een map toevoegen" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "Map niet toevoegd." #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" "Map is al opgenomen in uw collectie, of is een submap van een een andere map " "in uw collectie." #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "Overzetten naar %s..." #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "Streams laden..." #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "Radiostation toevoegen" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "URL:" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "Opgeslagen stations" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "Radio-streams" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "Verversen" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "Voer een naam in voor uw nieuwe afspeellijst" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "Genre - Artiest" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "Genre - Album" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "Datum - Artiest" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "Datum - Album" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "Artiest - (Datum - Album)" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "Collectie opnieuw laden" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "Grootte" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s KB" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "en" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "is" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "is niet" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "is ingesteld" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "is niet ingesteld" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "bevat" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "bevat niet" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "regex" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "geen regex" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "minstens" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "hoogstens" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "voor" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "na" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "tussen" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "groter dan" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "kleiner dan" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "in de laatste" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "niet in de laatste" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "Keren afgespeeld" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "Jaar" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "%(first)s, %(second)s en andere" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "%(first)s en %(second)s" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "Intelligente afspeellijsten" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "Aangepaste afspeellijsten" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "Intelligente afspeellijst toevoegen" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "Intelligente afspeellijst bewerken" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "%s exporteren" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "Afspelen" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "Plug-ins" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "Niet gecategoriseerd" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "Kon plug-ininfo niet laden!" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "Missende plug-in: %s" msgstr[1] "Missende plug-ins: %s" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "Kon plug-in niet uitschakelen!" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "Kon plug-in niet inschakelen!" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "Selecteer een plug-in" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "Plug-inarchieven" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "Installatie plug-inbestand mislukt!" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "Albumhoezen" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "Weergave" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "Collectie" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "de" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "Terug naar standaardwaarden" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "Exaile herstarten?" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "Een herstart is vereist voordat deze wijziging effect heeft." #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "Actie" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "Sneltoets" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "Afspeellijsten" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "Over Exaile" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "© 2009-2012" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "Dit programma is vrije software; je kunt het (opnieuw) aanbieden en/of " "veranderen\n" "onder de voorwaarden van de GNU General Public License zoals gepubliceerd\n" "door de Free Software Foundation; òf versie 2 van de licentie, òf (als je " "wilt) iedere latere versie.\n" "\n" "Dit programma wordt aangeboden in de hoop dat het handig is,\n" "maar ZONDER ENIGE GARANTIE; zonder zelfs de garantie om\n" "GEREED TE ZIJN VOOR DE MARKT of GESCHIKTHEID VOOR EEN BEPAALD DOEL. Bekijk\n" "de GNU General Public License voor meer details.\n" "\n" "Je zou een kopie van de GNU General Public License hebben moeten ontvangen\n" "samen met dit programma; zo niet, schrijf dan naar de Free Software " "Foundation, Inc.,\n" "51 Franklin Street, Vijfde verdieping, Boston, MA 02110-1301 USA.\n" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "Onbekende vertaler" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "Albumhoesbeheer" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "Albumhoezen _ophalen" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "In willekeurige volgorde afspelen" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "Afspelen herhalen" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "_Zoeken:" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "Albumhoeszoeker" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "De origine van deze albumhoes" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "In_stellen als albumhoes" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "_Bestand" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "B_ewerken" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "Beel_d" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "E_xtra" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "_Hulp" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "Vorige nummer" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" "Afspelen stoppen\n" "\n" "Rechtsklikken om te stoppen na het huidig nummer." #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "Volgende nummer" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0:00 / 0:00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "Nummereigenschappen" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "Label _toevoegen" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "Label _verwijderen" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "ab → A_b" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "Hoofdletter maken van eerste letter van alle labels." #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "V_orige" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "V_olgende" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "Anders" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "'Bestandspictogram' 32x32 pixels (alleen PNG)" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "Ander bestandspictogram" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "Albumhoes (voorkant)" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "Albumhoes (achterkant)" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "Media (b.v. labelzijde van cd)" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "Hoofdartiest" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "Artiest" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "Band/Orkest" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "Tekstschrijver" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "Opnamelocatie" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "Tijdens opname" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "Tijdens uitvoering" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "Opname film-/videoscherm" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "Een fel gekleurde vis" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "Illustratie" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "Logotype band/artiest" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "Logotype uitgever/studio" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" "Klik hier of versleep bestanden hiernaartoe om de albumhoes te wijzigen" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "Type:" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "Beschrijving:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "Collectiebeheer" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "Geobserveerd" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "Radio" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "Alle nummers toevoegen aan afspeellijst" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "Cd importeren" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "Station toevoegen" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "Bestanden" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "Vorige bezochte map" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "Volgende bezochte map" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "Eén map omhoog" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "Mappenlijst verversen" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "Persoonlijke map" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "Zoeken: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "Zoekveld wissen" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "Collectie is leeg." #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "Muziek toevoegen" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" "Getoonde collectie verversen\n" "(Houdt Shift ingedrukt om de collectie opnieuw te laden)" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "Albumhoezen gebruiken die geïntegreerd zijn in de labels" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "Albumhoezen gebruiken uit lokale bestanden" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" "Deze optie zal naar albumhoesbestanden zoeken in\n" "dezelfde map als het muziekbestand." #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "Gewenste bestandsnamen:" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" "Een door komma's gescheiden lijst met bestandsnamen zonder de " "bestandsextenties" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "Albumhoezen automatisch ophalen bij het starten met afspelen" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "Volgorde albumhoes zoeken:" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "(slepen om opnieuw te ordenen)" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "Open de laatste afspeellijsten bij het opstarten" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "Vragen om aangepaste afspeellijsten op te slaan bij het sluiten" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "Inhoud afspeellijst vervangen door dubbelklikken in paneel" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" "In plaats van toevoegen met rechtermuisklik, zullen nummers toegevoegd door " "dubbelklikken in de panelen de inhoud van de huidige afspeellijst vervangen." #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "Afspelen bij toevoegen/vervangen via menu-item" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" "Wanneer u een menu-item gebruikt om nummers toe te voegen of te vervangen op " "de afspeellijst, start het afspelen dan als er momenteel een nummer wordt " "afgespeeld. Dit was de standaardinstelling op versies voor Exaile 0.3.3" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "Nummers standaard in wachtrij plaatsen in plaats van ze af te spelen" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" "Wanneer u dubbelklikt of op Enter drukt om een nummer in een afspeellijst af " "te spelen, plaats het nummer dan in de wachtrij in plaats van deze af te " "spelen." #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "Afspeel-engine: " #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "Gebruik vervagingsovergangen bij acties van gebruiker" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "Duur vervagen (ms):" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "Gebruik overvloeien (EXPERIMENTEEL)" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "Duur overvloeien (ms):" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "Audiosysteem: " #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "Apparaat: " #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "Aangepaste sink pipeline:" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "Hervat het afspelen bij het opstarten" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "Hervat het afspelen indien gepauzeerd" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" "Afspelen starten wanneer een item aan een lege wachtrij wordt toegevoegd" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "Nummer verwijderen uit wachtrij wanneer nummer wordt afgespeeld" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "Automatisch naar het volgende nummer gaan" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "Normaal" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "Unified (onstabiel)" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "Plug-in" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "Ingeschakeld" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "Geen plugin geselecteerd" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "Geïnstalleerde plug-ins" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "Auteurs:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "Versie:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "Installeren" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "Geen plug-in geselecteerd" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "Beschikbare plug-ins" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "Updates installeren" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "Updates" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "Installeer plug-inbestand" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "Infoschermvenster tonen" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "Het Infoschermvenster bevat de albumhoes en nummerinformatie" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "Albumhoes tonen in infogebied" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "Tabbladbalk altijd tonen" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "Tabbladpositie:" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "Lettertype afspeellijst:" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "Herstellen naar systeemlettertype" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "Afspeelteller weergeven in collectie" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "Alfa-transparantie gebruiken:" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" "Waarschuwing: deze optie kan beeldfouten veroorzaken, indien gebruikt met " "een vensterbeheerder zonder compositie-ondersteuning." #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "Systeemvakpictogram tonen" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "Minimaliseren naar systeemvak" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "Sluiten naar systeemvak" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "Spring naar huidige lied bij nummerwijziging" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "Openingsscherm tonen bij starten" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "Links" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "Rechts" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "Bovenkant" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "Onderkant" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "Voorkeuren" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" "Woorden om weg te laten aan het begin van artiestenlabels bij het sorteren " "(gescheiden door een spatie):" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "Rechtsklik om terug te gaan naar de standaardwaarden" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "Gebruik op bestanden gebaseerde compilatie cd herkenning" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "Apparaatbeheer" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "Apparaat toevoegen" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "Type apparaat:" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "Gedetecteerde apparaten:" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "Aangepast: " #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "Wachtrijbeheer" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "Zoeken naar gemoed..." #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "Gemoed gevonden." #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "Kon gemoedsbalk niet lezen." #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "Gemoedsbalk uitvoerbestand niet beschikbaar." #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "Gemoedsbalk" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "Fout tijdens het uitvoeren van Streamripper" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "Streamripper" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "Last.fm-goede nummers" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "API-sleutel is ongeldig." #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "Controleer of de ingevoerde data juist is." #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "Kon webbrowser niet starten" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" "Kopieer de volgende URL en open deze met uw webbrowser:\n" "{url}" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "Goed" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "Last.fm-goed" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "Bij goede nummers indelen" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "Bij goede nummers weghalen" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "Alarmklok" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "Deze plug-in heeft minimaal PyGTK 2.22 en GTK 2.20 nodig." #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "Hoofdmenu" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "Verbinden met de Shoutcast-server..." #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "Fout tijdens het verbinden met de Shoutcast-server." #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "Voer de zoekwoorden in" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "Shoutcast zoeken" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "Zoekresultaten" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "Zoeken" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "Geen songtekst gevonden." #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "Ga naar: " #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "Elke" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "Songtekstviewer" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "AudioScrobbler" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "Verificatie is gelukt" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "Verificatie is mislukt" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "Audioscrobbling inschakelen" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "Equalizer" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "Afsluiten na het afspelen" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "Afsluitplanning" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "Computer zal afgesloten worden na het afspelen." #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "Geplande afsluiting" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "De computer zal afgesloten worden na %d seconden." #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "Afsluiten mislukt" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "Computer kon niet afgesloten worden door middel van D-Bus." #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "Apparaat-voorbeeld" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "Speler-voorbeeld" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "Voorbeeld" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "Notify-Infoschermvenster notificaties" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "%(title)s" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "door %(artist)s" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "van %(album)s" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "IPython Console - Exaile" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "Toon IPython Console" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "IPython-console" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "Notificatie" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" "door %(artist)s\n" "van %(album)s" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "Cd importeren..." #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "Audio-cd" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "CD" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "Tracknummer" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "Schijfnummer" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "Aantal keren afgespeeld" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "Artiest: " #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" "Wist u dat…\n" "\n" "%s" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "Wikipedia" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "Laat Wikipedia-pagina van de huidige uitvoerder zien." #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "Segment herhalen" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "Begin herhalen" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "Einde herhalen" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "Mini-modus" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "$tracknumber - $title" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "$title door $artist" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "$title ($__length)" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "Vorige" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "Naar het vorige nummer gaan" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "Vorige nummer" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "Volgende" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "Naar het volgende nummer gaan" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "Volgende nummer" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "Afspelen/pauzeren" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "Afspelen starten, pauzeren of hervatten" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "Afspelen starten" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "Doorgaan met afspelen" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "Afspelen pauzeren" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "Stoppen" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "Afspelen stoppen" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "Doorgaan met afspelen na huidig nummer" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "Volume" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "Volume wijzigen" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "Herstellen" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "Hoofdvenster herstellen" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "Hoofdvenster herstellen" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "Waardering van het huidige nummer selecteren" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "Nummerkeuze" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "Simpele nummerlijstkeuze" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "Knop afspeellijst" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "Toegang tot de huidige afspeellijst" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "$title ($current_time / $total_time)" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "Voortgangsknop" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "Voortgang van het afspelen en toegang tot de huidige afspeellijst" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "Voortgangsbalk" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "Voortgang afspelen en zoeken" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "Groepslabelaar" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "Alle labels uit collectie halen" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "Nummers tonen met alle labels" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "Nummers tonen met labels (aangepast)" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "Nummers tonen met geselecteerde" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "Nummers tonen met label \"%s\"" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "Nummers tonen met alle geselecteerde" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "Groep" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "Nieuwe groep toevoegen" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "Groep verwijderen" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "Nieuwe categorie toevoegen" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "Categorie verwijderen" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "Nummers tonen met het geselecteerde (aangepast)" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "Nieuwe labelwaarde?" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "Nieuwe labelwaarde invoeren" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "Nieuwe categorie?" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "Voer naam voor nieuwe categorie in" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "Groep toevoegen" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "Geselecteerde aan keuzes toevoegen" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "Nummers tonen met groepen" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "Moet dit label hebben [EN]" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "Mag dit label hebben [OF]" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "Moet dit label niet hebben [NIET]" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "Genegeerd" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "Geselecteerde nummers" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "ReplayGain" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "Versleep naar om te selecteren" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "Toevoegen en afspelen" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "Toevoegen" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "Geschiedenis" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "Afspeelgeschiedenis" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "Opgeslagen geschiedenis wissen?" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "Geschiedenis opslaan" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "Geschiedenis wissen" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "Gereed" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "Jamendo catalogus zoeken..." #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "Ophalen nummerinformatie..." #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "Infoschermvenster" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" "$title\n" "door $artist\n" "van $album" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" "$title\n" "door $artist\n" "van $album" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "Amazon-albumhoezen" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "Podcasts" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "Podcast" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "Podcast verversen" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "Verwijderen" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "Voer de URL van de toe te voegen podcast in" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "Open podcast" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "%s laden..." #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "Fout tijdens het laden van de podcast." #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "Podcasts laden..." #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "Kon de podcast niet opslaan" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "Desktopalbumhoes" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "Multi-alarmklok" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "Context" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "Contextinfo" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "Dit nummer toevoegen aan de bladwijzers" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "Bladwijzer verwijderen" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "Bladwijzers wissen" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "Bladwijzers" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "Pauzeren bij schermbeveiliging" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "DAAP-server" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "BPM-teller" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "BPM instellen van %d naar %s?" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "DAAP-client" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "Handmatig..." #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "Voer IP-adres en poort in voor delen" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "Voer IP-adres en poort in." #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" "Deze server geeft geen ondersteuning voor meerdere verbindingen.\n" "Stop het afspelen voordat u nummers gaat downloaden." #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "Serverlijst verversen" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "Verbinding met server verbreken" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "Selecteer een locatie voor opslaan" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "Verbinden met DAAP..." #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "Verdonker de gespeelde sectie in plaats van een cursor te gebruiken" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "Donkerheidsniveau:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "Gebruik golfvorm-stijl" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "Geef enkel golfvorm weer, geen gemoed" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "Gebruik kleurenthema " #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "Basiskleur:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "Basiskleur" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "Locatie opslaan:" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "Poort verleggen:" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "Rippen naar één enkel bestand" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "Incomplete bestanden verwijderen" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "API-sleutel:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "Geheim:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "Toegangstoestemming vragen" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" "Ga naar de website Your API " "Account om een API-sleutelgeheim te verkrijgen en " "voer ze hier in. Nadat u deze heeft ingevoerd, kies dan " "Toegangstoestemming vragen om de instelling te voltooien." #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "Alarmtijd" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "Maandag" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "Dinsdag" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "Woensdag" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "Donderdag" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "Vrijdag" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "Zaterdag" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "Zondag" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "Alarmdagen" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "Fading gebruiken" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "Minimum volume:" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "Maximum volume:" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "Verhogen" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "Tijd per verhoging:" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "Weergave-overlapping:" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "Albumhoezen tonen" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "Ronde weergave" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "Tekstpercentage" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "Geen" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "Lettertype songteksten:" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "Songteksten verversen" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "Nummers toevoegen met Audioscrobbler" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "Menu-item tonen om Submission aan/uit te zetten" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "Wachtwoord:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "Gebruikersnaam:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "Aanmeldgegevens controleren" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "voorkeuze" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "+12 dB" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "0" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "-24 dB" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "29" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "59" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "119" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "237" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "474" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "947" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "1.9K" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "3.8K" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "7.5K" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "15K" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "Als het nummer verandert" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "Als het afspelen gestart, gepauzeerd of gestopt wordt" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "Bij wijzigen label" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "Wanneer u met de muis op het systeemvakpictogram staat" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "Als het hoofdvenster is gefocust" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "Weergeven" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "Gebruik albumhoezen als iconen" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "Gebruik media-iconen voor pauzeren, stoppen en hervatten" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "Iconen" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "Artiestregel:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" "De labels \"%(title)s\", \"%(artist)s\" en \"%(album)s\" zullen worden " "vervangen door hun respectievelijke waarden. De titel zal worden vervangen " "door \"Onbekend\" als hij leeg is." #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "Samenvatting:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "Albumregel:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "Inhoud" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "Linux" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "Doorzichtigheid terminal:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "Lettertype:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "Tekstkleur:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "Achtergrondkleur:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "IPython-kleurthema:" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "Weergegeven albumhoezen herschalen" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "Alleen artiest:" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "Alleen album:" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" "Tekst die zal worden weergegeven in de notificatie. De labels \"%(title)s" "\", \"%(artist)s\" en \"%(album)s\" zullen worden vervangen door hun " "respectievelijke waarden. Als een label niet bekend is, zal hij worden " "vervangen door \"Onbekend\"." #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "Zowel artiest als album:" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "Broodtekst" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "Ogg Vorbis" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "FLAC" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "AAC" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "MP3 (VBR)" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "MP3 (CBR)" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "WavPack" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "Importformaat: " #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "Importkwaliteit: " #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "Importpad: " #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" "Elk label kan gebruikt worden met$tag of ${tag}. Interne " "labels zoals $__length dienen te worden aangegeven met twee " "onderstreepjes aan het begin." #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "Landcode van de gewenste Wikipedia-taalversie (nl, en, de, fr, ...)" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "Taal:" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "Startpagina" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "Vorige" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "Volgende" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" "De volgorde van de besturing kan gewijzigd worden door deze omhoog of omlaag " "te slepen. (Of door op Alt+Up/Down te drukken.)" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "Besturing" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "Nummertitelformaat" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "Altijd op voorgrond" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "Tonen in takenlijst" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "Vensterdecoraties tonen:" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "Op alle bureaubladen tonen" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "Knop tonen in hoofdvenster" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "Volledig" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "Eenvoudig" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "Lettertype groepen/categorieën:" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "Per-album correctie prefereren" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" "ReplayGain's per-album correctie prefereren boven de per-nummer correctie." #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "Gebruik clipping bescherming" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "Bescherm tegen ruis, ontstaan door overversterking" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "Extra versterking op alle bestanden toepassen" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "Extra versterking (dB):" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" "Terugvalcorrectie voor bestanden die geen ReplayGain-informatie bevatten" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "Terugvalcorrectieniveau (dB):" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "Geschiedenis bewaren nadat de speler is afgesloten" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "Lengte geschiedenis:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "Sorteren op:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "Volgorde:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "Resultaten:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "Geavanceerd" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "Aflopend" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "Oplopend" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "Uitgiftedatum" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "Waardering deze week" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "Waardering deze maand" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "Aantal keren toegevoegd aan afspeellijst" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "Aantal downloads" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "Aantal keren beluisterd" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "Met ster" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "Datum van waardering" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "Genre/labels" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" "Elk label kan gebruikt worden met $tag of ${tag}. Interne " "labels zoals de $__length dienen ingeleid te worden door twee " "onderstreepjes.\n" "Pango Text Attribute Markup wordt ondersteund." #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "Weergaveformaat" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "Weergaveduur:" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "Achtergrond:" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "Voortgangsbalk tonen" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "Ronding van rand:" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" "Voor registratie voor een Amazon AWS-account \n" "en deze informatie, gaat u naar http://" "aws.amazon.com/" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "Podcast toevoegen" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "Anker:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "Verplaatsing X:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "pixels" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "Verplaatsing Y:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "Grootte albumhoes negeren" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "Grootte:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "Overvloeien gebruiken" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "Duur vervagen:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "ms" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "Linksboven" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "Rechtsboven" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "Linksonder" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "Rechtsonder" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "Toevoegen" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "Alarmen" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "Volumeverhoging inschakelen" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "Startvolume verhoging:" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "Eindvolume verhoging:" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "Verhogingstoename:" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "Verhogingstijd (s):" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "Afspeellijst herstarten" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "Afspelen" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "Voer uw Last.fm authenticatie in:" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "Lid worden van Last.fm" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" "Gebruik albumhoezen in het bladwijzermenu (wordt toegepast na herstart)" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "Afspelen hervatten wanneer schermbeveiliging beëindigd wordt" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "Servernaam:" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "Host-server:" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "Poort:" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "Server ingeschakeld" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "ipv6-servers tonen (experimenteel)" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "Recente DAAP-servers onthouden" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "Huidige nummer" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" "Laat de afspeelstatus zien in Pidgin. Controleer de Pidgin-FAQ voor de " "ondersteunde opties." #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "Notificaties" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" "Vervangt de standaard vooruitgangsbalk met een gemoedsbalk.\n" "Vereisten: moodbar" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "GUI" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "GNOME-Multimediatoetsen" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" "Voegt ondersteuning toe voor het besturen van Exaile via het GNOME-" "multimediatoetsensysteem. Compatibel met GNOME >= 2.20.x" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "Sneltoetsen" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" "Maakt het mogelijk om streams op te slaan met streamripper.\n" "Vereisten: streamripper" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "Uitvoer" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "MusicBrainz-albumhoezen" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "Zoekt bij MusicBrainz naar albumhoezen" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" "Kan nummers als goed indelen en toont de nummers die als goed ingedeeld " "zijn.\n" "\n" "Voer een geldige API-sleutel en geheime sleutel in in de plug-" "invoorkeuren.\n" "\n" "Vereist de plug-in \"AudioScrobbler\" voor gebruikersnaam en wachtwoord." #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "Labelen" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "Speel muziek af op een specifiek moment.\n" "\n" "Merk op dat als dat moment aanbreekt, Exaile net zal doen alsof u op de " "Afspelen-knop heeft gedrukt, dus zorg ervoor dat de muziek die u wilt horen " "in uw afspeellijst staat" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "Hulpmiddel" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "Hoofdmenuknop" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" "Verplaatst het hoofdmenu naar een knop boven de panelen.\n" "Vereisten: PyGTK >= 2.22, GTK >= 2.20" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "Last.fm-albumhoezen" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "Zoekt albumhoezen op Last.fm" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "Stelt de albumhoes en enige menu-items in bij AWN voor Exaile" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "Shoutcast Radio" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "Shoutcast Radio lijst" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "Mediabronnen" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "Ex Falso-labeleditor" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" "Integreert de Ex Falso-labeleditor in Exaile.\n" "Vereisten: Ex Falso." #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" "Voegt een zijtabblad toe met de songtekst voor het momenteel spelende nummer." #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" "Stuurt luisterinformatie naar Last.fm en soortgelijke services die " "AudioScrobbler ondersteunen" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "XKeys" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "Globale sneltoetsen die gebruikmaken van xlib (mmkeys.so)" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "Multimediatoetsen voor Windows" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" "Voegt ondersteuning toe voor multimediatoetsen (aanwezig op de meeste nieuwe " "toetsenborden), wanneer u Exaile gebruikt in Microsoft Windows.\n" "\n" "Vereist: pyHook " #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "Een 10-band equalizer" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "Effect" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "Lyrics Fly" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "Plug-in om songteksten op te halen van lyricsfly.com" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "Pauzestand niet toestaan" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" "Voorkomt dat de gebruikerssessie wordt gestopt terwijl er nog muziek wordt " "afgespeeld" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "Librivox" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "Zoek en luister naar audioboeken van Librivox.org." #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "Laat toe dat computer na het afspelen afgesloten wordt." #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "USB-massa-opslag mediaspelerondersteuning" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" "Ondersteuning om toegang te verkrijgen tot draagbare mediaspelers die het " "USB-massa-opslagprotocol gebruiken" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "Apparaten" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" "Geeft de mogelijkheid om audio op een tweede apparaat af te spelen (klik met " "rechts op afspeellijst en selecteer 'Voorbeeld'). Handig voor DJ's." #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "Last.fm dynamische afspeellijsten" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "De Last.fm backend voor dynamische afspeellijsten" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "Dynamische afspeellijsten" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" "Deze plug-in geeft notificatieberichten weer wanneer een nummer gespeeld/" "gestopt/hervat wordt, met ofwel de albumhoes van het nummer, ofwel een media-" "icoon om de laatste actie aan te duiden.\n" "\n" "Vereisten: python-notify\n" "Aanbevolen: notify-osd" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" "Voorziet een IPython console die gebruikt kan worden om Exaile te " "manipuleren." #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "Ontwikkeling" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "Geeft een notificatie wanneer het afspelen van een nummer begint" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "CD afspelen" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" "Voegt ondersteuning toe voor het afspelen van audio-cd's.\n" "\n" "Vereist HAL om cd's automatisch te detecteren\n" "Vereist cddb-py (http://cddb-py.sourceforge.net/) om labels op te kunnen " "zoeken." #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" "Geeft Wikipedia-informatie over de huidige artiest.\n" "Vereist: python-webkit" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "Informatie" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "A-B herhalen" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "Segment van nummer voortdurend herhalen." #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "Compacte modus voor Exaile met een configureerbare interface" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "Groepslabelaar" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" "Categoriseert uw muziek door het beheren van de groeps-/categorielabels in " "audiobestanden" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "Schakelt ReplayGain-ondersteuning in" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "Versleep-systeemvakpictogram" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" "Voorziet een alternatief systeemvakpictogram dat versleepte bestanden " "accepteert.\n" "\n" "Vereisten: python-eggtrayicon" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" "Implementeert de MPRIS (org.freedesktop.MediaPlayer) DBus-interface om " "Exaile te kunnen bedienen." #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "Jamendo" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "Schakelt toegang in tot de Jamendo muziekcatalogus." #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "Toont een pop-upvenster met informatie van het huidige nummer." #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "iPod-ondersteuning" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" "Een plug-in voor iPod-ondersteuning. Op het moment alleen lezen mogelijk, " "geen overdracht.\n" "\n" "Vereist python-gpod." #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" "Zoekt bij Amazon naar albumhoezen\n" "\n" "Om deze plug-in te kunnen gebruiken is een AWS API-sleutel en een geheime " "sleutel nodig." #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "Karaoke" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "Stem verwijderen uit audio" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "Voegt simpele podcast-ondersteuning toe" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "Toont huidige albumhoes op het bureaublad" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "Hallo Wereld" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "Een simpele plug-in om het plug-insysteem te testen" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "Speel muziek af op gespecificeerde momenten en dagen.\n" "\n" "Merk op dat als dat moment aanbreekt, Exaile net zal doen alsof u op de " "Afspelen-knop heeft gedrukt, dus zorg ervoor dat de muziek die u wilt horen " "in uw afspeellijst staat" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "Contextuele informatie" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" "Toont diverse informatie over het nummer dat nu aan het spelen is.\n" "Vereisten: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (ook " "bekend als PIL)" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" "Staat opslaan/verdergaan van bladwijzer-posities in audiobestanden toe." #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" "Pauzeert (en optioneel hervat) het afspelen gebaseerd op de status van de " "schermbeveiliging.\n" "\n" "Vereist: GNOME Screensaver of KDE Screensaver (ondersteunt geen XScreenSaver " "en XLockMore)" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "Lyrics Wiki" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" "Plug-in om songteksten op te halen vanaf lyrics.wikia.com\n" "Vereisten: python-beautifulsoup" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" "Deze plug-in integreert spydaap (http://launchpad.net/spydaap) in Exaile " "zodat een collectie gedeeld kan worden via DAAP." #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "Maakt afspelen van DAAP muziekdelingen mogelijk." #~ msgid "Clear" #~ msgstr "Wissen" #~ msgid "Close" #~ msgstr "Afsluiten" #~ msgid "Close tab" #~ msgstr "Tabblad sluiten" #~ msgid "Export as..." #~ msgstr "Exporteren als..." #~ msgid "%d KB" #~ msgstr "%d KB" #~ msgid "© 2009-2010" #~ msgstr "© 2009-2010" #~ msgid "GNOME" #~ msgstr "GNOME" #~ msgid "ALSA" #~ msgstr "ALSA" #~ msgid "OSS" #~ msgstr "OSS" #~ msgid "PulseAudio" #~ msgstr "PulseAudio" #~ msgid "JACK" #~ msgstr "JACK" #~ msgid "AWN" #~ msgstr "AWN" #~ msgid "API Key:" #~ msgstr "API-sleutel:" #~ msgctxt "yes" #~ msgid "Monday" #~ msgstr "Maandag" #~ msgctxt "yes" #~ msgid "Tuesday" #~ msgstr "Dinsdag" #~ msgctxt "yes" #~ msgid "Wednesday" #~ msgstr "Woensdag" #~ msgctxt "yes" #~ msgid "Thursday" #~ msgstr "Donderdag" #~ msgctxt "yes" #~ msgid "Friday" #~ msgstr "Vrijdag" #~ msgctxt "yes" #~ msgid "Saturday" #~ msgstr "Zaterdag" #~ msgctxt "yes" #~ msgid "Sunday" #~ msgstr "Zondag" #~ msgctxt "yes" #~ msgid "Use Fading" #~ msgstr "Fading gebruiken" #~ msgctxt "yes" #~ msgid "Minimum volume:" #~ msgstr "Minimum volume:" #~ msgctxt "yes" #~ msgid "Maximum volume:" #~ msgstr "Maximum volume:" #~ msgctxt "yes" #~ msgid "Increment:" #~ msgstr "Verhoging:" #~ msgctxt "yes" #~ msgid "Time per increment:" #~ msgstr "Tijd per verhoging:" #~ msgid "Secret key:" #~ msgstr "Geheime sleutel:" #~ msgid "Awn" #~ msgstr "Awn" #~ msgid "Number of Plays" #~ msgstr "Aantal keer afgespeeld" #~ msgid "Add to Playlist" #~ msgstr "Toevoegen aan Afspeellijst" #~ msgid "Choose a file" #~ msgstr "Bestand kiezen" #~ msgid "Add Playlist" #~ msgstr "Afspeellijst Toevoegen" #~ msgid "_Close" #~ msgstr "_Sluiten" #~ msgid "" #~ "Exaile now uses absolute URI's, please delete/rename your %s directory" #~ msgstr "" #~ "Exaile gebruik nu absolute URI's, verwijder of hernoem a.u.b. je %s map." #~ msgid "Increases the volume by VOL%" #~ msgstr "Verhoogt het volume met VOL%" #~ msgid "Decreases the volume by VOL%" #~ msgstr "Verlaagt het volume met VOL%" #~ msgid "Set rating for current song" #~ msgstr "Stel de waardering van het huidige nummer in" #~ msgid "Get rating for current song" #~ msgstr "Haal de waardering voor het huidige nummer op" #~ msgid "order must be a list or tuple" #~ msgstr "volgorde moet een lijst of tuple zijn" #~ msgid "Streaming..." #~ msgstr "Streamen..." #~ msgid "Buffering: 100%..." #~ msgstr "Bufferen: 100%..." #~ msgid "Stopped" #~ msgstr "Gestopt" #~ msgid "Toggle: Stop after selected track" #~ msgstr "Aan/uit: Na geselecteerd nummer stoppen" #~ msgid "%(title)s (by %(artist)s)" #~ msgstr "%(title)s (door %(artist)s)" #~ msgid "by %s" #~ msgstr "door %s" #~ msgid "_Rename Playlist" #~ msgstr "Afspeellijst _hernoemen" #~ msgid "from %s" #~ msgstr "van %s" #~ msgid "_Save As Custom Playlist" #~ msgstr "_Opslaan als aangepaste afspeellijst" #~ msgid "Open" #~ msgstr "Openen" #~ msgid "Export" #~ msgstr "Exporteren" #~ msgid "Start" #~ msgstr "Starten" #~ msgid "%d covers to fetch" #~ msgstr "%d albumhoezen om op te halen" #~ msgid "%(minutes)d:%(seconds)02d" #~ msgstr "%(minutes)d:%(seconds)02d" #~ msgid "No covers found" #~ msgstr "Geen albumhoezen gevonden" #~ msgid "Invalid file extension, file not saved" #~ msgstr "Ongeldige bestandsextensie, bestand niet opgeslagen" #~ msgid "Enter the search text" #~ msgstr "Voer de zoektekst in" #~ msgid "Choose a file to open" #~ msgstr "Selecteer een bestand om te openen" #~ msgid "Select File Type (By Extension)" #~ msgstr "Selecteer bestandstype (op extensie)" #~ msgid "File Type" #~ msgstr "Bestandstype" #~ msgid "Extension" #~ msgstr "Extensie" #~ msgid "0:00" #~ msgstr "0:00" #~ msgid " songs" #~ msgstr " nummers" #~ msgid "© 2009" #~ msgstr "© 2009" #~ msgid "Add device" #~ msgstr "Apparaat toevoegen" #~ msgid "..." #~ msgstr "..." #~ msgid "New Search" #~ msgstr "Nieuwe zoekopdracht" #~ msgid "" #~ "Left\n" #~ "Right\n" #~ "Top\n" #~ "Bottom" #~ msgstr "" #~ "Links\n" #~ "Rechts\n" #~ "Boven\n" #~ "Onder" #~ msgid "Opacity Level:" #~ msgstr "Doorzichtigheidsniveau:" #~ msgid "Window Height:" #~ msgstr "Vensterhoogte:" #~ msgid "Window Width:" #~ msgstr "Vensterbreedte:" #~ msgid "Text Font:" #~ msgstr "Tekstlettertype:" #~ msgid "Text Color" #~ msgstr "Tekstkleur" #~ msgid "Remove All" #~ msgstr "Alles verwijderen" #~ msgid "" #~ "Automatic\n" #~ "GNOME\n" #~ "ALSA\n" #~ "OSS\n" #~ "PulseAudio\n" #~ "JACK" #~ msgstr "" #~ "Automatisch\n" #~ "GNOME\n" #~ "ALSA\n" #~ "OSS\n" #~ "PulseAudio\n" #~ "JACK" #~ msgid " - " #~ msgstr " - " #~ msgid " + " #~ msgstr " + " #~ msgid "Page 1" #~ msgstr "Pagina 1" #~ msgid "Vol:" #~ msgstr "Vol:" #~ msgid "Resizable" #~ msgstr "Herschaalbaar" #~ msgid "Stop Playback" #~ msgstr "Afspelen stoppen" #~ msgid " New song, fetching cover." #~ msgstr " Nieuw nummer, albumhoes aan het ophalen." #~ msgid "General" #~ msgstr "Algemeen" #~ msgid "Neighbourhood" #~ msgstr "Buurt" #~ msgid "Personal" #~ msgstr "Persoonlijk" #~ msgid "Recommended" #~ msgstr "Aanbevolen" #~ msgid "Loved Tracks" #~ msgstr "Geliefde Tracks" #~ msgid "LastFM Radio" #~ msgstr "LastFM Radio" #~ msgid "" #~ "Normal\n" #~ "Unified (unstable)" #~ msgstr "" #~ "Normaal\n" #~ "Verenigd (onstabiel)" #~ msgid "Autosize" #~ msgstr "Automatische grootte" #~ msgid " & " #~ msgstr " & " #~ msgid "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "Year - Artist\n" #~ "Year - Album\n" #~ "Artist - Year - Album" #~ msgstr "" #~ "Artiest\n" #~ "Album\n" #~ "Genre - Artiest\n" #~ "Genre - Album\n" #~ "Jaar - Artiest\n" #~ "Jaar - Album\n" #~ "Artiest - Jaar - Album" #~ msgid "Alarm:" #~ msgstr "Alarm:" #~ msgid "Alarm Days:" #~ msgstr "Alarmdagen:" #~ msgid "Streamripper can only record streams." #~ msgstr "Streamripper kan alleen streams opnemen." #~ msgid "Alarm Name:" #~ msgstr "Alarmnaam:" #~ msgid "Alarm Time:" #~ msgstr "Alarmtijd:" #~ msgid "Restart Playlist" #~ msgstr "Afspeellijst herstarten" #~ msgid "Minimum Volume:" #~ msgstr "Minimumvolume:" #~ msgid "Name - Time" #~ msgstr "Naam - Tijd" #~ msgid "Time per Increment:" #~ msgstr "Tijd per verhoging:" #~ msgid "Maximum Volume:" #~ msgstr "Maximumvolume:" #~ msgid "Timer per Increment:" #~ msgstr "Tijd per verhoging" #~ msgid "Album Line:" #~ msgstr "Albumregel:" #~ msgid "Use Album Covers As Icons" #~ msgstr "Gebruik albumhoezen als iconen" #~ msgid "Artist Line:" #~ msgstr "Artiestregel:" #~ msgid "On Track Change" #~ msgstr "Als het nummer verandert" #~ msgid "Save Location:" #~ msgstr "Opslaglocatie:" #~ msgid "Vertical:" #~ msgstr "Verticaal:" #~ msgid "Quit" #~ msgstr "Afsluiten" #~ msgid "Fading:" #~ msgstr "Fading:" #~ msgid "Plugin Manager" #~ msgstr "Plugin Beheerder" #~ msgid "Summary" #~ msgstr "Overzicht" #~ msgid "Horizontal:" #~ msgstr "Horizontaal:" #~ msgid "Center vertically" #~ msgstr "Verticaal centreren" #~ msgid "Position" #~ msgstr "Positie" #~ msgid "Center horizontally" #~ msgstr "Horizontaal centreren" #~ msgid "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager" #~ msgstr "" #~ "Mathias Brodala\n" #~ " \n" #~ " Vertalingsmanager" #~ msgid "Exaile" #~ msgstr "Exaile" #~ msgid "Location:" #~ msgstr "Locatie:" #~ msgid "Search:" #~ msgstr "Zoeken:" #~ msgid "Save As..." #~ msgstr "Opslaan als..." #~ msgid "No track" #~ msgstr "Geen nummer" #~ msgid "_Save As..." #~ msgstr "_Opslaan als…" #~ msgid "Delete track" #~ msgstr "Nummer verwijderen" #~ msgid "Idle." #~ msgstr "Inactief." #~ msgid "%(year)d-%(month)02d-%(day)02d" #~ msgstr "%(day)02d-%(month)02d-%(year)d" #~ msgid "Add item" #~ msgstr "Item toevoegen" #~ msgid "Move selected item up" #~ msgstr "Geselecteerde item omhoog verplaatsen" #~ msgid "Move selected item down" #~ msgstr "Geselecteerde item omlaag verplaatsen" #~ msgid "Remove item" #~ msgstr "Item verwijderen" #~ msgid "Basic" #~ msgstr "Eenvoudig" #~ msgid "Date:" #~ msgstr "Datum:" #~ msgid "Bitrate:" #~ msgstr "Bitrate:" #~ msgid "Album:" #~ msgstr "Album:" #~ msgid "Artist:" #~ msgstr "Artiest:" #~ msgid "Title:" #~ msgstr "Titel:" #~ msgid "File Size:" #~ msgstr "Bestandsgrootte:" #~ msgid "Details" #~ msgstr "Details" #~ msgid "Genre:" #~ msgstr "Genre:" #~ msgid "Track _properties" #~ msgstr "Nummereigenscha_ppen" #~ msgid "Seeking: " #~ msgstr "Zoeken: " #~ msgid "$title ($length)" #~ msgstr "$title ($length)" #~ msgid "" #~ "To sign up for an Amazon AWS account and get \n" #~ "this information visit http://aws.amazon.com/" #~ msgstr "" #~ "Bezoek http://aws.amazon.com/ om deze informatie \n" #~ "te verkrijgen en een Amazon AWS account te registreren" #~ msgid "Only artist" #~ msgstr "Alleen artiest" #~ msgid "Only album" #~ msgstr "Alleen album" #~ msgid "Last.fm Dynamic Search" #~ msgstr "Last.fm Dynamisch Zoeken" #~ msgid "iPod support" #~ msgstr "Ondersteuning voor iPod" #~ msgid "Filter event debug output" #~ msgstr "Filter gebeurtenis debug uitvoer" #~ msgid "Device class does not support transfer." #~ msgstr "Apparaatklasse ondersteunt geen dataverkeer." #~ msgid "_Randomize Playlist" #~ msgstr "Afspeellijst in willekeu_rige volgorde" #~ msgid "Creates an MPRIS D-Bus object to control Exaile" #~ msgstr "Creëert een MPRIS D-Bus object om Exaile te besturen" #~ msgid "MPRIS" #~ msgstr "MPRIS" #~ msgid "Part" #~ msgstr "Deel" #~ msgid "Date Added" #~ msgstr "Toegevoegd op" #~ msgid "Encoded By" #~ msgstr "Gecodeerd door" #~ msgid "Last Played" #~ msgstr "Laatst afgespeeld" #~ msgid "C_lear All Tracks" #~ msgstr "Alle nummers _wissen" #~ msgid "Searches track tags for covers" #~ msgstr "Zoekt nummerlabels voor albumhoezen" #~ msgid "Tag Covers" #~ msgstr "Albumhoezen labelen" #~ msgid "New playlist title:" #~ msgstr "Titel van de nieuwe afspeellijst:" #~ msgid "Custom playlist name:" #~ msgstr "Naam aangepaste afspeellijst:" #~ msgid "New custom playlist name:" #~ msgstr "Nieuwe naam aangepaste afspeellijst:" #~ msgid "_Export current playlist" #~ msgstr "Huidige afspeellijst _exporteren" #~ msgid "Randomize the order of the current playlist" #~ msgstr "Volgorde van de huidige afspeellijst willekeurig maken" #~ msgid "_Go to Playing Track" #~ msgstr "Naar spelend nummer _gaan" #~ msgid "Pauses/resumes playback on screensaver start/stop" #~ msgstr "" #~ "Pauzeer/hervat afspelen als de schermbeveiliging geactiveerd/gestopt wordt" #~ msgid "On Playback Start, Pause or Stop" #~ msgstr "Als het afspelen gestart, gepauzeerd of gestopt wordt" #~ msgid "In pause: %s" #~ msgstr "Gepauzeerd: %s" #~ msgid "_Save Changes To Playlist" #~ msgstr "Wijzigingen aan afspeellijst _opslaan" #~ msgid "Restore Main Window" #~ msgstr "Hoofdvenster herstellen" #~ msgid "Enable Fading" #~ msgstr "Fading inschakelen" #~ msgid "Dynamically add similar tracks" #~ msgstr "Soortgelijke nummers dynamisch toevoegen." #~ msgid "Select a save location" #~ msgstr "Selecteer een veilige locatie" #~ msgid "Display window decorations" #~ msgstr "Vensterdecoraties tonen" #~ msgid "Import" #~ msgstr "Importeren" #~ msgid "Bookmark this track" #~ msgstr "Dit nummer toevoegen aan de bladwijzers" #~ msgid "Clear bookmarks" #~ msgstr "Bladwijzers wissen" #~ msgid "Delete bookmark" #~ msgstr "Bladwijzer verwijderen" #~ msgid "Show a popup of the currently playing track" #~ msgstr "Pop-up van het huidige nummer tonen" #~ msgid "Show Menuitem to toggle Submission" #~ msgstr "Menu-item tonen om Submission aan/uit te zetten" #~ msgid "Start/Pause Playback" #~ msgstr "Afspelen starten/pauzeren" #~ msgid "Clear Playlist" #~ msgstr "Afspeellijst wissen" #~ msgid "Add to custom playlist" #~ msgstr "Aan aangepaste afspeellijst toevoegen" #~ msgid "Add a directory" #~ msgstr "Een map toevoegen" #~ msgid "Add To New Playlist..." #~ msgstr "Aan nieuwe afspeellijst toevoegen..." #~ msgid "_Close Playlist" #~ msgstr "Afspeellijst _sluiten" #~ msgid "Export current playlist..." #~ msgstr "Huidige afspeellijst exporteren..." #~ msgid "Remove current track from playlist" #~ msgstr "Huidig nummer uit de afspeellijst verwijderen" #~ msgid "Repeat playlist" #~ msgstr "Afspeellijst herhalen" #~ msgid "%(playlist_count)d showing, %(collection_count)d in collection" #~ msgstr "%(playlist_count)d zichtbaar, %(collection_count)d in collectie" #~ msgid "Plugin archive contains an unsafe path" #~ msgstr "Plug-inarchief bevat een onveilig pad" #~ msgid "Choose a plugin" #~ msgstr "Selecteer een plug-in" #~ msgid "A plugin with the name \"%s\" is already installed" #~ msgstr "Een plug-in met de naam \"%s\" is al geïnstalleerd" #~ msgid "Plugin archive is not in the correct format" #~ msgstr "Plug-inarchief is niet in het goede formaat" #~ msgid "Plugin to fetch lyrics from lyricwiki.org" #~ msgstr "Plug-in om songteksten op te halen van lyricwiki.org" #~ msgid "Install plugin file" #~ msgstr "Installeer plug-inbestand" #~ msgid "Install a third party plugin from a file" #~ msgstr "Installeer een plug-in van een derde partij vanuit een bestand" #~ msgid "A plugin for iPod support" #~ msgstr "Een plug-in voor iPod-ondersteuning" #~ msgid "Use alpha transparency (if supported)" #~ msgstr "Alfa-transparantie gebruiken (indien ondersteund)" #~ msgid "Terminal Opacity:" #~ msgstr "Doorzichtigheid terminal:" #~ msgid "Relay Port:" #~ msgstr "Poortnummer:" #~ msgid "Secret Key:" #~ msgstr "Geheime sleutel:" #~ msgid "When GUI is Focused" #~ msgstr "Als de GUI is gefocust" #~ msgid "" #~ "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " #~ "replaced by their respective values. The title will be replaced by " #~ "\"Unknown\" if it is empty." #~ msgstr "" #~ "De labels \"%(title)s\", \"%(artist)s\", en \"%(album)s\" zullen worden " #~ "vervangen door hun respectievelijke waarden. De titel zal worden " #~ "vervangen door \"Onbekend\" als hij leeg is." #~ msgid "Playback engine (requires restart): " #~ msgstr "Afspeel-engine (vereist herstart): " #~ msgid "Display a progressbar in the OSD" #~ msgstr "Voortgangsbalk tonen in het Infoschermvenster" #~ msgid "Show OSD on track change" #~ msgstr "Infoschermvenster tonen bij veranderen van nummer" #~ msgid "Print the position inside the current track as time" #~ msgstr "Positie binnen het huidige nummer weergeven als tijd" #~ msgid "Print the progress inside the current track as percentage" #~ msgstr "Vooruitgang binnen het huidige nummer weergeven als percentage" #~ msgid "Use Media Icons For Pause, Stop and Resume" #~ msgstr "Gebruik media-iconen voor pauzeren, stoppen en hervatten" #~ msgid "These options only affect the unified engine." #~ msgstr "Deze opties beïnvloeden alleen de unified engine." #~ msgid " (%(queue_count)d queued)" #~ msgstr " (%(queue_count)d in de wachtrij)" #~ msgid "Playing %s" #~ msgstr "%s aan het afspelen" #~ msgid "Could not enable plugin: %s" #~ msgstr "Kon plug-in niet inschakelen: %s" #~ msgid "Could not disable plugin: %s" #~ msgstr "Kon plug-in niet uitschakelen: %s" #~ msgid "Length:" #~ msgstr "Tijd:" #~ msgid "Popup" #~ msgstr "Pop-up" #~ msgid "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgstr "" #~ "{titel}\n" #~ "{artiest}\n" #~ "op {album} - {tijd}" #~ msgid "Close this dialog" #~ msgstr "Deze dialoog sluiten" #~ msgid "0/0 tracks" #~ msgstr "0/0 nummers" #~ msgid "Play Count:" #~ msgstr "Aantal keren afgespeeld:" #~ msgid "" #~ "Show various informations about the track currently playing.\n" #~ "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2" #~ msgstr "" #~ "Geeft diverse informatie over het momenteel spelende nummer.\n" #~ "Vereisten: libwebkit >= 1.0.1, python-webkit >= 1.1.2" #~ msgid "" #~ "Adds support for playing audio CDs.\n" #~ "Requires python-cddb to look up tags." #~ msgstr "" #~ "Voegt ondersteuning toe om audiocd´s te kunnen spelen.\n" #~ "Vereist python-cddb om labels op te zoeken." #~ msgid "Track title format:" #~ msgstr "Nummertitelformaat:" #~ msgid "Both artist and album" #~ msgstr "Zowel artiest als album" #~ msgid "" #~ "Message that should be displayed in the body of the notification. In each " #~ "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced " #~ "by their respective values. If the tag is not known, \"Unknown\" will be " #~ "filled in its place" #~ msgstr "" #~ "Tekst die zal worden weergegeven in de notificatie. De labels \"%(title)s" #~ "\", \"%(artist)s\", en \"%(album)s\" zullen worden vervangen door hun " #~ "respectievelijke waarden. Als een label geen waarde heeft, zal hij worden " #~ "vervangen door \"Onbekend\"." #~ msgid "Selected controls" #~ msgstr "Geselecteerde bediening" #~ msgid "Available controls" #~ msgstr "Beschikbare bediening" #~ msgid "Track Number:" #~ msgstr "Tracknummer:" #~ msgid "Original Artist" #~ msgstr "Originele artiest" #~ msgid "Original Album" #~ msgstr "Originele album" #~ msgid "Original Date" #~ msgstr "Originele datum" #~ msgid "Toggle Play or Pause" #~ msgstr "Afspelen/pauzeren" #~ msgid "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgstr "Versleep het infoschermvenster naar de gewenste locatie" #~ msgid "" #~ "Path is already in your collection, or is a subdirectory of another path " #~ "in your collection" #~ msgstr "" #~ "Pad is al opgenomen in uw collectie, of is een submap van een een ander " #~ "pad in uw collectie" #~ msgid "" #~ "OSD\n" #~ "Drag to the location you'd like the\n" #~ "OSD to appear" #~ msgstr "" #~ "Infoschermvenster\n" #~ "Versleep infoschermvenster naar\n" #~ "de gewenste locatie" #~ msgid "" #~ "This will permanantly delete the selected tracks from your disk, are you " #~ "sure you wish to continue?" #~ msgstr "" #~ "Dit zal de geselecteerde nummers permanent verwijderen van uw schijf, " #~ "weet u zeker dat u door wilt gaan?" #~ msgid "Display OSD when hovering over tray icon" #~ msgstr "" #~ "Infoschermvenster tonen als uw muis op het systeemvakpictogram staat." #~ msgid "On Tray Icon Hover" #~ msgstr "Wanneer u met de muis op het systeemvakpictogram staat" #~ msgid "" #~ "Copyright (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "This program is free software; you can redistribute it and/or modify\n" #~ "it under the terms of the GNU General Public License as published by\n" #~ "the Free Software Foundation; either version 2 of the License, or\n" #~ "(at your option) any later version.\n" #~ "\n" #~ "This program is distributed in the hope that it will be useful,\n" #~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" #~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" #~ "GNU General Public License for more details.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along\n" #~ "with this program; if not, write to the Free Software Foundation, Inc.,\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ msgstr "" #~ "Copyright (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "Dit programma is vrije software: u mag het herdistribueren en/of " #~ "wijzigen\n" #~ "onder de voorwaarden van de GNU Algemene Publieke Licentie zoals " #~ "gepubliceerd\n" #~ "door de Free Software Foundation, onder versie 2 van de Licentie\n" #~ "of (naar uw keuze) elke latere versie.\n" #~ "\n" #~ "Dit programma is gedistribueerd in de hoop dat het nuttig zal zijn\n" #~ "maar ZONDER ENIGE GARANTIE; zelfs zonder de impliciete garanties\n" #~ "die GEBRUIKELIJK ZIJN IN DE HANDEL of voor BRUIKBAARHEID VOOR EEN " #~ "SPECIFIEK DOEL. \n" #~ "Zie de GNU Algemene Publieke Licentie voor meer details.\n" #~ "\n" #~ "U hoort een kopie van de GNU Algemene Publieke Licentie te hebben " #~ "ontvangen samen\n" #~ "met dit programma. Als dat niet het geval is, schrijf dan naar de Free " #~ "Software Foundation, Inc.,\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ msgid "" #~ "Exaile Music Player\n" #~ "Not playing" #~ msgstr "" #~ "Exaile muziekspeler\n" #~ "Niet aan het afspelen" dist/copy/po/PaxHeaders.26361/pt.po0000644000175000017500000000012412233027260015422 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.065046931 exaile-3.3.2/po/pt.po0000644000000000000000000034424012233027260014371 0ustar00rootroot00000000000000# Portuguese translation for exaile # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2012-07-29 07:18+0000\n" "Last-Translator: Dustin Spicuzza \n" "Language-Team: Portuguese \n" "Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-08-28 05:28+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "" #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "" #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "" #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "" #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "Nunca" #: ../xl/formatter.py:702 msgid "Today" msgstr "Hoje" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "Ontem" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "Falha ao migrar da versão 0.2.14" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "" #: ../xl/main.py:421 msgid "Playback Options" msgstr "" #: ../xl/main.py:423 msgid "Play the next track" msgstr "Reproduzir a próxima faixa" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "Reproduzir a faixa anterior" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "Parar a reprodução" #: ../xl/main.py:429 msgid "Play" msgstr "Reproduzir" #: ../xl/main.py:431 msgid "Pause" msgstr "Pausa" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "Parar a reprodução depois da faixa actual" #: ../xl/main.py:440 msgid "Collection Options" msgstr "" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:454 msgid "Track Options" msgstr "" #: ../xl/main.py:456 msgid "Query player" msgstr "Reprodutor de consulta" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "Imprimir o título da faixa actual" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "Imprimir o álbum da faixa actual" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "Imprimir o artista da faixa actual" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "Imprimir a duração da faixa actual" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "" #: ../xl/main.py:490 msgid "Volume Options" msgstr "" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "Imprime a percentagem de volume currente" #: ../xl/main.py:507 msgid "Other Options" msgstr "" #: ../xl/main.py:509 msgid "Start new instance" msgstr "Iniciar uma nova instância" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "" #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "Iniciar minimizado (na área de notificação do sistema, se possível)" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "Alterar visibilidade do interface gráfico (se possível)" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "Iniciar em modo seguro - útil para quando estiver com problemas" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "" #: ../xl/main.py:536 msgid "Set data directory" msgstr "Definir pasta de dados" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "" #: ../xl/main.py:543 msgid "LEVEL" msgstr "" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "Mostrar resultado da depuração" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "" "Activar a depuração de xl.event. Irá gerar uma GRANDE quantidade de " "resultados" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:555 msgid "TYPE" msgstr "" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "Reduzir nível de resultados" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "Desactivar suporte ao D-Bus" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "Desactivar suporte a HAL" #: ../xl/main.py:580 msgid "Entire Library" msgstr "Biblioteca Completa" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "Aleatório %d" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "Classificação > %d" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "" #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "Não especificou uma localização da qual carregar a base de dados" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "Não especificou a localização onde guardar a base de dados" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "Vários Artistas" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "Desconhecido(a)" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr "" #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" "Vorbis é um codec áudio com perdas (lossy) open source, consegue grande " "qualidade de saída de áudio com um menor tamanho de ficheiro que o MP3." #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" "Free Lossless Audio Codec (FLAC) (codec áudio sem perdas) é um codec open " "source que faz a compressão do ficheiro mas não degrada a qualidade áudio." #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" "Formato áudio com perdas (lossy), propriedade da Apple, que consegue uma " "melhor qualidade de som que o MP3 a bitrates mais baixos." #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" "Um formato áudio com perdas (lossy), proprietário e antigo mas também " "popular. O VBR oferece melhor qualidade que o CBR, mas pode ser incompatível " "com alguns leitores." #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" "Um formato áudio com perdas (lossy), proprietário e antigo mas também " "popular. O CBR entrega menos qualidade áudio que o VBR, mas é compatível com " "qualquer leitor." #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "" "Um formato audio Free lossless (sem perdas) muito rápido e com boa taxa de " "compressão." #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "Automático" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "Não está a reproduzir." #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "A versão das definições é mais recente que a actual." #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "Não sabemos como guardar esse tipo de configuração: " #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "Um tipo de configuração desconhecida foi encontrada!" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "" #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "Lista de Reprodução" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "Lista de Reprodução M3U" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "Lista de Reprodução PLS" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "" #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "Lista de Reprodução ASX" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "Lista de Reprodução XSPF" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "segundos" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "minutos" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "horas" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "dias" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "semanas" #: ../xl/lyrics.py:305 msgid "Local" msgstr "" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "Anexar à Actual" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "Nome:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "Corresponder com qualquer dos critérios" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "Tornar os resultados aleatórios" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "Limitar a: " #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr "" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "Não está a Reproduzir" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "Nº" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "Número de Faixa" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "Título" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "Artista" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "Compositor" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "Álbum" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "Duração" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "Disco" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "Número de Disco" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "Classificação" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "Data" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "Género" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "Bitrate" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "Localização" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "Nome do Ficheiro" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "Número de Reproduções" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "BPM" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "Última reprodução" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "Classificação:" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "Lista de Reprodução Aleatória" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "Nova Lista de Reprodução" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "Renomear" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "Adicionar faixas similares à lista de reprodução dinamicamente" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "Insira a URL para abrir" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "Abrir URL" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "Ficheiros Suportados" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "Ficheiros de Música" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "Ficheiros de Listas de Reprodução" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "Todos os Ficheiros" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "Fechar %s" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "Guardar as alterações a %s antes de fechar?" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "As suas alterações irão ser perdidas se não as guardar" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "Fechar Sem Guardar" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "" #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "Não inseriu um nome para a sua lista de reprodução" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "" #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "A carregar: %d%%..." #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "Continuar Reprodução" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "Pausar Reprodução" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "Iniciar Reprodução" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "Exaile Music Player" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "_Nova lista de reprodução" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "Abrir _URL" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "_Colecção" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "_Colunas" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "Gestor de _Dispositivos" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "Cancelar" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "" #: ../xlgui/properties.py:54 msgid "Website" msgstr "" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "" #: ../xlgui/properties.py:57 msgid "Author" msgstr "" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "Versão" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "Mostrar a Capa" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "Obter a Capa" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "Remover a Capa" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "" #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "Ícone" #: ../xlgui/devices.py:81 msgid "Device" msgstr "Dispositivo" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "Controlador" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "A pesquisar a colecção..." #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "A analisar %s..." #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "Alternar a Fila" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "Colocar Itens na Fila" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "Propriedades" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "Nova Estação" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "Nova Lista de Reprodução Inteligente" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "Editar" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "Apagar Lista de Reprodução" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "" "Tem a certeza que deseja eliminar, de forma permanente, a lista de " "reprodução seleccionada?" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "Insira o novo nome que deseja para a sua lista de reprodução" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "Renomear Lista de Reprodução" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "Remover" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "Lista de reprodução %d" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "A transferir para %s..." #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "A carregar as streams..." #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "Adicionar estação de rádio" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "URL:" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "Estações Guardadas" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "Transmissões de Rádio" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "Actualizar" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "Insira o nome que deseja para a sua nova lista de reprodução" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "Actualizar Colecção" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "Tamanho" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s KB" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "e" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "é" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "não é" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "contém" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "não contém" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "no mínimo" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "no máximo" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "anterior a" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "posterior a" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "entre" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "Reproduções" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "Ano" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "Listas de Reprodução Inteligentes" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "Listas de Reprodução Personalizadas" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "Adicionar Lista de Reprodução Inteligente" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "Editar Lista de Reprodução Inteligente" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "Reprodução" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "Plugins" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "" msgstr[1] "" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "Arquivos de Plugin" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "Capas" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "Aparência" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "Colecção" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "Acção" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "Atalho" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "Listas de Reprodução" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "Sobre o Exaile" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" "Copyright (C) 2007 Adam Olsen \n" "\n" "Este programa é software livre; poderá distribui-lo e/ou modificá-lo\n" "dentro dos termos da Licença GNU General Public como publicado\n" "pela Free Software Foundation; seja na versão 2 da Licença, ou em\n" "qualquer outra (à sua escolha)versão mais recente.\n" "\n" "Este programa é distribuído na esperança de ser útil,\n" "mas sem QUALQUER GARANTIA; até mesmo sem a garantia implícita\n" "de COMERCIALIZAÇÃO ou APROPRIADA PARA UM PROPÓSITO\n" "PARTICULAR. Veja a Licença GNU General Public para mais detalhes.\n" "\n" "Deverá ter recebido a Licença GNU General Public junto com este programa;\n" "Se não, escreva para a Free Software Foundation, Inc., 51 Franklin Street,\n" "Fifth Floor, Boston, MA 02110-1301 USA.\n" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "Gestor de Capas" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "Baralhar a ordem de reprodução" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "Localizador de Capas" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "_Ficheiro" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "_Editar" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "_Ver" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "_Ferramentas" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "_Ajuda" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "Faixa Anterior" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" "Parar a reprodução\n" "\n" "Clique com o botão direito do rato para terminar a reprodução depois da " "faixa actual." #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "Faixa Seguinte" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0:00 / 0:00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "Propriedades da faixa" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "Descrição:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "Gestor de Colecção" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "Rádio" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "Importar CD" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "Adicionar Estação" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "Ficheiros" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "Directório visitado anteriormente" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "Directório visitado posteriormente" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "Acima um directório" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "Actualizar lista de directórios" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "Pasta pessoal" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "Procurar: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "A colecção está vazia." #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "Adicionar música" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "Ordem para Procura de Capa:" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "(arraste para reordenar)" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "Abrir a última lista de reprodução ao iniciar" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "Usar transições de desvanecimento em acções do utilizador" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "Duração do desvanecimento (ms):" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "Usar transição (EXPERIMENTAL)" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "Duração da transição (ms):" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "Audio Sink: " #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "Retomar reprodução ao iniciar" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "Retomar reprodução em pausa" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "Plugin" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "Activado" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "Plugins Instalados" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "Autores/as:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "Versão:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "Instalar" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "Nenhum Plugin Seleccionado" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "Plugins Disponíveis" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "Instalar Actualizações" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "Actualizações" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "Mostrar sempre barra de abas" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "Colocação das abas:" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "Mostrar ícone na área de notificação do sistema" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "Minimizar para a área de notificação" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "Ir para a música actual na mudança de faixa" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "Mostrar a imagem de logótipo no inicio da aplicação" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "Preferências" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "Gestor de Dispositivos" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "Tipo de dispositivo:" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "Dispositivos detectados:" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "Personalizado: " #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "Gestor da Fila de Reprodução" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "A procurar mood..." #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "Mood encontrado..." #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "Não foi possível ler moodbar." #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "O executável moodbar não se encontra disponível." #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "Erro ao executar streamripper" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "Despertador" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "A contactar o servidor Shoutcast..." #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "Erro na ligação ao servidor Shoutcast." #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "Escreva as palavras para a busca" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "Pesquisar Shoutcast" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "Resultados da busca" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "Pesquisar" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "" #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "AudioScrobbler" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "Activar audioscrobbling" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "Notificações Notify-osd" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "%(title)s" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "por %(artist)s" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "do %(album)s" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "Consola IPython - Exaile" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "Mostrar Consola IPython" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "Consola IPython" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" "por %(artist)s\n" "do %(album)s" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "A importar CD..." #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "Disco de áudio" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "CD" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "Número de disco" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "Modo Mini" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "Anterior" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "Seguinte" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "Reproduzir/Pausar" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "Parar" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "Restaurar" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "Selector de faixas" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "Barra de progresso" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "ReplayGain" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "" #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "Capas da Amazon" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "Remover" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "" #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "" #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "Capa no Ambiente de Trabalho" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "Relógio Multi-Alarme" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "Marcadores" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "" #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "" #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "Segunda-Feira" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "Terça-Feira" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "Quarta-Feira" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "Quinta-Feira" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "Sexta-Feira" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "Sábado" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "Domingo" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "Usar Desvanecimento" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "Incremento:" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "Submeter faixas usando o Audioscrobbler" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "Palavra-Passe:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "Nome de Utilizador:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "Apresentar" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "Ícones" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "Resumo:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "Conteúdo" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "Cor de Fundo:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "Redimensionar as capas apresentadas" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "Corpo da Mensagem" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "Sempre no topo" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "Apresentar em todas as áreas de trabalho" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "Preferir correcção por álbum" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "Usar protecção de recorte" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "Nível de correcção de recurso (dB):" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" "Usar capas no menu de marcadores (terá efeito na próxima vez que iniciar)" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" #~ msgid "Close tab" #~ msgstr "Fechar separador" #~ msgid "Export as..." #~ msgstr "Exportar como..." #~ msgid "GNOME" #~ msgstr "GNOME" #~ msgid "ALSA" #~ msgstr "ALSA" #~ msgid "OSS" #~ msgstr "OSS" #~ msgid "PulseAudio" #~ msgstr "PulseAudio" #~ msgid "JACK" #~ msgstr "JACK" #~ msgid "Popup" #~ msgstr "Popup" #~ msgid "Stopped" #~ msgstr "Parado" #~ msgid "Stop Playback" #~ msgstr "Parar Reprodução" #~ msgid "_Close" #~ msgstr "_Fechar" #~ msgid "Vol:" #~ msgstr "Vol:" #~ msgid "Open" #~ msgstr "Abrir" #~ msgid "Add Playlist" #~ msgstr "Adicionar Lista de Reprodução" #~ msgid "Quit" #~ msgstr "Sair" #~ msgid "by %s" #~ msgstr "por %s" #~ msgid "Choose a file" #~ msgstr "Escolha um ficheiro" #~ msgid "from %s" #~ msgstr "de %s" #~ msgid " songs" #~ msgstr " músicas" #~ msgid "Number of Plays" #~ msgstr "Nº de vezes tocada" #~ msgid "Toggle: Stop after selected track" #~ msgstr "Toggle: Pare após a faixa selecionada" #~ msgid "Start" #~ msgstr "Iniciar" #~ msgid "Extension" #~ msgstr "Extensão" #~ msgid "Add to Playlist" #~ msgstr "Adicionar à Lista de Reprodução" #~ msgid "Export" #~ msgstr "Exportar" #~ msgid "0:00" #~ msgstr "0:00" #~ msgid " - " #~ msgstr " - " #~ msgid " + " #~ msgstr " + " #~ msgid "Page 1" #~ msgstr "Página 1" #~ msgid "0/0 tracks" #~ msgstr "0/0 faixas" #~ msgid "Add device" #~ msgstr "Adicionar dispositivo" #~ msgid "..." #~ msgstr "..." #~ msgid "Playing %s" #~ msgstr "A reproduzir %s" #~ msgid "%(title)s (by %(artist)s)" #~ msgstr "%(title)s (por %(artist)s)" #~ msgid "Choose a file to open" #~ msgstr "Escolha um ficheiro para abrir" #~ msgid "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgstr "" #~ "{title}\n" #~ "{artist}\n" #~ "no {album} - {length}" #~ msgid "Opacity Level:" #~ msgstr "Nível de Opacidade" #~ msgid "order must be a list or tuple" #~ msgstr "A ordem devem ser uma lista ou tupla" #~ msgid "Buffering: 100%..." #~ msgstr "Buffering: 100%..." #~ msgid "Show a popup of the currently playing track" #~ msgstr "Mostrar uma janela notificação da faixa actual" #~ msgid "Streaming..." #~ msgstr "A ligar..." #~ msgid " New song, fetching cover." #~ msgstr " Nova faixa, a descarregar a capa." #~ msgid "%d covers to fetch" #~ msgstr "%d capas para descarregar" #~ msgid "Maximum Volume:" #~ msgstr "Volume máximo:" #~ msgid "Restart Playlist" #~ msgstr "Reiniciar a lista de reprodução" #~ msgid "Minimum Volume:" #~ msgstr "Volume Mínimo :" #~ msgid "Name - Time" #~ msgstr "Nome - Tempo" #~ msgid "Enable Fading" #~ msgstr "Activar o desvanecimento" #~ msgid "Fading:" #~ msgstr "Desvanecer" #~ msgid "Alarm:" #~ msgstr "Alarme:" #~ msgid "Alarm Name:" #~ msgstr "Nome do Alarme:" #~ msgid "Alarm Time:" #~ msgstr "Tempo do Alarme:" #~ msgid "LastFM Radio" #~ msgstr "Rádio LastFM" #~ msgid "Plugin archive contains an unsafe path" #~ msgstr "O arquivo de plugin contém um caminho inseguro" #~ msgid "A plugin with the name \"%s\" is already installed" #~ msgstr "Um plugin com o nome \"%s\" já se encontra instalado" #~ msgid "Plugin archive is not in the correct format" #~ msgstr "O arquivo de plugin não está no formato correcto" #~ msgid "Choose a plugin" #~ msgstr "Seleccione um plugin" #~ msgid "" #~ "Exaile now uses absolute URI's, please delete/rename your %s directory" #~ msgstr "" #~ "O Exaile agora usa URI's absolutas, por favor apague/renomeie o seu " #~ "directório %s" #~ msgid "New playlist title:" #~ msgstr "Novo título para lista de reprodução:" #~ msgid "Close this dialog" #~ msgstr "Fechar esta caixa de diálogo" #~ msgid "Decreases the volume by VOL%" #~ msgstr "Diminui o volume por VOL%" #~ msgid "Increases the volume by VOL%" #~ msgstr "Aumenta o volume por VOL%" #~ msgid "" #~ "Left\n" #~ "Right\n" #~ "Top\n" #~ "Bottom" #~ msgstr "" #~ "Esquerda\n" #~ "Direita\n" #~ "Topo\n" #~ "Fundo" #~ msgid "© 2009" #~ msgstr "© 2009" #~ msgid "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager" #~ msgstr "" #~ "Mathias Brodala\n" #~ " \n" #~ " Gestor de Traduções" #~ msgid "Plugin Manager" #~ msgstr "Gestor de Plugins" #~ msgid "Remove All" #~ msgstr "Remover Tudo" #~ msgid "" #~ "Automatic\n" #~ "GNOME\n" #~ "ALSA\n" #~ "OSS\n" #~ "PulseAudio\n" #~ "JACK" #~ msgstr "" #~ "Automático\n" #~ "GNOME\n" #~ "ALSA\n" #~ "OSS\n" #~ "PulseAudio\n" #~ "JACK" #~ msgid "Toggle Play or Pause" #~ msgstr "Alternar Reprodução ou Pausa" #~ msgid "Set rating for current song" #~ msgstr "Definir a classificação para a música actual" #~ msgid "" #~ "Exaile Music Player\n" #~ "Not playing" #~ msgstr "" #~ "Exaile Music Player\n" #~ "Não está a reproduzir" #~ msgid "In pause: %s" #~ msgstr "Em pausa: %s" #~ msgid "%(playlist_count)d showing, %(collection_count)d in collection" #~ msgstr "A mostrar %(playlist_count)d, %(collection_count)d na colecção" #~ msgid " (%(queue_count)d queued)" #~ msgstr " (%(queue_count)d na fila)" #~ msgid "Add to custom playlist" #~ msgstr "Adicionar a lista de reprodução personalizada" #~ msgid "_Rename Playlist" #~ msgstr "_Renomear Lista de Reprodução" #~ msgid "_Close Playlist" #~ msgstr "_Fechar Lista de Reprodução" #~ msgid "C_lear All Tracks" #~ msgstr "L_impar Todas as Faixas" #~ msgid "_Save As Custom Playlist" #~ msgstr "_Guardar como Lista de Reprodução Personalizada" #~ msgid "No covers found" #~ msgstr "Não foram encontradas capas" #~ msgid "Export current playlist..." #~ msgstr "Exportar a lista de reprodução actual..." #~ msgid "Invalid file extension, file not saved" #~ msgstr "Extensão de ficheiro inválida, o ficheiro não foi guardado" #~ msgid "Enter the search text" #~ msgstr "Insira o texto a procurar" #~ msgid "Add a directory" #~ msgstr "Adicionar um directório" #~ msgid "Select File Type (By Extension)" #~ msgstr "Seleccione o Tipo de Ficheiro (por Extensão)" #~ msgid "File Type" #~ msgstr "Tipo de Ficheiro" #~ msgid "" #~ "Path is already in your collection, or is a subdirectory of another path " #~ "in your collection" #~ msgstr "" #~ "O caminho já existe na sua colecção ou é um sub-directório de um outro " #~ "caminho na sua colecção" #~ msgid "Remove current track from playlist" #~ msgstr "Remover a faixa actual da lista de reprodução" #~ msgid "Repeat playlist" #~ msgstr "Repetir a lista de reprodução" #~ msgid "Dynamically add similar tracks" #~ msgstr "Adicionar faixas similares dinamicamente" #~ msgid "" #~ "Copyright (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "This program is free software; you can redistribute it and/or modify\n" #~ "it under the terms of the GNU General Public License as published by\n" #~ "the Free Software Foundation; either version 2 of the License, or\n" #~ "(at your option) any later version.\n" #~ "\n" #~ "This program is distributed in the hope that it will be useful,\n" #~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" #~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" #~ "GNU General Public License for more details.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along\n" #~ "with this program; if not, write to the Free Software Foundation, Inc.,\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ msgstr "" #~ "Copyright (C) 2007 Adam Olsen \n" #~ "\n" #~ "Este programa é software livre; poderá distribui-lo e/ou modificá-lo\n" #~ "dentro dos termos da Licença GNU General Public como publicado\n" #~ "pela Free Software Foundation; seja na versão 2 da Licença, ou em\n" #~ "qualquer outra (à sua escolha)versão mais recente.\n" #~ "\n" #~ "Este programa é distribuído na esperança de ser útil,\n" #~ "mas sem QUALQUER GARANTIA; até mesmo sem a garantia implícita\n" #~ "de COMERCIALIZAÇÃO ou APROPRIADA PARA UM PROPÓSITO\n" #~ "PARTICULAR. Veja a Licença GNU General Public para mais detalhes.\n" #~ "\n" #~ "Deverá ter recebido a Licença GNU General Public junto com este " #~ "programa;\n" #~ "Se não, escreva para a Free Software Foundation, Inc., 51 Franklin " #~ "Street,\n" #~ "Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ msgid "New Search" #~ msgstr "Nova pesquisa" #~ msgid "" #~ "OSD\n" #~ "Drag to the location you'd like the\n" #~ "OSD to appear" #~ msgstr "" #~ "OSD\n" #~ "Arraste para a localização onde\n" #~ "deseja que a OSD seja mostrada" #~ msgid "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgstr "" #~ "Mova a janela On Screen Display para a localização onde deseja que ela " #~ "seja mostrada" #~ msgid "Display OSD when hovering over tray icon" #~ msgstr "" #~ "Mostrar a OSD quando o cursor do rato estiver por cima do ícone na área " #~ "de notificação" #~ msgid "Window Height:" #~ msgstr "Altura da Janela:" #~ msgid "Window Width:" #~ msgstr "Largura da Janela:" #~ msgid "Display a progressbar in the OSD" #~ msgstr "Apresentar uma barra de progresso na janela OSD" #~ msgid "Text Font:" #~ msgstr "Tipo de Letra do Texto:" #~ msgid "Text Color" #~ msgstr "Cor do Texto" #~ msgid "Show OSD on track change" #~ msgstr "Apresentar a janela OSD na mudança de faixa" #~ msgid "" #~ "Normal\n" #~ "Unified (unstable)" #~ msgstr "" #~ "Normal\n" #~ "Unified (instável)" #~ msgid "These options only affect the unified engine." #~ msgstr "Estas opções apenas afectam o motor unified." #~ msgid "Playback engine (requires restart): " #~ msgstr "Motor de reprodução (requer reinício): " #~ msgid "Autosize" #~ msgstr "Auto-dimensionar" #~ msgid "Resizable" #~ msgstr "Redimensionável" #~ msgid "Randomize the order of the current playlist" #~ msgstr "Tornar a ordem da lista de reprodução aleatória" #~ msgid "_Go to Playing Track" #~ msgstr "_Ir Para a Faixa em Reprodução" #~ msgid "_Export current playlist" #~ msgstr "_Exportar a lista de reprodução actual" #~ msgid "%(minutes)d:%(seconds)02d" #~ msgstr "%(minutes)d:%(seconds)02d" #~ msgid "General" #~ msgstr "Geral" #~ msgid "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "Year - Artist\n" #~ "Year - Album\n" #~ "Artist - Year - Album" #~ msgstr "" #~ "Artista\n" #~ "Álbum\n" #~ "Género - Artista\n" #~ "Género - Álbum\n" #~ "Ano - Artista\n" #~ "Ano - Álbum\n" #~ "Artista - Ano - Álbum" #~ msgid "Bookmark this track" #~ msgstr "Criar um marcador para esta faixa" #~ msgid "Clear bookmarks" #~ msgstr "Limpar os marcadores" #~ msgid "Delete bookmark" #~ msgstr "Apagar marcador" #~ msgid "Neighbourhood" #~ msgstr "Vizinhança" #~ msgid "Personal" #~ msgstr "Pessoal" #~ msgid "Recommended" #~ msgstr "Recomendado" #~ msgid "Loved Tracks" #~ msgstr "Faixas Preferidas" #~ msgid "Restore Main Window" #~ msgstr "Restaurar Janela Principal" #~ msgid "Selected controls" #~ msgstr "Controlos seleccionados" #~ msgid "Available controls" #~ msgstr "Controlos disponíveis" #~ msgid " & " #~ msgstr " & " #~ msgid "Alarm Days:" #~ msgstr "Dias para Alarme:" #~ msgid "Streamripper can only record streams." #~ msgstr "Streamripper pode gravar apenas streams." #~ msgid "Timer per Increment:" #~ msgstr "Temporizador por Incremento:" #~ msgid "Time per Increment:" #~ msgstr "Tempo por Incremento:" #~ msgid "Artist Line:" #~ msgstr "Linha de Artista:" #~ msgid "Album Line:" #~ msgstr "Linha de Álbum:" #~ msgid "On Track Change" #~ msgstr "Na Mudança de Faixa" #~ msgid "On Playback Start, Pause or Stop" #~ msgstr "Ao Iniciar, Pausar ou Parar a Reprodução" #~ msgid "Use Media Icons For Pause, Stop and Resume" #~ msgstr "Usar Ícones de Média para Pausa, Parar e Continuar" #~ msgid "On Tray Icon Hover" #~ msgstr "Ao Pairar com o Cursor do Rato Sobre o Ícone na Área de Notificação" #~ msgid "Use Album Covers As Icons" #~ msgstr "Usar Capas de Álbum como Ícones" #~ msgid "" #~ "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " #~ "replaced by their respective values. The title will be replaced by " #~ "\"Unknown\" if it is empty." #~ msgstr "" #~ "As tags \"%(title)s\", \"%(artist)s\" e \"%(album)s\" irão ser " #~ "substituídas pelos valores respectivos. O título irá ser substituído por " #~ "\"Desconhecido\" no caso de estar vazio." #~ msgid "Only artist" #~ msgstr "Apenas artista" #~ msgid "Summary" #~ msgstr "Resumo" #~ msgid "Both artist and album" #~ msgstr "Tanto artista como álbum" #~ msgid "" #~ "Message that should be displayed in the body of the notification. In each " #~ "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced " #~ "by their respective values. If the tag is not known, \"Unknown\" will be " #~ "filled in its place" #~ msgstr "" #~ "Mensagem que deve ser apresentada no corpo da notificação. Em cada caso, " #~ "\"%(title)s\", \"%(artist)s\", e \"%(album)s\" serão substituídas pelos " #~ "seus respectivos valores. Se a tag não for definida, \"Desconhecido\" " #~ "será colocado em seu lugar." #~ msgid "Only album" #~ msgstr "Apenas álbum" #~ msgid "Center vertically" #~ msgstr "Centrar verticalmente" #~ msgid "Center horizontally" #~ msgstr "Centrar horizontalmente" #~ msgid "Position" #~ msgstr "Posição" #~ msgid "Save Location:" #~ msgstr "Localização onde Guardar" #~ msgid "Relay Port:" #~ msgstr "Porta de Relay:" #~ msgid "Vertical:" #~ msgstr "Vertical:" #~ msgid "Display window decorations" #~ msgstr "Apresentar decorações de janela" #~ msgid "Horizontal:" #~ msgstr "Horizontal:" #~ msgid "Save As..." #~ msgstr "Guardar Como..." #~ msgid "Idle." #~ msgstr "Inactivo." #~ msgid "Add To New Playlist..." #~ msgstr "Adicionar a uma nova lista de reprodução..." #~ msgid "Could not disable plugin: %s" #~ msgstr "Não foi possivel desactivar o plugin: %s" #~ msgid "Filter event debug output" #~ msgstr "Filtrar resultados da depuração de eventos" #~ msgid "_Save As..." #~ msgstr "Guardar _Como..." #~ msgid "Add item" #~ msgstr "Adicionar item" #~ msgid "Date:" #~ msgstr "Data:" #~ msgid "Start/Pause Playback" #~ msgstr "Iniciar/Pausar reprodução" #~ msgid "No track" #~ msgstr "Nenhuma faixa" #~ msgid "Move selected item down" #~ msgstr "Mover o item seleccionado para baixo" #~ msgid "Could not enable plugin: %s" #~ msgstr "Não foi possível activar o plugin: %s" #~ msgid "Move selected item up" #~ msgstr "Mover o item seleccionado para cima" #~ msgid "Album:" #~ msgstr "Álbum:" #~ msgid "Artist:" #~ msgstr "Artista:" #~ msgid "Details" #~ msgstr "Detalhes" #~ msgid "Length:" #~ msgstr "Duração:" #~ msgid "Genre:" #~ msgstr "Género:" #~ msgid "Location:" #~ msgstr "Localização :" #~ msgid "Delete track" #~ msgstr "Remover faixa" #~ msgid "Device class does not support transfer." #~ msgstr "Esta classe de dispositivo não suporta transferências." #~ msgid "" #~ "This will permanantly delete the selected tracks from your disk, are you " #~ "sure you wish to continue?" #~ msgstr "" #~ "Isto irá remover permanentemente do seu disco as faixas seleccionadas. " #~ "Deseja mesmo continuar?" #~ msgid "Title:" #~ msgstr "Título:" #~ msgid "File Size:" #~ msgstr "Tamanho do ficheiro:" #~ msgid "Play Count:" #~ msgstr "Número de reproduções:" #~ msgid "Track Number:" #~ msgstr "Número de faixa:" #~ msgid "Track _properties" #~ msgstr "_Propriedades da faixa" #~ msgid "Clear Playlist" #~ msgstr "Limpar lista de reprodução" #~ msgid "Use alpha transparency (if supported)" #~ msgstr "Usar transparência alfa (se suportado)" #~ msgid "Get rating for current song" #~ msgstr "Obter a classificação da música actual" dist/copy/po/PaxHeaders.26361/bn.po0000644000175000017500000000012312233027260015375 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 29 ctime=1382821553.03704693 exaile-3.3.2/po/bn.po0000644000000000000000000026671612233027260014360 0ustar00rootroot00000000000000# Bengali translation for exaile # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2010-02-05 22:19+0000\n" "Last-Translator: Shibly Rahman \n" "Language-Team: Bengali \n" "Language: bn\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2012-08-28 05:24+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "" #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "" #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "" #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "" #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "%d:%02d" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "" #: ../xl/formatter.py:702 msgid "Today" msgstr "" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "" #: ../xl/main.py:421 msgid "Playback Options" msgstr "" #: ../xl/main.py:423 msgid "Play the next track" msgstr "" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "প্লে-ব্যাক বন্ধ করুন" #: ../xl/main.py:429 msgid "Play" msgstr "শুরু করুন" #: ../xl/main.py:431 msgid "Pause" msgstr "" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "" #: ../xl/main.py:440 msgid "Collection Options" msgstr "" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:454 msgid "Track Options" msgstr "" #: ../xl/main.py:456 msgid "Query player" msgstr "" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "" #: ../xl/main.py:490 msgid "Volume Options" msgstr "" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "" #: ../xl/main.py:507 msgid "Other Options" msgstr "" #: ../xl/main.py:509 msgid "Start new instance" msgstr "" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "" #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "" #: ../xl/main.py:536 msgid "Set data directory" msgstr "" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "" #: ../xl/main.py:543 msgid "LEVEL" msgstr "" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:555 msgid "TYPE" msgstr "" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "" #: ../xl/main.py:580 msgid "Entire Library" msgstr "" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "" #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr "" #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "" #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "স্বয়ংক্রিয়" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "" #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "" #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "" #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "" #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "" #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "" #: ../xl/lyrics.py:305 msgid "Local" msgstr "" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "নাম:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "" #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr "" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "#" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "" #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "" #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "" #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "" #: ../xlgui/properties.py:54 msgid "Website" msgstr "" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "" #: ../xlgui/properties.py:57 msgid "Author" msgstr "" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "" #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "" #: ../xlgui/devices.py:81 msgid "Device" msgstr "" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "" #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "" #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "" #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "" #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s KB" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "" msgstr[1] "" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "০:০০ / ০:০০" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "" #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "" #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "" #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "" #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "" #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "" #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "" #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "" #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "" #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "" #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "" #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "" #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "" #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" #~ msgid " - " #~ msgstr " - " #~ msgid " + " #~ msgstr " + " #~ msgid "0:00" #~ msgstr "০:০০" #~ msgid "Exaile" #~ msgstr "Exaile" dist/copy/po/PaxHeaders.26361/oc.po0000644000175000017500000000012412233027260015400 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.021046929 exaile-3.3.2/po/oc.po0000644000000000000000000031457112233027260014353 0ustar00rootroot00000000000000# Occitan (post 1500) translation for exaile # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2012-07-29 07:17+0000\n" "Last-Translator: Cédric VALMARY (Tot en òc) \n" "Language-Team: Occitan (post 1500) \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Launchpad-Export-Date: 2012-08-28 05:27+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "%d jorn, " msgstr[1] "%d jorns, " #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "%d ora, " msgstr[1] "%d oras, " #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "%d minuta, " msgstr[1] "%d minutas, " #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d segonda" msgstr[1] "%d segondas" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "%dd, " #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "%dh, " #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "%dm, " #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "%ds" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "%dd " #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "%d:%02d:%02d" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "%d:%02d" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "Pas jamai" #: ../xl/formatter.py:702 msgid "Today" msgstr "Uèi" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "Ièr" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "La migracion dempuèi 0.2.14 a fracassat" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "Opcions" #: ../xl/main.py:421 msgid "Playback Options" msgstr "Opcions de lectura" #: ../xl/main.py:423 msgid "Play the next track" msgstr "Passar a la lista seguenta" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "Tornar a la pista precedenta" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "Arrestar la lectura" #: ../xl/main.py:429 msgid "Play" msgstr "Legir" #: ../xl/main.py:431 msgid "Pause" msgstr "Pausa" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "Arrestar la lectura aprèp la pista actuala" #: ../xl/main.py:440 msgid "Collection Options" msgstr "" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "Opcions de la lista de lectura" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:454 msgid "Track Options" msgstr "" #: ../xl/main.py:456 msgid "Query player" msgstr "Verificar se lo lector es aviat" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "Afichar lo títol de la pista en cors de lectura" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "Afichar l'album de la cançon en cors" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "Afichar l'artista de la cançon en cors" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "Afichar la durada de la pista en cors" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "N" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "" #: ../xl/main.py:490 msgid "Volume Options" msgstr "" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "Afichar lo volum actual en percentatge" #: ../xl/main.py:507 msgid "Other Options" msgstr "Autras opcions" #: ../xl/main.py:509 msgid "Start new instance" msgstr "Aviar una instància novèla" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "" #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "Aviar en minimizat (se possible dins la zòna de notificacion)" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "Afichar o amagar l'interfàcia grafica (se possible)" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "Aviar en mòde sens fracàs - util quand rencontratz de problèmas" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "DORSIÈR" #: ../xl/main.py:536 msgid "Set data directory" msgstr "Definir lo dorsièr de donadas" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "MODUL" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "" #: ../xl/main.py:543 msgid "LEVEL" msgstr "NIVÈL" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "Aficha la sortida de debugatge" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "" "Activar lo desbugatge de xl.event. Genèra una granda quantitat de sortidas " "ecran" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:555 msgid "TYPE" msgstr "TIPE" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "Demesir la quantitat de sortidas ecran" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "Desactivar la presa en carga de D-Bus" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "Desactivar la presa en carga de HAL" #: ../xl/main.py:580 msgid "Entire Library" msgstr "Bibliotèca entièra" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "%d aleatòriament" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "Nòta > %d" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "Etiquetas" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "" #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "Artistas divèrses" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "Desconegut" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr " / " #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "" #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "Automatic" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "Personalizat" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "Pas de lectura en cors." #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "" #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "" #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "" #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "Lista de lectura" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "Lista de lectura M3U" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "Lista de lectura PLS" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "" #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "Lista de lectura ASX" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "Lista de lectura XSPF" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "Mòde aleatòri _desactivat" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "Repeticion _desactivada" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "Repetir _tot" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "segondas" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "minutas" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "oras" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "jorns" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "setmanas" #: ../xl/lyrics.py:305 msgid "Local" msgstr "Local" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "Metre en espèra" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "Dobrir un repertòri" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "Metre dins l'escobilhièr" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "Nom :" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "Limitar a : " #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr "" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "Pas de lectura en cors" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "Desplaçar" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "Mut" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "%d %%" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "Volum maximum" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "Divèrs" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "%d seleccionada" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "#" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "Numèro de la pista" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "Títol" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "Artista" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "Compositor" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "Albom" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "Longor" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "Disc" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "Numèro de disc" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "Nòta" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "Data" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "Mena" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "Debit" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "Emplaçament" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "Nom de fichièr" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "Nombre de lecturas" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "BPM" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "Darrièra escota" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "Apondut lo" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "_Redimensionable" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "Talha _automatica" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "Avaloracion :" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "Mòde aleatòri" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "Repetir" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "Dinamic" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "Tièra de lecturas novèla" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "Renommar" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "Picatz l'URL de dobrir" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "Dobrir una URL" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "Formats preses en carga" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "Fichièrs musicals" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "Fichièrs de tièra de lecturas" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "Totes los fichièrs" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "Tampar %s" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "Tampar sens enregistrar" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "" #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "" #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "Tampar l'onglet" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "Mesa en tampon : %d%%..." #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "Contunhar la Lectura" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "Metre En Pausa" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "Aviar la lectura" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "Lector àudio Exaile" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "Lista de lectura _novèla" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "Dobrir una _URL" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "Reaviar" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "_Bibliotèca" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "_Fila d'espèra" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "_Colomnas" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "Anullar" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "Paraulièr" #: ../xlgui/properties.py:54 msgid "Website" msgstr "Site web" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "Pocheta" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "" #: ../xlgui/properties.py:57 msgid "Author" msgstr "Autor" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "Arrengaire" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "Cap d'orquestra" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "Interprèt" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "Dreches d'autor" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "Paraulas" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "Pista" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "Version" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "ISRC" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "Organizacion" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "Modificat lo" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "sus :" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "Telecargar la pocheta" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "Levar la pocheta" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "Cap de pocheta pas trobada." #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "Icòna" #: ../xlgui/devices.py:81 msgid "Device" msgstr "Periferic" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "Pilòt" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "Analisi de la bibliotèca..." #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "Analisi en cors de %s..." #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "Proprietats" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "Estacion novèla" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "Editar" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "Suprimir la lista de lectura" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "Tornar nomenar la lista de lectura" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "Suprimir" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "Lista de lectura %d" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "Transferiment en cors cap a %s..." #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "Cargament dels fluxes..." #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "URL :" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "Estacions enregistradas" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "Fluxes ràdio" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "Actualizar" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "Genre - Artista" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "Genre - Album" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "Analisar la colleccion tornamai" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "Talha" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s ko" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "e" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "es" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "es pas" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "conten" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "conten pas" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "al mens" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "al mai" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "abans" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "aprèp" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "entre" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "superiora a" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "inferiora a" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "Lecturas" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "Annada" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "Lectura" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "Ajustons" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "" msgstr[1] "" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "Causissètz un modul d'extension" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "Pochetas" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "Aparéncia" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "Colleccion" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "l' la lo los" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "Restablir los paramètres per defaut" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "Accion" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "Acorchi" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "Tièras de lectura" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "A prepaus d'Exaile" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "Gestionari de pochetas" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "_Fichièr" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "_Edicion" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "_Visualizacion" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "_Espleches" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "_Ajuda" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "Pista precedenta" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "Cançon seguenta" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0:00 / 0:00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "Proprietats de la Pista" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "ab → A_b" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "_Precedent" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "_Seguent" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "Descripcion :" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "Gestionari de bibliotèca" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "Radio" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "Importar un CD" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "Apondre una estacion" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "Fichièrs" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "Dorsièr personal" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "Recercar : " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "" #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "Apondre de Musica" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "Flux àudio : " #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "Normala" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "Unificat (instable)" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "Ajuston" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "Activat" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "Moduls extèrnes installats" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "Autors :" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "Version :" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "Installar" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "Moduls extèrnes disponibles" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "Installar las mesas a jorn" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "Mesas a jorn" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "Afichar l'icòna dins la bóstia de miniaturas" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "Esquèrra" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "Drecha" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "Naut" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "Preferéncias" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "Gestionari de periferics" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "Personalizat : " #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "" #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "Error d'execucion de Streamripper" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "Enregistrador de flux" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "Revelh" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "" #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "Recèrca Shoutcast" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "Resultats de la recèrca" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "Recercar" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "" #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "AudioScrobbler" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "Activar Audioscrobbler" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "Egalizador" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "Notificacions Notify-osd" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "%(title)s" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "per %(artist)s" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "sus %(album)s" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "Terminal iPython - Exaile" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "Consòla IPython" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "Notificacion" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" "per %(artist)s\n" "sus %(album)s" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "CD en cors d'importacion..." #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "Disc àudio" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "CD" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "Numèro de pista" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "Numèro de disc" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "Nombre de lecturas" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "Mòde Mini" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "$tracknumber - $title" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "$title per $artist" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "Precedent" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "Seguent" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "Lectura / pausa" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "Arrèst" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "Volum" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "Restablir" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "Selector de pista" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "Barra de progression" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "Desplaçar per causir" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "Apondre e Legir" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "Apondre" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "Prèst" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "" #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "Fenèstra OSD" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "Podcasts" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "Podcast" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "Suprimir" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "Cargament de %s..." #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "" #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "Contèxte" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "Suprimir lo marcapaginas" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "Marcapaginas" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "Client DAAP" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "Manualament..." #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "" #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "Connexion al servidor DAAP..." #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "Nivèl d'escuretat :" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "Utilizar un tèma de colors " #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "Color de basa :" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "Color de basa" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "Clau de l'API :" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "Diluns" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "Dimars" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "Dimècres" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "Dijòus" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "Divendres" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "Dissabte" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "Dimenge" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "Incrementar :" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "Pas cap" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "Senhal :" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "Nom d'utilizaire :" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "pre" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "+12 dB" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "0" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "-24 dB" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "29" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "59" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "119" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "237" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "474" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "947" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "1.9K" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "3.8K" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "7.5K" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "15K" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "Afichatge" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "Icònas" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "Resumit :" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "Contengut" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "Poliça :" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "Color del fons :" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "Còs del messatge" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "Ogg Vorbis" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "FLAC" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "AAC" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "MP3 de debit variable (VBR)" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "MP3 de debit constant (CBR)" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "WavPack" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "Format d'importacion : " #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "Qualitat d'importacion : " #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "Totjorn visible" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "Nivèl de correccion (dB) :" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "Triar per :" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "Resultats :" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "Avançat" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "Descreissent" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "Creissent" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "Data de sortida" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "Nòta sus la setmana" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "Nòta sul mes" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "Nombre de telecargaments" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "Nombre de lecturas" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "Data de notacion" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "Genre/Tags" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "Ancòra :" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "Decalatge sus X :" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "pixèls" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "Decalatge en Y :" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "Talha :" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "Amont a esquèrra" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "Amont a drecha" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "Aval a esquèrra" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "Aval a drecha" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "Apondre" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "Nom del servidor :" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "Pòrt :" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "Pista Actuala" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "Ràdio Shoutcast" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "Lista de Ràdios Shoutcast" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "XKeys" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "Lyrics Fly" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "Librivox" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "Lectura de CD" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "Permet la presa en carga de ReplayGain" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "Jamendo" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "Karaoke" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "Adissiatz brave monde" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "Informacions contextualas" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "Lyrics Wiki" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" #~ msgid "Clear" #~ msgstr "Escafar" #~ msgid "Close" #~ msgstr "Tampar" #~ msgid "Close tab" #~ msgstr "Tampar l'onglet" #~ msgid "Export as..." #~ msgstr "Exportar en tant que..." #~ msgid "%d KB" #~ msgstr "%d ko" #~ msgid "GNOME" #~ msgstr "GNOME" #~ msgid "ALSA" #~ msgstr "ALSA" #~ msgid "OSS" #~ msgstr "OSS" #~ msgid "PulseAudio" #~ msgstr "PulseAudio" #~ msgid "JACK" #~ msgstr "JACK" #~ msgid "AWN" #~ msgstr "AWN" #~ msgid "API Key:" #~ msgstr "Clau d'API :" #~ msgctxt "yes" #~ msgid "Monday" #~ msgstr "Diluns" #~ msgctxt "yes" #~ msgid "Tuesday" #~ msgstr "Dimars" #~ msgctxt "yes" #~ msgid "Wednesday" #~ msgstr "Dimècres" #~ msgctxt "yes" #~ msgid "Thursday" #~ msgstr "Dijòus" #~ msgctxt "yes" #~ msgid "Friday" #~ msgstr "Divendres" #~ msgctxt "yes" #~ msgid "Saturday" #~ msgstr "Dissabte" #~ msgctxt "yes" #~ msgid "Sunday" #~ msgstr "Dimenge" #~ msgctxt "yes" #~ msgid "Use Fading" #~ msgstr "Utilizar lo fondut" #~ msgctxt "yes" #~ msgid "Increment:" #~ msgstr "Incrementar :" #~ msgid "Awn" #~ msgstr "Awn" #~ msgid "General" #~ msgstr "General" #~ msgid "_Close" #~ msgstr "_Tampar" #~ msgid "Open" #~ msgstr "Dobrir" #~ msgid "Add a directory" #~ msgstr "Apondre un repertòri" #~ msgid "Choose a file" #~ msgstr "Causissètz un fichièr" #~ msgid "Quit" #~ msgstr "Sortir" #~ msgid "Exaile" #~ msgstr "Exaile" #~ msgid "Toggle Play or Pause" #~ msgstr "Metre en pausa o reaviar la lectura" #~ msgid "Show a popup of the currently playing track" #~ msgstr "Afichar una notificacion de la pista en cors" #~ msgid "Print the position inside the current track as time" #~ msgstr "Afichar la posicion dins la pista actuala al format orari" #~ msgid "Print the progress inside the current track as percentage" #~ msgstr "" #~ "Afichar la progression dins la pista actuala jos la forma de percentatge" #~ msgid "Set rating for current song" #~ msgstr "Notar la pista en cors" #~ msgid "Get rating for current song" #~ msgstr "Aficha la nòta de la pista en cors" #~ msgid "Decreases the volume by VOL%" #~ msgstr "Diminuir lo volum de VOL%" #~ msgid "Increases the volume by VOL%" #~ msgstr "Augmentar lo volum de VOL%" #~ msgid "Filter event debug output" #~ msgstr "Filtrar la sortida de desbugatge dels eveniments" #~ msgid " & " #~ msgstr " & " #~ msgid "%(year)d-%(month)02d-%(day)02d" #~ msgstr "%(day)02d/%(month)02d/%(year)d" #~ msgid "Original Date" #~ msgstr "Data d'origina" #~ msgid "Original Artist" #~ msgstr "Artista d'origina" #~ msgid "Original Album" #~ msgstr "Album d'origina" #~ msgid "Encoded By" #~ msgstr "Encodat per" #~ msgid "Streaming..." #~ msgstr "Lectura dempuèi un flux..." #~ msgid "Date Added" #~ msgstr "Apondut lo" #~ msgid "Last Played" #~ msgstr "Darrièra lectura" #~ msgid "Buffering: 100%..." #~ msgstr "Mesa en tampon : 100%..." #~ msgid "Save As..." #~ msgstr "Enregistrar jos..." #~ msgid "Stopped" #~ msgstr "Arrestat" #~ msgid "In pause: %s" #~ msgstr "En pausa : %s" #~ msgid "from %s" #~ msgstr "sus %s" #~ msgid "Playing %s" #~ msgstr "Lectura en cors de %s" #~ msgid "%(title)s (by %(artist)s)" #~ msgstr "%(title)s (per %(artist)s)" #~ msgid "by %s" #~ msgstr "per %s" #~ msgid "_Rename Playlist" #~ msgstr "To_rnar nomenar la lista de lectura" #~ msgid "C_lear All Tracks" #~ msgstr "Escafa_r totas las pistas" #~ msgid "_Save As..." #~ msgstr "Enregistrar _jos..." #~ msgid "Export" #~ msgstr "Exportar" #~ msgid "Start" #~ msgstr "Aviar" #~ msgid "File Type" #~ msgstr "Tipe de fichièr" #~ msgid "Extension" #~ msgstr "Extension" #~ msgid "0:00" #~ msgstr "0:00" #~ msgid " songs" #~ msgstr " cançons" #~ msgid "Remove item" #~ msgstr "Suprimir aqueste element" #~ msgid "Add item" #~ msgstr "Apondre aqueste element" #~ msgid "0/0 tracks" #~ msgstr "0/0 pistas" #~ msgid "Page 1" #~ msgstr "Pagin 1" #~ msgid "Clear Playlist" #~ msgstr "Escafar la lista de lectura" #~ msgid "Track _properties" #~ msgstr "_Proprietats de la pista" #~ msgid "..." #~ msgstr "..." #~ msgid "© 2009" #~ msgstr "© 2009" #~ msgid "New Search" #~ msgstr "Recèrca novèla" #~ msgid "Remove All" #~ msgstr "Suprimir tot" #~ msgid "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager" #~ msgstr "" #~ "Mathias Brodala\n" #~ "\n" #~ "Responsable des traductions" #~ msgid "Restore Main Window" #~ msgstr "Restablir la fenèstra principala" #~ msgid "Stop Playback" #~ msgstr "Arrestar la lectura" #~ msgid "Seeking: " #~ msgstr "Progression : " #~ msgid "$title ($length)" #~ msgstr "$title ($length)" #~ msgid "Minimum Volume:" #~ msgstr "Volum minimal :" #~ msgid "Enable Fading" #~ msgstr "Activar lo fondut" #~ msgid "Fading:" #~ msgstr "Fondut :" #~ msgid "Alarm:" #~ msgstr "Alarma :" #~ msgid "Alarm Days:" #~ msgstr "Jorns per l'alarma :" #~ msgid "Alarm Name:" #~ msgstr "Nom de l'alarma :" #~ msgid "Alarm Time:" #~ msgstr "Ora de l'Alarma :" #~ msgid "Maximum Volume:" #~ msgstr "Volum maximal :" #~ msgid "Name - Time" #~ msgstr "Nom - Temps" #~ msgid "Album Line:" #~ msgstr "Linha Album :" #~ msgid "On Track Change" #~ msgstr "Al cambiament de pista" #~ msgid "Artist Line:" #~ msgstr "Linha Artista :" #~ msgid "Secret Key:" #~ msgstr "Clau secreta :" #~ msgid "Both artist and album" #~ msgstr "Artista e album" #~ msgid "Summary" #~ msgstr "Resumit" #~ msgid "Save Location:" #~ msgstr "Emplaçament d'enregistrament :" #~ msgid "Terminal Opacity:" #~ msgstr "Opacitat del Terminal :" #~ msgid "No track" #~ msgstr "Pas cap de pista" #~ msgid "%(minutes)d:%(seconds)02d" #~ msgstr "%(minutes)d:%(seconds)02d" #~ msgid "Repeat playlist" #~ msgstr "Repetir la lista de lectura" #~ msgid "Window Height:" #~ msgstr "Nautor de la fenèstra :" #~ msgid "Window Width:" #~ msgstr "Largor de la fenèstra :" #~ msgid "Opacity Level:" #~ msgstr "Nivèl d'opacitat :" #~ msgid "Text Color" #~ msgstr "Color del tèxte" #~ msgid "Text Font:" #~ msgstr "Poliça del tèxte :" dist/copy/po/PaxHeaders.26361/mk.po0000644000175000017500000000012412233027260015406 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.017046929 exaile-3.3.2/po/mk.po0000644000000000000000000030200512233027260014346 0ustar00rootroot00000000000000# Macedonian translation for exaile # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2012-07-29 07:09+0000\n" "Last-Translator: Благој Најдов \n" "Language-Team: Macedonian \n" "Language: mk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n" "X-Launchpad-Export-Date: 2012-08-28 05:27+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "" #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "" #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "" #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "" #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "" #: ../xl/formatter.py:702 msgid "Today" msgstr "" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "Неуспешно мигрирање од 0.2.14" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "Опции" #: ../xl/main.py:421 msgid "Playback Options" msgstr "Плејбек Опции" #: ../xl/main.py:423 msgid "Play the next track" msgstr "Пушти ја следната песна" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "Пушти ја претходната песна" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "Стопирај плејбек" #: ../xl/main.py:429 msgid "Play" msgstr "Пушти" #: ../xl/main.py:431 msgid "Pause" msgstr "Пауза" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "Паузирај или продолжи плејбек" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "Сопри плејбек после тековната песна" #: ../xl/main.py:440 msgid "Collection Options" msgstr "" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "Додади песни од ЛОКАЦИЈА во колекцијата" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:454 msgid "Track Options" msgstr "" #: ../xl/main.py:456 msgid "Query player" msgstr "" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "Испечати го името на моменталната песна" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "Испечати го албумот на моменталната песна" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "Испечати го изведувачот на моменталната песна" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "Испечати ја должината на моменталната песна" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "" #: ../xl/main.py:490 msgid "Volume Options" msgstr "" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "" #: ../xl/main.py:507 msgid "Other Options" msgstr "Други опции" #: ../xl/main.py:509 msgid "Start new instance" msgstr "" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "" #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "" #: ../xl/main.py:536 msgid "Set data directory" msgstr "" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "" #: ../xl/main.py:543 msgid "LEVEL" msgstr "" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:555 msgid "TYPE" msgstr "" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "" #: ../xl/main.py:580 msgid "Entire Library" msgstr "Цела библиотека" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "Случаен %d" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "Рејтинг > %d" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "" #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "Разни изведувачи" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "Непозната" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr "" #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "" #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "Автоматски" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "Сопствено" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "" #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "" #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "" #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "" #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "M3U Плејлиста" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "PLS Плејлиста" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "" #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "ASX Плејлиста" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "XSPF Плејлиста" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "секунди" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "минути" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "часови" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "денови" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "недели" #: ../xl/lyrics.py:305 msgid "Local" msgstr "" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "Име:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "" #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr "" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "#" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "Број на песна" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "Наслов" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "Изведувач" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "Албум" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "Должина" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "Диск" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "Број на диск" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "Рејтинг" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "Датум" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "Жанр" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "Брзина на битови" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "Локација" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "Име на датотека" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "Бројач" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "Мешај" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "Повтори" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "Динамичко" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "Нова плејлиста" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "Преименувај" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "" #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "Не внесовте име на вашата плејлиста" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "" #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "Затвори јазиче" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "" #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "Отвори _URL" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "_Колони" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "" #: ../xlgui/properties.py:54 msgid "Website" msgstr "" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "" #: ../xlgui/properties.py:57 msgid "Author" msgstr "" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "Прикажи обвивка" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "Најди обвивка" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "Отстрани обвивка" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "" #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "" #: ../xlgui/devices.py:81 msgid "Device" msgstr "" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "Колекцијата се скенира..." #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "" #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "Избриши плејлиста" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "" "Дали сте сигурни дека сакате трајно да ја избришите селектираната плејлиста" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "Внесете го новото име за вашата плејлиста" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "Преименувај плејлиста" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "Отстрани" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "" #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "" #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "Освежи" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "Големина" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "и" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "е" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "не е" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "содржи" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "не содржи" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "најмалку" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "највеќе" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "пред" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "по" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "помеѓу" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "Година" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "Додатоци" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "" msgstr[1] "" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "Колекција" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "Плејлисти" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "Пребарувач на обвивки" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "_Датотека" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "_Уреди" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "_Поглед" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "_Алатки" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "_Помош" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "Претходна песна" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "Следна песна" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0:00 / 0:00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "Опис:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "Радио" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "Додади станица" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "Датотеки" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "Барање: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "" #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "Отвори ја последната плејлиста на старт" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "" #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "Инсталирани додатоци" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "Автори:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "Верзија:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "Инсталирај" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "Инсталирај надградби" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "Надградби" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "Икона во системската лента" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "Преференции" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "Тип на уред:" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "Пронајдени уреди:" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "" #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "" #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "" #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "" #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "" #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "Претходна" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "Следна" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "Стоп" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "" #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "" #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "" #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "" #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "" #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "Понеделник" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "Вторник" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "Среда" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "Четврток" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "Петок" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "Сабота" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "Недела" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "Лозинка:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "Корисничко име:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "Боја на позадина" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "Додади" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" #~ msgid "General" #~ msgstr "Општо" #~ msgid "Resizable" #~ msgstr "Со променлива големина" #~ msgid "Stopped" #~ msgstr "Стопирано" #~ msgid "Text Color" #~ msgstr "Боја на Текст" #~ msgid "_Close" #~ msgstr "_Затвори" #~ msgid "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgstr "" #~ "{наслов}\n" #~ "{артист}\n" #~ "{албум} - {времетраење}" #~ msgid "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "Year - Artist\n" #~ "Year - Album\n" #~ "Artist - Year - Album" #~ msgstr "" #~ "Артист\n" #~ "Албум\n" #~ "Жанр - Артист\n" #~ "Жанр - Албум\n" #~ "Година - Артист\n" #~ "Година - Албум\n" #~ "Артист - Година - Албум" #~ msgid "Autosize" #~ msgstr "Автоматска големина" #~ msgid "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgstr "" #~ "Постави го известувањето (OSD) на местото на кое што сакате да се " #~ "појави" #~ msgid "Display OSD when hovering over tray icon" #~ msgstr "" #~ "Прикажи го OSD при поминување над иконата во зоната за известување на " #~ "панелот" #~ msgid "New Search" #~ msgstr "Ново пребарување" #~ msgid "Add a directory" #~ msgstr "Додади директориум" #~ msgid "Toggle: Stop after selected track" #~ msgstr "Промени: Стоп по следната песна" #~ msgid "" #~ "Path is already in your collection, or is a subdirectory of another path " #~ "in your collection" #~ msgstr "" #~ "Патеката е веќе во вашата колекција, или е поддиректориум на патека која " #~ "е во вашата колекција" #~ msgid "Select File Type (By Extension)" #~ msgstr "Селектирај тип на датотека (по екстензија)" #~ msgid "File Type" #~ msgstr "Тип на датотека" #~ msgid "Extension" #~ msgstr "Наставка" #~ msgid "Export" #~ msgstr "Извези" #~ msgid "Add Playlist" #~ msgstr "Додади плејлиста" #~ msgid "Open" #~ msgstr "Отвори" #~ msgid "Choose a file" #~ msgstr "Одберете датотека" #~ msgid "Start" #~ msgstr "Старт" #~ msgid "No covers found" #~ msgstr "Не се најдени обвивки" #~ msgid "Enter the search text" #~ msgstr "Внесете го бараниот текст" #~ msgid "Quit" #~ msgstr "Излез" #~ msgid "Show OSD on track change" #~ msgstr "Прикажи OSD при промена песна" #~ msgid "Add device" #~ msgstr "Додади уред" #~ msgid "Exaile" #~ msgstr "Exaile" #~ msgid "Toggle Play or Pause" #~ msgstr "Префрли Пушти или Пауза" dist/copy/po/PaxHeaders.26361/kk.po0000644000175000017500000000012312233027260015403 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 29 ctime=1382821553.05304693 exaile-3.3.2/po/kk.po0000644000000000000000000026631112233027260014355 0ustar00rootroot00000000000000# Kazakh translation for exaile # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2009-08-24 22:41+0000\n" "Last-Translator: Adam Olsen \n" "Language-Team: Kazakh \n" "Language: kk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Launchpad-Export-Date: 2012-08-28 05:27+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "" msgstr[1] "" #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "" #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "" #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "" #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "" #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "" #: ../xl/formatter.py:702 msgid "Today" msgstr "" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "" #: ../xl/main.py:421 msgid "Playback Options" msgstr "" #: ../xl/main.py:423 msgid "Play the next track" msgstr "" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "" #: ../xl/main.py:429 msgid "Play" msgstr "" #: ../xl/main.py:431 msgid "Pause" msgstr "" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "" #: ../xl/main.py:440 msgid "Collection Options" msgstr "" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:454 msgid "Track Options" msgstr "" #: ../xl/main.py:456 msgid "Query player" msgstr "" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "" #: ../xl/main.py:490 msgid "Volume Options" msgstr "" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "" #: ../xl/main.py:507 msgid "Other Options" msgstr "" #: ../xl/main.py:509 msgid "Start new instance" msgstr "" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "" #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "" #: ../xl/main.py:536 msgid "Set data directory" msgstr "" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "" #: ../xl/main.py:543 msgid "LEVEL" msgstr "" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:555 msgid "TYPE" msgstr "" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "" #: ../xl/main.py:580 msgid "Entire Library" msgstr "" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "" #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr "" #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "" #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "" #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "" #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "" #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "" #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "" #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "" #: ../xl/lyrics.py:305 msgid "Local" msgstr "" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "" #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr "" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "" #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "" #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "" #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "" #: ../xlgui/properties.py:54 msgid "Website" msgstr "" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "" #: ../xlgui/properties.py:57 msgid "Author" msgstr "" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "" #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "" #: ../xlgui/devices.py:81 msgid "Device" msgstr "" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "" #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "" #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "" #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "" #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "" msgstr[1] "" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "" #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "" #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "" #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "" #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "" #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "" #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "" #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "" #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "" #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "" #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "" #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "" #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "" #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" #~ msgid "Playing %s" #~ msgstr "Ойналуда %s" dist/copy/po/PaxHeaders.26361/th.po0000644000175000017500000000012412233027260015412 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.397046941 exaile-3.3.2/po/th.po0000644000000000000000000030316512233027260014362 0ustar00rootroot00000000000000# Thai translation for exaile # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-08-25 20:55+0200\n" "PO-Revision-Date: 2010-11-04 05:14+0000\n" "Last-Translator: Pummarin Jomkoa \n" "Language-Team: Thai \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Launchpad-Export-Date: 2012-08-28 05:28+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "%d วัน " #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "%d ชั่วโมง " #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "%d นาที " #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d วินาที" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "" #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "" #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "" #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "" #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "" #: ../xl/formatter.py:690 ../xl/formatter.py:695 msgid "Never" msgstr "ไม่ต้องเลย" #: ../xl/formatter.py:701 msgid "Today" msgstr "วันนี้" #: ../xl/formatter.py:703 msgid "Yesterday" msgstr "เมื่อวาน" #: ../xl/main.py:191 msgid "Failed to migrate from 0.2.14" msgstr "" #: ../xl/main.py:406 msgid "Usage: exaile [OPTION]... [URI]" msgstr "" #: ../xl/main.py:407 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "ตัวเลือก" #: ../xl/main.py:411 msgid "Playback Options" msgstr "ปรับตั้งค่าการเล่น" #: ../xl/main.py:413 msgid "Play the next track" msgstr "เล่นเพลงต่อไป" #: ../xl/main.py:415 msgid "Play the previous track" msgstr "เล่นเพลงก่อนหน้า" #: ../xl/main.py:417 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "หยุดเล่นสื่อ" #: ../xl/main.py:419 msgid "Play" msgstr "เล่น" #: ../xl/main.py:421 msgid "Pause" msgstr "" #: ../xl/main.py:424 msgid "Pause or resume playback" msgstr "หยุดหรือเล่นเพลง" #: ../xl/main.py:427 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "หยุดการเล่นหลังจากเพลงปัจจุบัน" #: ../xl/main.py:430 msgid "Collection Options" msgstr "ตัวเลือกแหล่งสะสม" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:433 ../xl/main.py:440 msgid "LOCATION" msgstr "ตำแหน่ง" #: ../xl/main.py:433 msgid "Add tracks from LOCATION to the collection" msgstr "เพิ่มเพลงจากตำแหน่งที่เลือกไปยังแหล่งรวบรวม" #: ../xl/main.py:437 msgid "Playlist Options" msgstr "" #: ../xl/main.py:441 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:444 msgid "Track Options" msgstr "ตัวเลือกแทร็ค" #: ../xl/main.py:446 msgid "Query player" msgstr "" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:449 msgid "FORMAT" msgstr "" #: ../xl/main.py:450 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:453 msgid "TAGS" msgstr "" #: ../xl/main.py:454 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:457 msgid "Show a popup with data of the current track" msgstr "แสดงป็อปอัพด้วยข้อมูลแทร็คปัจจุบัน" #: ../xl/main.py:459 msgid "Print the title of current track" msgstr "แสดงชื่อของเพลงที่เล่นอยู่" #: ../xl/main.py:461 msgid "Print the album of current track" msgstr "แสดงอัลบั้มของเพลงที่เล่นอยู่" #: ../xl/main.py:463 msgid "Print the artist of current track" msgstr "แสดงชื่อนักร้องของเพลงที่เล่นอยู่" #: ../xl/main.py:465 msgid "Print the length of current track" msgstr "แสดงความยาวของเพลงที่เล่นอยู่" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:468 ../xl/main.py:483 ../xl/main.py:487 msgid "N" msgstr "" #: ../xl/main.py:469 msgid "Set rating for current track to N%" msgstr "ให้คะแนนเพลงปัจจุบันเท่ากับ N%" #: ../xl/main.py:471 msgid "Get rating for current track" msgstr "ด" #: ../xl/main.py:474 msgid "Print the current playback position as time" msgstr "แสดงตำแหน่งของการเล่นเพลงปัจจุบันเป็นเวลา" #: ../xl/main.py:476 msgid "Print the current playback progress as percentage" msgstr "แสดงตำแหน่งของการเล่นเพลงปัจจุบันเป็นเปอร์เซ็นต์" #: ../xl/main.py:480 msgid "Volume Options" msgstr "ตั้งค่าระดับเสียง" #: ../xl/main.py:484 msgid "Increases the volume by N%" msgstr "เพิ่มระดับเสียงเป็น N%" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:489 msgid "Decreases the volume by N%" msgstr "ลดระดับเสียงเป็น N%" #: ../xl/main.py:492 msgid "Mutes or unmutes the volume" msgstr "เปิด/ปิด ระดับเสียง" #: ../xl/main.py:494 msgid "Print the current volume percentage" msgstr "แสดงค่าความดังเสียงเป็นเปอร์เซนต์" #: ../xl/main.py:497 msgid "Other Options" msgstr "ตัวเลือกอื่น ๆ" #: ../xl/main.py:499 msgid "Start new instance" msgstr "" #: ../xl/main.py:501 msgid "Show this help message and exit" msgstr "แสดงข้อความช่วยเหลือนี้และออก" #: ../xl/main.py:503 msgid "Show program's version number and exit." msgstr "แสดงรุ่นของโปรแกรมและออก" #: ../xl/main.py:506 msgid "Start minimized (to tray, if possible)" msgstr "ย่อขนาดโปรแกรมไปอยู่ที่กระบะของระบบ(ถ้าเป็นไปได้)" #: ../xl/main.py:509 msgid "Toggle visibility of the GUI (if possible)" msgstr "" #: ../xl/main.py:511 msgid "" "Start in safe mode - sometimes useful when you're running into problems" msgstr "" #: ../xl/main.py:514 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" #: ../xl/main.py:517 msgid "Do not import old data from version 0.2.x" msgstr "ไม่นำเข้าข้อมูลเก่าจากเวอร์ชัน 0.2.x" #: ../xl/main.py:520 msgid "Make control options like --play start Exaile if it is not running" msgstr "" #: ../xl/main.py:524 msgid "Development/Debug Options" msgstr "" #: ../xl/main.py:526 ../xl/main.py:528 msgid "DIRECTORY" msgstr "ไดเร็กทอรี" #: ../xl/main.py:526 msgid "Set data directory" msgstr "กำหนดไดเร็กทอรีของข้อมูล" #: ../xl/main.py:528 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:530 msgid "MODULE" msgstr "โมดูล" #: ../xl/main.py:531 msgid "Limit log output to MODULE" msgstr "" #: ../xl/main.py:533 msgid "LEVEL" msgstr "ระดับ" #: ../xl/main.py:534 msgid "Limit log output to LEVEL" msgstr "" #: ../xl/main.py:537 msgid "Show debugging output" msgstr "" #: ../xl/main.py:539 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "" #: ../xl/main.py:542 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:545 msgid "TYPE" msgstr "ชนิด" #: ../xl/main.py:546 msgid "Limit xl.event debug to output of TYPE" msgstr "" #: ../xl/main.py:548 msgid "Reduce level of output" msgstr "" #: ../xl/main.py:552 msgid "Disable D-Bus support" msgstr "" #: ../xl/main.py:554 msgid "Disable HAL support." msgstr "ปิดการรองรับ HAL" #: ../xl/main.py:570 msgid "Entire Library" msgstr "" #: ../xl/main.py:576 #, python-format msgid "Random %d" msgstr "สุ่ม %d" #: ../xl/main.py:584 #, python-format msgid "Rating > %d" msgstr "ความนิยม > %d" #: ../xl/main.py:685 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "" #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "" #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "" #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "" #: ../xl/trax/trackdb.py:246 msgid "You did not specify a location to save the db" msgstr "" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "ไม่ทราบ" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr "" #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "" #: ../xl/player/pipe.py:309 ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Automatic" msgstr "อัตโนมัติ" #: ../xl/player/pipe.py:345 ../data/ui/preferences/playback.ui.h:21 #: ../plugins/previewdevice/previewprefs.ui.h:16 msgid "Custom" msgstr "กำหนดเอง" #: ../xl/player/pipe.py:400 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "ไม่ได้เล่นอยู่" #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "" #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "" #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "" #: ../xl/playlist.py:173 msgid "Playlist" msgstr "" #: ../xl/playlist.py:279 ../xlgui/oldmenu.py:269 msgid "M3U Playlist" msgstr "" #: ../xl/playlist.py:379 ../xlgui/oldmenu.py:270 msgid "PLS Playlist" msgstr "" #: ../xl/playlist.py:472 ../xl/playlist.py:488 #, python-format msgid "Invalid format for %s." msgstr "ไม่สามารถอ่านชนิดของ %s" #: ../xl/playlist.py:483 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "รุ่น%(version)s ไม่รองรับสำหรับ %(type)s" #: ../xl/playlist.py:543 ../xlgui/oldmenu.py:271 msgid "ASX Playlist" msgstr "" #: ../xl/playlist.py:714 ../xlgui/oldmenu.py:272 msgid "XSPF Playlist" msgstr "" #: ../xl/playlist.py:829 msgid "Shuffle _Off" msgstr "สุ่ม _ปิด" #: ../xl/playlist.py:830 msgid "Shuffle _Tracks" msgstr "สุ่ม แ_ทร็ค" #: ../xl/playlist.py:830 msgid "Shuffle _Albums" msgstr "สุ่ม _อัลบั้ม" #: ../xl/playlist.py:834 msgid "Repeat _Off" msgstr "สุ่ม _ปิด" #: ../xl/playlist.py:834 msgid "Repeat _All" msgstr "สุ่ม _ทั้งหมด" #: ../xl/playlist.py:834 msgid "Repeat O_ne" msgstr "สุ่ม เ_พลงเดียว" #: ../xl/playlist.py:838 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:838 msgid "Dynamic by Similar _Artists" msgstr "" #: ../xl/playlist.py:1779 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "" #: ../xl/playlist.py:1780 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "นาที" #: ../xl/playlist.py:1781 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "ชั่วโมง" #: ../xl/playlist.py:1782 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "วัน" #: ../xl/playlist.py:1783 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "สัปดาห์" #: ../xl/lyrics.py:305 msgid "Local" msgstr "" #: ../xlgui/widgets/menuitems.py:93 msgid "Enqueue" msgstr "" #: ../xlgui/widgets/menuitems.py:115 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "" #: ../xlgui/widgets/menuitems.py:119 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "" #: ../xlgui/widgets/menuitems.py:129 ../xlgui/widgets/playlist.py:309 #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "คุณสมบัติ" #: ../xlgui/widgets/menuitems.py:142 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "เปิดตำแหน่งไฟล์" #: ../xlgui/widgets/menuitems.py:164 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "ไฟล์ไม่สามารถย้ายลงถังขยะ ลบไฟล์นี้เลยหรือไม่?" #: ../xlgui/widgets/menuitems.py:179 msgid "Move to Trash" msgstr "ย้ายลงถังขยะ" #: ../xlgui/widgets/menuitems.py:190 msgid "_Show Playing Track" msgstr "" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "ชื่อ:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "ตรงกับผลลัพธ์ทุกอย่าง" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "" #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr "" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "ไม่ได้เล่นอยู่" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "ย้าย" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "" #: ../xlgui/widgets/queue.py:41 ../xlgui/widgets/playlist.py:208 #: ../xlgui/playlist.py:130 msgid "Clear" msgstr "ล้าง" #: ../xlgui/widgets/queue.py:44 ../xlgui/widgets/playlist.py:211 #: ../plugins/history/__init__.py:239 msgid "Close" msgstr "ปิด" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:204 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "" #: ../xlgui/widgets/playlist_columns.py:205 msgid "Track Number" msgstr "" #: ../xlgui/widgets/playlist_columns.py:212 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "" #: ../xlgui/widgets/playlist_columns.py:219 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:171 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "" #: ../xlgui/widgets/playlist_columns.py:226 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "" #: ../xlgui/widgets/playlist_columns.py:233 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:174 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "อัลบั้ม" #: ../xlgui/widgets/playlist_columns.py:240 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "ความยาว" #: ../xlgui/widgets/playlist_columns.py:247 ../xlgui/properties.py:75 msgid "Disc" msgstr "แผ่นที่" #: ../xlgui/widgets/playlist_columns.py:248 msgid "Disc Number" msgstr "" #: ../xlgui/widgets/playlist_columns.py:255 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "การจัดอันดับ" #: ../xlgui/widgets/playlist_columns.py:299 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "วันที่" #: ../xlgui/widgets/playlist_columns.py:305 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "แนวเพลง" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "" #: ../xlgui/widgets/playlist_columns.py:319 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "ตำแหน่ง" #: ../xlgui/widgets/playlist_columns.py:326 ../xlgui/panel/files.py:147 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "ชื่อไฟล์" #: ../xlgui/widgets/playlist_columns.py:333 msgid "Playcount" msgstr "" #: ../xlgui/widgets/playlist_columns.py:340 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "จังหวะต่อนาที" #: ../xlgui/widgets/playlist_columns.py:347 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "เล่นครั้งล่าสุด" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "วันที่ถูกเพิ่มเข้ามา" #: ../xlgui/widgets/playlist_columns.py:359 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:478 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:487 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:606 msgid "_Resizable" msgstr "" #: ../xlgui/widgets/playlist_columns.py:611 msgid "_Autosize" msgstr "" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "" #: ../xlgui/widgets/playlist.py:126 msgid "Shuffle" msgstr "สุ่ม" #: ../xlgui/widgets/playlist.py:130 msgid "Repeat" msgstr "เล่นวนซ้ำ" #: ../xlgui/widgets/playlist.py:134 msgid "Dynamic" msgstr "" #: ../xlgui/widgets/playlist.py:149 msgid "Remove Current Track From Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:179 msgid "Randomize Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:203 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "เปลี่ยนชื่อ" #: ../xlgui/widgets/playlist.py:246 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:253 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:302 ../xlgui/oldmenu.py:352 #: ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "เอาออก" #: ../xlgui/widgets/playlist.py:499 msgid "Requires plugins providing dynamic playlists" msgstr "" #: ../xlgui/widgets/playlist.py:503 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "เปิด URL" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "ปิด %s" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "" #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/notebook.py:136 msgid "Close tab" msgstr "ปิดแท็บ" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "" #: ../xlgui/main.py:463 msgid "Toggle: Stop after Selected Track" msgstr "" #: ../xlgui/main.py:566 ../plugins/previewdevice/__init__.py:354 msgid "Playback error encountered!" msgstr "" #: ../xlgui/main.py:573 #, python-format msgid "Buffering: %d%%..." msgstr "กำลังโหลด: %d%%..." #: ../xlgui/main.py:625 ../plugins/previewdevice/__init__.py:365 msgid "Continue Playback" msgstr "เล่นต่อ" #: ../xlgui/main.py:629 ../xlgui/main.py:817 #: ../plugins/previewdevice/__init__.py:336 #: ../plugins/previewdevice/__init__.py:369 msgid "Pause Playback" msgstr "หยุดเล่นชั่วคราว" #: ../xlgui/main.py:771 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "" #: ../xlgui/main.py:829 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:347 msgid "Start Playback" msgstr "เริ่มเล่น" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "เปิด _URL" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "" #: ../xlgui/menu.py:115 msgid "Close Tab" msgstr "ปิดแท็บ" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "เปิดใหม่อีกครั้ง" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "ยกเลิก" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "" #: ../xlgui/properties.py:54 msgid "Website" msgstr "เว็บไซต์" #: ../xlgui/properties.py:55 ../xlgui/cover.py:777 msgid "Cover" msgstr "ปกอัลบั้ม" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "" #: ../xlgui/properties.py:57 msgid "Author" msgstr "ผู้แต่ง" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "เวลาต้นฉบับ" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "ลิขสิทธิ์" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "แทร็ค" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "รุ่น" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1096 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "" #: ../xlgui/cover.py:111 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:112 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:137 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:477 msgid "Show Cover" msgstr "แสดงปกอัลบั้ม" #: ../xlgui/cover.py:478 msgid "Fetch Cover" msgstr "โหลดปกอัลบั้ม" #: ../xlgui/cover.py:479 msgid "Remove Cover" msgstr "ลบปกอัลบั้ม" #: ../xlgui/cover.py:779 #, python-format msgid "Cover for %s" msgstr "" #: ../xlgui/cover.py:949 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "" #: ../xlgui/cover.py:982 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1054 msgid "No covers found." msgstr "ไม่พบปกอัลบั้ม" #: ../xlgui/cover.py:1055 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "" #: ../xlgui/devices.py:81 msgid "Device" msgstr "" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "" #: ../xlgui/__init__.py:289 msgid "Scanning collection..." msgstr "" #: ../xlgui/__init__.py:373 #, python-format msgid "Scanning %s..." msgstr "กำลังค้นหา %s..." #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "สถานีใหม่" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "แก้ไข" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "" #: ../xlgui/oldmenu.py:264 msgid "Export as..." msgstr "ส่งออกเป็น..." #: ../xlgui/oldmenu.py:289 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:299 ../xlgui/panel/playlists.py:1197 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "" #: ../xlgui/oldmenu.py:312 msgid "Enter the new name you want for your playlist" msgstr "" #: ../xlgui/oldmenu.py:313 msgid "Rename Playlist" msgstr "" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "" #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "" #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "" #: ../xlgui/panel/collection.py:177 msgid "Genre - Artist" msgstr "" #: ../xlgui/panel/collection.py:180 msgid "Genre - Album" msgstr "" #: ../xlgui/panel/collection.py:183 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:186 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:189 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:312 msgid "Rescan Collection" msgstr "" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:171 msgid "Size" msgstr "" #: ../xlgui/panel/files.py:433 #, python-format msgid "%d KB" msgstr "" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "และ" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "ไม่ใช่" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "ก่อน" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "หลัง" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "ระหว่าง" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "มากกว่า" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "น้อยกว่า" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "ปี" #: ../xlgui/panel/playlists.py:276 msgid "Playlist name:" msgstr "" #: ../xlgui/panel/playlists.py:277 msgid "Add new playlist..." msgstr "" #: ../xlgui/panel/playlists.py:286 ../xlgui/panel/playlists.py:768 #: ../xlgui/panel/playlists.py:851 msgid "You did not enter a name for your playlist" msgstr "" #: ../xlgui/panel/playlists.py:289 ../xlgui/panel/playlists.py:349 #: ../xlgui/panel/playlists.py:774 ../xlgui/panel/playlists.py:858 msgid "The playlist name you entered is already in use." msgstr "" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:443 ../xlgui/panel/playlists.py:457 #: ../xlgui/panel/playlists.py:471 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:448 ../xlgui/panel/playlists.py:462 #: ../xlgui/panel/playlists.py:476 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:688 msgid "Smart Playlists" msgstr "" #: ../xlgui/panel/playlists.py:691 msgid "Custom Playlists" msgstr "" #: ../xlgui/panel/playlists.py:746 msgid "Add Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:821 msgid "Edit Smart Playlist" msgstr "" #: ../xlgui/panel/playlists.py:1144 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "การเล่น" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "ปลั๊กอิน" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "" msgstr[1] "" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "ปกอัลบั้ม" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "รูปโฉม" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "เปิด Exaile ใหม่อีกครั้งหรือไม่?" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "ทางลัด" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2010" msgstr "" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "" #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "" #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "" #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "GNOME" msgstr "" #: ../data/ui/preferences/playback.ui.h:16 #: ../plugins/previewdevice/previewprefs.ui.h:11 msgid "ALSA" msgstr "" #: ../data/ui/preferences/playback.ui.h:17 #: ../plugins/previewdevice/previewprefs.ui.h:12 msgid "OSS" msgstr "" #: ../data/ui/preferences/playback.ui.h:18 #: ../plugins/previewdevice/previewprefs.ui.h:13 msgid "PulseAudio" msgstr "" #: ../data/ui/preferences/playback.ui.h:19 #: ../plugins/previewdevice/previewprefs.ui.h:14 msgid "JACK" msgstr "" #: ../data/ui/preferences/playback.ui.h:20 #: ../plugins/previewdevice/previewprefs.ui.h:15 msgid "DirectSound" msgstr "" #: ../data/ui/preferences/playback.ui.h:22 #: ../plugins/previewdevice/previewprefs.ui.h:17 msgid "Normal" msgstr "" #: ../data/ui/preferences/playback.ui.h:23 #: ../plugins/previewdevice/previewprefs.ui.h:18 msgid "Unified (unstable)" msgstr "" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Always show tab bar" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Tab placement:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:6 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:9 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "Show tray icon" msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Minimize to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:15 msgid "Jump to current song on track change" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Show splash screen on startup" msgstr "" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Left" msgstr "" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Right" msgstr "" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Top" msgstr "" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Bottom" msgstr "" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "" #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "" #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "" #: ../plugins/streamripper/__init__.py:64 msgid "Error executing streamripper" msgstr "" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:185 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:204 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/awn/awn_prefs.py:32 msgid "AWN" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "" #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "" #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:155 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:161 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "" #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:130 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:95 #: ../plugins/grouptagger/__init__.py:112 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:106 #: ../plugins/grouptagger/gt_widgets.py:688 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:117 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:121 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:652 #: ../plugins/grouptagger/gt_widgets.py:753 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:512 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:709 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:735 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:746 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:746 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:746 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:746 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:754 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "" #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:356 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "" #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "" #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "" #: ../plugins/contextinfo/__init__.py:1127 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "" #: ../plugins/bpm/__init__.py:78 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:238 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "" #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "" #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 msgid "API Key:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgctxt "yes" msgid "Monday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgctxt "yes" msgid "Tuesday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgctxt "yes" msgid "Wednesday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgctxt "yes" msgid "Thursday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgctxt "yes" msgid "Friday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgctxt "yes" msgid "Saturday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgctxt "yes" msgid "Sunday" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgctxt "yes" msgid "Use Fading" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgctxt "yes" msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgctxt "yes" msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgctxt "yes" msgid "Increment:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgctxt "yes" msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by " "\"Unknown\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango" " Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret key:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon.com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "" #: ../plugins/awn/PLUGININFO:3 msgid "Awn" msgstr "" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is " "played/resumed/stopped, with either the song cover or a media icon to " "indicate the latest action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides contextual wikipedia information.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" #~ msgid "Start" #~ msgstr "เริ่ม" #~ msgid "File Type" #~ msgstr "ชนิดของไฟล์" #~ msgid "Extension" #~ msgstr "ส่วนเสริม" #~ msgid "Export" #~ msgstr "ส่งออก" #~ msgid "No track" #~ msgstr "ไม่มีแทร็ค" dist/copy/po/PaxHeaders.26361/en_AU.po0000644000175000017500000000012312233027260015765 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 29 ctime=1382821553.36904694 exaile-3.3.2/po/en_AU.po0000644000000000000000000037413012233027260014736 0ustar00rootroot00000000000000# English (Australia) translation for exaile # Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2012. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2013-07-06 09:04+0000\n" "Last-Translator: Jackson Doak \n" "Language-Team: English (Australia) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2013-10-22 05:14+0000\n" "X-Generator: Launchpad (build 16807)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "%d day, " msgstr[1] "%d days, " #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "%d hour, " msgstr[1] "%d hours, " #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "%d minute, " msgstr[1] "%d minutes, " #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "%d second" msgstr[1] "%d seconds" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "%dd, " #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "%dh, " #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "%dm, " #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "%ds" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "%dd " #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "%d:%02d:%02d" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "%d:%02d" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 #: ../xl/formatter.py:696 msgid "Never" msgstr "Never" #: ../xl/formatter.py:702 msgid "Today" msgstr "Today" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "Yesterday" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "Failed to migrate from 0.2.14" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "Usage: exaile [OPTION]... [URI]" #: ../xl/main.py:417 #: ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "Options" #: ../xl/main.py:421 msgid "Playback Options" msgstr "Playback Options" #: ../xl/main.py:423 msgid "Play the next track" msgstr "Play the next track" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "Play the previous track" #: ../xl/main.py:427 #: ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "Stop playback" #: ../xl/main.py:429 msgid "Play" msgstr "Play" #: ../xl/main.py:431 msgid "Pause" msgstr "Pause" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "Pause or resume playback" #: ../xl/main.py:437 #: ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "Stop playback after current track" #: ../xl/main.py:440 msgid "Collection Options" msgstr "Collection Options" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 #: ../xl/main.py:450 msgid "LOCATION" msgstr "LOCATION" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "Add tracks from LOCATION to the collection" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "Playlist Options" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "Exports the current playlist to LOCATION" #: ../xl/main.py:454 msgid "Track Options" msgstr "Track Options" #: ../xl/main.py:456 msgid "Query player" msgstr "Query player" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "FORMAT" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "Retrieves the current playback state and track information as FORMAT" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "TAGS" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "TAGS to retrieve from the current track, use with --format-query" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "Show a popup with data of the current track" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "Print the title of current track" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "Print the album of current track" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "Print the artist of current track" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "Print the length of current track" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 #: ../xl/main.py:493 #: ../xl/main.py:497 msgid "N" msgstr "N" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "Set rating for current track to N%" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "Get rating for current track" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "Print the current playback position as time" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "Print the current playback progress as percentage" #: ../xl/main.py:490 msgid "Volume Options" msgstr "Volume Options" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "Increases the volume by N%" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "Decreases the volume by N%" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "Mutes or unmutes the volume" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "Print the current volume percentage" #: ../xl/main.py:507 msgid "Other Options" msgstr "Other Options" #: ../xl/main.py:509 msgid "Start new instance" msgstr "Start new instance" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "Show this help message and exit" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "Show program's version number and exit." #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "Start minimised (to tray, if possible)" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "Toggle visibility of the GUI (if possible)" #: ../xl/main.py:521 msgid "" "Start in safe mode - sometimes useful when you're running into problems" msgstr "" "Start in safe mode - sometimes useful when you're running into problems" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" "Force import of old data from version 0.2.x (Overwrites current data)" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "Do not import old data from version 0.2.x" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "Make control options like --play start Exaile if it is not running" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "Development/Debug Options" #: ../xl/main.py:536 #: ../xl/main.py:538 msgid "DIRECTORY" msgstr "DIRECTORY" #: ../xl/main.py:536 msgid "Set data directory" msgstr "Set data directory" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "Set data and config directory" #: ../xl/main.py:540 msgid "MODULE" msgstr "MODULE" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "Limit log output to MODULE" #: ../xl/main.py:543 msgid "LEVEL" msgstr "LEVEL" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "Limit log output to LEVEL" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "Show debugging output" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "Enable debugging of xl.event. Generates LOTS of output" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "Add thread name to logging messages." #: ../xl/main.py:555 msgid "TYPE" msgstr "TYPE" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "Limit xl.event debug to output of TYPE" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "Reduce level of output" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "Disable D-Bus support" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "Disable HAL support." #: ../xl/main.py:580 msgid "Entire Library" msgstr "Entire Library" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "Random %d" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "Rating > %d" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" #: ../xl/covers.py:466 #: ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "Tags" #: ../xl/covers.py:505 msgid "Local file" msgstr "Local file" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "Plugin archive is not in the correct format." #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "A plugin with the name \"%s\" is already installed." #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "Plugin archive contains an unsafe path." #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "You did not specify a location to load the db from" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "You did not specify a location to save the db" #: ../xl/trax/track.py:65 #: ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "Various Artists" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 #: ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "Unknown" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr " / " #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 #: ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "%dk" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "A very fast Free lossless audio format with good compression." #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "Automatic" #: ../xl/player/pipe.py:340 #: ../xl/player/pipe.py:365 #: ../xl/player/pipe.py:386 msgid "Custom" msgstr "Custom" #: ../xl/player/pipe.py:441 #: ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "Auto" #: ../xl/xldbus.py:117 #: ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "Not playing." #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "Settings version is newer than current." #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "Error storing setting: " #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "Error reading setting" #: ../xl/playlist.py:152 #: ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "Invalid playlist type." #: ../xl/playlist.py:173 #: ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "Playlist" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "M3U Playlist" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "PLS Playlist" #: ../xl/playlist.py:517 #: ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "Invalid format for %s." #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "Unsupported version %(version)s for %(type)s" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "ASX Playlist" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "XSPF Playlist" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "Shuffle _Off" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "Shuffle _Tracks" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "Shuffle _Albums" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "Repeat _Off" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "Repeat _All" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "Repeat O_ne" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "Dynamic _Off" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "Dynamic by Similar _Artists" #: ../xl/playlist.py:1824 #: ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 #: ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "seconds" #: ../xl/playlist.py:1825 #: ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "minutes" #: ../xl/playlist.py:1826 #: ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "hours" #: ../xl/playlist.py:1827 #: ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "days" #: ../xl/playlist.py:1828 #: ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "weeks" #: ../xl/lyrics.py:305 msgid "Local" msgstr "Local" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "Enqueue" #: ../xlgui/widgets/menuitems.py:118 #: ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "Replace Current" #: ../xlgui/widgets/menuitems.py:122 #: ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "Append to Current" #: ../xlgui/widgets/menuitems.py:145 #: ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "Open Directory" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "Move to Rubbish Bin" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "_Show Playing Track" #: ../xlgui/widgets/filter.py:62 #: ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "Name:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "Match any of the criteria" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "Randomise results" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "Limit to: " #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr " tracks" #: ../xlgui/widgets/playback.py:95 #: ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "Not Playing" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "Seeking: %s" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "Move" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "New Marker" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "Muted" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "%d%%" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "Full Volume" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" "$title\n" "by $artist\n" "from $album" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "Various" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "%(track_count)d in total (%(total_duration)s)" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "%d in collection" #: ../xlgui/widgets/info.py:624 #: ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "%d showing" #: ../xlgui/widgets/info.py:628 #: ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "%d selected" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "Queue" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "Queue (%d)" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 #: ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "#" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "Track Number" #: ../xlgui/widgets/playlist_columns.py:225 #: ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 #: ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 #: ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "Title" #: ../xlgui/widgets/playlist_columns.py:232 #: ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 #: ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 #: ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "Artist" #: ../xlgui/widgets/playlist_columns.py:239 #: ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 #: ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "Composer" #: ../xlgui/widgets/playlist_columns.py:246 #: ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 #: ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 #: ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "Album" #: ../xlgui/widgets/playlist_columns.py:253 #: ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 #: ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "Length" #: ../xlgui/widgets/playlist_columns.py:260 #: ../xlgui/properties.py:75 msgid "Disc" msgstr "Disc" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "Disc Number" #: ../xlgui/widgets/playlist_columns.py:268 #: ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 #: ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "Rating" #: ../xlgui/widgets/playlist_columns.py:312 #: ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "Date" #: ../xlgui/widgets/playlist_columns.py:318 #: ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 #: ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "Genre" #: ../xlgui/widgets/playlist_columns.py:325 #: ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "Bitrate" #: ../xlgui/widgets/playlist_columns.py:332 #: ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 #: ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "Location" #: ../xlgui/widgets/playlist_columns.py:339 #: ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "Filename" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "Playcount" #: ../xlgui/widgets/playlist_columns.py:353 #: ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 #: ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "BPM" #: ../xlgui/widgets/playlist_columns.py:360 #: ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 #: ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "Last played" #: ../xlgui/widgets/playlist_columns.py:366 #: ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "Date added" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "Schedule" #: ../xlgui/widgets/playlist_columns.py:491 #: ../xlgui/properties.py:77 msgid "Comment" msgstr "Comment" #: ../xlgui/widgets/playlist_columns.py:500 #: ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "Grouping" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "_Resizable" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "_Autosize" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "Rating:" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "Shuffle" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "Repeat" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "Dynamic" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "Remove Current Track From Playlist" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "Randomise Playlist" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "Randomise Selection" #: ../xlgui/widgets/playlist.py:206 #: ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 #: ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "New Playlist" #: ../xlgui/widgets/playlist.py:226 #: ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "Rename" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "Stop Playback After This Track" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "Continue Playback After This Track" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "Requires plug-ins providing dynamic playlists" #: ../xlgui/widgets/playlist.py:538 #: ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "Dynamically add similar tracks to the playlist" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "Enter the URL to open" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "Open URL" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "Select File Type (by Extension)" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "Choose Media to Open" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "Supported Files" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "Music Files" #: ../xlgui/widgets/dialogs.py:623 #: ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "Playlist Files" #: ../xlgui/widgets/dialogs.py:625 #: ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "All Files" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "Choose Directory to Open" #: ../xlgui/widgets/dialogs.py:770 #: ../xlgui/menu.py:87 #: ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "Import Playlist" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "Export Current Playlist" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "Use relative paths to tracks" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "Playlist saved as %s." #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "Close %s" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "Save changes to %s before closing?" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "Your changes will be lost if you don't save them" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "Close Without Saving" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "Yes to all" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "No to all" #: ../xlgui/widgets/dialogs.py:1336 #: ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "Saved %(count)s of %(total)s." #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "Error occurred while copying %s: %s" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "File exists, overwrite %s ?" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "Playlist name:" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "Add new playlist..." #: ../xlgui/widgets/dialogs.py:1526 #: ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "You did not enter a name for your playlist" #: ../xlgui/widgets/dialogs.py:1529 #: ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 #: ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "The playlist name you entered is already in use." #: ../xlgui/widgets/notebook.py:146 #: ../xlgui/menu.py:115 msgid "Close Tab" msgstr "Close Tab" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "$title (by $artist)" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "Toggle: Stop after Selected Track" #: ../xlgui/main.py:569 #: ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "Playback error encountered!" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "Buffering: %d%%..." #: ../xlgui/main.py:628 #: ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "Continue Playback" #: ../xlgui/main.py:632 #: ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "Pause Playback" #: ../xlgui/main.py:774 #: ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "Playlist export failed!" #: ../xlgui/main.py:832 #: ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "Start Playback" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "Exaile Music Player" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "_New Playlist" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "Open _URL" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "Open Directories" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "_Export Current Playlist" #: ../xlgui/menu.py:124 #: ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "Restart" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "_Collection" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "_Queue" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "C_overs" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "_Playlist Utilities Bar" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "_Columns" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "C_lear playlist" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "_Device Manager" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "Re_scan Collection" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "Track _Properties" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "Cancel" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "Original album" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "Lyricist" #: ../xlgui/properties.py:54 msgid "Website" msgstr "Website" #: ../xlgui/properties.py:55 #: ../xlgui/cover.py:793 msgid "Cover" msgstr "Cover" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "Original artist" #: ../xlgui/properties.py:57 msgid "Author" msgstr "Author" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "Original date" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "Arranger" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "Conductor" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "Performer" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "Copyright" #: ../xlgui/properties.py:66 #: ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 #: ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "Lyrics" #: ../xlgui/properties.py:67 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "Track" #: ../xlgui/properties.py:68 #: ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "Version" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "ISRC" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "Encoded by" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "Organisation" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "Modified" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "Times played" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "Editing track %(current)d of %(total)d" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "of:" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 #: ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "Apply current value to all tracks" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "Show Cover" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "Fetch Cover" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "Remove Cover" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "Cover for %s" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "Cover options for %(artist)s - %(album)s" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "No covers found." #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "Icon" #: ../xlgui/devices.py:81 msgid "Device" msgstr "Device" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "Driver" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "Scanning collection..." #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "Scanning %s..." #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "Toggle Queue" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "Queue Items" #: ../xlgui/oldmenu.py:121 #: ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "Properties" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "New Station" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "New Smart Playlist" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "Edit" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "Delete Playlist" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 #: ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "Are you sure you want to permanently delete the selected playlist?" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "Enter the new name you want for your playlist" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "Rename Playlist" #: ../xlgui/oldmenu.py:331 #: ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "Remove" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "Playlist %d" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "Add a Directory" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "Directory not added." #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "Transferring to %s..." #: ../xlgui/panel/radio.py:126 #: ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "Loading streams..." #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "Add Radio Station" #: ../xlgui/panel/radio.py:201 #: ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "URL:" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "Saved Stations" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "Radio Streams" #: ../xlgui/panel/radio.py:304 #: ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "Refresh" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "Enter the name you want for your new playlist" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "Genre - Artist" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "Genre - Album" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "Re-scan Collection" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "Size" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s kB" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "and" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "is" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "is not" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "contains" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "does not contain" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "at least" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "at most" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "before" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "after" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "between" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "greater than" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "less than" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "in the last" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "not in the last" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "Plays" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "Year" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 #: ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "%(first)s, %(second)s and others" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 #: ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "%(first)s and %(second)s" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "Smart Playlists" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "Custom Playlists" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "Add Smart Playlist" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "Edit Smart Playlist" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "Playback" #: ../xlgui/preferences/plugin.py:40 #: ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "Plug-ins" #: ../xlgui/preferences/plugin.py:92 #: ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "Uncategorised" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "Could not load plugin info!" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "Failed plugin: %s" msgstr[1] "Failed plugins: %s" #: ../xlgui/preferences/plugin.py:167 #: ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "Could not disable plugin!" #: ../xlgui/preferences/plugin.py:177 #: ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "Could not enable plugin!" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "Choose a Plug-in" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "Plug-in Archives" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "Plugin file installation failed!" #: ../xlgui/preferences/cover.py:38 #: ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 #: ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "Covers" #: ../xlgui/preferences/appearance.py:34 #: ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "Appearance" #: ../xlgui/preferences/collection.py:23 #: ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "Collection" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "the" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "Reset to Defaults" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "Restart Exaile?" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "A restart is required for this change to take effect." #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "Action" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "Shortcut" #: ../xlgui/preferences/playlists.py:34 #: ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "Playlists" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "About Exaile" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "Cover Manager" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "Shuffle playback order" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "Repeat playback" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "Cover Finder" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "_Set as Cover" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "_File" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "_Edit" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "_View" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "_Tools" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "_Help" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "Previous Track" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "Next Track" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0:00 / 0:00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "Track Properties" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "A_dd tag" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "_Remove tag" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "ab → A_b" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "Capitalise first letter of all tags" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "_Previous" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "_Next" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "Description:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "Collection Manager" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "Monitored" #: ../data/ui/panel/flatplaylist.ui.h:1 #: ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "Radio" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "Append All Tracks to Playlist" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "Import CD" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "Add Station" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "Files" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "Previous visited directory" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "Next visited directory" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "Up one directory" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "Refresh directory listing" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "Home directory" #: ../data/ui/panel/files.ui.h:7 #: ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "Search: " #: ../data/ui/panel/files.ui.h:8 #: ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "Clear search field" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "Collection is empty." #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "Add Music" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "Use covers embedded in tags" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "Use covers from local files" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" "This option will search for cover image files in \n" "the same folder as the music file." #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "Fetch covers automatically on playback start" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "Cover Search Order:" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "(drag to reorder)" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "Open last playlists on startup" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "Prompt for saving custom playlists on close" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "Replace content on side pane double click" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "Playback engine: " #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "Use fade transitions on user actions" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "Fade duration (ms):" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "Use crossfading (EXPERIMENTAL)" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "Crossfade duration (ms):" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "Audio Sink: " #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "Custom sink pipeline:" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "Resume playback on start" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "Resume playback in paused state" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "Normal" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "Unified (unstable)" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "Plug-in" #: ../data/ui/preferences/plugin.ui.h:3 #: ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "Enabled" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "No Plugin Selected" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "Installed Plug-ins" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "Authors:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "Version:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "Install" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "No Plug-in Selected" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "Available Plug-ins" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "Install Updates" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "Updates" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "Install Plug-in File" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "Show info area" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "The info area contains the cover art and track information" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "Always show tab bar" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "Tab placement:" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "Display track counts in collection" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "Use alpha transparency:" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "Show tray icon" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "Minimise to tray" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "Close to tray" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "Jump to current song on track change" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "Show splash screen on startup" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "Left" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "Right" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "Top" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "Bottom" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "Preferences" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "(Right click to reset to defaults)" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "Use file based compilation detection" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "Device Manager" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "Add Device" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "Type of device:" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "Detected devices:" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "Custom: " #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "Queue Manager" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "Searching for mood..." #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "Mood found." #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "Could not read moodbar." #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "Moodbar executable is not available." #: ../plugins/moodbar/moodbarprefs.py:23 #: ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "Moodbar" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "Error executing streamripper" #: ../plugins/streamripper/srprefs.py:22 #: ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "Streamripper" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "Last.fm Loved Tracks" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "The API key is invalid." #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "Please make sure the entered data is correct." #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "Could not start web browser" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" "Please copy the following URL and open it with your web browser:\n" "{url}" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "Loved" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "Last.fm Loved" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "Love This Track" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "Unlove This Track" #: ../plugins/alarmclock/acprefs.py:22 #: ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "Alarm Clock" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 #: ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 #: ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "Contacting Shoutcast server..." #: ../plugins/shoutcast/__init__.py:120 #: ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 #: ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 #: ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "Error connecting to Shoutcast server." #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "Enter the search keywords" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "Shoutcast Search" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "Search Results" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "Search" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "No lyrics found." #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "Go to: " #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "Any" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "Lyrics Viewer" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "AudioScrobbler" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "Enable audioscrobbling" #: ../plugins/equalizer/__init__.py:127 #: ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "Equaliser" #: ../plugins/shutdown/__init__.py:38 #: ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "Shutdown after Playback" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "Shutdown scheduled" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "Computer will be shutdown at the end of playback." #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "Imminent Shutdown" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "The computer will be shut down in %d seconds." #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "Shutdown failed" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "Computer could not be shutdown using D-Bus." #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 #: ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "Notify-osd notifications" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "%(title)s" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "by %(artist)s" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "from %(album)s" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "IPython Console - Exaile" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "Show IPython Console" #: ../plugins/ipconsole/ipconsoleprefs.py:22 #: ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "IPython Console" #: ../plugins/notify/notifyprefs.py:22 #: ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "Notify" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" "by %(artist)s\n" "from %(album)s" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "Importing CD..." #: ../plugins/cd/__init__.py:122 #: ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "Audio Disc" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "CD" #: ../plugins/cd/cdprefs.py:105 #: ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "Track number" #: ../plugins/cd/cdprefs.py:111 #: ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "Disc number" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "Play count" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:134 #: ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "Repeat Segment" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "Repeat Beginning" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "Repeat End" #: ../plugins/minimode/__init__.py:103 #: ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "Mini Mode" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 #: ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "$tracknumber - $title" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "$title by $artist" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "$title ($__length)" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "Previous" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "Go to the previous track" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "Previous track" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "Next" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "Go to the next track" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "Next track" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "Play/Pause" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "Start, pause or resume the playback" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "Start playback" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "Continue playback" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "Pause playback" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "Stop" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "Stop the playback" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "Continue playback after current track" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "Volume" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "Change the volume" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "Restore" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "Restore the main window" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "Restore main window" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "Select rating of the current track" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "Track selector" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "Simple track list selector" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "Playlist button" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "Access the current playlist" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "$title ($current_time / $total_time)" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "Progress button" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "Playback progress and access to the current playlist" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "Progress bar" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "Playback progress and seeking" #: ../plugins/grouptagger/gt_prefs.py:21 #: ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "ReplayGain" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "Drop to Choose" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "Append and Play" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "Append" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 #: ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "Ready" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "Searching Jamendo catalogue..." #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "Retrieving song data..." #: ../plugins/osd/osd_preferences.py:29 #: ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "On Screen Display" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "Amazon Covers" #: ../plugins/podcasts/__init__.py:55 #: ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "Podcasts" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "Podcast" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "Refresh Podcast" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "Delete" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "Enter the URL of the podcast to add" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "Open Podcast" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "Loading %s..." #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "Error loading podcast." #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "Loading Podcasts..." #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "Could not save podcast file" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "Desktop Cover" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "Multi-Alarm Clock" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "Context" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "Contextinfo" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "Bookmark This Track" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "Delete Bookmark" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "Clear Bookmarks" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 #: ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "Bookmarks" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "Pause on Screensaver" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "DAAP Server" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "DAAP Client" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "Manually..." #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "Enter IP address and port for share" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "Enter IP address and port." #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "Refresh Server List" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "Disconnect from Server" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "Select a Location for Saving" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "Connect to DAAP..." #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "Darken played section instead of using cursor" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "Darkness level:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "Use waveform style" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "Show only waveform, not mood" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "Use colour theme " #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "Base colour:" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "Base colour" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "Save location:" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "Relay port:" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "Rip to single file" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "Delete incomplete files" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "API key:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "Secret:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "Request Access Permission" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "Alarm time" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "Monday" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "Tuesday" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "Wednesday" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "Thursday" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "Friday" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "Saturday" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "Sunday" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "Alarm Days" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "Use Fading" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "Increment:" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "Display overlay:" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "Display covers" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "Circle display" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "Text percentage" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "None" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "Refresh Lyrics" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "Submit tracks using Audioscrobbler" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "Show menu item to toggle submission" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "Password:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "Username:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "pre" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "+12 dB" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "0" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "-24 dB" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "29" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "59" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "119" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "237" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "474" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "947" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "1.9K" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "3.8K" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "7.5K" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "15K" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "On track change" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "On playback start, pause or stop" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "On tag change" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "On tray icon hover" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "When main window is focused" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "Display" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "Use album covers as icons" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "Use media icons for pause, stop and resume" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "Icons" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "Artist line:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by " "\"Unknown\" if it is empty." msgstr "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by " "\"Unknown\" if it is empty." #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "Summary:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "Album line:" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "Content" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "Terminal opacity:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "Font:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "Text Colour:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "Background Colour:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "IPython Colour Theme:" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "Resize displayed covers" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "Only artist:" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "Only album:" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "Both artist and album:" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "Body Message" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "Ogg Vorbis" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "FLAC" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "AAC" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "MP3 (VBR)" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "MP3 (CBR)" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "WavPack" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "Import format: " #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "Import quality: " #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "Import path: " #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "Controls" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "Track Title Format" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "Always on top" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "Show in tasklist" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "Display window decorations:" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "Show on all desktops" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "Show button in main window" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "Full" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "Simple" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "Prefer per-album correction" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "Prefer ReplayGain's per-album correction over per-track correction." #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "Use clipping protection" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "Protect against noise caused by over-amplification" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "Additional amplification to apply to all files" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "Additional amplification (dB):" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "Fallback correction for files that lack ReplayGain information" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "Fallback correction level (dB):" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "Order by:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "Order direction:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "Results:" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "Advanced" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "Descending" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "Ascending" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "Release date" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "Rating this week" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "Rating this month" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "Number of playlist additions" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "Number of downloads" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "Number of listens" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "Starred" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "Date of starring" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "Genre/Tags" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango" " Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon.com/" msgstr "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon.com/" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "Add Podcast" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "Anchor:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "X offset:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "pixels" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "Y offset:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "Override cover size" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "Size:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "Use fading" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "Fading duration:" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "ms" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "Top left" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "Top right" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "Bottom left" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "Bottom right" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "Add" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "Alarms" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "Enable volume fade-in" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "Fade start volume:" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "Fade stop volume:" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "Fade Increment:" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "Fade Time (s):" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "Restart playlist" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "Playback" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "Please enter your Last.fm authentication:" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "Sign up for Last.fm" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "Use covers in the bookmarks menu (takes effect on next start)" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "Server name:" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "Server host:" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "Port:" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "Server enabled" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "Current Song" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the supported services." #: ../plugins/currentsong/PLUGININFO:5 #: ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 #: ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" #: ../plugins/moodbar/PLUGININFO:5 #: ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 #: ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 #: ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "GNOME Multimedia Keys" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" #: ../plugins/gnomemmkeys/PLUGININFO:5 #: ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" #: ../plugins/streamripper/PLUGININFO:5 #: ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." #: ../plugins/lastfmlove/PLUGININFO:5 #: ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" #: ../plugins/alarmclock/PLUGININFO:5 #: ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 #: ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 #: ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 #: ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "Last.fm Covers" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "Searches Last.fm for covers" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "Sets the cover and adds some menu items to AWN for Exaile" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "Shoutcast Radio" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "Shoutcast Radio list" #: ../plugins/shoutcast/PLUGININFO:5 #: ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 #: ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 #: ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "Ex Falso tag editor" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "Adds a side tab displaying lyrics for the currently playing track." #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "XKeys" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "Global hotkeys using xlib (mmkeys.so)" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "Multimedia keys for Windows" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "A 10-band equaliser" #: ../plugins/equalizer/PLUGININFO:5 #: ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 #: ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "Lyrics Fly" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "Plug-in to fetch lyrics from lyricsfly.com" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "Librivox" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "Browse and listen to audiobooks from Librivox.org." #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "Allows for shutdown of the computer at the end of playback." #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "USB Mass Storage Media Player Support" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" "Support for accessing portable media players using the USB Mass Storage " "protocol" #: ../plugins/massstorage/PLUGININFO:5 #: ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "Last.fm Dynamic Playlists" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "The Last.fm backend for dynamic playlists" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is " "played/resumed/stopped, with either the song cover or a media icon to " "indicate the latest action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" "This plug-ins displays notification bubbles when a song is " "played/resumed/stopped, with either the song cover or a media icon to " "indicate the latest action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "Provides an IPython console that can be used to manipulate Exaile." #: ../plugins/ipconsole/PLUGININFO:5 #: ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "Pops up a notification when playback of a track starts" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "CD Playback" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 #: ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "A-B Repeat" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "Continuously repeats a segment of a track." #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "Compact mode for Exaile with a configurable interface" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "Enables ReplayGain support" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "Drop Trayicon" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" "Provides an alternative tray icon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "Jamendo" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "Enables access to the Jamendo music catalogue." #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "iPod Support" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" "Searches Amazon for covers\n" "\n" "To be able to use this plug-in, an AWS API key and secret key are required." #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "Karaoke" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "Removes voice from audio" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "Adds Simple Podcast Support" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "Displays the current album cover on the desktop" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "Hello World" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "A simple plug-in for testing the basic plug-in system" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "Contextual Info" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" "Show various information about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "Allows saving/resuming bookmark positions in audio files." #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "Lyrics Wiki" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" "This plug-in integrates spydaap (http://launchpad.net/spydaap) into Exaile " "so a collection can be shared over DAAP." #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "Allows playing of DAAP music shares." #~ msgid "Increases the volume by VOL%" #~ msgstr "Increases the volume by VOL%" #~ msgid "Decreases the volume by VOL%" #~ msgstr "Decreases the volume by VOL%" #~ msgid "Filter event debug output" #~ msgstr "Filter event debug output" #~ msgid "Plugin archive is not in the correct format" #~ msgstr "Plug-in archive is not in the correct format" #, python-format #~ msgid "A plugin with the name \"%s\" is already installed" #~ msgstr "A plug-in with the name \"%s\" is already installed" #~ msgid "Plugin archive contains an unsafe path" #~ msgstr "Plug-in archive contains an unsafe path" #~ msgid "Streaming..." #~ msgstr "Streaming..." #~ msgid "Close tab" #~ msgstr "Close tab" #~ msgid "New playlist title:" #~ msgstr "New playlist title:" #~ msgid "Custom playlist name:" #~ msgstr "Custom playlist name:" #~ msgid "" #~ "Exaile Music Player\n" #~ "Not playing" #~ msgstr "" #~ "Exaile Music Player\n" #~ "Not playing" #, python-format #~ msgid "%(title)s (by %(artist)s)" #~ msgstr "%(title)s (by %(artist)s)" #, python-format #~ msgid "by %s" #~ msgstr "by %s" #, python-format #~ msgid "from %s" #~ msgstr "from %s" #, python-format #~ msgid "In pause: %s" #~ msgstr "In pause: %s" #, python-format #~ msgid "Playing %s" #~ msgstr "Playing %s" #~ msgid "_Rename Playlist" #~ msgstr "_Rename Playlist" #~ msgid "C_lear All Tracks" #~ msgstr "C_lear All Tracks" #~ msgid "_Close Playlist" #~ msgstr "_Close Playlist" #~ msgid "Export" #~ msgstr "Export" #~ msgid "Export as..." #~ msgstr "Export as..." #, python-format #~ msgid "%d covers to fetch" #~ msgstr "%d covers to fetch" #~ msgid "Start" #~ msgstr "Start" #, python-format #~ msgid "%(minutes)d:%(seconds)02d" #~ msgstr "%(minutes)d:%(seconds)02d" #~ msgid "No track" #~ msgstr "No track" #~ msgid "Invalid file extension, file not saved" #~ msgstr "Invalid file extension, file not saved" #~ msgid "Choose a file to open" #~ msgstr "Choose a file to open" #, python-format #~ msgid "%(playlist_count)d showing, %(collection_count)d in collection" #~ msgstr "%(playlist_count)d showing, %(collection_count)d in collection" #~ msgid "Select File Type (By Extension)" #~ msgstr "Select File Type (By Extension)" #~ msgid "File Type" #~ msgstr "File Type" #~ msgid "Extension" #~ msgstr "Extension" #~ msgid "Add item" #~ msgstr "Add item" #~ msgid "Remove item" #~ msgstr "Remove item" #~ msgid "Move selected item up" #~ msgstr "Move selected item up" #~ msgid "Move selected item down" #~ msgstr "Move selected item down" #~ msgid "" #~ "Path is already in your collection, or is a subdirectory of another path in " #~ "your collection" #~ msgstr "" #~ "Path is already in your collection, or is a subdirectory of another path in " #~ "your collection" #~ msgid "0:00" #~ msgstr "0:00" #, python-format #~ msgid "%(year)d-%(month)02d-%(day)02d" #~ msgstr "%(year)d-%(month)02d-%(day)02d" #~ msgid "New custom playlist name:" #~ msgstr "New custom playlist name:" #, python-format #~ msgid "%d KB" #~ msgstr "%d KB" #~ msgid "" #~ "This will permanantly delete the selected tracks from your disk, are you " #~ "sure you wish to continue?" #~ msgstr "" #~ "This will permanently delete the selected tracks from your disk; are you " #~ "sure you want to continue?" #~ msgid "Repeat playlist" #~ msgstr "Repeat playlist" #~ msgid "Dynamically add similar tracks" #~ msgstr "Dynamically add similar tracks" #~ msgid "0/0 tracks" #~ msgstr "0/0 tracks" #~ msgid "Clear Playlist" #~ msgstr "Clear Playlist" #~ msgid "Randomize the order of the current playlist" #~ msgstr "Randomise the order of the current playlist" #~ msgid "_Go to Playing Track" #~ msgstr "_Go to Playing Track" #~ msgid "_Randomize Playlist" #~ msgstr "_Randomise Playlist" #~ msgid "_Close" #~ msgstr "_Close" #~ msgid "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgstr "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgid "Display OSD when hovering over tray icon" #~ msgstr "Display OSD when hovering over tray icon" #~ msgid "Display a progressbar in the OSD" #~ msgstr "Display a progressbar in the OSD" #~ msgid "Opacity Level:" #~ msgstr "Opacity Level:" #~ msgid "Show OSD on track change" #~ msgstr "Show OSD on track change" #~ msgid "Text Color" #~ msgstr "Text Colour" #~ msgid "Text Font:" #~ msgstr "Text Font:" #~ msgid "Window Height:" #~ msgstr "Window Height:" #~ msgid "Window Width:" #~ msgstr "Window Width:" #~ msgid "Use alpha transparency (if supported)" #~ msgstr "Use alpha transparency (if supported)" #~ msgid "Install a third party plugin from a file" #~ msgstr "Install a third party plug-in from a file" #~ msgid "ALSA" #~ msgstr "ALSA" #~ msgid "GNOME" #~ msgstr "GNOME" #~ msgid "JACK" #~ msgstr "JACK" #~ msgid "OSS" #~ msgstr "OSS" #~ msgid "Playback engine (requires restart): " #~ msgstr "Playback engine (requires restart): " #~ msgid "PulseAudio" #~ msgstr "PulseAudio" #~ msgid "These options only affect the unified engine." #~ msgstr "These options only affect the unified engine." #~ msgid "© 2009-2010" #~ msgstr "© 2009-2010" #~ msgid "" #~ "Copyright (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "This program is free software; you can redistribute it and/or modify\n" #~ "it under the terms of the GNU General Public License as published by\n" #~ "the Free Software Foundation; either version 2 of the License, or\n" #~ "(at your option) any later version.\n" #~ "\n" #~ "This program is distributed in the hope that it will be useful,\n" #~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" #~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" #~ "GNU General Public License for more details.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along\n" #~ "with this program; if not, write to the Free Software Foundation, Inc.,\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ msgstr "" #~ "Copyright (C) 2008-2009 Adam Olsen \n" #~ "\n" #~ "This program is free software; you can redistribute it and/or modify\n" #~ "it under the terms of the GNU General Public License as published by\n" #~ "the Free Software Foundation; either version 2 of the License, or\n" #~ "(at your option) any later version.\n" #~ "\n" #~ "This program is distributed in the hope that it will be useful,\n" #~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" #~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" #~ "GNU General Public License for more details.\n" #~ "\n" #~ "You should have received a copy of the GNU General Public License along\n" #~ "with this program; if not, write to the Free Software Foundation, Inc.,\n" #~ "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" #~ msgid "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager" #~ msgstr "" #~ "Mathias Brodala\n" #~ " \n" #~ " Translation Manager" #~ msgid "" #~ "OSD\n" #~ "Drag to the location you'd like the\n" #~ "OSD to appear" #~ msgstr "" #~ "OSD\n" #~ "Drag to the location you would like the\n" #~ "OSD to appear" #~ msgid "Popup" #~ msgstr "Popup" #~ msgid "AWN" #~ msgstr "AWN" #~ msgid "Stop Playback" #~ msgstr "Stop Playback" #~ msgid "Restore Main Window" #~ msgstr "Restore Main Window" #~ msgid "Seeking: " #~ msgstr "Seeking: " #~ msgid "Alarm:" #~ msgstr "Alarm:" #~ msgid "Fading:" #~ msgstr "Fading:" #~ msgid "Name - Time" #~ msgstr "Name - Time" #~ msgctxt "yes" #~ msgid "Friday" #~ msgstr "Friday" #~ msgctxt "yes" #~ msgid "Increment:" #~ msgstr "Increment:" #~ msgctxt "yes" #~ msgid "Maximum volume:" #~ msgstr "Maximum volume:" #~ msgctxt "yes" #~ msgid "Minimum volume:" #~ msgstr "Minimum volume:" #~ msgctxt "yes" #~ msgid "Monday" #~ msgstr "Monday" #~ msgctxt "yes" #~ msgid "Saturday" #~ msgstr "Saturday" #~ msgctxt "yes" #~ msgid "Sunday" #~ msgstr "Sunday" #~ msgctxt "yes" #~ msgid "Thursday" #~ msgstr "Thursday" #~ msgctxt "yes" #~ msgid "Time per increment:" #~ msgstr "Time per increment:" #~ msgctxt "yes" #~ msgid "Tuesday" #~ msgstr "Tuesday" #~ msgctxt "yes" #~ msgid "Use Fading" #~ msgstr "Use Fading" #~ msgctxt "yes" #~ msgid "Wednesday" #~ msgstr "Wednesday" #~ msgid "Secret key:" #~ msgstr "Secret key:" #~ msgid "Display window decorations" #~ msgstr "Display window decorations" #~ msgid "Awn" #~ msgstr "AWN" #~ msgid "" #~ "Adds support for playing audio CDs.\n" #~ "Requires python-cddb to look up tags." #~ msgstr "" #~ "Adds support for playing audio CDs.\n" #~ "Requires python-cddb to look up tags." #~ msgid "Creates an MPRIS D-Bus object to control Exaile" #~ msgstr "Creates an MPRIS D-Bus object to control Exaile" #~ msgid "A plugin for iPod support" #~ msgstr "A plug-in for iPod support" #~ msgid "Pauses/resumes playback on screensaver start/stop" #~ msgstr "Pauses/resumes playback on screensaver start/stop" #~ msgid "Toggle Play or Pause" #~ msgstr "Toggle Play or Pause" #~ msgid "Show a popup of the currently playing track" #~ msgstr "Show a popup of the currently playing track" #~ msgid "Set rating for current song" #~ msgstr "Set rating for current song" #~ msgid "Get rating for current song" #~ msgstr "Get rating for current song" #~ msgid "Print the position inside the current track as time" #~ msgstr "Print the position inside the current track as time" #~ msgid "Print the progress inside the current track as percentage" #~ msgstr "Print the progress inside the current track as percentage" #~ msgid "order must be a list or tuple" #~ msgstr "order must be a list or tuple" #~ msgid " New song, fetching cover." #~ msgstr " New song, fetching cover." #~ msgid "Device class does not support transfer." #~ msgstr "Device class does not support transfer." #~ msgid "Save As..." #~ msgstr "Save As..." #~ msgid "Toggle: Stop after selected track" #~ msgstr "Toggle: Stop after selected track" #~ msgid "Buffering: 100%..." #~ msgstr "Buffering: 100%..." #~ msgid "Stopped" #~ msgstr "Stopped" #~ msgid "Add to custom playlist" #~ msgstr "Add to custom playlist" #~ msgid "_Save As Custom Playlist" #~ msgstr "_Save As Custom Playlist" #~ msgid "_Save Changes To Playlist" #~ msgstr "_Save Changes To Playlist" #~ msgid "_Save As..." #~ msgstr "_Save As…" #~ msgid "Delete track" #~ msgstr "Delete track" #~ msgid "Open" #~ msgstr "Open" #~ msgid "Enter the search text" #~ msgstr "Enter the search text" #~ msgid "No covers found" #~ msgstr "No covers found" #~ msgid "Export current playlist..." #~ msgstr "Export current playlist..." #~ msgid "Add a directory" #~ msgstr "Add a directory" #~ msgid " songs" #~ msgstr " songs" #~ msgid "Add To New Playlist..." #~ msgstr "Add To New Playlist..." #~ msgid "Idle." #~ msgstr "Idle" #~ msgid "Choose a plugin" #~ msgstr "Choose a plug-in" #, python-format #~ msgid "Could not enable plugin: %s" #~ msgstr "Could not enable plug-in: %s" #, python-format #~ msgid "Could not disable plugin: %s" #~ msgstr "Could not disable plug-in: %s" #~ msgid "Remove current track from playlist" #~ msgstr "Remove current track from playlist" #~ msgid "..." #~ msgstr "..." #~ msgid "Add device" #~ msgstr "Add device" #~ msgid "New Search" #~ msgstr "New Search" #~ msgid "Album:" #~ msgstr "Album:" #~ msgid "Artist:" #~ msgstr "Artist:" #~ msgid "Basic" #~ msgstr "Basic" #~ msgid "Bitrate:" #~ msgstr "Bitrate:" #~ msgid "Date:" #~ msgstr "Date:" #~ msgid "Details" #~ msgstr "Details" #~ msgid "File Size:" #~ msgstr "File Size:" #~ msgid "Genre:" #~ msgstr "Genre:" #~ msgid "Length:" #~ msgstr "Length:" #~ msgid "Location:" #~ msgstr "Location:" #~ msgid "Play Count:" #~ msgstr "Play Count:" #~ msgid "Title:" #~ msgstr "Title:" #~ msgid "Track Number:" #~ msgstr "Track Number:" #~ msgid "© 2009" #~ msgstr "© 2009" #~ msgid "Remove All" #~ msgstr "Remove All" #~ msgid "Install plugin file" #~ msgstr "Install plug-in file" #~ msgid "Page 1" #~ msgstr "Page 1" #~ msgid "Start/Pause Playback" #~ msgstr "Start/Pause Playback" #~ msgid "Track _properties" #~ msgstr "Track _properties" #~ msgid "_Export current playlist" #~ msgstr "_Export current playlist" #~ msgid "Bookmark this track" #~ msgstr "Bookmark this track" #~ msgid "Delete bookmark" #~ msgstr "Delete bookmark" #~ msgid "Clear bookmarks" #~ msgstr "Clear bookmarks" #~ msgid "Available controls" #~ msgstr "Available controls" #~ msgid "Selected controls" #~ msgstr "Selected controls" #~ msgid "$title ($length)" #~ msgstr "$title ($length)" #~ msgid " & " #~ msgstr " & " #~ msgid "Streamripper can only record streams." #~ msgstr "Streamripper can only record streams." #~ msgid "Alarm Days:" #~ msgstr "Alarm Days:" #~ msgid "Alarm Name:" #~ msgstr "Alarm Name:" #~ msgid "Alarm Time:" #~ msgstr "Alarm Time:" #~ msgid "Enable Fading" #~ msgstr "Enable Fading" #~ msgid "Maximum Volume:" #~ msgstr "Maximum Volume:" #~ msgid "Minimum Volume:" #~ msgstr "Minimum Volume:" #~ msgid "Restart Playlist" #~ msgstr "Restart Playlist" #~ msgid "Time per Increment:" #~ msgstr "Time per Increment:" #~ msgid "Timer per Increment:" #~ msgstr "Timer per Increment:" #~ msgid "Album Line:" #~ msgstr "Album Line:" #~ msgid "Artist Line:" #~ msgstr "Artist Line:" #~ msgid "On Playback Start, Pause or Stop" #~ msgstr "On Playback Start, Pause or Stop" #~ msgid "On Track Change" #~ msgstr "On Track Change" #~ msgid "On Tray Icon Hover" #~ msgstr "On Tray Icon Hover" #, python-format #~ msgid "" #~ "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced " #~ "by their respective values. The title will be replaced by \"Unknown\" if it " #~ "is empty." #~ msgstr "" #~ "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced " #~ "by their respective values. The title will be replaced by \"Unknown\" if it " #~ "is empty." #~ msgid "Use Album Covers As Icons" #~ msgstr "Use Album Covers As Icons" #~ msgid "Use Media Icons For Pause, Stop and Resume" #~ msgstr "Use Media Icons For Pause, Stop and Resume" #~ msgid "When GUI is Focused" #~ msgstr "When GUI is Focused" #~ msgid "API Key:" #~ msgstr "API Key:" #~ msgid "Secret Key:" #~ msgstr "Secret Key:" #~ msgid "" #~ "To sign up for an Amazon AWS account and get \n" #~ "this information visit http://aws.amazon.com/" #~ msgstr "" #~ "To sign up for an Amazon AWS account and get \n" #~ "this information visit http://aws.amazon.com/" #~ msgid "Both artist and album" #~ msgstr "Both artist and album" #, python-format #~ msgid "" #~ "Message that should be displayed in the body of the notification. In each " #~ "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " #~ "their respective values. If the tag is not known, \"Unknown\" will be filled " #~ "in its place" #~ msgstr "" #~ "Message that should be displayed in the body of the notification. In each " #~ "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " #~ "their respective values. If the tag is not known, \"Unknown\" will be filled " #~ "in its place" #~ msgid "Only album" #~ msgstr "Only album" #~ msgid "Only artist" #~ msgstr "Only artist" #~ msgid "Summary" #~ msgstr "Summary" #~ msgid "Terminal Opacity:" #~ msgstr "Terminal Opacity:" #~ msgid "Track title format:" #~ msgstr "Track title format:" #~ msgid "Relay Port:" #~ msgstr "Relay Port:" #~ msgid "Save Location:" #~ msgstr "Save Location:" #~ msgid "Last.fm Dynamic Search" #~ msgstr "Last.fm Dynamic Search" #~ msgid "iPod support" #~ msgstr "iPod support" #~ msgid "Tag Covers" #~ msgstr "Tag Covers" #~ msgid "Searches track tags for covers" #~ msgstr "Searches track tags for covers" #~ msgid "Plugin to fetch lyrics from lyricwiki.org" #~ msgstr "Plug-in to fetch lyrics from lyricwiki.org" #~ msgid "Close this dialog" #~ msgstr "Close this dialog" #~ msgid "Show Menuitem to toggle Submission" #~ msgstr "Show Menuitem to toggle Submission" #~ msgid "Clear" #~ msgstr "Clear" #~ msgid "Close" #~ msgstr "Close" dist/copy/po/PaxHeaders.26361/ro.po0000644000175000017500000000012412233027260015417 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.013046929 exaile-3.3.2/po/ro.po0000644000000000000000000031273112233027260014366 0ustar00rootroot00000000000000# Romanian translation for exaile # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the exaile package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: exaile\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-11-01 11:10+0100\n" "PO-Revision-Date: 2011-03-13 14:16+0000\n" "Last-Translator: Daniel Șerbănescu \n" "Language-Team: Romanian \n" "Language: ro\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n == 1 ? 0: (((n % 100 > 19) || ((n % 100 " "== 0) && (n != 0))) ? 2: 1));\n" "X-Launchpad-Export-Date: 2012-08-28 05:28+0000\n" "X-Generator: Launchpad (build 15864)\n" #: ../xl/formatter.py:597 #, python-format msgid "%d day, " msgid_plural "%d days, " msgstr[0] "%d zi, " msgstr[1] "%d zile, " msgstr[2] "%d de zile, " #: ../xl/formatter.py:599 #, python-format msgid "%d hour, " msgid_plural "%d hours, " msgstr[0] "o oră, " msgstr[1] "%d ore, " msgstr[2] "%d de ore, " #: ../xl/formatter.py:600 #, python-format msgid "%d minute, " msgid_plural "%d minutes, " msgstr[0] "un minut, " msgstr[1] "%d minute, " msgstr[2] "%d de minute, " #: ../xl/formatter.py:601 #, python-format msgid "%d second" msgid_plural "%d seconds" msgstr[0] "o secundă" msgstr[1] "%d secunde" msgstr[2] "%d de secunde" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:606 #, python-format msgid "%dd, " msgstr "%dz, " #. TRANSLATORS: Short form of an amount of hours #: ../xl/formatter.py:609 #, python-format msgid "%dh, " msgstr "%do, " #. TRANSLATORS: Short form of an amount of minutes #: ../xl/formatter.py:611 #, python-format msgid "%dm, " msgstr "%dm, " #. TRANSLATORS: Short form of an amount of seconds #: ../xl/formatter.py:613 #, python-format msgid "%ds" msgstr "%ds" #. TRANSLATORS: Short form of an amount of days #: ../xl/formatter.py:618 #, python-format msgid "%dd " msgstr "%dz " #. TRANSLATORS: Time duration (hours:minutes:seconds) #: ../xl/formatter.py:621 #, python-format msgid "%d:%02d:%02d" msgstr "%d:%02d:%02d" #. TRANSLATORS: Time duration (minutes:seconds) #: ../xl/formatter.py:625 #, python-format msgid "%d:%02d" msgstr "%d:%02d" #. TRANSLATORS: Indicates that a track has never been played before #: ../xl/formatter.py:691 ../xl/formatter.py:696 msgid "Never" msgstr "Niciodată" #: ../xl/formatter.py:702 msgid "Today" msgstr "Astăzi" #: ../xl/formatter.py:704 msgid "Yesterday" msgstr "Ieri" #: ../xl/main.py:201 msgid "Failed to migrate from 0.2.14" msgstr "S-a eșuat migrarea de la 0.2.14" #: ../xl/main.py:416 msgid "Usage: exaile [OPTION]... [URI]" msgstr "Utilizare: exaile [OPȚIUNE]... [URI]" #: ../xl/main.py:417 ../plugins/minimode/minimode_preferences.ui.h:11 msgid "Options" msgstr "Opțiuni" #: ../xl/main.py:421 msgid "Playback Options" msgstr "Opțiuni de redare" #: ../xl/main.py:423 msgid "Play the next track" msgstr "Redă următoarea piesă" #: ../xl/main.py:425 msgid "Play the previous track" msgstr "Redă piesa precedentă" #: ../xl/main.py:427 ../plugins/minimode/controls.py:342 #: ../plugins/minimode/controls.py:357 msgid "Stop playback" msgstr "Oprește redarea" #: ../xl/main.py:429 msgid "Play" msgstr "Redă" #: ../xl/main.py:431 msgid "Pause" msgstr "Pauză" #: ../xl/main.py:434 msgid "Pause or resume playback" msgstr "Suspendă sau reia redarea" #: ../xl/main.py:437 ../plugins/minimode/controls.py:365 msgid "Stop playback after current track" msgstr "Opreşte redarea după piesa curentă" #: ../xl/main.py:440 msgid "Collection Options" msgstr "Opțiuni colecție" #. TRANSLATORS: Meta variable for --add and --export-playlist #: ../xl/main.py:443 ../xl/main.py:450 msgid "LOCATION" msgstr "LOCAȚIE" #: ../xl/main.py:443 msgid "Add tracks from LOCATION to the collection" msgstr "Adaugă piese din LOCAȚIE la colecție" #: ../xl/main.py:447 msgid "Playlist Options" msgstr "" #: ../xl/main.py:451 msgid "Exports the current playlist to LOCATION" msgstr "" #: ../xl/main.py:454 msgid "Track Options" msgstr "Opțiuni piesă" #: ../xl/main.py:456 msgid "Query player" msgstr "" #. TRANSLATORS: Meta variable for --format-query #: ../xl/main.py:459 msgid "FORMAT" msgstr "" #: ../xl/main.py:460 msgid "Retrieves the current playback state and track information as FORMAT" msgstr "" #. TRANSLATORS: Meta variable for --format-query-tags #: ../xl/main.py:463 msgid "TAGS" msgstr "" #: ../xl/main.py:464 msgid "TAGS to retrieve from the current track, use with --format-query" msgstr "" #: ../xl/main.py:467 msgid "Show a popup with data of the current track" msgstr "Arată o fereastră popup cu date despre piesa curentă" #: ../xl/main.py:469 msgid "Print the title of current track" msgstr "Afișează piesa curentă" #: ../xl/main.py:471 msgid "Print the album of current track" msgstr "Afișează albumul piesei curente" #: ../xl/main.py:473 msgid "Print the artist of current track" msgstr "Afișează artistul piesei curente" #: ../xl/main.py:475 msgid "Print the length of current track" msgstr "Afișează lungimea piesei curente" #. TRANSLATORS: Variable for command line options with arguments #: ../xl/main.py:478 ../xl/main.py:493 ../xl/main.py:497 msgid "N" msgstr "N" #: ../xl/main.py:479 msgid "Set rating for current track to N%" msgstr "Stabilește aprecierea piesei curente la N%" #: ../xl/main.py:481 msgid "Get rating for current track" msgstr "Obține aprecierea piesei curente" #: ../xl/main.py:484 msgid "Print the current playback position as time" msgstr "Afișează poziția curentă a redării ca timp" #: ../xl/main.py:486 msgid "Print the current playback progress as percentage" msgstr "Afișează progresul curent al redării ca procentaj" #: ../xl/main.py:490 msgid "Volume Options" msgstr "Opțiuni de volum" #: ../xl/main.py:494 msgid "Increases the volume by N%" msgstr "Crește volumul cu N%" #. TRANSLATORS: Meta variable for --increase-vol and--decrease-vol #: ../xl/main.py:499 msgid "Decreases the volume by N%" msgstr "Scade volumul cu N%" #: ../xl/main.py:502 msgid "Mutes or unmutes the volume" msgstr "Comută volumul la mut/non-mut" #: ../xl/main.py:504 msgid "Print the current volume percentage" msgstr "Afișează procentul volumului curent" #: ../xl/main.py:507 msgid "Other Options" msgstr "Alte opțiuni" #: ../xl/main.py:509 msgid "Start new instance" msgstr "Porneşte o nouă instanţă" #: ../xl/main.py:511 msgid "Show this help message and exit" msgstr "Arată acest mesaj de ajutor și ieși" #: ../xl/main.py:513 msgid "Show program's version number and exit." msgstr "Arată versiunea programului și ieși." #: ../xl/main.py:516 msgid "Start minimized (to tray, if possible)" msgstr "Pornește minimizat (în zona de notificare, dacă este posibil)" #: ../xl/main.py:519 msgid "Toggle visibility of the GUI (if possible)" msgstr "" "Comută vizibilitatea interfeței grafice pentru utilizator (dacă este posibil)" #: ../xl/main.py:521 msgid "Start in safe mode - sometimes useful when you're running into problems" msgstr "" #: ../xl/main.py:524 msgid "Force import of old data from version 0.2.x (Overwrites current data)" msgstr "" "Forțează importarea datelor vechi din versiunea 0.2.x (Suprascrie datele " "curente)" #: ../xl/main.py:527 msgid "Do not import old data from version 0.2.x" msgstr "Nu importa datele vechi din versiunea 0.2.x" #: ../xl/main.py:530 msgid "Make control options like --play start Exaile if it is not running" msgstr "" #: ../xl/main.py:534 msgid "Development/Debug Options" msgstr "Opțiuni de dezvoltare/depanare" #: ../xl/main.py:536 ../xl/main.py:538 msgid "DIRECTORY" msgstr "DOSAR" #: ../xl/main.py:536 msgid "Set data directory" msgstr "Stabilește directorul de date" #: ../xl/main.py:538 msgid "Set data and config directory" msgstr "" #: ../xl/main.py:540 msgid "MODULE" msgstr "MODUL" #: ../xl/main.py:541 msgid "Limit log output to MODULE" msgstr "Limitează jurnalul de ieşire la MODUL" #: ../xl/main.py:543 msgid "LEVEL" msgstr "NIVEL" #: ../xl/main.py:544 msgid "Limit log output to LEVEL" msgstr "Limitează jurnalul de ieşire la NIVEL" #: ../xl/main.py:547 msgid "Show debugging output" msgstr "Arată rezultatele depanării" #: ../xl/main.py:549 msgid "Enable debugging of xl.event. Generates LOTS of output" msgstr "Activează depanarea pentru xl.event. Generează MULTE rezultate" #: ../xl/main.py:552 msgid "Add thread name to logging messages." msgstr "" #: ../xl/main.py:555 msgid "TYPE" msgstr "TIP" #: ../xl/main.py:556 msgid "Limit xl.event debug to output of TYPE" msgstr "Limitează depanarea xl.event la date de ieșire de TIP" #: ../xl/main.py:558 msgid "Reduce level of output" msgstr "Redu nivelul de ieșire" #: ../xl/main.py:562 msgid "Disable D-Bus support" msgstr "Dezactivează suportul pentru D-Bus" #: ../xl/main.py:564 msgid "Disable HAL support." msgstr "Dezactivează suportul pentru HAL" #: ../xl/main.py:580 msgid "Entire Library" msgstr "Toată colecţia" #: ../xl/main.py:586 #, python-format msgid "Random %d" msgstr "%d aleator" #: ../xl/main.py:594 #, python-format msgid "Rating > %d" msgstr "Apreciere > %d" #: ../xl/main.py:695 msgid "" "Exaile is not yet finished loading. Perhaps you should listen for the " "exaile_loaded signal?" msgstr "" "Exaile nu a terminat încă de încărcat. Poate ar trebui să ascultați semnalul " "exaile_loaded?" #: ../xl/covers.py:466 ../data/ui/trackproperties_dialog.ui.h:6 msgid "Tags" msgstr "" #: ../xl/covers.py:505 msgid "Local file" msgstr "" #: ../xl/plugins.py:94 msgid "Plugin archive is not in the correct format." msgstr "Arhiva modulelor nu este în formatul corect." #: ../xl/plugins.py:101 #, python-format msgid "A plugin with the name \"%s\" is already installed." msgstr "Un modul cu numele „%s” este deja instalat." #: ../xl/plugins.py:106 msgid "Plugin archive contains an unsafe path." msgstr "Arhiva modulelor conține o cale nesigură." #: ../xl/trax/trackdb.py:167 msgid "You did not specify a location to load the db from" msgstr "Nu ați specificat o locație din care să se încarce baza de date" #: ../xl/trax/trackdb.py:248 msgid "You did not specify a location to save the db" msgstr "Nu ați specificat o locație în care să se salveze baza de date" #: ../xl/trax/track.py:65 ../xlgui/widgets/info.py:431 msgid "Various Artists" msgstr "Artişti diverşi" #. TRANSLATORS: title of a track if it is unknown #: ../xl/trax/track.py:66 ../plugins/notifyosd/__init__.py:71 msgid "Unknown" msgstr "Necunoscut" #. TRANSLATORS: String multiple tag values will be joined by #: ../xl/trax/track.py:68 msgid " / " msgstr " / " #. TRANSLATORS: Bitrate (k here is short for kbps). #: ../xl/trax/track.py:585 ../xl/trax/track.py:647 #, python-format msgid "%dk" msgstr "" #: ../xl/transcoder.py:56 msgid "" "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" "Vorbis este o decodare Open Source, cu pierdere audio dar calitate mai " "bună, fişierul fiind mai compact decât formatul MP3." #: ../xl/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" "Free Lossless Audio Codec (FLAC) e o decodare liberă, cu compresie de sunet, " "dar fără a altera calitatea." #: ../xl/transcoder.py:78 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." msgstr "" "Format proprietate Apple cu calitate mai bună decât MP3 iar viteză bit mai " "mică." #: ../xl/transcoder.py:89 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" "Format proprietar mai vechi, dar popular, cu pierdere audio. VBR oferă " "calitate mai bună decât CBR, dar poate fi mai puţin suportat." #: ../xl/transcoder.py:100 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" "Format proprietar mai vechi, dar popular, cu pierdere audio. CBR oferă " "calitate minoră decât VBR, dar este cel mai bine suportat." #: ../xl/transcoder.py:111 msgid "A very fast Free lossless audio format with good compression." msgstr "" "Format de sunet Free cu comprimare bună, rapid şi fără pierdere audio." #: ../xl/player/pipe.py:311 msgid "Automatic" msgstr "Automat" #: ../xl/player/pipe.py:340 ../xl/player/pipe.py:365 ../xl/player/pipe.py:386 msgid "Custom" msgstr "Personalizat" #: ../xl/player/pipe.py:441 ../plugins/previewdevice/previewprefs.py:76 msgid "Auto" msgstr "" #: ../xl/xldbus.py:117 ../xl/xldbus.py:496 #: ../plugins/lyricsviewer/__init__.py:243 msgid "Not playing." msgstr "Nu se redă." #: ../xl/xldbus.py:498 #, python-format msgid "" "status: %(status)s, title: %(title)s, artist: %(artist)s, album: %(album)s, " "length: %(length)s, position: %(progress)s%% [%(position)s]" msgstr "" "stare: %(status)s, titlu: %(title)s, artist: %(artist)s, album: %(album)s, " "durată: %(length)s, poziție: %(progress)s%% [%(position)s]" #: ../xl/settings.py:103 msgid "Settings version is newer than current." msgstr "Versiunea configurărilor este mai nouă decât cea curentă." #: ../xl/settings.py:247 msgid "We don't know how to store that kind of setting: " msgstr "Nu se știe modul de stocare a acestui tip de setare: " #: ../xl/settings.py:275 msgid "An Unknown type of setting was found!" msgstr "A fost găsit un tip necunoscut de setări!" #: ../xl/playlist.py:152 ../xl/playlist.py:166 msgid "Invalid playlist type." msgstr "Tipul listei de redare este invalid." #: ../xl/playlist.py:173 ../xlgui/widgets/playlist.py:335 msgid "Playlist" msgstr "Listă de redare" #: ../xl/playlist.py:322 msgid "M3U Playlist" msgstr "Listă redare M3U" #: ../xl/playlist.py:423 msgid "PLS Playlist" msgstr "Listă redare PLS" #: ../xl/playlist.py:517 ../xl/playlist.py:533 #, python-format msgid "Invalid format for %s." msgstr "Formatul nu este valid pentru %s." #: ../xl/playlist.py:528 #, python-format msgid "Unsupported version %(version)s for %(type)s" msgstr "Versiunea %(version)s nu este admisă pentru %(type)s" #: ../xl/playlist.py:588 msgid "ASX Playlist" msgstr "Listă redare ASX" #: ../xl/playlist.py:759 msgid "XSPF Playlist" msgstr "Listă redare XSPF" #: ../xl/playlist.py:874 msgid "Shuffle _Off" msgstr "Amestecare _oprită" #: ../xl/playlist.py:875 msgid "Shuffle _Tracks" msgstr "Ames_tecă melodiile" #: ../xl/playlist.py:875 msgid "Shuffle _Albums" msgstr "Amestecă _albumele" #: ../xl/playlist.py:879 msgid "Repeat _Off" msgstr "_Oprește repetare" #: ../xl/playlist.py:879 msgid "Repeat _All" msgstr "Repetă to_ate" #: ../xl/playlist.py:879 msgid "Repeat O_ne" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic _Off" msgstr "" #: ../xl/playlist.py:883 msgid "Dynamic by Similar _Artists" msgstr "Dinamic după _artiști asemănători" #: ../xl/playlist.py:1824 ../xlgui/panel/playlists.py:59 #: ../xlgui/panel/playlists.py:71 ../xlgui/panel/playlists.py:78 #: ../plugins/osd/osd_preferences.ui.h:7 msgid "seconds" msgstr "secunde" #: ../xl/playlist.py:1825 ../xlgui/panel/playlists.py:71 msgid "minutes" msgstr "minute" #: ../xl/playlist.py:1826 ../xlgui/panel/playlists.py:71 msgid "hours" msgstr "ore" #: ../xl/playlist.py:1827 ../xlgui/panel/playlists.py:68 #: ../xlgui/panel/playlists.py:71 msgid "days" msgstr "zile" #: ../xl/playlist.py:1828 ../xlgui/panel/playlists.py:71 msgid "weeks" msgstr "săptămâni" #: ../xl/lyrics.py:305 msgid "Local" msgstr "Local" #: ../xlgui/widgets/menuitems.py:96 msgid "Enqueue" msgstr "Adaugă în coadă" #: ../xlgui/widgets/menuitems.py:118 ../xlgui/oldmenu.py:116 msgid "Replace Current" msgstr "" #: ../xlgui/widgets/menuitems.py:122 ../xlgui/oldmenu.py:114 msgid "Append to Current" msgstr "Adaugă la cea curentă" #: ../xlgui/widgets/menuitems.py:145 ../xlgui/properties.py:1135 msgid "Open Directory" msgstr "Deschide dosarul" #: ../xlgui/widgets/menuitems.py:167 msgid "" "The files cannot be moved to the Trash. Delete them permanently from the " "disk?" msgstr "Fișierele nu pot fi mutate la gunoi. Le ștergeți permanent de pe disc?" #: ../xlgui/widgets/menuitems.py:182 msgid "Move to Trash" msgstr "Mută la coșul de gunoi" #: ../xlgui/widgets/menuitems.py:193 msgid "_Show Playing Track" msgstr "" #: ../xlgui/widgets/filter.py:62 ../xlgui/panel/radio.py:200 msgid "Name:" msgstr "Nume:" #: ../xlgui/widgets/filter.py:76 msgid "Match any of the criteria" msgstr "Corespunde cu oricare criteriu" #: ../xlgui/widgets/filter.py:78 msgid "Randomize results" msgstr "Aleatorizează rezultatele" #: ../xlgui/widgets/filter.py:94 msgid "Limit to: " msgstr "Limitează la: " #: ../xlgui/widgets/filter.py:104 msgid " tracks" msgstr " piese" #: ../xlgui/widgets/playback.py:95 ../xlgui/widgets/info.py:71 msgid "Not Playing" msgstr "Nu se redă nimic" #: ../xlgui/widgets/playback.py:744 #, python-format msgid "Seeking: %s" msgstr "" #: ../xlgui/widgets/playback.py:1020 msgid "Move" msgstr "" #: ../xlgui/widgets/playback.py:1166 msgid "New Marker" msgstr "" #: ../xlgui/widgets/playback.py:1265 msgid "Muted" msgstr "" #. TRANSLATORS: Volume percentage #: ../xlgui/widgets/playback.py:1271 #, python-format msgid "%d%%" msgstr "" #: ../xlgui/widgets/playback.py:1274 msgid "Full Volume" msgstr "" #: ../xlgui/widgets/info.py:65 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../xlgui/widgets/info.py:426 msgid "Various" msgstr "" #: ../xlgui/widgets/info.py:445 #, python-format msgid "%(track_count)d in total (%(total_duration)s)" msgstr "" #: ../xlgui/widgets/info.py:602 #, python-format msgid "%d in collection" msgstr "" #: ../xlgui/widgets/info.py:624 ../xlgui/widgets/info.py:631 #, python-format msgid "%d showing" msgstr "" #: ../xlgui/widgets/info.py:628 ../xlgui/widgets/info.py:635 #, python-format msgid "%d selected" msgstr "" #: ../xlgui/widgets/queue.py:87 msgid "Queue" msgstr "" #: ../xlgui/widgets/queue.py:89 #, python-format msgid "Queue (%d)" msgstr "" #. TRANSLATORS: Title of the track number column #: ../xlgui/widgets/playlist_columns.py:217 ../xlgui/panel/flatplaylist.py:100 msgid "#" msgstr "#" #: ../xlgui/widgets/playlist_columns.py:218 msgid "Track Number" msgstr "Numărul piesei" #: ../xlgui/widgets/playlist_columns.py:225 ../xlgui/properties.py:69 #: ../xlgui/panel/flatplaylist.py:108 ../xlgui/panel/playlists.py:235 #: ../plugins/cd/cdprefs.py:106 ../plugins/minimode/minimode_preferences.py:93 msgid "Title" msgstr "Titlu" #: ../xlgui/widgets/playlist_columns.py:232 ../xlgui/properties.py:63 #: ../xlgui/panel/collection.py:173 ../xlgui/panel/playlists.py:234 #: ../data/ui/widgets/tracklist_info.ui.h:2 ../plugins/cd/cdprefs.py:107 #: ../plugins/minimode/minimode_preferences.py:94 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:17 msgid "Artist" msgstr "Artist" #: ../xlgui/widgets/playlist_columns.py:239 ../xlgui/properties.py:72 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:12 #: ../plugins/cd/cdprefs.py:108 ../plugins/minimode/minimode_preferences.py:95 msgid "Composer" msgstr "Compozitor" #: ../xlgui/widgets/playlist_columns.py:246 ../xlgui/properties.py:64 #: ../xlgui/panel/collection.py:176 ../xlgui/panel/playlists.py:236 #: ../data/ui/widgets/tracklist_info.ui.h:1 ../plugins/cd/cdprefs.py:109 #: ../plugins/minimode/minimode_preferences.py:96 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:18 msgid "Album" msgstr "Album" #: ../xlgui/widgets/playlist_columns.py:253 ../xlgui/properties.py:80 #: ../xlgui/panel/playlists.py:237 ../plugins/cd/cdprefs.py:110 #: ../plugins/minimode/minimode_preferences.py:97 msgid "Length" msgstr "Durată" #: ../xlgui/widgets/playlist_columns.py:260 ../xlgui/properties.py:75 msgid "Disc" msgstr "Disc" #: ../xlgui/widgets/playlist_columns.py:261 msgid "Disc Number" msgstr "Număr disc" #: ../xlgui/widgets/playlist_columns.py:268 ../xlgui/panel/playlists.py:238 #: ../plugins/cd/cdprefs.py:112 ../plugins/minimode/minimode_preferences.py:99 #: ../plugins/minimode/controls.py:527 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:9 msgid "Rating" msgstr "Evaluare" #: ../xlgui/widgets/playlist_columns.py:312 ../xlgui/properties.py:59 #: ../plugins/cd/cdprefs.py:113 #: ../plugins/minimode/minimode_preferences.py:100 msgid "Date" msgstr "Data" #: ../xlgui/widgets/playlist_columns.py:318 ../xlgui/properties.py:71 #: ../xlgui/panel/playlists.py:241 ../plugins/cd/cdprefs.py:114 #: ../plugins/minimode/minimode_preferences.py:101 msgid "Genre" msgstr "Gen muzical" #: ../xlgui/widgets/playlist_columns.py:325 ../xlgui/properties.py:78 #: ../plugins/cd/cdprefs.py:115 #: ../plugins/minimode/minimode_preferences.py:102 msgid "Bitrate" msgstr "Viteză bit" #: ../xlgui/widgets/playlist_columns.py:332 ../xlgui/properties.py:81 #: ../xlgui/panel/playlists.py:244 ../data/ui/collection_manager.ui.h:2 #: ../plugins/cd/cdprefs.py:116 #: ../plugins/minimode/minimode_preferences.py:103 msgid "Location" msgstr "Locație" #: ../xlgui/widgets/playlist_columns.py:339 ../xlgui/panel/files.py:150 #: ../plugins/cd/cdprefs.py:117 #: ../plugins/minimode/minimode_preferences.py:104 msgid "Filename" msgstr "Nume" #: ../xlgui/widgets/playlist_columns.py:346 msgid "Playcount" msgstr "Număr redări" #: ../xlgui/widgets/playlist_columns.py:353 ../xlgui/properties.py:76 #: ../xlgui/panel/playlists.py:170 ../xlgui/panel/playlists.py:245 #: ../plugins/cd/cdprefs.py:120 #: ../plugins/minimode/minimode_preferences.py:107 msgid "BPM" msgstr "BPM" #: ../xlgui/widgets/playlist_columns.py:360 ../xlgui/properties.py:86 #: ../xlgui/panel/playlists.py:243 ../plugins/cd/cdprefs.py:119 #: ../plugins/minimode/minimode_preferences.py:106 msgid "Last played" msgstr "Ultima redată" #: ../xlgui/widgets/playlist_columns.py:366 ../xlgui/properties.py:79 #: ../xlgui/panel/playlists.py:242 msgid "Date added" msgstr "Data adăugării" #: ../xlgui/widgets/playlist_columns.py:372 msgid "Schedule" msgstr "" #: ../xlgui/widgets/playlist_columns.py:491 ../xlgui/properties.py:77 msgid "Comment" msgstr "" #: ../xlgui/widgets/playlist_columns.py:500 ../xlgui/panel/playlists.py:178 #: ../xlgui/panel/playlists.py:246 msgid "Grouping" msgstr "" #: ../xlgui/widgets/playlist_columns.py:619 msgid "_Resizable" msgstr "_Redimensionabilă" #: ../xlgui/widgets/playlist_columns.py:624 msgid "_Autosize" msgstr "_Autodimensionează" #: ../xlgui/widgets/rating.py:261 msgid "Rating:" msgstr "" #: ../xlgui/widgets/playlist.py:129 msgid "Shuffle" msgstr "Aleator" #: ../xlgui/widgets/playlist.py:133 msgid "Repeat" msgstr "Repetă" #: ../xlgui/widgets/playlist.py:137 msgid "Dynamic" msgstr "Dinamică" #: ../xlgui/widgets/playlist.py:152 msgid "Remove Current Track From Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:182 msgid "Randomize Playlist" msgstr "" #: ../xlgui/widgets/playlist.py:185 msgid "Randomize Selection" msgstr "" #: ../xlgui/widgets/playlist.py:206 ../xlgui/oldmenu.py:188 #: ../xlgui/playlist.py:76 ../xlgui/panel/radio.py:435 #: ../plugins/droptrayicon/__init__.py:288 msgid "New Playlist" msgstr "Listă de redare nouă" #: ../xlgui/widgets/playlist.py:226 ../xlgui/oldmenu.py:244 msgid "Rename" msgstr "Redenumește" #: ../xlgui/widgets/playlist.py:266 msgid "Stop Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:273 msgid "Continue Playback After This Track" msgstr "" #: ../xlgui/widgets/playlist.py:534 msgid "Requires plugins providing dynamic playlists" msgstr "" #: ../xlgui/widgets/playlist.py:538 ../data/ui/playlist.ui.h:3 msgid "Dynamically add similar tracks to the playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:283 msgid "Enter the URL to open" msgstr "Introduceți URL-ul de deschis" #: ../xlgui/widgets/dialogs.py:284 msgid "Open URL" msgstr "Deschide URL" #: ../xlgui/widgets/dialogs.py:552 msgid "Select File Type (by Extension)" msgstr "" #: ../xlgui/widgets/dialogs.py:608 msgid "Choose Media to Open" msgstr "Alegeți mediul de deschis" #: ../xlgui/widgets/dialogs.py:619 msgid "Supported Files" msgstr "Fişiere suportate" #: ../xlgui/widgets/dialogs.py:621 msgid "Music Files" msgstr "Fişiere muzicale" #: ../xlgui/widgets/dialogs.py:623 ../xlgui/widgets/dialogs.py:781 msgid "Playlist Files" msgstr "Fişiere din lista de redare" #: ../xlgui/widgets/dialogs.py:625 ../xlgui/widgets/dialogs.py:783 #: ../xlgui/preferences/plugin.py:201 msgid "All Files" msgstr "Toate fişierele" #: ../xlgui/widgets/dialogs.py:699 msgid "Choose Directory to Open" msgstr "" #: ../xlgui/widgets/dialogs.py:770 ../xlgui/menu.py:87 ../xlgui/oldmenu.py:192 msgid "Import Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:863 msgid "Export Current Playlist" msgstr "" #: ../xlgui/widgets/dialogs.py:874 msgid "Use relative paths to tracks" msgstr "" #: ../xlgui/widgets/dialogs.py:929 #, python-format msgid "Playlist saved as %s." msgstr "" #: ../xlgui/widgets/dialogs.py:943 #, python-format msgid "Close %s" msgstr "" #: ../xlgui/widgets/dialogs.py:944 #, python-format msgid "Save changes to %s before closing?" msgstr "" #: ../xlgui/widgets/dialogs.py:945 msgid "Your changes will be lost if you don't save them" msgstr "Modificările vor fi pierdute dacă nu salvaţi" #: ../xlgui/widgets/dialogs.py:947 msgid "Close Without Saving" msgstr "Închide fără a salva" #: ../xlgui/widgets/dialogs.py:1303 msgid "Yes to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1311 msgid "No to all" msgstr "" #: ../xlgui/widgets/dialogs.py:1336 ../xlgui/properties.py:1209 #, python-format msgid "Saved %(count)s of %(total)s." msgstr "S-au salvat %(count)s din %(total)s." #: ../xlgui/widgets/dialogs.py:1456 #, python-format msgid "Error occurred while copying %s: %s" msgstr "" #: ../xlgui/widgets/dialogs.py:1465 #, python-format msgid "File exists, overwrite %s ?" msgstr "" #: ../xlgui/widgets/dialogs.py:1516 msgid "Playlist name:" msgstr "" #: ../xlgui/widgets/dialogs.py:1517 msgid "Add new playlist..." msgstr "" #: ../xlgui/widgets/dialogs.py:1526 ../xlgui/panel/playlists.py:755 #: ../xlgui/panel/playlists.py:838 msgid "You did not enter a name for your playlist" msgstr "Nu ați introdus un nume pentru lista de redare" #: ../xlgui/widgets/dialogs.py:1529 ../xlgui/panel/playlists.py:321 #: ../xlgui/panel/playlists.py:761 ../xlgui/panel/playlists.py:845 msgid "The playlist name you entered is already in use." msgstr "" #: ../xlgui/widgets/notebook.py:146 ../xlgui/menu.py:115 msgid "Close Tab" msgstr "Închide Tab" #: ../xlgui/main.py:111 msgid "$title (by $artist)" msgstr "$title (de $artist)" #: ../xlgui/main.py:466 msgid "Toggle: Stop after Selected Track" msgstr "Comută: Oprește după piesa selectată" #: ../xlgui/main.py:569 ../plugins/previewdevice/__init__.py:365 msgid "Playback error encountered!" msgstr "" #: ../xlgui/main.py:576 #, python-format msgid "Buffering: %d%%..." msgstr "Se creează memoria tampon: %d%%..." #: ../xlgui/main.py:628 ../plugins/previewdevice/__init__.py:376 msgid "Continue Playback" msgstr "Continuă redarea" #: ../xlgui/main.py:632 ../xlgui/main.py:820 #: ../plugins/previewdevice/__init__.py:347 #: ../plugins/previewdevice/__init__.py:380 msgid "Pause Playback" msgstr "Întrerupe redarea" #: ../xlgui/main.py:774 ../xlgui/menu.py:103 msgid "Playlist export failed!" msgstr "Exportarea listei de redare a eșuat!" #: ../xlgui/main.py:832 ../data/ui/main.ui.h:7 #: ../plugins/previewdevice/__init__.py:358 msgid "Start Playback" msgstr "Pornește redarea" #: ../xlgui/tray.py:148 msgid "Exaile Music Player" msgstr "Exaile Music Player" #: ../xlgui/menu.py:52 msgid "_New Playlist" msgstr "Listă de redare _nouă" #: ../xlgui/menu.py:71 msgid "Open _URL" msgstr "Deschide _URL" #: ../xlgui/menu.py:81 msgid "Open Directories" msgstr "Deschide dosare" #: ../xlgui/menu.py:109 msgid "_Export Current Playlist" msgstr "_Exportă lista de redare curentă" #: ../xlgui/menu.py:124 ../xlgui/preferences/widgets.py:70 msgid "Restart" msgstr "Repornește" #: ../xlgui/menu.py:147 msgid "_Collection" msgstr "_Colecție" #: ../xlgui/menu.py:151 msgid "_Queue" msgstr "Coa_dă" #: ../xlgui/menu.py:158 msgid "C_overs" msgstr "C_operți" #: ../xlgui/menu.py:190 msgid "_Playlist Utilities Bar" msgstr "Bara de utilități pentru _lista de redare" #: ../xlgui/menu.py:192 msgid "_Columns" msgstr "_Coloane" #: ../xlgui/menu.py:199 msgid "C_lear playlist" msgstr "Golește lista de redare" #: ../xlgui/menu.py:215 msgid "_Device Manager" msgstr "" #: ../xlgui/menu.py:218 msgid "Re_scan Collection" msgstr "" #: ../xlgui/menu.py:221 msgid "Track _Properties" msgstr "" #: ../xlgui/progress.py:79 msgid "Cancel" msgstr "Anulează" #: ../xlgui/properties.py:51 msgid "Original album" msgstr "Album original" #: ../xlgui/properties.py:52 msgid "Lyricist" msgstr "Versier" #: ../xlgui/properties.py:54 msgid "Website" msgstr "Pagină web" #: ../xlgui/properties.py:55 ../xlgui/cover.py:793 msgid "Cover" msgstr "Copertă" #: ../xlgui/properties.py:56 msgid "Original artist" msgstr "Artist original" #: ../xlgui/properties.py:57 msgid "Author" msgstr "Autor" #: ../xlgui/properties.py:58 msgid "Original date" msgstr "Data originală" #: ../xlgui/properties.py:60 msgid "Arranger" msgstr "Aranjator" #: ../xlgui/properties.py:61 #: ../data/ui/trackproperties_dialog_cover_row.ui.h:10 msgid "Conductor" msgstr "Conductor" #: ../xlgui/properties.py:62 msgid "Performer" msgstr "Interpret" #: ../xlgui/properties.py:65 msgid "Copyright" msgstr "Drepturi de autor" #: ../xlgui/properties.py:66 ../plugins/lyricsviewer/__init__.py:62 #: ../plugins/lyricsviewer/lyricsviewer.ui.h:1 #: ../plugins/lyricsviewer/PLUGININFO:5 ../plugins/lyricsfly/PLUGININFO:5 #: ../plugins/lyricwiki/PLUGININFO:5 msgid "Lyrics" msgstr "Versuri" #: ../xlgui/properties.py:67 ../plugins/jamendo/ui/jamendo_panel.ui.h:20 msgid "Track" msgstr "Piesă" #: ../xlgui/properties.py:68 ../data/ui/preferences/plugin.ui.h:2 msgid "Version" msgstr "Versiune" #: ../xlgui/properties.py:70 msgid "ISRC" msgstr "ISRC" #: ../xlgui/properties.py:73 msgid "Encoded by" msgstr "Codificat de" #: ../xlgui/properties.py:74 msgid "Organization" msgstr "Organizația" #: ../xlgui/properties.py:83 msgid "Modified" msgstr "Modificat" #: ../xlgui/properties.py:85 msgid "Times played" msgstr "Repetări" #: ../xlgui/properties.py:244 msgid "Writing of tags failed" msgstr "" #: ../xlgui/properties.py:245 msgid "" "Tags could not be written to the following files:\n" "{files}" msgstr "" #: ../xlgui/properties.py:270 #, python-format msgid "Editing track %(current)d of %(total)d" msgstr "Se modifică piesa %(current)d din %(total)d" #: ../xlgui/properties.py:438 msgid "Apply changes before closing?" msgstr "" #: ../xlgui/properties.py:439 msgid "Your changes will be lost if you do not apply them now." msgstr "" #: ../xlgui/properties.py:614 #, python-format msgid "%s:" msgstr "" #. TRANSLATORS: This is the 'of' between numbers in fields like #. tracknumber, discnumber, etc. in the tagger. #: ../xlgui/properties.py:820 msgid "of:" msgstr "din:" #: ../xlgui/properties.py:909 msgid "JPEG image" msgstr "" #: ../xlgui/properties.py:915 msgid "PNG image" msgstr "" #: ../xlgui/properties.py:919 msgid "Image" msgstr "" #: ../xlgui/properties.py:926 msgid "Linked image" msgstr "" #: ../xlgui/properties.py:1036 ../xlgui/cover.py:1104 msgid "{width}x{height} pixels" msgstr "" #: ../xlgui/properties.py:1038 msgid "{format} ({width}x{height} pixels)" msgstr "" #: ../xlgui/properties.py:1051 msgid "Select image to set as cover" msgstr "" #: ../xlgui/properties.py:1060 msgid "Supported image formats" msgstr "" #: ../xlgui/properties.py:1183 msgid "Apply current value to all tracks" msgstr "Aplică valoarea curentă pentru toate piesele" #: ../xlgui/cover.py:112 msgid "{outstanding} covers left to fetch" msgstr "" #: ../xlgui/cover.py:113 msgid "All covers fetched" msgstr "" #: ../xlgui/cover.py:138 msgid "Collecting albums and covers..." msgstr "" #: ../xlgui/cover.py:493 msgid "Show Cover" msgstr "Arată coperta" #: ../xlgui/cover.py:494 msgid "Fetch Cover" msgstr "Preia coperta" #: ../xlgui/cover.py:495 msgid "Remove Cover" msgstr "Elimină coperta" #: ../xlgui/cover.py:795 #, python-format msgid "Cover for %s" msgstr "Copertă pentru %s" #: ../xlgui/cover.py:957 #, python-format msgid "Cover options for %(artist)s - %(album)s" msgstr "Opțiuni pentru coperțile %(artist)s - %(album)s" #: ../xlgui/cover.py:990 msgid "Loading..." msgstr "" #: ../xlgui/cover.py:1062 msgid "No covers found." msgstr "Nu s-au găsit coperți." #: ../xlgui/cover.py:1063 msgid "" "None of the enabled sources has a cover for this track, try enabling more " "sources." msgstr "" #: ../xlgui/devices.py:76 msgid "Icon" msgstr "" #: ../xlgui/devices.py:81 msgid "Device" msgstr "" #: ../xlgui/devices.py:88 msgid "Driver" msgstr "" #: ../xlgui/__init__.py:296 msgid "Scanning collection..." msgstr "Scanez colecția..." #: ../xlgui/__init__.py:380 #, python-format msgid "Scanning %s..." msgstr "" #: ../xlgui/oldmenu.py:72 msgid "Toggle Queue" msgstr "Alternează coada" #: ../xlgui/oldmenu.py:118 msgid "Queue Items" msgstr "Pune la coadă" #: ../xlgui/oldmenu.py:121 ../data/ui/trackproperties_dialog.ui.h:7 msgid "Properties" msgstr "Proprietăți" #: ../xlgui/oldmenu.py:185 msgid "New Station" msgstr "" #: ../xlgui/oldmenu.py:190 msgid "New Smart Playlist" msgstr "" #: ../xlgui/oldmenu.py:246 msgid "Edit" msgstr "Editare" #: ../xlgui/oldmenu.py:249 msgid "Export Playlist" msgstr "" #: ../xlgui/oldmenu.py:251 msgid "Export Files" msgstr "" #: ../xlgui/oldmenu.py:254 msgid "Delete Playlist" msgstr "Șterge lista de redare" #: ../xlgui/oldmenu.py:268 msgid "Choose directory to export files to" msgstr "" #: ../xlgui/oldmenu.py:278 ../xlgui/panel/playlists.py:1178 msgid "Are you sure you want to permanently delete the selected playlist?" msgstr "Sigur doriți să ștergeți pentru totdeauna listele de redare selectate?" #: ../xlgui/oldmenu.py:291 msgid "Enter the new name you want for your playlist" msgstr "Introdu un nume nou pentru lista de redare" #: ../xlgui/oldmenu.py:292 msgid "Rename Playlist" msgstr "Redenumește lista de redare" #: ../xlgui/oldmenu.py:331 ../plugins/multialarmclock/malrmclk.ui.h:2 msgid "Remove" msgstr "Elimină" #: ../xlgui/playlist.py:77 msgid "Drop here to create a new playlist" msgstr "" #: ../xlgui/playlist.py:137 msgid "Recently Closed Tabs" msgstr "" #: ../xlgui/playlist.py:214 #, python-format msgid "Playlist %d" msgstr "" #: ../xlgui/playlist.py:394 msgid "{playlist_name} ({track_count} tracks, closed {minutes} min ago)" msgstr "" #: ../xlgui/playlist.py:400 msgid "{playlist_name} ({track_count} tracks, closed {seconds} sec ago)" msgstr "" #: ../xlgui/collection.py:115 msgid "Add a Directory" msgstr "" #: ../xlgui/collection.py:134 msgid "Directory not added." msgstr "" #: ../xlgui/collection.py:135 msgid "" "The directory is already in your collection or is a subdirectory of another " "directory in your collection." msgstr "" #: ../xlgui/panel/device.py:137 #, python-format msgid "Transferring to %s..." msgstr "" #: ../xlgui/panel/radio.py:126 ../xlgui/panel/radio.py:490 #: ../xlgui/panel/radio.py:566 msgid "Loading streams..." msgstr "Încarc fluxuri..." #: ../xlgui/panel/radio.py:198 msgid "Add Radio Station" msgstr "" #: ../xlgui/panel/radio.py:201 ../plugins/audioscrobbler/asprefs_pane.ui.h:5 msgid "URL:" msgstr "" #: ../xlgui/panel/radio.py:273 msgid "Saved Stations" msgstr "Posturi salvate" #: ../xlgui/panel/radio.py:274 msgid "Radio Streams" msgstr "Fluxuri Radio" #: ../xlgui/panel/radio.py:304 ../plugins/wikipedia/data/wikipanel.ui.h:4 msgid "Refresh" msgstr "Reîmprospătare" #: ../xlgui/panel/radio.py:434 msgid "Enter the name you want for your new playlist" msgstr "Introduceţi un nume care doriţi pentru noua listă de redare" #: ../xlgui/panel/collection.py:179 msgid "Genre - Artist" msgstr "" #: ../xlgui/panel/collection.py:182 msgid "Genre - Album" msgstr "" #: ../xlgui/panel/collection.py:185 msgid "Date - Artist" msgstr "" #: ../xlgui/panel/collection.py:188 msgid "Date - Album" msgstr "" #: ../xlgui/panel/collection.py:191 msgid "Artist - (Date - Album)" msgstr "" #: ../xlgui/panel/collection.py:314 msgid "Rescan Collection" msgstr "" #. TRANSLATORS: File size column in the file browser #: ../xlgui/panel/files.py:174 msgid "Size" msgstr "Dimensiune" #: ../xlgui/panel/files.py:441 #, python-format msgid "%s KB" msgstr "%s KB" #. TRANSLATORS: Logical AND used for smart playlists #: ../xlgui/panel/playlists.py:64 msgid "and" msgstr "și" #. TRANSLATORS: True if haystack is equal to needle #: ../xlgui/panel/playlists.py:198 msgid "is" msgstr "este" #. TRANSLATORS: True if haystack is not equal to needle #: ../xlgui/panel/playlists.py:200 msgid "is not" msgstr "nu este" #. TRANSLATORS: True if the specified tag is present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:203 msgid "is set" msgstr "" #. TRANSLATORS: True if the specified tag is not present (uses the NullField #. to compare to __null__) #: ../xlgui/panel/playlists.py:206 msgid "is not set" msgstr "" #. TRANSLATORS: True if haystack contains needle #: ../xlgui/panel/playlists.py:208 msgid "contains" msgstr "conține" #. TRANSLATORS: True if haystack does not contain needle #: ../xlgui/panel/playlists.py:210 msgid "does not contain" msgstr "nu conține" #. TRANSLATORS: True if haystack matches regular expression #: ../xlgui/panel/playlists.py:212 msgid "regex" msgstr "" #. TRANSLATORS: True if haystack does not match regular expression #: ../xlgui/panel/playlists.py:214 msgid "not regex" msgstr "" #. TRANSLATORS: Example: rating >= 5 #: ../xlgui/panel/playlists.py:216 msgid "at least" msgstr "cel puțin" #. TRANSLATORS: Example: rating <= 3 #: ../xlgui/panel/playlists.py:218 msgid "at most" msgstr "cel mult" #. TRANSLATORS: Example: year < 1999 #: ../xlgui/panel/playlists.py:220 msgid "before" msgstr "înainte" #. TRANSLATORS: Example: year > 2002 #: ../xlgui/panel/playlists.py:222 msgid "after" msgstr "după" #. TRANSLATORS: Example: 1980 <= year <= 1987 #: ../xlgui/panel/playlists.py:224 msgid "between" msgstr "între" #: ../xlgui/panel/playlists.py:225 msgid "greater than" msgstr "" #: ../xlgui/panel/playlists.py:226 msgid "less than" msgstr "" #. TRANSLATORS: Example: track has been added in the last 2 days #: ../xlgui/panel/playlists.py:228 msgid "in the last" msgstr "" #. TRANSLATORS: Example: track has not been added in the last 5 hours #: ../xlgui/panel/playlists.py:230 msgid "not in the last" msgstr "" #: ../xlgui/panel/playlists.py:239 msgid "Plays" msgstr "" #: ../xlgui/panel/playlists.py:240 msgid "Year" msgstr "An" #. TRANSLATORS: Playlist title suggestion with more #. than two values #: ../xlgui/panel/playlists.py:424 ../xlgui/panel/playlists.py:438 #: ../xlgui/panel/playlists.py:452 #, python-format msgid "%(first)s, %(second)s and others" msgstr "" #. TRANSLATORS: Playlist title suggestion with two values #: ../xlgui/panel/playlists.py:429 ../xlgui/panel/playlists.py:443 #: ../xlgui/panel/playlists.py:457 #, python-format msgid "%(first)s and %(second)s" msgstr "" #: ../xlgui/panel/playlists.py:675 msgid "Smart Playlists" msgstr "Liste inteligente de redare" #: ../xlgui/panel/playlists.py:678 msgid "Custom Playlists" msgstr "Liste personalizate de redare" #: ../xlgui/panel/playlists.py:733 msgid "Add Smart Playlist" msgstr "Adaugă listă de redare inteligentă" #: ../xlgui/panel/playlists.py:808 msgid "Edit Smart Playlist" msgstr "Editează Lista Inteligentă" #: ../xlgui/panel/playlists.py:1125 #, python-format msgid "Exporting %s" msgstr "" #: ../xlgui/preferences/playback.py:35 msgid "Playback" msgstr "" #: ../xlgui/preferences/plugin.py:40 ../xlgui/preferences/__init__.py:124 msgid "Plugins" msgstr "Module" #: ../xlgui/preferences/plugin.py:92 ../plugins/grouptagger/gt_common.py:64 #: ../plugins/grouptagger/gt_widgets.py:58 msgid "Uncategorized" msgstr "" #: ../xlgui/preferences/plugin.py:135 msgid "Could not load plugin info!" msgstr "" #: ../xlgui/preferences/plugin.py:137 #, python-format msgid "Failed plugin: %s" msgid_plural "Failed plugins: %s" msgstr[0] "" msgstr[1] "" #: ../xlgui/preferences/plugin.py:167 ../xlgui/preferences/plugin.py:261 msgid "Could not disable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:177 ../xlgui/preferences/plugin.py:255 msgid "Could not enable plugin!" msgstr "" #: ../xlgui/preferences/plugin.py:185 msgid "Choose a Plugin" msgstr "" #: ../xlgui/preferences/plugin.py:194 msgid "Plugin Archives" msgstr "" #: ../xlgui/preferences/plugin.py:213 msgid "Plugin file installation failed!" msgstr "" #: ../xlgui/preferences/cover.py:38 ../plugins/musicbrainzcovers/PLUGININFO:5 #: ../plugins/lastfmcovers/PLUGININFO:5 ../plugins/amazoncovers/PLUGININFO:5 msgid "Covers" msgstr "" #: ../xlgui/preferences/appearance.py:34 ../plugins/osd/osd_preferences.ui.h:9 msgid "Appearance" msgstr "" #: ../xlgui/preferences/collection.py:23 ../data/ui/panel/device.ui.h:1 #: ../data/ui/panel/collection.ui.h:1 msgid "Collection" msgstr "Colecție" #. TRANSLATORS: Grammatical articles that are ignored while sorting the #. collection panel. For example, in French locales this could be #. the space-separated list "l' la le les". #. If this practice is not common in your locale, simply #. translate this to an empty string. #: ../xlgui/preferences/collection.py:34 msgid "the" msgstr "" #: ../xlgui/preferences/collection.py:56 msgid "Reset to Defaults" msgstr "" #: ../xlgui/preferences/widgets.py:66 msgid "Restart Exaile?" msgstr "" #: ../xlgui/preferences/widgets.py:68 msgid "A restart is required for this change to take effect." msgstr "" #: ../xlgui/preferences/widgets.py:619 msgid "Action" msgstr "" #: ../xlgui/preferences/widgets.py:627 msgid "Shortcut" msgstr "" #: ../xlgui/preferences/playlists.py:34 ../data/ui/panel/playlists.ui.h:1 msgid "Playlists" msgstr "Liste de redare" #: ../data/ui/about_dialog.ui.h:1 msgid "About Exaile" msgstr "Despre Exaile" #: ../data/ui/about_dialog.ui.h:2 msgid "© 2009-2012" msgstr "" #: ../data/ui/about_dialog.ui.h:3 msgid "" "Copyright (C) 2008-2010 Adam Olsen \n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2 of the License, or\n" "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License along\n" "with this program; if not, write to the Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" msgstr "" #: ../data/ui/about_dialog.ui.h:20 msgctxt "About dialog translator credits" msgid "Unknown translator" msgstr "" #: ../data/ui/covermanager.ui.h:1 msgid "Cover Manager" msgstr "" #: ../data/ui/covermanager.ui.h:2 msgid "_Fetch Covers" msgstr "" #: ../data/ui/playlist.ui.h:1 msgid "Shuffle playback order" msgstr "" #: ../data/ui/playlist.ui.h:2 msgid "Repeat playback" msgstr "" #: ../data/ui/playlist.ui.h:4 msgid "_Search:" msgstr "" #: ../data/ui/coverchooser.ui.h:1 msgid "Cover Finder" msgstr "Căutător de coperți" #: ../data/ui/coverchooser.ui.h:2 msgid "The origin of this cover" msgstr "" #: ../data/ui/coverchooser.ui.h:3 msgid "_Set as Cover" msgstr "" #: ../data/ui/main.ui.h:1 msgid "_File" msgstr "_Fișier" #: ../data/ui/main.ui.h:2 msgid "_Edit" msgstr "_Editare" #: ../data/ui/main.ui.h:3 msgid "_View" msgstr "_Vedere" #: ../data/ui/main.ui.h:4 msgid "_Tools" msgstr "Unel_te" #: ../data/ui/main.ui.h:5 msgid "_Help" msgstr "_Ajutor" #: ../data/ui/main.ui.h:6 msgid "Previous Track" msgstr "Melodia precedentă" #: ../data/ui/main.ui.h:8 msgid "" "Stop Playback\n" "\n" "Right Click for Stop After Track Feature" msgstr "" #: ../data/ui/main.ui.h:11 msgid "Next Track" msgstr "Melodia următoare" #: ../data/ui/main.ui.h:12 msgid "0:00 / 0:00" msgstr "0:00 / 0:00" #: ../data/ui/trackproperties_dialog.ui.h:1 msgid "Track Properties" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:2 msgid "A_dd tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:3 msgid "_Remove tag" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:4 msgid "ab → A_b" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:5 msgid "Uppercase first letter of all tags" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:8 msgid "_Previous" msgstr "" #: ../data/ui/trackproperties_dialog.ui.h:9 msgid "_Next" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:1 msgid "Other" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:2 msgid "32x32 pixels 'file icon' (PNG only)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:3 msgid "Other file icon" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:4 msgid "Cover (front)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:5 msgid "Cover (back)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:6 msgid "Leaflet page" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:7 msgid "Media (e.g. label side of CD)" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:8 msgid "Lead artist/lead performer/soloist" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:9 msgid "Artist/performer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:11 msgid "Band/Orchestra" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:13 msgid "Lyricist/text writer" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:14 msgid "Recording Location" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:15 msgid "During recording" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:16 msgid "During performance" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:17 msgid "Movie/video screen capture" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:18 msgid "A bright coloured fish" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:19 msgid "Illustration" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:20 msgid "Band/artist logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:21 msgid "Publisher/Studio logotype" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:22 msgid "Click or drag files here to change the cover image" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:23 msgid "Type:" msgstr "" #: ../data/ui/trackproperties_dialog_cover_row.ui.h:24 #: ../data/ui/preferences/plugin.ui.h:8 msgid "Description:" msgstr "Descriere:" #: ../data/ui/collection_manager.ui.h:1 msgid "Collection Manager" msgstr "" #: ../data/ui/collection_manager.ui.h:3 msgid "Monitored" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:1 ../data/ui/panel/radio.ui.h:1 msgid "Radio" msgstr "Radio" #: ../data/ui/panel/flatplaylist.ui.h:2 msgid "Append All Tracks to Playlist" msgstr "" #: ../data/ui/panel/flatplaylist.ui.h:3 msgid "Import CD" msgstr "" #: ../data/ui/panel/radio.ui.h:2 msgid "Add Station" msgstr "Adaugă un post" #: ../data/ui/panel/files.ui.h:1 msgid "Files" msgstr "Fișiere" #: ../data/ui/panel/files.ui.h:2 msgid "Previous visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:3 msgid "Next visited directory" msgstr "" #: ../data/ui/panel/files.ui.h:4 msgid "Up one directory" msgstr "" #: ../data/ui/panel/files.ui.h:5 msgid "Refresh directory listing" msgstr "" #: ../data/ui/panel/files.ui.h:6 msgid "Home directory" msgstr "" #: ../data/ui/panel/files.ui.h:7 ../data/ui/panel/collection.ui.h:6 msgid "Search: " msgstr "Caută: " #: ../data/ui/panel/files.ui.h:8 ../data/ui/panel/collection.ui.h:7 msgid "Clear search field" msgstr "" #: ../data/ui/panel/collection.ui.h:2 msgid "Collection is empty." msgstr "" #: ../data/ui/panel/collection.ui.h:3 msgid "Add Music" msgstr "" #: ../data/ui/panel/collection.ui.h:4 msgid "" "Refresh collection view\n" "(Hold Shift key to rescan the collection)" msgstr "" #: ../data/ui/preferences/cover.ui.h:1 msgid "Use covers embedded in tags" msgstr "" #: ../data/ui/preferences/cover.ui.h:2 msgid "Use covers from local files" msgstr "" #: ../data/ui/preferences/cover.ui.h:3 msgid "" "This option will search for cover image files in \n" "the same folder as the music file." msgstr "" #: ../data/ui/preferences/cover.ui.h:5 msgid "Preferred file names:" msgstr "" #: ../data/ui/preferences/cover.ui.h:6 msgid "A comma-separated list of file names without file extensions" msgstr "" #: ../data/ui/preferences/cover.ui.h:7 msgid "Fetch covers automatically on playback start" msgstr "" #: ../data/ui/preferences/cover.ui.h:8 msgid "Cover Search Order:" msgstr "Ordinea de căutare a coperţilor:" #: ../data/ui/preferences/cover.ui.h:9 msgid "(drag to reorder)" msgstr "" #: ../data/ui/preferences/playlists.ui.h:1 #: ../data/ui/preferences/general.ui.h:1 msgid "Open last playlists on startup" msgstr "La pornire, deschide ultima listă de redare" #: ../data/ui/preferences/playlists.ui.h:2 msgid "Prompt for saving custom playlists on close" msgstr "" #: ../data/ui/preferences/playlists.ui.h:3 msgid "Replace content on side pane double click" msgstr "" #: ../data/ui/preferences/playlists.ui.h:4 msgid "" "Instead of appending, tracks added via double click in the panes will " "replace the content of the current playlist." msgstr "" #: ../data/ui/preferences/playlists.ui.h:5 msgid "Appending/Replacing via menu item triggers playback" msgstr "" #: ../data/ui/preferences/playlists.ui.h:6 msgid "" "When using a menu item to add/replace tracks on the playlist, start playback " "if there is track currently playing. This option was the default behavior " "before Exaile 0.3.3" msgstr "" #: ../data/ui/preferences/playlists.ui.h:7 msgid "Queue tracks by default instead of playing them" msgstr "" #: ../data/ui/preferences/playlists.ui.h:8 msgid "" "When you double click or press enter to play a track in a playlist, queue " "the track instead of playing it" msgstr "" #: ../data/ui/preferences/playback.ui.h:1 #: ../plugins/previewdevice/previewprefs.ui.h:1 msgid "Playback engine: " msgstr "" #: ../data/ui/preferences/playback.ui.h:2 #: ../plugins/previewdevice/previewprefs.ui.h:2 msgid "Use fade transitions on user actions" msgstr "" #: ../data/ui/preferences/playback.ui.h:3 #: ../plugins/previewdevice/previewprefs.ui.h:3 msgid "Fade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:4 #: ../plugins/previewdevice/previewprefs.ui.h:4 msgid "Use crossfading (EXPERIMENTAL)" msgstr "" #: ../data/ui/preferences/playback.ui.h:5 #: ../plugins/previewdevice/previewprefs.ui.h:5 msgid "Crossfade duration (ms):" msgstr "" #: ../data/ui/preferences/playback.ui.h:6 #: ../plugins/previewdevice/previewprefs.ui.h:6 msgid "Audio Sink: " msgstr "" #: ../data/ui/preferences/playback.ui.h:7 #: ../plugins/previewdevice/previewprefs.ui.h:7 msgid "Device: " msgstr "" #: ../data/ui/preferences/playback.ui.h:8 #: ../plugins/previewdevice/previewprefs.ui.h:8 msgid "Custom sink pipeline:" msgstr "" #: ../data/ui/preferences/playback.ui.h:9 msgid "Resume playback on start" msgstr "" #: ../data/ui/preferences/playback.ui.h:10 msgid "Resume playback in paused state" msgstr "" #: ../data/ui/preferences/playback.ui.h:11 msgid "Adding an item to an empty queue begins playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:12 msgid "Remove track from queue upon playback" msgstr "" #: ../data/ui/preferences/playback.ui.h:13 msgid "Automatically advance to the next track" msgstr "" #: ../data/ui/preferences/playback.ui.h:14 #: ../plugins/previewdevice/previewprefs.ui.h:9 msgid "Normal" msgstr "" #: ../data/ui/preferences/playback.ui.h:15 #: ../plugins/previewdevice/previewprefs.ui.h:10 msgid "Unified (unstable)" msgstr "" #: ../data/ui/preferences/plugin.ui.h:1 msgid "Plugin" msgstr "Plugin" #: ../data/ui/preferences/plugin.ui.h:3 ../plugins/equalizer/equalizer.ui.h:2 msgid "Enabled" msgstr "Activat" #: ../data/ui/preferences/plugin.ui.h:4 msgid "No Plugin Selected" msgstr "" #: ../data/ui/preferences/plugin.ui.h:5 msgid "Installed Plugins" msgstr "Module instalate" #: ../data/ui/preferences/plugin.ui.h:6 msgid "Authors:" msgstr "Autori:" #: ../data/ui/preferences/plugin.ui.h:7 msgid "Version:" msgstr "Versiune:" #: ../data/ui/preferences/plugin.ui.h:9 msgid "Install" msgstr "Instalare" #: ../data/ui/preferences/plugin.ui.h:10 msgid "No Plugin Selected" msgstr "Niciun Plugin selectat" #: ../data/ui/preferences/plugin.ui.h:11 msgid "Available Plugins" msgstr "Plugin-uri disponibile" #: ../data/ui/preferences/plugin.ui.h:12 msgid "Install Updates" msgstr "Instalare actualizări" #: ../data/ui/preferences/plugin.ui.h:13 msgid "Updates" msgstr "Actualizări" #: ../data/ui/preferences/plugin.ui.h:14 msgid "Install Plugin File" msgstr "" #: ../data/ui/preferences/appearance.ui.h:1 msgid "Show info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:2 msgid "The info area contains the cover art and track information" msgstr "" #: ../data/ui/preferences/appearance.ui.h:3 msgid "Show cover art in info area" msgstr "" #: ../data/ui/preferences/appearance.ui.h:4 msgid "Always show tab bar" msgstr "" #: ../data/ui/preferences/appearance.ui.h:5 msgid "Tab placement:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:6 msgid "Playlist font:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:7 #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:2 #: ../plugins/grouptagger/gt_prefs.ui.h:2 msgid "Reset to the system font" msgstr "" #: ../data/ui/preferences/appearance.ui.h:8 msgid "Display track counts in collection" msgstr "" #: ../data/ui/preferences/appearance.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:7 msgid "Use alpha transparency:" msgstr "" #: ../data/ui/preferences/appearance.ui.h:11 msgid "" "Warning: this option can cause display errors if used with a window manager " "without compositing support." msgstr "" #: ../data/ui/preferences/appearance.ui.h:12 msgid "Show tray icon" msgstr "Arată iconiţă în zona de notificare" #: ../data/ui/preferences/appearance.ui.h:13 msgid "Minimize to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:14 msgid "Close to tray" msgstr "" #: ../data/ui/preferences/appearance.ui.h:16 msgid "Jump to current song on track change" msgstr "Sari la melodia curentă la schimbarea piesei" #: ../data/ui/preferences/appearance.ui.h:17 msgid "Show splash screen on startup" msgstr "Arată imaginea de pornire" #: ../data/ui/preferences/appearance.ui.h:18 msgid "Left" msgstr "" #: ../data/ui/preferences/appearance.ui.h:19 msgid "Right" msgstr "" #: ../data/ui/preferences/appearance.ui.h:20 msgid "Top" msgstr "" #: ../data/ui/preferences/appearance.ui.h:21 msgid "Bottom" msgstr "" #: ../data/ui/preferences/preferences_dialog.ui.h:1 msgid "Preferences" msgstr "Preferințe" #: ../data/ui/preferences/collection.ui.h:1 msgid "" "Words to strip from the beginning of artist tags when sorting (space " "separated):" msgstr "" #: ../data/ui/preferences/collection.ui.h:2 msgid "(Right click to reset to defaults)" msgstr "" #: ../data/ui/preferences/collection.ui.h:3 msgid "Use file based compilation detection" msgstr "" #: ../data/ui/device_manager.ui.h:1 msgid "Device Manager" msgstr "Administrator dispozitive" #: ../data/ui/device_manager.ui.h:2 msgid "Add Device" msgstr "" #: ../data/ui/device_manager.ui.h:3 msgid "Type of device:" msgstr "Tip dispozitiv:" #: ../data/ui/device_manager.ui.h:4 msgid "Detected devices:" msgstr "Dispozitive detectate:" #: ../data/ui/device_manager.ui.h:5 msgid "Custom: " msgstr "" #: ../data/ui/queue_dialog.ui.h:1 msgid "Queue Manager" msgstr "" #: ../plugins/moodbar/__init__.py:163 msgid "Searching for mood..." msgstr "" #: ../plugins/moodbar/__init__.py:167 msgid "Mood found." msgstr "" #: ../plugins/moodbar/__init__.py:199 msgid "Could not read moodbar." msgstr "" #: ../plugins/moodbar/__init__.py:538 msgid "Moodbar executable is not available." msgstr "" #: ../plugins/moodbar/moodbarprefs.py:23 ../plugins/moodbar/PLUGININFO:3 msgid "Moodbar" msgstr "" #: ../plugins/streamripper/__init__.py:72 msgid "Error executing streamripper" msgstr "" #: ../plugins/streamripper/srprefs.py:22 ../plugins/streamripper/PLUGININFO:3 msgid "Streamripper" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:31 #: ../plugins/lastfmlove/PLUGININFO:3 msgid "Last.fm Loved Tracks" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:58 msgid "The API key is invalid." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:80 #: ../plugins/audioscrobbler/asprefs.py:110 msgid "Please make sure the entered data is correct." msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:93 msgid "Could not start web browser" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.py:94 msgid "" "Please copy the following URL and open it with your web browser:\n" "{url}" msgstr "" #: ../plugins/lastfmlove/__init__.py:122 msgid "Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:123 msgid "Last.fm Loved" msgstr "" #: ../plugins/lastfmlove/__init__.py:186 msgid "Love This Track" msgstr "" #: ../plugins/lastfmlove/__init__.py:208 msgid "Unlove This Track" msgstr "" #: ../plugins/alarmclock/acprefs.py:22 ../plugins/alarmclock/PLUGININFO:3 msgid "Alarm Clock" msgstr "" #: ../plugins/mainmenubutton/__init__.py:31 msgid "This plugin needs at least PyGTK 2.22 and GTK 2.20." msgstr "" #: ../plugins/mainmenubutton/__init__.py:68 msgid "Main Menu" msgstr "" #: ../plugins/shoutcast/__init__.py:107 ../plugins/shoutcast/__init__.py:164 #: ../plugins/shoutcast/__init__.py:211 ../plugins/shoutcast/__init__.py:227 msgid "Contacting Shoutcast server..." msgstr "" #: ../plugins/shoutcast/__init__.py:120 ../plugins/shoutcast/__init__.py:124 #: ../plugins/shoutcast/__init__.py:177 ../plugins/shoutcast/__init__.py:181 #: ../plugins/shoutcast/__init__.py:242 ../plugins/shoutcast/__init__.py:247 msgid "Error connecting to Shoutcast server." msgstr "" #: ../plugins/shoutcast/__init__.py:267 msgid "Enter the search keywords" msgstr "" #: ../plugins/shoutcast/__init__.py:268 msgid "Shoutcast Search" msgstr "" #: ../plugins/shoutcast/__init__.py:291 msgid "Search Results" msgstr "" #: ../plugins/shoutcast/__init__.py:324 msgid "Search" msgstr "Caută:" #: ../plugins/lyricsviewer/__init__.py:278 msgid "No lyrics found." msgstr "" #: ../plugins/lyricsviewer/__init__.py:303 msgid "Go to: " msgstr "" #: ../plugins/lyricsviewer/__init__.py:364 msgid "Any" msgstr "" #: ../plugins/lyricsviewer/lyricsviewerprefs.py:21 #: ../plugins/lyricsviewer/PLUGININFO:3 msgid "Lyrics Viewer" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:32 #: ../plugins/audioscrobbler/PLUGININFO:3 msgid "AudioScrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:103 msgid "Verification successful" msgstr "" #: ../plugins/audioscrobbler/asprefs.py:109 msgid "Verification failed" msgstr "" #: ../plugins/audioscrobbler/__init__.py:121 msgid "Enable audioscrobbling" msgstr "" #: ../plugins/equalizer/__init__.py:127 ../plugins/equalizer/equalizer.ui.h:1 #: ../plugins/equalizer/PLUGININFO:3 msgid "Equalizer" msgstr "" #: ../plugins/shutdown/__init__.py:38 ../plugins/shutdown/PLUGININFO:3 msgid "Shutdown after Playback" msgstr "" #: ../plugins/shutdown/__init__.py:59 msgid "Shutdown scheduled" msgstr "" #: ../plugins/shutdown/__init__.py:60 msgid "Computer will be shutdown at the end of playback." msgstr "" #: ../plugins/shutdown/__init__.py:86 msgid "Imminent Shutdown" msgstr "" #: ../plugins/shutdown/__init__.py:109 #, python-format msgid "The computer will be shut down in %d seconds." msgstr "" #: ../plugins/shutdown/__init__.py:130 msgid "Shutdown failed" msgstr "" #: ../plugins/shutdown/__init__.py:131 msgid "Computer could not be shutdown using D-Bus." msgstr "" #: ../plugins/previewdevice/previewprefs.py:38 #: ../plugins/previewdevice/PLUGININFO:3 msgid "Preview Device" msgstr "" #: ../plugins/previewdevice/__init__.py:157 msgid "Preview Player" msgstr "" #: ../plugins/previewdevice/__init__.py:163 msgid "Preview" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:22 ../plugins/notifyosd/PLUGININFO:3 msgid "Notify-osd notifications" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:51 #: ../plugins/notify/notifyprefs.py:53 #, python-format msgid "%(title)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:55 #: ../plugins/notify/notifyprefs.py:43 #, python-format msgid "by %(artist)s" msgstr "" #: ../plugins/notifyosd/notifyosdprefs.py:59 #: ../plugins/notify/notifyprefs.py:48 #, python-format msgid "from %(album)s" msgstr "" #: ../plugins/ipconsole/__init__.py:86 msgid "IPython Console - Exaile" msgstr "" #: ../plugins/ipconsole/__init__.py:154 msgid "Show IPython Console" msgstr "" #: ../plugins/ipconsole/ipconsoleprefs.py:22 ../plugins/ipconsole/PLUGININFO:3 msgid "IPython Console" msgstr "" #: ../plugins/notify/notifyprefs.py:22 ../plugins/notify/PLUGININFO:3 msgid "Notify" msgstr "" #: ../plugins/notify/notifyprefs.py:38 #, python-format msgid "" "by %(artist)s\n" "from %(album)s" msgstr "" #: ../plugins/cd/_cdguipanel.py:96 msgid "Importing CD..." msgstr "" #: ../plugins/cd/__init__.py:122 ../plugins/cd/__init__.py:200 msgid "Audio Disc" msgstr "" #: ../plugins/cd/cdprefs.py:37 msgid "CD" msgstr "" #: ../plugins/cd/cdprefs.py:105 ../plugins/minimode/minimode_preferences.py:92 msgid "Track number" msgstr "" #: ../plugins/cd/cdprefs.py:111 ../plugins/minimode/minimode_preferences.py:98 msgid "Disc number" msgstr "" #: ../plugins/cd/cdprefs.py:118 #: ../plugins/minimode/minimode_preferences.py:105 msgid "Play count" msgstr "" #: ../plugins/wikipedia/plugin.py:305 msgid "Artist: " msgstr "" #: ../plugins/wikipedia/plugin.py:314 #, python-format msgid "" "Did you know...\n" "\n" "%s" msgstr "" #: ../plugins/wikipedia/__init__.py:134 ../plugins/wikipedia/config.py:3 #: ../plugins/wikipedia/preferences.py:21 #: ../plugins/wikipedia/data/wikipanel.ui.h:1 #: ../plugins/wikipedia/PLUGININFO:3 msgid "Wikipedia" msgstr "" #: ../plugins/wikipedia/config.py:6 msgid "Displays Wikipedia page about the current performer." msgstr "" #: ../plugins/abrepeat/__init__.py:49 msgid "Repeat Segment" msgstr "" #: ../plugins/abrepeat/__init__.py:57 msgid "Repeat Beginning" msgstr "" #: ../plugins/abrepeat/__init__.py:61 msgid "Repeat End" msgstr "" #: ../plugins/minimode/__init__.py:103 ../plugins/minimode/__init__.py:110 #: ../plugins/minimode/minimode_preferences.py:30 #: ../plugins/minimode/PLUGININFO:3 msgid "Mini Mode" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:111 #: ../plugins/minimode/minimode_preferences.py:117 #: ../plugins/minimode/controls.py:693 ../plugins/minimode/controls.py:956 msgid "$tracknumber - $title" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:113 msgid "$title by $artist" msgstr "" #. TRANSLATORS: Mini mode track selector title preset #: ../plugins/minimode/minimode_preferences.py:115 msgid "$title ($__length)" msgstr "" #: ../plugins/minimode/controls.py:221 msgid "Previous" msgstr "Precedentă" #: ../plugins/minimode/controls.py:222 msgid "Go to the previous track" msgstr "" #: ../plugins/minimode/controls.py:228 msgid "Previous track" msgstr "" #: ../plugins/minimode/controls.py:241 msgid "Next" msgstr "Următoarea" #: ../plugins/minimode/controls.py:242 msgid "Go to the next track" msgstr "" #: ../plugins/minimode/controls.py:248 msgid "Next track" msgstr "" #: ../plugins/minimode/controls.py:262 msgid "Play/Pause" msgstr "" #: ../plugins/minimode/controls.py:263 msgid "Start, pause or resume the playback" msgstr "" #: ../plugins/minimode/controls.py:283 msgid "Start playback" msgstr "" #: ../plugins/minimode/controls.py:287 msgid "Continue playback" msgstr "" #: ../plugins/minimode/controls.py:290 msgid "Pause playback" msgstr "" #: ../plugins/minimode/controls.py:328 msgid "Stop" msgstr "Oprește" #: ../plugins/minimode/controls.py:329 msgid "Stop the playback" msgstr "" #: ../plugins/minimode/controls.py:363 msgid "Continue playback after current track" msgstr "" #: ../plugins/minimode/controls.py:427 msgid "Volume" msgstr "" #: ../plugins/minimode/controls.py:428 msgid "Change the volume" msgstr "" #: ../plugins/minimode/controls.py:489 msgid "Restore" msgstr "" #: ../plugins/minimode/controls.py:490 msgid "Restore the main window" msgstr "" #: ../plugins/minimode/controls.py:498 msgid "Restore main window" msgstr "" #: ../plugins/minimode/controls.py:528 msgid "Select rating of the current track" msgstr "" #: ../plugins/minimode/controls.py:545 msgid "Track selector" msgstr "" #: ../plugins/minimode/controls.py:546 msgid "Simple track list selector" msgstr "" #: ../plugins/minimode/controls.py:698 msgid "Playlist button" msgstr "" #: ../plugins/minimode/controls.py:699 msgid "Access the current playlist" msgstr "" #: ../plugins/minimode/controls.py:996 msgid "$title ($current_time / $total_time)" msgstr "" #: ../plugins/minimode/controls.py:1018 msgid "Progress button" msgstr "" #: ../plugins/minimode/controls.py:1019 msgid "Playback progress and access to the current playlist" msgstr "" #: ../plugins/minimode/controls.py:1090 msgid "Progress bar" msgstr "" #: ../plugins/minimode/controls.py:1091 msgid "Playback progress and seeking" msgstr "" #: ../plugins/grouptagger/gt_prefs.py:21 ../plugins/grouptagger/__init__.py:97 #: ../plugins/grouptagger/__init__.py:114 msgid "GroupTagger" msgstr "" #: ../plugins/grouptagger/__init__.py:108 #: ../plugins/grouptagger/gt_widgets.py:686 msgid "Get all tags from collection" msgstr "" #: ../plugins/grouptagger/__init__.py:119 msgid "Show tracks with all tags" msgstr "" #: ../plugins/grouptagger/__init__.py:123 msgid "Show tracks with tags (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:70 msgid "Show tracks with selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:72 #, python-format msgid "Show tracks tagged with \"%s\"" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:74 msgid "Show tracks with all selected" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:132 #: ../plugins/grouptagger/gt_widgets.py:650 #: ../plugins/grouptagger/gt_widgets.py:751 msgid "Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:147 msgid "Add new group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:151 msgid "Delete group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:158 msgid "Add new category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:162 msgid "Remove category" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:172 msgid "Show tracks with selected (custom)" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "New tag value?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:251 msgid "Enter new tag value" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "New Category?" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:281 msgid "Enter new group category name" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:510 msgid "Add Group" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:707 msgid "Add selected to choices" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:733 msgid "Show tracks with groups" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must have this tag [AND]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "May have this tag [OR]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Must not have this tag [NOT]" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:744 msgid "Ignored" msgstr "" #: ../plugins/grouptagger/gt_widgets.py:752 msgid "Selected Tracks" msgstr "" #: ../plugins/replaygain/replaygainprefs.py:32 #: ../plugins/replaygain/PLUGININFO:3 msgid "ReplayGain" msgstr "" #: ../plugins/droptrayicon/__init__.py:281 #: ../plugins/droptrayicon/drop_target_window.ui.h:1 msgid "Drop to Choose" msgstr "" #: ../plugins/droptrayicon/__init__.py:284 msgid "Append and Play" msgstr "" #: ../plugins/droptrayicon/__init__.py:286 msgid "Append" msgstr "" #: ../plugins/history/history_preferences.py:35 #: ../plugins/history/__init__.py:209 ../plugins/history/__init__.py:251 #: ../plugins/daapclient/__init__.py:292 msgid "History" msgstr "" #: ../plugins/history/__init__.py:108 msgid "Playback history" msgstr "" #: ../plugins/history/__init__.py:140 msgid "Erase stored history?" msgstr "" #: ../plugins/history/__init__.py:234 msgid "Save History" msgstr "" #: ../plugins/history/__init__.py:236 msgid "Clear History" msgstr "" #: ../plugins/jamendo/__init__.py:87 #: ../plugins/jamendo/ui/jamendo_panel.ui.h:5 msgid "Ready" msgstr "" #: ../plugins/jamendo/__init__.py:88 msgid "Searching Jamendo catalogue..." msgstr "" #: ../plugins/jamendo/__init__.py:89 msgid "Retrieving song data..." msgstr "" #: ../plugins/osd/osd_preferences.py:29 ../plugins/osd/PLUGININFO:3 msgid "On Screen Display" msgstr "" #: ../plugins/osd/osd_preferences.py:88 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/osd/__init__.py:379 msgid "" "$title\n" "by $artist\n" "from $album" msgstr "" #: ../plugins/amazoncovers/amazonprefs.py:22 #: ../plugins/amazoncovers/PLUGININFO:3 msgid "Amazon Covers" msgstr "" #: ../plugins/podcasts/__init__.py:55 ../plugins/podcasts/PLUGININFO:3 msgid "Podcasts" msgstr "" #: ../plugins/podcasts/__init__.py:72 msgid "Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:81 msgid "Refresh Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:82 msgid "Delete" msgstr "" #: ../plugins/podcasts/__init__.py:120 msgid "Enter the URL of the podcast to add" msgstr "" #: ../plugins/podcasts/__init__.py:121 msgid "Open Podcast" msgstr "" #: ../plugins/podcasts/__init__.py:154 #, python-format msgid "Loading %s..." msgstr "" #: ../plugins/podcasts/__init__.py:182 msgid "Error loading podcast." msgstr "" #: ../plugins/podcasts/__init__.py:198 msgid "Loading Podcasts..." msgstr "" #: ../plugins/podcasts/__init__.py:229 msgid "Could not save podcast file" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.py:21 #: ../plugins/desktopcover/PLUGININFO:3 msgid "Desktop Cover" msgstr "" #: ../plugins/multialarmclock/macprefs.py:23 #: ../plugins/multialarmclock/PLUGININFO:3 msgid "Multi-Alarm Clock" msgstr "" #: ../plugins/contextinfo/__init__.py:1147 #: ../plugins/contextinfo/context.ui.h:1 msgid "Context" msgstr "" #: ../plugins/contextinfo/contextprefs.py:22 msgid "Contextinfo" msgstr "" #: ../plugins/bookmarks/__init__.py:104 msgid "Bookmark This Track" msgstr "" #: ../plugins/bookmarks/__init__.py:106 msgid "Delete Bookmark" msgstr "" #: ../plugins/bookmarks/__init__.py:108 msgid "Clear Bookmarks" msgstr "" #: ../plugins/bookmarks/__init__.py:305 #: ../plugins/bookmarks/bookmarksprefs.py:22 ../plugins/bookmarks/PLUGININFO:3 msgid "Bookmarks" msgstr "" #: ../plugins/screensaverpause/prefs.py:5 #: ../plugins/screensaverpause/PLUGININFO:3 msgid "Pause on Screensaver" msgstr "" #: ../plugins/daapserver/daapserverprefs.py:6 #: ../plugins/daapserver/PLUGININFO:3 msgid "DAAP Server" msgstr "" #: ../plugins/bpm/__init__.py:80 msgid "BPM Counter" msgstr "" #: ../plugins/bpm/__init__.py:240 #, python-format msgid "Set BPM of %d on %s?" msgstr "" #: ../plugins/daapclient/daapclientprefs.py:5 #: ../plugins/daapclient/PLUGININFO:3 msgid "DAAP Client" msgstr "" #: ../plugins/daapclient/__init__.py:298 msgid "Manually..." msgstr "" #: ../plugins/daapclient/__init__.py:350 msgid "Enter IP address and port for share" msgstr "" #: ../plugins/daapclient/__init__.py:351 msgid "Enter IP address and port." msgstr "" #: ../plugins/daapclient/__init__.py:556 msgid "" "This server does not support multiple connections.\n" "You must stop playback before downloading songs." msgstr "" #: ../plugins/daapclient/__init__.py:646 msgid "Refresh Server List" msgstr "" #: ../plugins/daapclient/__init__.py:649 msgid "Disconnect from Server" msgstr "" #: ../plugins/daapclient/__init__.py:668 msgid "Select a Location for Saving" msgstr "" #: ../plugins/daapclient/__init__.py:714 msgid "Connect to DAAP..." msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:1 msgid "Darken played section instead of using cursor" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:2 msgid "Darkness level:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:3 msgid "Use waveform style" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:4 msgid "Show only waveform, not mood" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:5 msgid "Use color theme " msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:6 msgid "Base color:" msgstr "" #: ../plugins/moodbar/moodbarprefs_pane.ui.h:7 msgid "Base color" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:1 msgid "Save location:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:2 msgid "Relay port:" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:3 msgid "Rip to single file" msgstr "" #: ../plugins/streamripper/streamripper.ui.h:4 msgid "Delete incomplete files" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:1 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:1 msgid "API key:" msgstr "Cheie API:" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:2 #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:2 msgid "Secret:" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:3 msgid "Request Access Permission" msgstr "" #: ../plugins/lastfmlove/lastfmlove_preferences.ui.h:5 msgid "" "Go to Your API Account " "page to get an API key and secret and enter them here. After " "you have entered these, request access permission and confirm to " "complete the setup." msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:1 msgid "Alarm time" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:2 msgid "Monday" msgstr "Luni" #: ../plugins/alarmclock/acprefs_pane.ui.h:3 msgid "Tuesday" msgstr "Marţi" #: ../plugins/alarmclock/acprefs_pane.ui.h:4 msgid "Wednesday" msgstr "Miercuri" #: ../plugins/alarmclock/acprefs_pane.ui.h:5 msgid "Thursday" msgstr "Joi" #: ../plugins/alarmclock/acprefs_pane.ui.h:6 msgid "Friday" msgstr "Vineri" #: ../plugins/alarmclock/acprefs_pane.ui.h:7 msgid "Saturday" msgstr "Sâmbătă" #: ../plugins/alarmclock/acprefs_pane.ui.h:8 msgid "Sunday" msgstr "Duminică" #: ../plugins/alarmclock/acprefs_pane.ui.h:9 msgid "Alarm Days" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:10 msgid "Use Fading" msgstr "Atenuare" #: ../plugins/alarmclock/acprefs_pane.ui.h:11 msgid "Minimum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:12 msgid "Maximum volume:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:13 msgid "Increment:" msgstr "" #: ../plugins/alarmclock/acprefs_pane.ui.h:14 msgid "Time per increment:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:1 msgid "Display overlay:" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:2 msgid "Display covers" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:3 msgid "Circle display" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:4 msgid "Text percentage" msgstr "" #: ../plugins/awn/awn_prefs_pane.ui.h:5 msgid "None" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer_prefs.ui.h:1 msgid "Lyrics font:" msgstr "" #: ../plugins/lyricsviewer/lyricsviewer.ui.h:2 msgid "Refresh Lyrics" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:1 msgid "Submit tracks using Audioscrobbler" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:2 msgid "Show menuitem to toggle submission" msgstr "" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:3 #: ../plugins/contextinfo/context_pane.ui.h:2 msgid "Password:" msgstr "Parolă:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:4 #: ../plugins/contextinfo/context_pane.ui.h:3 msgid "Username:" msgstr "Nume utilizator:" #: ../plugins/audioscrobbler/asprefs_pane.ui.h:6 msgid "Verify Login Data" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:3 msgid "pre" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:4 msgid "+12 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:5 msgid "0" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:6 msgid "-24 dB" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:7 msgid "29" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:8 msgid "59" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:9 msgid "119" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:10 msgid "237" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:11 msgid "474" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:12 msgid "947" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:13 msgid "1.9K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:14 msgid "3.8K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:15 msgid "7.5K" msgstr "" #: ../plugins/equalizer/equalizer.ui.h:16 msgid "15K" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:1 msgid "On track change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:2 msgid "On playback start, pause or stop" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:3 msgid "On tag change" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:4 msgid "On tray icon hover" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:5 msgid "When main window is focused" msgstr "Când fereastra principală este activă" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:6 msgid "Display" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:7 msgid "Use album covers as icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:8 msgid "Use media icons for pause, stop and resume" msgstr "Folosește iconițe media pentru întrerupere, oprire și continuare" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:9 msgid "Icons" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:10 msgid "Artist line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:12 #, python-format msgid "" "The tags \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be " "replaced by their respective values. The title will be replaced by \"Unknown" "\" if it is empty." msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:13 #: ../plugins/notify/notifyprefs_pane.ui.h:2 msgid "Summary:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:14 msgid "Album line:" msgstr "" #: ../plugins/notifyosd/notifyosdprefs_pane.ui.h:15 msgid "Content" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:1 msgid "Linux" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:2 msgid "LightBG" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:3 msgid "NoColor" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:4 msgid "Terminal opacity:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:5 msgid "Font:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:6 msgid "Text Color:" msgstr "" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:7 msgid "Background Color:" msgstr "Culoare fundal:" #: ../plugins/ipconsole/ipconsole_prefs.ui.h:8 msgid "IPython Color Theme:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:1 msgid "Resize displayed covers" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:3 msgid "Only artist:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:4 msgid "Only album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:6 #, python-format msgid "" "Message that should be displayed in the body of the notification. In each " "case, \"%(title)s\", \"%(artist)s\", and \"%(album)s\" will be replaced by " "their respective values. If the tag is not known, \"Unknown\" will be filled " "in its place." msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:7 msgid "Both artist and album:" msgstr "" #: ../plugins/notify/notifyprefs_pane.ui.h:8 msgid "Body Message" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:1 msgid "Ogg Vorbis" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:2 msgid "FLAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:3 msgid "AAC" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:4 msgid "MP3 (VBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:5 msgid "MP3 (CBR)" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:6 msgid "WavPack" msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:7 msgid "Import format: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:8 msgid "Import quality: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:9 msgid "Import path: " msgstr "" #: ../plugins/cd/cdprefs_pane.ui.h:10 #: ../plugins/minimode/minimode_preferences.ui.h:3 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores." msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:1 msgid "Shortcode of the Wikipedia language version (en, de, fr, ...)" msgstr "" #: ../plugins/wikipedia/data/preferences.ui.h:2 msgid "Language:" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:2 msgid "Home" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:3 msgid "Back" msgstr "" #: ../plugins/wikipedia/data/wikipanel.ui.h:5 msgid "Forward" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:1 msgid "" "The order of controls can be changed by simply dragging them up or down. (Or " "press Alt+Up/Down.)" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:2 msgid "Controls" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:4 msgid "Track Title Format" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:5 msgid "Always on top" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:6 msgid "Show in tasklist" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:8 msgid "Display window decorations:" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:9 msgid "Show on all desktops" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:10 msgid "Show button in main window" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:13 msgid "Full" msgstr "" #: ../plugins/minimode/minimode_preferences.ui.h:15 msgid "Simple" msgstr "" #: ../plugins/grouptagger/gt_prefs.ui.h:1 msgid "Group/categories font:" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:2 msgid "Prefer per-album correction" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:3 msgid "Prefer ReplayGain's per-album correction over per-track correction." msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:5 msgid "Use clipping protection" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:6 msgid "Protect against noise caused by over-amplification" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:7 msgid "Additional amplification to apply to all files" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:9 msgid "Additional amplification (dB):" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:10 msgid "Fallback correction for files that lack ReplayGain information" msgstr "" #: ../plugins/replaygain/replaygainprefs_pane.ui.h:12 msgid "Fallback correction level (dB):" msgstr "" #: ../plugins/history/history_preferences.ui.h:1 msgid "Persist history after player exits" msgstr "" #: ../plugins/history/history_preferences.ui.h:2 msgid "History length:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:1 msgid "Order by:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:2 msgid "Order direction:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:3 msgid "Results:" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:4 msgid "Advanced" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:6 msgid "Descending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:7 msgid "Ascending" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:8 msgid "Release date" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:10 msgid "Rating this week" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:11 msgid "Rating this month" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:12 msgid "Number of playlist additions" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:13 msgid "Number of downloads" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:14 msgid "Number of listens" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:15 msgid "Starred" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:16 msgid "Date of starring" msgstr "" #: ../plugins/jamendo/ui/jamendo_panel.ui.h:19 msgid "Genre/Tags" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:1 msgid "" "Every tag can be used with $tag or ${tag}. Internal tags like " "$__length need to be specified with two leading underscores.\n" "Pango Text Attribute Markup is supported." msgstr "" #: ../plugins/osd/osd_preferences.ui.h:3 msgid "Display Format" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:4 msgid "Display duration:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:5 msgid "Background:" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:6 msgid "Show progress bar" msgstr "" #: ../plugins/osd/osd_preferences.ui.h:8 msgid "Border radius:" msgstr "" #: ../plugins/amazoncovers/amazonprefs_pane.ui.h:3 msgid "" "To sign up for an Amazon AWS account and get \n" "this information visit http://aws.amazon." "com/" msgstr "" #: ../plugins/podcasts/podcasts.ui.h:1 msgid "Add Podcast" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:1 msgid "Anchor:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:2 msgid "X offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:3 msgid "pixels" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:4 msgid "Y offset:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:5 msgid "Override cover size" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:6 msgid "Size:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:7 msgid "Use fading" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:8 msgid "Fading duration:" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:9 msgid "ms" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:10 msgid "Top left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:11 msgid "Top right" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:12 msgid "Bottom left" msgstr "" #: ../plugins/desktopcover/desktopcover_preferences.ui.h:13 msgid "Bottom right" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:1 msgid "Add" msgstr "Adaugă" #: ../plugins/multialarmclock/malrmclk.ui.h:3 msgid "Alarms" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:4 msgid "Enable volume fade-in" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:5 msgid "Fade start volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:6 msgid "Fade stop volume:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:7 msgid "Fade Increment:" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:8 msgid "Fade Time (s):" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:9 msgid "Restart playlist" msgstr "" #: ../plugins/multialarmclock/malrmclk.ui.h:10 msgid "Playback" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:1 msgid "Please enter your Last.fm authentication:" msgstr "" #: ../plugins/contextinfo/context_pane.ui.h:4 msgid "Sign up for Last.fm" msgstr "" #: ../plugins/bookmarks/bookmarks_pane.ui.h:1 msgid "Use covers in the bookmarks menu (takes effect on next start)" msgstr "" #: ../plugins/screensaverpause/prefs.ui.h:1 msgid "Unpause when screensaver ends" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:1 msgid "Server name:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:2 msgid "Server host:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:3 msgid "Port:" msgstr "" #: ../plugins/daapserver/daapserver_prefs.ui.h:4 msgid "Server enabled" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:1 msgid "Show ipv6 servers (Experimental)" msgstr "" #: ../plugins/daapclient/daapclient_prefs.ui.h:2 msgid "Remember recent DAAP servers" msgstr "" #: ../plugins/currentsong/PLUGININFO:3 msgid "Current Song" msgstr "" #: ../plugins/currentsong/PLUGININFO:4 msgid "" "Sets the currently playing status in Pidgin. Check the Pidgin FAQ to find " "out the suppported services." msgstr "" #: ../plugins/currentsong/PLUGININFO:5 ../plugins/audioscrobbler/PLUGININFO:5 #: ../plugins/notifyosd/PLUGININFO:5 ../plugins/notify/PLUGININFO:5 #: ../plugins/osd/PLUGININFO:5 msgid "Notifications" msgstr "" #: ../plugins/moodbar/PLUGININFO:4 msgid "" "Replaces the standard progress bar with a moodbar.\n" "Depends: moodbar" msgstr "" #: ../plugins/moodbar/PLUGININFO:5 ../plugins/mainmenubutton/PLUGININFO:5 #: ../plugins/awn/PLUGININFO:5 ../plugins/minimode/PLUGININFO:5 #: ../plugins/droptrayicon/PLUGININFO:5 ../plugins/desktopcover/PLUGININFO:5 msgid "GUI" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:3 msgid "GNOME Multimedia Keys" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:4 msgid "" "Adds support for controlling Exaile via GNOME's multimedia key system. " "Compatible with GNOME >= 2.20.x" msgstr "" #: ../plugins/gnomemmkeys/PLUGININFO:5 ../plugins/xkeys/PLUGININFO:5 #: ../plugins/winmmkeys/PLUGININFO:5 msgid "Hotkeys" msgstr "" #: ../plugins/streamripper/PLUGININFO:4 msgid "" "Allows you to record streams with streamripper.\n" "Depends: streamripper" msgstr "" #: ../plugins/streamripper/PLUGININFO:5 ../plugins/previewdevice/PLUGININFO:5 msgid "Output" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:3 msgid "MusicBrainz Covers" msgstr "" #: ../plugins/musicbrainzcovers/PLUGININFO:4 msgid "Integrates MusicBrainz for cover search" msgstr "" #: ../plugins/lastfmlove/PLUGININFO:4 msgid "" "Shows which tracks have been loved and allows for loving tracks.\n" "\n" "Make sure to enter a valid API key and secret in the plugin preferences.\n" "\n" "Depends on the plugin \"AudioScrobbler\" for username and password." msgstr "" #: ../plugins/lastfmlove/PLUGININFO:5 ../plugins/exfalso/PLUGININFO:5 #: ../plugins/grouptagger/PLUGININFO:5 msgid "Tagging" msgstr "" #: ../plugins/alarmclock/PLUGININFO:4 msgid "" "Plays music at a specific time.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/alarmclock/PLUGININFO:5 ../plugins/inhibitsuspend/PLUGININFO:5 #: ../plugins/shutdown/PLUGININFO:5 ../plugins/mpris/PLUGININFO:5 #: ../plugins/history/PLUGININFO:5 ../plugins/multialarmclock/PLUGININFO:5 #: ../plugins/bookmarks/PLUGININFO:5 ../plugins/screensaverpause/PLUGININFO:5 #: ../plugins/bpm/PLUGININFO:5 msgid "Utility" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:3 msgid "Main Menu Button" msgstr "" #: ../plugins/mainmenubutton/PLUGININFO:4 msgid "" "Moves the main menu into a button on top of the panels.\n" "Depends: PyGTK >= 2.22, GTK >= 2.20" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:3 msgid "Last.fm Covers" msgstr "" #: ../plugins/lastfmcovers/PLUGININFO:4 msgid "Searches Last.fm for covers" msgstr "" #: ../plugins/awn/PLUGININFO:4 msgid "Sets the cover and adds some menu items to AWN for Exaile" msgstr "" #: ../plugins/shoutcast/PLUGININFO:3 msgid "Shoutcast Radio" msgstr "" #: ../plugins/shoutcast/PLUGININFO:4 msgid "Shoutcast Radio list" msgstr "" #: ../plugins/shoutcast/PLUGININFO:5 ../plugins/librivox/PLUGININFO:5 #: ../plugins/jamendo/PLUGININFO:5 ../plugins/podcasts/PLUGININFO:5 #: ../plugins/daapserver/PLUGININFO:5 ../plugins/daapclient/PLUGININFO:5 msgid "Media Sources" msgstr "" #: ../plugins/exfalso/PLUGININFO:3 msgid "Ex Falso tag editor" msgstr "" #: ../plugins/exfalso/PLUGININFO:4 msgid "" "Integrates the Ex Falso tag editor with Exaile.\n" "Depends: Ex Falso." msgstr "" #: ../plugins/lyricsviewer/PLUGININFO:4 msgid "Adds a side tab displaying lyrics for the currently playing track." msgstr "" #: ../plugins/audioscrobbler/PLUGININFO:4 msgid "" "Submits listening information to Last.fm and similar services supporting " "AudioScrobbler" msgstr "" #: ../plugins/xkeys/PLUGININFO:3 msgid "XKeys" msgstr "" #: ../plugins/xkeys/PLUGININFO:4 msgid "Global hotkeys using xlib (mmkeys.so)" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:1 msgid "Multimedia keys for Windows" msgstr "" #: ../plugins/winmmkeys/PLUGININFO:4 msgid "" "Adds support for multimedia keys (present on most new keyboards) when " "running Exaile in Microsoft Windows.\n" "\n" "Requires: pyHook " msgstr "" #: ../plugins/equalizer/PLUGININFO:4 msgid "A 10-band equalizer" msgstr "" #: ../plugins/equalizer/PLUGININFO:5 ../plugins/abrepeat/PLUGININFO:5 #: ../plugins/replaygain/PLUGININFO:5 ../plugins/karaoke/PLUGININFO:5 msgid "Effect" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:3 msgid "Lyrics Fly" msgstr "" #: ../plugins/lyricsfly/PLUGININFO:4 msgid "Plugin to fetch lyrics from lyricsfly.com" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:3 msgid "Inhibit Suspend" msgstr "" #: ../plugins/inhibitsuspend/PLUGININFO:4 msgid "Prevents User Session from suspending while music is playing" msgstr "" #: ../plugins/librivox/PLUGININFO:3 msgid "Librivox" msgstr "" #: ../plugins/librivox/PLUGININFO:4 msgid "Browse and listen to audiobooks from Librivox.org." msgstr "" #: ../plugins/shutdown/PLUGININFO:4 msgid "Allows for shutdown of the computer at the end of playback." msgstr "" #: ../plugins/massstorage/PLUGININFO:3 msgid "USB Mass Storage Media Player Support" msgstr "" #: ../plugins/massstorage/PLUGININFO:4 msgid "" "Support for accessing portable media players using the USB Mass Storage " "protocol" msgstr "" #: ../plugins/massstorage/PLUGININFO:5 ../plugins/cd/PLUGININFO:5 #: ../plugins/ipod/PLUGININFO:5 msgid "Devices" msgstr "" #: ../plugins/previewdevice/PLUGININFO:4 msgid "" "Allows playing audio over a secondary device (right click on playlist and " "select 'preview'). Useful for DJs." msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:3 msgid "Last.fm Dynamic Playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:4 msgid "The Last.fm backend for dynamic playlists" msgstr "" #: ../plugins/lastfmdynamic/PLUGININFO:5 msgid "Dynamic Playlists" msgstr "" #: ../plugins/notifyosd/PLUGININFO:4 msgid "" "This plugins displays notification bubbles when a song is played/resumed/" "stopped, with either the song cover or a media icon to indicate the latest " "action.\n" "\n" "Depends: python-notify\n" "Recommends: notify-osd" msgstr "" #: ../plugins/ipconsole/PLUGININFO:4 msgid "Provides an IPython console that can be used to manipulate Exaile." msgstr "" #: ../plugins/ipconsole/PLUGININFO:5 ../plugins/helloworld/PLUGININFO:5 msgid "Development" msgstr "" #: ../plugins/notify/PLUGININFO:4 msgid "Pops up a notification when playback of a track starts" msgstr "" #: ../plugins/cd/PLUGININFO:3 msgid "CD Playback" msgstr "" #: ../plugins/cd/PLUGININFO:4 msgid "" "Adds support for playing audio CDs.\n" "\n" "Requires HAL to autodetect CDs\n" "Requires cddb-py (http://cddb-py.sourceforge.net/) to look up tags." msgstr "" #: ../plugins/wikipedia/PLUGININFO:4 msgid "" "Provides Wikipedia information about the current artist.\n" "Depends: python-webkit" msgstr "" #: ../plugins/wikipedia/PLUGININFO:5 ../plugins/contextinfo/PLUGININFO:5 msgid "Information" msgstr "" #: ../plugins/abrepeat/PLUGININFO:3 msgid "A-B Repeat" msgstr "" #: ../plugins/abrepeat/PLUGININFO:4 msgid "Continuously repeats a segment of a track." msgstr "" #: ../plugins/minimode/PLUGININFO:4 msgid "Compact mode for Exaile with a configurable interface" msgstr "" #: ../plugins/grouptagger/PLUGININFO:3 msgid "Group Tagger" msgstr "" #: ../plugins/grouptagger/PLUGININFO:4 msgid "" "Facilitates categorizing your music by managing the grouping/category tag in " "audio files" msgstr "" #: ../plugins/replaygain/PLUGININFO:4 msgid "Enables ReplayGain support" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:3 msgid "Drop Trayicon" msgstr "" #: ../plugins/droptrayicon/PLUGININFO:4 msgid "" "Provides an alternative trayicon which accepts dropped files.\n" "\n" "Depends: python-eggtrayicon" msgstr "" #: ../plugins/mpris/PLUGININFO:4 msgid "" "Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for " "controlling Exaile." msgstr "" #: ../plugins/jamendo/PLUGININFO:3 msgid "Jamendo" msgstr "" #: ../plugins/jamendo/PLUGININFO:4 msgid "Enables access to the Jamendo music catalogue." msgstr "" #: ../plugins/osd/PLUGININFO:4 msgid "A popup window showing information of the currently playing track." msgstr "" #: ../plugins/ipod/PLUGININFO:3 msgid "iPod Support" msgstr "" #: ../plugins/ipod/PLUGININFO:4 msgid "" "A plugin for iPod support. Read-only for the moment, no transfer.\n" "\n" "Depends on python-gpod." msgstr "" #: ../plugins/amazoncovers/PLUGININFO:4 msgid "" "Searches Amazon for covers\n" "\n" "To be able to use this plugin, an AWS API key and secret key are required." msgstr "" #: ../plugins/karaoke/PLUGININFO:3 msgid "Karaoke" msgstr "" #: ../plugins/karaoke/PLUGININFO:4 msgid "Removes voice from audio" msgstr "" #: ../plugins/podcasts/PLUGININFO:4 msgid "Adds Simple Podcast Support" msgstr "" #: ../plugins/desktopcover/PLUGININFO:4 msgid "Displays the current album cover on the desktop" msgstr "" #: ../plugins/helloworld/PLUGININFO:3 msgid "Hello World" msgstr "" #: ../plugins/helloworld/PLUGININFO:4 msgid "A simple plugin for testing the basic plugin system" msgstr "" #: ../plugins/multialarmclock/PLUGININFO:4 msgid "" "Plays music at specific times and days.\n" "\n" "Note that when the specified time arrives, Exaile will just act like you " "pressed the play button, so be sure you have the music you want to hear in " "your playlist" msgstr "" #: ../plugins/contextinfo/PLUGININFO:3 msgid "Contextual Info" msgstr "" #: ../plugins/contextinfo/PLUGININFO:4 msgid "" "Show various informations about the track currently playing.\n" "Depends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. " "PIL)" msgstr "" #: ../plugins/bookmarks/PLUGININFO:4 msgid "Allows saving/resuming bookmark positions in audio files." msgstr "" #: ../plugins/screensaverpause/PLUGININFO:4 msgid "" "Pauses (and optionally resumes) playback based on screensaver status.\n" "\n" "Requires: GNOME Screensaver or KDE Screensaver (does not support " "XScreenSaver nor XLockMore)" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:3 msgid "Lyrics Wiki" msgstr "" #: ../plugins/lyricwiki/PLUGININFO:4 msgid "" "Plugin to fetch lyrics from lyrics.wikia.com\n" "Depends: python-beautifulsoup" msgstr "" #: ../plugins/daapserver/PLUGININFO:4 msgid "" "This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so " "a collection can be shared over DAAP." msgstr "" #: ../plugins/daapclient/PLUGININFO:4 msgid "Allows playing of DAAP music shares." msgstr "" #~ msgid "General" #~ msgstr "General" #~ msgid "Display OSD when hovering over tray icon" #~ msgstr "Afișează OSD când trec peste iconița din zona de notificare." #~ msgid "Popup" #~ msgstr "Popup" #~ msgid "New Search" #~ msgstr "Căutare nouă" #~ msgid "Start" #~ msgstr "Start" #~ msgid "Stop Playback" #~ msgstr "Oprește redarea" #~ msgid "Stopped" #~ msgstr "Oprit" #~ msgid "Text Color" #~ msgstr "Culoare text" #~ msgid "Vol:" #~ msgstr "Volum:" #~ msgid "Window Height:" #~ msgstr "Înălțime fereastră:" #~ msgid "Window Width:" #~ msgstr "Lățime fereastră:" #~ msgid "_Close" #~ msgstr "În_chide" #~ msgid "Enter the search text" #~ msgstr "Introduceți textul de căutat" #~ msgid "Add a directory" #~ msgstr "Adaugă un director" #~ msgid "Choose a file" #~ msgstr "Alege un fișier" #~ msgid "Quit" #~ msgstr "Ieșire" #~ msgid "Add to Playlist" #~ msgstr "Adaugă la lista de redare" #~ msgid "Number of Plays" #~ msgstr "Număr de redări" #~ msgid "" #~ "Artist\n" #~ "Album\n" #~ "Genre - Artist\n" #~ "Genre - Album\n" #~ "Year - Artist\n" #~ "Year - Album\n" #~ "Artist - Year - Album" #~ msgstr "" #~ "Artist\n" #~ "Album\n" #~ "Gen - Artist\n" #~ "Gen - Album\n" #~ "An - Artist\n" #~ "An - Album\n" #~ "Artist - An - Album" #~ msgid "Opacity Level:" #~ msgstr "Nivel opacitate:" #~ msgid "Playing %s" #~ msgstr "Redare %s" #~ msgid "Autosize" #~ msgstr "Dimensionare automată" #~ msgid "Open" #~ msgstr "Deschide" #~ msgid "Add Playlist" #~ msgstr "Adaugă listă de redare" #~ msgid " songs" #~ msgstr " melodii" #~ msgid "" #~ "{title}\n" #~ "{artist}\n" #~ "on {album} - {length}" #~ msgstr "" #~ "{title}\n" #~ "{artist}\n" #~ "din {album} - {length}" #~ msgid "Text Font:" #~ msgstr "Caracter text:" #~ msgid "Alarm Days:" #~ msgstr "Zile alarmă" #~ msgid "Resizable" #~ msgstr "Redimensionabil" #~ msgid "" #~ "Path is already in your collection, or is a subdirectory of another path " #~ "in your collection" #~ msgstr "" #~ "Director deja în colecţie, sau e un subdirector al unui alt director din " #~ "colecţie" #~ msgid "" #~ "Move the On Screen Display window to the location you want it to " #~ "appear" #~ msgstr "Mutați fereastra OnScreenDisplay în poziţia dorită" #~ msgid "from %s" #~ msgstr "din %s" #~ msgid "by %s" #~ msgstr "de %s" #~ msgid "Relay Port:" #~ msgstr "Port releu:" #~ msgid "%(title)s (by %(artist)s)" #~ msgstr "%(title)s (de %(artist)s)" #~ msgid "LastFM Radio" #~ msgstr "Radio LastFM" #~ msgid "Neighbourhood" #~ msgstr "Vecinătate" #~ msgid "Loved Tracks" #~ msgstr "Piese plăcute" #~ msgid "Personal" #~ msgstr "Personal" #~ msgid "Recommended" #~ msgstr "Recomandat" #~ msgid "Show OSD on track change" #~ msgstr "Arată OSD la schimbarea piesei" #~ msgid "File Type" #~ msgstr "Tip fișier" #~ msgid "Extension" #~ msgstr "Extensie" #~ msgid "Toggle: Stop after selected track" #~ msgstr "Comută: Opreşte după piesa selectată" #~ msgid "Export" #~ msgstr "Exportă" #~ msgid "Select File Type (By Extension)" #~ msgstr "Alege tip fişier ( după extensie)" #~ msgid "No covers found" #~ msgstr "Nu s-au găsit coperţi" #~ msgid "Invalid file extension, file not saved" #~ msgstr "Extensie erată, fişier nesalvat" #~ msgid " + " #~ msgstr " + " #~ msgid "Display a progressbar in the OSD" #~ msgstr "Arată bara de avansare în OnScreenDisplay" #~ msgid "Add device" #~ msgstr "Adaugă dispozitiv" #~ msgid " - " #~ msgstr " - " #~ msgid "..." #~ msgstr "..." #~ msgid "Page 1" #~ msgstr "Pagina 1" #~ msgid "0/0 tracks" #~ msgstr "0/0 piese" #~ msgid "Exaile" #~ msgstr "Exaile" #~ msgid "%d covers to fetch" #~ msgstr "%d coperți de potrivit" dist/copy/PaxHeaders.26361/Makefile0000644000175000017500000000012412233027260015461 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.565046947 exaile-3.3.2/Makefile0000644000000000000000000001700412233027260014423 0ustar00rootroot00000000000000PYTHON2_CMD ?= `command -v python2` PREFIX ?= /usr/local LIBINSTALLDIR ?= /lib XDGCONFDIR ?= /etc/xdg EXAILEBINDIR = ${DESTDIR}${PREFIX}/bin EXAILELIBDIR = ${DESTDIR}${PREFIX}${LIBINSTALLDIR}/exaile EXAILESHAREDIR = ${DESTDIR}${PREFIX}/share/exaile EXAILECONFDIR = ${DESTDIR}${XDGCONFDIR}/exaile .PHONY: dist test coverage clean sanitycheck all: compile locale manpage @echo "Ready to install..." # The no_locale stuff is by request of BSD people, please ensure # all methods that deal with locale stuff have a no_locale variant all_no_locale: compile @echo "Ready to install..." compile: ${PYTHON2_CMD} -m compileall -q xl xlgui -${PYTHON2_CMD} -O -m compileall -q xl xlgui ${MAKE} -C plugins compile make-install-dirs: mkdir -p ${EXAILEBINDIR} mkdir -p ${EXAILELIBDIR} mkdir -p ${EXAILELIBDIR}/xl mkdir -p ${EXAILELIBDIR}/xl/metadata mkdir -p ${EXAILELIBDIR}/xl/player mkdir -p ${EXAILELIBDIR}/xl/migrations mkdir -p ${EXAILELIBDIR}/xl/migrations/database mkdir -p ${EXAILELIBDIR}/xl/migrations/settings mkdir -p ${EXAILELIBDIR}/xl/trax mkdir -p ${EXAILELIBDIR}/xlgui mkdir -p ${EXAILELIBDIR}/xlgui/panel mkdir -p ${EXAILELIBDIR}/xlgui/preferences mkdir -p ${EXAILELIBDIR}/xlgui/widgets mkdir -p ${EXAILESHAREDIR} mkdir -p ${EXAILESHAREDIR}/data mkdir -p ${EXAILESHAREDIR}/data/images/16x16 mkdir -p ${EXAILESHAREDIR}/data/images/22x22 mkdir -p ${EXAILESHAREDIR}/data/images/24x24 mkdir -p ${EXAILESHAREDIR}/data/images/32x32 mkdir -p ${EXAILESHAREDIR}/data/images/48x48 mkdir -p ${EXAILESHAREDIR}/data/images/scalable mkdir -p ${EXAILESHAREDIR}/data/ui mkdir -p ${EXAILESHAREDIR}/data/ui/panel mkdir -p ${EXAILESHAREDIR}/data/ui/preferences mkdir -p ${EXAILESHAREDIR}/data/ui/widgets mkdir -p ${EXAILESHAREDIR}/data/migrations mkdir -p ${EXAILESHAREDIR}/data/migrations/migration_200907100931 mkdir -p ${DESTDIR}${PREFIX}/share/pixmaps mkdir -p ${DESTDIR}${PREFIX}/share/applications mkdir -p ${DESTDIR}${PREFIX}/share/man/man1 mkdir -p ${DESTDIR}${PREFIX}/share/dbus-1/services mkdir -p ${EXAILECONFDIR} uninstall: rm -f ${EXAILEBINDIR}/exaile rm -rf ${EXAILELIBDIR} rm -rf ${EXAILESHAREDIR} rm -rf ${EXAILECONFDIR}/exaile rm -f ${DESTDIR}${PREFIX}/share/applications/exaile.desktop rm -f ${DESTDIR}${PREFIX}/share/pixmaps/exaile.png rm -f ${DESTDIR}${PREFIX}/share/man/man1/exaile.1.gz rm -f ${DESTDIR}${PREFIX}/share/dbus-1/services/org.exaile.Exaile.service ${MAKE} -C plugins uninstall install: install-target install-locale install_no_locale: install-target install-target: make-install-dirs install -m 644 exaile.py ${EXAILELIBDIR} -install -m 644 xl/*.py[co] ${EXAILELIBDIR}/xl install -m 644 xl/*.py ${EXAILELIBDIR}/xl -install -m 644 xl/metadata/*.py[co] ${EXAILELIBDIR}/xl/metadata install -m 644 xl/metadata/*.py ${EXAILELIBDIR}/xl/metadata -install -m 644 xl/player/*.py[co] ${EXAILELIBDIR}/xl/player install -m 644 xl/player/*.py ${EXAILELIBDIR}/xl/player -install -m 644 xl/migrations/*.py[co] ${EXAILELIBDIR}/xl/migrations install -m 644 xl/migrations/*.py ${EXAILELIBDIR}/xl/migrations -install -m 644 xl/migrations/database/*.py[co] ${EXAILELIBDIR}/xl/migrations/database/ install -m 644 xl/migrations/database/*.py ${EXAILELIBDIR}/xl/migrations/database/ -install -m 644 xl/migrations/settings/*.py[co] ${EXAILELIBDIR}/xl/migrations/settings/ install -m 644 xl/migrations/settings/*.py ${EXAILELIBDIR}/xl/migrations/settings/ -install -m 644 xl/trax/*.py[co] ${EXAILELIBDIR}/xl/trax install -m 644 xl/trax/*.py ${EXAILELIBDIR}/xl/trax -install -m 644 xlgui/*.py[co] ${EXAILELIBDIR}/xlgui install -m 644 xlgui/*.py ${EXAILELIBDIR}/xlgui -install -m 644 xlgui/panel/*.py[co] ${EXAILELIBDIR}/xlgui/panel install -m 644 xlgui/panel/*.py ${EXAILELIBDIR}/xlgui/panel -install -m 644 xlgui/preferences/*.py[co] ${EXAILELIBDIR}/xlgui/preferences install -m 644 xlgui/preferences/*.py ${EXAILELIBDIR}/xlgui/preferences -install -m 644 xlgui/widgets/*.py[co] ${EXAILELIBDIR}/xlgui/widgets install -m 644 xlgui/widgets/*.py ${EXAILELIBDIR}/xlgui/widgets install -m 644 data/images/16x16/*.png ${EXAILESHAREDIR}/data/images/16x16 install -m 644 data/images/22x22/*.png ${EXAILESHAREDIR}/data/images/22x22 install -m 644 data/images/24x24/*.png ${EXAILESHAREDIR}/data/images/24x24 install -m 644 data/images/32x32/*.png ${EXAILESHAREDIR}/data/images/32x32 install -m 644 data/images/48x48/*.png ${EXAILESHAREDIR}/data/images/48x48 install -m 644 data/images/scalable/*.svg ${EXAILESHAREDIR}/data/images/scalable install -m 644 data/images/*.png ${EXAILESHAREDIR}/data/images install -m 644 data/images/128x128/exaile.png \ ${DESTDIR}${PREFIX}/share/pixmaps/exaile.png install -m 644 data/ui/*.ui ${EXAILESHAREDIR}/data/ui install -m 644 data/ui/panel/*.ui ${EXAILESHAREDIR}/data/ui/panel install -m 644 data/ui/preferences/*.ui ${EXAILESHAREDIR}/data/ui/preferences install -m 644 data/ui/widgets/*.ui ${EXAILESHAREDIR}/data/ui/widgets install -m 644 data/migrations/*.py ${EXAILESHAREDIR}/data/migrations/ install -m 644 data/migrations/migration_200907100931/*.py \ ${EXAILESHAREDIR}/data/migrations/migration_200907100931/ install -m 644 data/exaile.desktop \ ${DESTDIR}${PREFIX}/share/applications/ -install -m 644 exaile.1.gz ${DESTDIR}${PREFIX}/share/man/man1/ install -m 644 data/config/settings.ini ${EXAILECONFDIR} tools/generate-launcher "${DESTDIR}" "${PREFIX}" "${LIBINSTALLDIR}" \ "${PYTHON2_CMD}" && \ chmod 755 ${DESTDIR}${PREFIX}/bin/exaile sed "s|\@bindir\@|${EXAILEBINDIR}|" data/org.exaile.Exaile.service.in > \ ${DESTDIR}${PREFIX}/share/dbus-1/services/org.exaile.Exaile.service ${MAKE} -C plugins install locale: ${MAKE} -C po locale install-locale: for f in `find po -name exaile.mo` ; do \ install -d -m 755 \ `echo $$f | sed "s|^po|${DESTDIR}${PREFIX}/share/locale|" | \ xargs dirname` && \ install -m 644 $$f \ `echo $$f | sed "s|^po|${DESTDIR}${PREFIX}/share/locale|"` ; \ done plugins_dist: ${MAKE} -C plugins dist # The sed call in -h removes the indent from group headers to work around # help2man's incompatibility with optparse's grouping. manpage: help2man -n "music manager and player" -N \ -h './exaile --help | sed "s/^ //"' \ ./exaile \ | gzip -9 > exaile.1.gz clean: -find . -name "*.~[0-9]~" -exec rm -f {} \; -find . -name "*.py[co]" -exec rm -f {} \; find po/* -depth -type d -exec rm -r {} \; rm -f exaile.1.gz ${MAKE} -C plugins clean # The "[type: gettext/glade]" helps intltool recognize .ui files as glade format pot: echo "[encoding: UTF-8]" > po/POTFILES.in && \ find xl -name "*.py" >> po/POTFILES.in && \ find xlgui -name "*.py" >> po/POTFILES.in && \ find data/ui/ -name "*.ui" | sed 's/^/[type: gettext\/glade]/' >> po/POTFILES.in && \ find plugins -name "*.py" | grep -v treeviewtest >> po/POTFILES.in && \ find plugins -name "*.ui" | grep -v treeviewtest | sed 's/^/[type: gettext\/glade]/' >> po/POTFILES.in && \ find plugins -name PLUGININFO | grep -v treeviewtest >> po/POTFILES.in && \ cd po && XGETTEXT_ARGS="--language=Python --add-comments=TRANSLATORS" \ intltool-update --pot --gettext-package=messages --verbose && cd .. potball: tar --bzip2 --format=posix -cf build/exaile-po.tar.bz2 po/ \ --transform s/po/./ dist: mkdir -p dist rm -rf dist/copy bzr export dist/copy/ ./tools/dist.sh rm -rf dist/copy test: nosetests -w tests test_coverage: rm -rf coverage/ rm -f .coverage nosetests -w tests --with-coverage --cover-package=xl; \ mkdir -p coverage; \ coverage html -d coverage lint_errors: -pylint -e --rcfile tools/pylint.cfg xl xlgui 2> /dev/null sanitycheck: lint_errors test dist/copy/PaxHeaders.26361/plugins0000644000175000017500000000013212233027261015425 xustar000000000000000030 mtime=1382821553.517046945 30 atime=1382821552.785046922 30 ctime=1382821553.517046945 exaile-3.3.2/plugins/0000755000000000000000000000000012233027261014443 5ustar00rootroot00000000000000dist/copy/plugins/PaxHeaders.26361/notify0000644000175000017500000000013212233027261016735 xustar000000000000000030 mtime=1382821553.697046951 30 atime=1382821552.785046922 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/notify/0000755000000000000000000000000012233027261015753 5ustar00rootroot00000000000000dist/copy/plugins/notify/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260021123 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.509046945 exaile-3.3.2/plugins/notify/__init__.py0000644000000000000000000001102212233027260020057 0ustar00rootroot00000000000000# Copyright (C) 2009-2010 Abhishek Mukherjee # # 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 1, 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 cgi import inspect import logging import pynotify from xl import covers, event, common, player, settings from xl.nls import gettext as _ from xlgui import icons from xlgui.preferences import widgets import notifyprefs logger = logging.getLogger(__name__) # This breaks stuff. if you want to enable it, set this to True and uncomment # the commented section in the UI designer file ATTACH_COVERS_OPTION_ALLOWED = False pynotify.init('exailenotify') class ExaileNotification(object): def __init__(self): self.notification_id = None self.exaile = None def __inner_preference(klass): """Function will make a property for a given subclass of Preference""" def getter(self): return settings.get_option(klass.name, klass.default or None) def setter(self, val): settings.set_option(klass.name, val) return property(getter, setter) resize = __inner_preference(notifyprefs.ResizeCovers) body_artistalbum = __inner_preference(notifyprefs.BodyArtistAlbum) body_artist= __inner_preference(notifyprefs.BodyArtist) body_album = __inner_preference(notifyprefs.BodyAlbum) summary = __inner_preference(notifyprefs.Summary) attach_tray = __inner_preference(notifyprefs.AttachToTray) @common.threaded def on_play(self, type, player, track): '''Callback when we want to display a notification type and player arguments are ignored. ''' title = track.get_tag_display('title') artist = cgi.escape( track.get_tag_display('artist', artist_compilations=False) ) album = cgi.escape(track.get_tag_display('album')) if artist and album: body_format = self.body_artistalbum elif artist: body_format = self.body_artist elif album: body_format = self.body_album else: body_format = "" summary = self.summary % {'title': title, 'artist': artist, 'album': album } body = body_format % {'title': title, 'artist': artist, 'album': album } notif = pynotify.Notification(summary, body) cover_data = covers.MANAGER.get_cover(track, set_only=True, use_default=True) size = (48, 48) if self.resize else None pixbuf = icons.MANAGER.pixbuf_from_data(cover_data, size) notif.set_icon_from_pixbuf(pixbuf) # Attach to tray, if that's how we roll if ATTACH_COVERS_OPTION_ALLOWED: logger.debug("Attaching to tray") if self.attach_tray and hasattr(self.exaile, 'gui'): gui = self.exaile.gui if hasattr(gui, 'tray_icon') and gui.tray_icon: if isinstance(gui.tray_icon, type(gtk.StatusIcon)): notif.attach_to_status_icon(gui.tray_icon) else: notif.attach_to_widget(gui.tray_icon) # replace the last notification logger.debug("Setting id") if self.notification_id is not None: notif.props.id = self.notification_id logger.debug("Showing notification") notif.show() logger.debug("Storing id") self.notification_id = notif.props.id logger.debug("Notification done") EXAILE_NOTIFICATION = ExaileNotification() def enable(exaile): EXAILE_NOTIFICATION.exaile = exaile event.add_callback(EXAILE_NOTIFICATION.on_play, 'playback_track_start', player.PLAYER) def disable(exaile): event.remove_callback(EXAILE_NOTIFICATION.on_play, 'playback_track_start', player.PLAYER) def get_preferences_pane(): return notifyprefs dist/copy/plugins/notify/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260020407 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/notify/PLUGININFO0000644000000000000000000000026012233027260017345 0ustar00rootroot00000000000000Version='0.0.3' Authors=['Adam Olsen '] Name=_('Notify') Description=_('Pops up a notification when playback of a track starts') Category=_('Notifications') dist/copy/plugins/notify/PaxHeaders.26361/notifyprefs.py0000644000175000017500000000012412233027260021734 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.565046947 exaile-3.3.2/plugins/notify/notifyprefs.py0000644000000000000000000000324312233027260020676 0ustar00rootroot00000000000000# Copyright (C) 2009-2010 Abhishek Mukherjee # # 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 1, 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 from xlgui.preferences import widgets from xl import xdg from xl.nls import gettext as _ name = _('Notify') basedir = os.path.dirname(os.path.realpath(__file__)) ui = os.path.join(basedir, "notifyprefs_pane.ui") class ResizeCovers(widgets.CheckPreference): default = True name = 'plugin/notify/resize' class AttachToTray(widgets.CheckPreference): default = True name = 'plugin/notify/attach_tray' class BodyArtistAlbum(widgets.TextViewPreference): default = _("by %(artist)s\nfrom %(album)s") name = 'plugin/notify/body_artistalbum' class BodyArtist(widgets.TextViewPreference): default = _("by %(artist)s") name = 'plugin/notify/body_artist' class BodyAlbum(widgets.TextViewPreference): default = _("from %(album)s") name = 'plugin/notify/body_album' class Summary(widgets.TextViewPreference): default = _("%(title)s") name = 'plugin/notify/summary' dist/copy/plugins/notify/PaxHeaders.26361/notifyprefs_pane.ui0000644000175000017500000000012412233027260022724 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.289046938 exaile-3.3.2/plugins/notify/notifyprefs_pane.ui0000644000000000000000000002606512233027260021675 0ustar00rootroot00000000000000 True 3 vertical Resize displayed covers True True False True False 0 True True 1 Summary: False 6 0 True True automatic automatic etched-in 60 True True 6 1 False 5 2 True 0 none True 5 5 5 5 True 4 2 6 6 True 1 Only artist: 2 3 GTK_FILL True 1 Only album: 3 4 GTK_FILL True 0 <i>Message that should be displayed in the body of the notification. In each case, "%(title)s", "%(artist)s", and "%(album)s" will be replaced by their respective values. If the tag is not known, "Unknown" will be filled in its place.</i> True True 80 2 True True automatic automatic etched-in 60 True True False 1 2 1 2 True True automatic automatic etched-in 60 True True 1 2 2 3 True True automatic automatic etched-in 60 True True 1 2 3 4 True 1 Both artist and album: right 1 2 GTK_FILL True <b>Body Message</b> True False 5 3 dist/copy/plugins/PaxHeaders.26361/bpm0000644000175000017500000000013212233027261016203 xustar000000000000000030 mtime=1382821553.513046945 30 atime=1382821552.785046922 30 ctime=1382821553.513046945 exaile-3.3.2/plugins/bpm/0000755000000000000000000000000012233027261015221 5ustar00rootroot00000000000000dist/copy/plugins/bpm/PaxHeaders.26361/bpm.glade0000644000175000017500000000012412233027260020034 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.513046945 exaile-3.3.2/plugins/bpm/bpm.glade0000644000000000000000000000430412233027260016775 0ustar00rootroot00000000000000 True True BPM mouse 100 100 True True True False While this window is focused, click or press keys in time with the beat - True True 20 0 Apply BPM False True False True True True Apply the currently calculated BPM to the currently playing song False False 1 dist/copy/plugins/bpm/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260020371 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.513046945 exaile-3.3.2/plugins/bpm/__init__.py0000644000000000000000000002017412233027260017335 0ustar00rootroot00000000000000# Copyright (C) 2011 Dustin Spicuzza # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import os import time import gtk import gobject from xl import ( event, providers, player, settings ) from xl.nls import gettext as _ from xlgui import guiutil from xlgui.accelerators import Accelerator from xlgui.widgets import menu, dialogs plugin = None def enable(exaile): '''Called on plugin enable''' if exaile.loading: event.add_callback(_enable, 'gui_loaded') else: _enable(None, exaile, None) def _enable(eventname, exaile, nothing): global plugin plugin = BPMCounterPlugin(exaile) event.remove_callback(_enable, 'gui_loaded') def disable(exaile): '''Called on plugin disable''' global plugin if plugin is not None: plugin.disable_plugin() plugin = None class BPMCounterPlugin(object): '''Implements logic for plugin''' def __init__(self, exaile): self.window = None self.taps = [] self.MENU_ITEM = menu.simple_menu_item('bpm_counter', ['plugin-sep'], _('BPM Counter'), callback=lambda *x: self.enable(exaile)) providers.register('menubar-tools-menu', self.MENU_ITEM) # TODO: Add preferences to adjust these settings.. # number of seconds to average taps over so it converges faster self.tap_history = settings.get_option('plugin/bpm/tap_history', 5.0) # if no tap received, then restart self.stale_time = settings.get_option('plugin/bpm/stale_period', 2.0) self.accelerator = Accelerator('b', lambda *x: self.enable(exaile)) providers.register('mainwindow-accelerators',self.accelerator) def disable_plugin(self): '''Called when the plugin is disabled''' if self.MENU_ITEM: providers.unregister('menubar-tools-menu', self.MENU_ITEM) self.MENU_ITEM = None if self.accelerator: providers.unregister('mainwindow-accelerator', self.accelerator) if self.window: self.window.hide() self.window.destroy() def enable(self, exaile): '''Called when the user selects the BPM counter from the menu''' if self.window is not None: self.window.present() return self.ui = gtk.Builder() self.ui.add_from_file(os.path.join( os.path.dirname( os.path.realpath(__file__)),'bpm.glade')) # get objects self.window = self.ui.get_object("BPMCounter") self.bpm_label = self.ui.get_object("bpm_label") self.apply_button = self.ui.get_object('apply_button') # attach events self.window.connect('destroy', self.on_destroy) self.window.connect('button-release-event', self.on_window_click ) self.window.connect('key-press-event', self.on_window_keydown ) self.apply_button.connect('pressed', self.on_apply_button_pressed ) # ok, register for some events event.add_callback( self.playback_track_start, 'playback_track_start' ) # get the main exaile window, and dock our window next to it if possible # trigger start event if exaile is currently playing something if player.PLAYER.is_playing(): self.playback_track_start( None, player.PLAYER, player.PLAYER.current ) else: self.track = None self.bpm = None self.taps = [] self.update_ui() # and we're done self.window.show_all() # # Exaile events # @guiutil.idle_add() def playback_track_start(self, type, player, track): self.track = track self.bpm = self.track.get_tag_raw('bpm', True) self.taps = [] self.update_ui(False) # # UI Events # def on_destroy(self, widget): if self.window is None: return # de-register the exaile events event.remove_callback( self.playback_track_start, 'playback_track_start' ) # finish the GUI off self.window = None def on_apply_button_pressed(self, widget): self.set_bpm() def on_window_keydown(self, widget, event): if event.keyval == gtk.keysyms.Return: self.set_bpm() return False if widget == self.apply_button: return False self.add_bpm_tap() return True def on_window_click(self, widget, event): if widget == self.apply_button: return False self.add_bpm_tap() return True # # BPM Logic # def add_bpm_tap(self): '''Recalculates the BPM each time an event occurs''' current = time.time() if len(self.taps) > 0: # reset counter if its stale if current - self.taps[-1] > self.stale_time: self.taps = [] self.taps.append( current ) self.trim_taps() if len(self.taps) > 1: self.bpm = str(int(round(((len(self.taps)-1) * 60.0) / ( self.taps[-1] - self.taps[0] )))) else: self.bpm = None self.update_ui() def trim_taps(self): '''Remove old taps so the BPM value converges faster''' while len(self.taps) != 0 and self.taps[-1] - self.taps[0] > self.tap_history: self.taps.pop(0) def set_bpm(self): '''Make sure we don't accidentally set BPM on things''' if self.track and self.bpm: msg = gtk.MessageDialog(self.window, gtk.DIALOG_MODAL, gtk.MESSAGE_QUESTION, gtk.BUTTONS_YES_NO, _('Set BPM of %d on %s?') % (int(self.bpm), self.track.get_tag_display('title'))) msg.set_default_response( gtk.RESPONSE_NO ) result = msg.run() msg.destroy() if result == gtk.RESPONSE_YES: self.track.set_tag_raw('bpm', int(self.bpm)) if not self.track.write_tags(): dialogs.error( None, "Error writing BPM to %s" % gobject.markup_escape_text(self.track.get_loc_for_io()) ) self.update_ui() def update_ui(self, apply_enabled=True): '''Updates the current UI display''' if self.bpm is None: self.bpm_label.set_label( '-' ) self.apply_button.set_sensitive(False) else: self.bpm_label.set_label( self.bpm ) if self.track is not None: self.apply_button.set_sensitive(apply_enabled) if apply_enabled: self.window.set_default(self.apply_button) else: self.apply_button.set_sensitive(False) dist/copy/plugins/bpm/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260017655 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.097046932 exaile-3.3.2/plugins/bpm/PLUGININFO0000644000000000000000000000022212233027260016611 0ustar00rootroot00000000000000Version="0.1" Authors=['Dustin Spicuzza '] Name="BPM Counter" Description="Manual BPM counter" Category=_('Utility') dist/copy/plugins/PaxHeaders.26361/wikipedia0000644000175000017500000000013212233027261017373 xustar000000000000000030 mtime=1382821553.697046951 30 atime=1382821552.785046922 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/wikipedia/0000755000000000000000000000000012233027261016411 5ustar00rootroot00000000000000dist/copy/plugins/wikipedia/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260021561 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.621046948 exaile-3.3.2/plugins/wikipedia/__init__.py0000644000000000000000000001115712233027260020526 0ustar00rootroot00000000000000#encoding:utf-8 # 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 gtk import logging import os import urllib2 import webkit from xl import ( event, player, providers, settings ) from xl.nls import gettext as _ from xlgui import panel import config import preferences log = logging.getLogger('exaile-wikipedia/__init__.py') WIKIPANEL = None CURPATH = os.path.realpath(__file__) BASEDIR = os.path.dirname(CURPATH)+os.path.sep def enable(exaile): """ """ if (exaile.loading): event.add_callback(_enable, 'exaile_loaded') else: _enable(None, exaile, None) def disable(exaile): """ """ global WIKIPANEL WIKIPANEL.destroy() del WIKIPANEL def _enable(eventname, exaile, nothing): global WIKIPANEL WIKIPANEL = WikiPanel(exaile.gui.main.window) exaile.gui.add_panel(*WIKIPANEL.get_panel()) def get_preferences_pane(): return preferences class BrowserPage(webkit.WebView, providers.ProviderHandler): """ """ history_length = 6 def __init__(self, builder): webkit.WebView.__init__(self) providers.ProviderHandler.__init__(self, "context_page") self.hometrack = None self.set_maintains_back_forward_list(True) builder.connect_signals(self) event.add_callback(self.on_playback_start, 'playback_track_start') def destroy(self): event.remove_callback(self.on_playback_start, 'playback_track_start') def on_playback_start(self, type, player, track): self.hometrack = track self.load_wikipedia_page(track) def on_home_button_clicked(self, widget=None,param=None): if self.hometrack is not None: self.load_wikipedia_page(self.hometrack) def on_refresh_button_clicked(self, widget=None,param=None): self.reload() def on_back_button_clicked(self, button): self.go_back() def on_forward_button_clicked(self, button): self.go_forward() def load_wikipedia_page(self, track): artist = track.get_tag_display('artist') language = settings.get_option('plugin/wikipedia/language', 'en') if language not in config.LANGUAGES: log.error('Provided language "%s" not found.' % language) language = 'en' url = "http://%s.m.wikipedia.org/wiki/%s" % (language, artist) url = url.replace(" ", "_") headers = { 'User-Agent' : config.USER_AGENT } req = urllib2.Request(url, None, headers) try: response = urllib2.urlopen(req) except urllib2.URLError, e: log.error(e) log.error( "Error occured when trying to retrieve Wikipedia page " "for %s." % artist) html = """

No Wikipedia page found for %s

""" % artist else: html = response.read() self.load_html_string(html, url) class WikiPanel(panel.Panel): """ """ # Specifies the path to the UI file and the name of the root element ui_info = (os.path.dirname(__file__) + "/data/wikipanel.ui", 'wikipanel_window') def __init__(self, parent): panel.Panel.__init__(self, parent) self.parent = parent # This is the name that will show up on the tab in Exaile self.name = _('Wikipedia') # Typically here you'd set up your gui further, eg connect methods # to signals etc self._browser = BrowserPage(self.builder) self.setup_widgets() def destroy(self): self._browser.destroy() def setup_widgets(self): self._scrolled_window = gtk.ScrolledWindow() self._scrolled_window.props.hscrollbar_policy = gtk.POLICY_AUTOMATIC self._scrolled_window.props.vscrollbar_policy = gtk.POLICY_AUTOMATIC self._scrolled_window.add(self._browser) frame = self.builder.get_object('rendering_frame') self._scrolled_window.show_all() frame.add(self._scrolled_window) dist/copy/plugins/wikipedia/PaxHeaders.26361/plugin.py0000644000175000017500000000012412233027260021320 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.097046932 exaile-3.3.2/plugins/wikipedia/plugin.py0000644000000000000000000002616112233027260020266 0ustar00rootroot00000000000000#encoding:utf-8 # Copyright (C) 2006 Amit Man # # 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 gtk import HTMLParser import urllib2 import random import threading from gettext import gettext as _ from sentencesplitter import SentenceSplitter import config b = gtk.Button() PLUGIN_ICON = b.render_icon('gtk-info', gtk.ICON_SIZE_MENU) b.destroy() class content(HTMLParser.HTMLParser,threading.Thread): def __init__(self, the_page): threading.Thread.__init__(self) HTMLParser.HTMLParser.__init__(self) self.sentencesplitter=SentenceSplitter() self.in_paragraph=False self.num_of_para=-1 # when we first meet tag p, we will be 0 self.paraString=[] self.paraSentances=[] self.end_of_intro=False self.cant_find_page=False self.gotimage=False self.feed(the_page) self.parse_to_sentances() def handle_starttag(self,tag,attrs): if tag == 'p': #if not self.end_of_intro: self.in_paragraph=True self.num_of_para=self.num_of_para+1 self.paraString.append('') #print 'len of parastring: %d' % len(self.paraString) #print 'start paragraph: %d' % self.num_of_para if tag =='table': if attrs[0][0] == 'id' and attrs[0][1]=='toc': self.end_of_intro=True if tag =='img': if not self.gotimage: for desc in attrs: if desc[0]=='src': src=desc[1] print src if src[-3:] != 'jpg': print 'breaking' break print 'good pic' self.gotimage=True print src headers = { 'User-Agent' : config.USER_AGENT } req = urllib2.Request(src, None, headers) response = urllib2.urlopen(req) image = response.read() imagefile=file('didyouknow_tmp.img','w') imagefile.write(image) imagefile.close def handle_endtag(self,tag): if tag =='p': self.in_paragraph=False #if the last paragraph was empty if not len(self.paraString[self.num_of_para]): self.num_of_para=self.num_of_para-1 self.paraString.pop() def handle_data(self,data): if data=='Wikipedia does not have an article with this exact name.': print "cant find wikipedia page" self.no_page() if self.in_paragraph: #and not self.end_of_intro: self.paraString[self.num_of_para]=self.paraString[self.num_of_para]+data def parse_to_sentances(self): for s in self.paraString: self.paraSentances.append(self.sentencesplitter.split(s)) def get_random_fact(self): if self.cant_find_page: return "Cant find info on wikipedia" else: s='' random_para=random.randint(0,len(self.paraSentances)-1) random_sen=random.randint(0,len(self.paraSentances[random_para])-1) if random_sen > 0: s=self.half_sentence(self.paraSentances[random_para][random_sen-1],'begin')+' ' s=s+self.paraSentances[random_para][random_sen] if random_sen < len(self.paraSentances[random_para])-1: s=s+' '+self.half_sentence(self.paraSentances[random_para][random_sen+1],'end') return s def half_sentence(self,sentence,side='begin'): wa=sentence.split(' ') word_count=len(wa) if side=='end': wa=wa[0:(word_count/2)]+['... '] if side == 'begin': wa=[' ...']+wa[(word_count/2):word_count] return (' '.join(wa)) def no_page(self): self.cant_find_page=True ig=None newSong=True songName='' APP = None BUTTON = None MENU_ITEM = None TIPS = gtk.Tooltips() D=None L=None def play_track(exaile, track): """ Called when playback on a track starts ("play-track" event) """ global ig if track.type != 'stream': ig.get_song_info(exaile,track) def stop_track(exaile, track): global ig global songName songName='' def track_information_updated(exaile): global ig global songName global enable_popups track=exaile.player.current if (ig.enable_popups): #if track.type == 'stream': if songName != track.title: songName=track.title print "TRYING: to find on %s " % track.artist ig.get_song_info(exaile,track) ig.show_random_info() class InfoGiver: def __init__(self,APP,toggle_button): self.toggle_button=toggle_button self.c=None self.enable_popups=False wtree=gtk.glade.xml_new_from_buffer(XML_STRING, len(XML_STRING)) self.D=wtree.get_widget('window') self.L=wtree.get_widget('label') self.image=wtree.get_widget('image') self.vbox1=wtree.get_widget('vbox1') self.title=wtree.get_widget('title') self.event=wtree.get_widget('event') self.sep_event=wtree.get_widget('sep_event') self.title_event=wtree.get_widget('title_event') self.event.connect('button_press_event', self.start_dragging) self.event.connect('button_press_event', self.close_by_double_click) self.event.connect('button_release_event', self.stop_dragging) self.sep_event.connect('button_press_event', self.start_dragging) self.sep_event.connect('button_press_event', self.close_by_double_click) self.title_event.connect('button_press_event', self.close_by_double_click) self.sep_event.connect('button_release_event', self.stop_dragging) self.title_event.connect('button_press_event', self.start_dragging) self.title_event.connect('button_release_event', self.stop_dragging) self.__handler = None self.B=wtree.get_widget('button') self.D.hide(); self.D.connect('destroy',self.popup_destroyed) self.B.connect('clicked',self.activated) bg_color = gtk.gdk.color_parse('#567EA2'); self.D.modify_bg(gtk.STATE_NORMAL, bg_color) self.title_event.modify_bg(gtk.STATE_NORMAL, bg_color) self.sep_event.modify_bg(gtk.STATE_NORMAL, bg_color) self.event.modify_bg(gtk.STATE_NORMAL, bg_color) #------------------------------------------------ # dragging capability. copied from xlmisc.py def close_by_double_click(self,widget,event): if event.type == gtk.gdk._2BUTTON_PRESS: bg_color = gtk.gdk.color_parse('white'); self.toggle_button.modify_bg(gtk.STATE_NORMAL, bg_color) self.enable_popups = False self.D.hide() def start_dragging(self, widget, event): """ Called when the user starts dragging the window """ self.__start = event.x, event.y self.__handler = self.D.connect('motion_notify_event', self.dragging) self.__timeout = None def stop_dragging(self, widget, event): """ Called when the user stops dragging the mouse """ global POPUP if self.__handler: self.D.disconnect(self.__handler) self.__handler = None # if self.start_timer: # self.__timeout = gobject.timeout_add(4000, self.D.hide) # settings = self.exaile.settings # (w, h) = self..get_size() # (x, y) = self.window.get_position() # settings['osd/x'] = x # settings['osd/y'] = y # settings['osd/h'] = h # settings['osd/w'] = w # POPUP = OSDWindow(self.exaile, get_osd_settings(settings)) def dragging(self, widget, event): """ Called when the user drags the window """ self.D.move(int(event.x_root - self.__start[0]), int(event.y_root - self.__start[1])) #------------------------------------------------------------- def toggle_popups(self,b): if self.enable_popups == False: self.enable_popups = True bg_color = gtk.gdk.color_parse('red'); self.toggle_button.modify_bg(gtk.STATE_NORMAL, bg_color) if APP.player.current != None: self.get_song_info(APP,APP.player.current) self.show_random_info() #else: # self.label.set_label('no track is playing yet..') # self.dialog.show_all() #moving from enable popups to diable them elif self.enable_popups == True: bg_color = gtk.gdk.color_parse('white'); self.toggle_button.modify_bg(gtk.STATE_NORMAL, bg_color) self.enable_popups = False self.D.hide() def activated(self,b): self.show_random_info() def get_song_info(self,exaile,track): if not self.enable_popups: return locale = exaile.settings.get_str('wikipedia_locale', 'en') url = "http://%s.wikipedia.org/wiki/%s" % (locale, track.artist) url = url.replace(" ", "_") headers = { 'User-Agent' : config.USER_AGENT } req = urllib2.Request(url, None, headers) response = urllib2.urlopen(req) the_page = response.read() self.c=content(the_page) self.c.start() #adding image if self.c.gotimage: self.image.set_from_file('didyouknow_tmp.img') else: raise "No Image found" self.title.set_label(_('Artist: ')+ track.artist+'\n\n'+self.c.paraSentances[0][0]); def show_random_info(self): self.D.show() self.L.show() if not self.enable_popups: return self.L.set_label(_("Did you know...\n\n%s") % (self.c.get_random_fact())) #self.dialog.show_all() self.vbox1.resize_children() def kill_window(self): try: self.D.destroy() except: pass def popup_destroyed(self,w): self.enable_popups=False bg_color = gtk.gdk.color_parse('white'); self.toggle_button.modify_bg(gtk.STATE_NORMAL, bg_color) XML_STRING = None def load_data(zip): global XML_STRING XML_STRING = zip.get_data('gui.glade') dist/copy/plugins/wikipedia/PaxHeaders.26361/sentencesplitter.py0000644000175000017500000000012412233027260023415 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.097046932 exaile-3.3.2/plugins/wikipedia/sentencesplitter.py0000644000000000000000000001107312233027260022357 0ustar00rootroot00000000000000#encoding:utf-8 # Copyright (C) 2006 Amit Man # # 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. # # SentenceSplitter was taken from SentenceSplitter.py # Copyright (C) 2004 Mickel Grönroos # licensed under the GNU General Public License version 2 or later. import config import locale import re import string class SentenceSplitter(object): """The SentenceSplitter class.""" def __init__(self, loc=config.LOCALE, abbreviations=[], escape=config.ESCAPE): """Construct a SentenceSplitter object. Parameters: 1. loc (a string or tuple to feed locale.setlocale() (Default: """+str(config.LOCALE)+""") 2. abbreviations (a "stop list" of abbreviations that should not be split) (Default: []) 3. escape (a sequence of tuples to escape punctuation in the stop list) (Default: """+str(config.ESCAPE)+""") """ ## Set prerequisites self.setLocale(loc) self.setAbbreviations(abbreviations) self.setEscape(escape) ## The regular expression matching sentence boundaries self._regexpstring = ("""([\!\"#\'\(\)\.\?]+) ([\"\'\(\-]*\s?["""+ string.uppercase+string.digits+"""])""") ## A pattern to go with the regular expression for splitting ## a chunk of text into sentences self._replacepattern = r"\1\n\2" ## Compile the regular expression object self._regexpobject = re.compile(self._regexpstring) def setLocale(self, loc): """Sets the locale. Parameter must be in the format accepted by locale.setlocale().""" locale.setlocale(locale.LC_ALL) def getLocale(self): """Returns the current locale.""" return locale.getlocale() def setAbbreviations(self, abbreviations): """Sets the abbreviation "stop list", i.e. a list of abbreviations that should not trigger a split.""" self._abbreviations = abbreviations def getAbbreviations(self): """Returns the "stop list" of abbreviations.""" try: return self._abbreviations except: return [] def setEscape(self, escape): """Sets the the escape handling, i.e. how the punctuation characters in the abbreviation stop list should be escaped before splitting and turned back to after splitting. The parameter should be a sequence of tuples. (Example: escape=[(".", "_PERIOD_"), (":", "_COLON_")] """ self._escape = escape def getEscape(self): """Returns the current sequence of tuples used for escaping punctuation in the abbreviations in the stop list.""" try: return self._escape except: return [] def split(self, text): """Splits a chunk of text into a list of sentences.""" ## First "escape" all abbreviations in a rather ugly manner for abbrev in self.getAbbreviations(): if text.count(abbrev): for t_escapemapping in self.getEscape(): escabbrev = abbrev.replace(t_escapemapping[0], t_escapemapping[1]) text = text.replace(abbrev, escabbrev) ## Then try doing the replace given the regular expression ## and the replace pattern sentencestring = self._regexpobject.sub(self._replacepattern, text) ## Now "unescape" the abbreviations for t_escapemapping in self.getEscape(): if sentencestring.count(t_escapemapping[1]): sentencestring = sentencestring.replace(t_escapemapping[1], t_escapemapping[0]) ## Split sentencestring on newlines and return the list return sentencestring.split("\n") dist/copy/plugins/wikipedia/PaxHeaders.26361/config.py0000644000175000017500000000012412233027260021267 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.093046932 exaile-3.3.2/plugins/wikipedia/config.py0000644000000000000000000000250512233027260020231 0ustar00rootroot00000000000000from xl.nls import gettext as _ PLUGIN_NAME = _("Wikipedia") PLUGIN_AUTHORS = ['JC Brand '] PLUGIN_VERSION = '0.5' PLUGIN_DESCRIPTION = _(u"Displays Wikipedia page about the current performer.") PLUGIN_ENABLED = False USER_AGENT = '%s/%s (Exaile Plugin)' % (PLUGIN_NAME, PLUGIN_VERSION) LANGUAGES = [ "ab", "aa", "af", "ak", "sq", "am", "ar", "an", "hy", "as", "av", "ae", "ay", "az", "bm", "ba", "eu", "be", "bn", "bh", "bi", "bs", "br", "bg", "my", "ca", "ch", "ce", "ny", "cv", "kw", "co", "cr", "hr", "cs", "da", "dv", "nl", "dz", "en", "eo", "et", "ee", "fo", "fj", "fi", "fr", "ff", "gl", "ka", "de", "el", "gn", "gu", "ht", "ha", "he", "hz", "hi", "ho", "hu", "ia", "id", "ie", "ga", "ig", "ik", "io", "is", "it", "iu", "jv", "kl", "kn", "kr", "kk", "km", "ki", "rw", "ky", "kv", "kg", "kj", "la", "lb", "lg", "li", "ln", "lo", "lt", "lv", "gv", "mk", "mg", "ml", "mt", "mi", "mr", "mh", "mn", "na", "nv", "nb", "nd", "ne", "ng", "nn", "no", "ii", "nr", "oc", "oj", "cu", "om", "or", "os", "pi", "fa", "pl", "ps", "pt", "qu", "rm", "rn", "ro", "ru", "sa", "sc", "se", "sm", "sg", "sr", "gd", "sn", "si", "sk", "sl", "so", "st", "es", "su", "sw", "ss", "sv", "ta", "te", "th", "ti", "bo", "tk", "tl", "tn", "to", "tr", "ts", "tw", "ty", "uk", "ur", "ve", "vi", "vk", "vo", "wa", "cy", "wo", "fy", "xh", "yi", "yo", "za", "zu"] dist/copy/plugins/wikipedia/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260021045 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/wikipedia/PLUGININFO0000644000000000000000000000030112233027260017777 0ustar00rootroot00000000000000Version=0.5 Authors=['JC Brand '] Name=_('Wikipedia') Description=_('Provides Wikipedia information about the current artist.\nDepends: python-webkit') Category=_('Information') dist/copy/plugins/wikipedia/PaxHeaders.26361/data0000644000175000017500000000013212233027261020304 xustar000000000000000030 mtime=1382821553.097046932 30 atime=1382821552.789046922 30 ctime=1382821553.097046932 exaile-3.3.2/plugins/wikipedia/data/0000755000000000000000000000000012233027261017322 5ustar00rootroot00000000000000dist/copy/plugins/wikipedia/data/PaxHeaders.26361/wikipanel.ui0000644000175000017500000000012412233027260022703 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.097046932 exaile-3.3.2/plugins/wikipedia/data/wikipanel.ui0000644000000000000000000001643612233027260021655 0ustar00rootroot00000000000000 False Wikipedia 100 100 True False 3 3 True False False 32 32 True True True True Home Home False none False True False gtk-home False False 0 False 32 32 True True True Back False none True False gtk-go-back False True 1 False 32 32 True True True True Refresh Refresh False none False True False gtk-refresh 2 False False 2 False 32 32 True True True Forward False none True False gtk-go-forward False True 3 False True 0 True False 0 True True 1 dist/copy/plugins/wikipedia/data/PaxHeaders.26361/preferences.ui0000644000175000017500000000012412233027260023221 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.097046932 exaile-3.3.2/plugins/wikipedia/data/preferences.ui0000644000000000000000000000434512233027260022167 0ustar00rootroot00000000000000 False True False 3 True False 2 True True gtk-info False Shortcode of the Wikipedia language version (en, de, fr, ...) 1 2 True False 0 6 Language: GTK_FILL False False 4 0 dist/copy/plugins/wikipedia/PaxHeaders.26361/preferences.py0000644000175000017500000000012412233027260022323 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.569046947 exaile-3.3.2/plugins/wikipedia/preferences.py0000644000000000000000000000217712233027260021272 0ustar00rootroot00000000000000# Copyright (C) 2010 Guillaume Lecomte # # 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 1, 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 from xlgui.preferences import widgets from xl.nls import gettext as _ name = _('Wikipedia') basedir = os.path.dirname(os.path.realpath(__file__)) ui = os.path.join(basedir, "data/preferences.ui") class LocalePreference(widgets.Preference): default = 'en' name = 'plugin/wikipedia/language' class MobilePreference(widgets.CheckPreference): default = False name = 'plugin/wikipedia/mobile' dist/copy/plugins/PaxHeaders.26361/xkeys0000644000175000017500000000013212233027261016570 xustar000000000000000030 mtime=1382821553.697046951 30 atime=1382821552.785046922 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/xkeys/0000755000000000000000000000000012233027261015606 5ustar00rootroot00000000000000dist/copy/plugins/xkeys/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260020756 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.513046945 exaile-3.3.2/plugins/xkeys/__init__.py0000644000000000000000000000406112233027260017717 0ustar00rootroot00000000000000# Copyright (C) 2006 Adam Olsen # # 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 1, 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 xl import event, player KEYS = None EXAILE = None SIGNALS = [] def enable(exaile): if exaile.loading: event.add_callback(_enable, 'exaile_loaded') else: _enable(None, exaile, None) def play_pause(*e): if player.PLAYER.is_paused() or player.PLAYER.is_playing(): player.PLAYER.toggle_pause() else: player.QUEUE.play() def _enable(type, exaile, nothing): global KEYS, SIGNALS try: import mmkeys except ImportError: raise NotImplementedError('mmkeys.so is not available') return False if not KEYS: keys = mmkeys.MmKeys() else: keys = KEYS s1 = keys.connect('mm_playpause', play_pause) s2 = keys.connect('mm_next', lambda *e: player.QUEUE.next()) s3 = keys.connect('mm_prev', lambda *e: player.QUEUE.prev()) s4 = keys.connect('mm_stop', lambda *e: player.PLAYER.stop()) SIGNALS += [s1, s2, s3, s4] # this is basically here to keep a reference around so that the object # doesn't get GCed. Don't EVER assign KEYS to None, even in disable(), or # you'll get a nice segfault when pressing one of the mmkeys KEYS = keys def disable(exaile): global SIGNALS # DO NOT ASSIGN KEYS to None in this function, unless you like segfaults if KEYS: for id in SIGNALS: KEYS.disconnect(id) SIGNALS = [] dist/copy/plugins/xkeys/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260020242 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/xkeys/PLUGININFO0000644000000000000000000000023012233027260017175 0ustar00rootroot00000000000000Version='0.0.2' Authors=['Adam Olsen '] Name=_('XKeys') Description=_('Global hotkeys using xlib (mmkeys.so)') Category=_('Hotkeys') dist/copy/plugins/PaxHeaders.26361/notifyosd0000644000175000017500000000013212233027261017443 xustar000000000000000030 mtime=1382821553.697046951 30 atime=1382821552.785046922 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/notifyosd/0000755000000000000000000000000012233027261016461 5ustar00rootroot00000000000000dist/copy/plugins/notifyosd/PaxHeaders.26361/notifyosdprefs_pane.ui0000644000175000017500000000012412233027260024140 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.289046938 exaile-3.3.2/plugins/notifyosd/notifyosdprefs_pane.ui0000644000000000000000000003736012233027260023111 0ustar00rootroot00000000000000 True 3 vertical True 0 none True 5 5 5 5 True vertical On track change True True False 2 True True 0 On playback start, pause or stop True True False 2 True True False 1 On tag change True True False 2 True True 2 On tray icon hover True True False 2 True True False 3 When main window is focused True True False True 4 True <b>Display</b> True False 0 True 0 none True 5 5 5 5 True vertical Use album covers as icons True True False 0.49000000953674316 True True False 0 Use media icons for pause, stop and resume True True False True True False 1 True <b>Icons</b> True False 1 True 0 none True 5 5 5 5 True 4 2 3 3 True 1 Artist line: 2 3 GTK_FILL True 0 <i>The tags "%(title)s", "%(artist)s", and "%(album)s" will be replaced by their respective values. The title will be replaced by "Unknown" if it is empty.</i> True fill True 80 2 True 1 Summary: 1 2 GTK_FILL True True False 1 2 1 2 5 True True False 1 2 2 3 5 True True False 1 2 3 4 5 True 1 Album line: 3 4 GTK_FILL True <b>Content</b> True False 2 dist/copy/plugins/notifyosd/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260021631 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.513046945 exaile-3.3.2/plugins/notifyosd/__init__.py0000644000000000000000000002123012233027260020567 0ustar00rootroot00000000000000# Copyright (C) 2009-2010 # Adam Olsen # Abhishek Mukherjee # Steve Dodier # # 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 1, 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 cgi import glib import gtk.gdk import logging import pynotify from xl import ( common, covers, event, player, settings ) from xl.nls import gettext as _ from xlgui import icons import notifyosdprefs logger = logging.getLogger(__name__) pynotify.init('Exaile') class ExaileNotifyOsd(object): def __inner_preference(klass): """Function will make a property for a given subclass of Preference""" def getter(self): return settings.get_option(klass.name, klass.default or None) def setter(self, val): settings.set_option(klass.name, val) return property(getter, setter) show_covers = __inner_preference(notifyosdprefs.ShowCovers) notify_play = __inner_preference(notifyosdprefs.NotifyPlay) notify_pause = __inner_preference(notifyosdprefs.NotifyPause) use_media_icons = __inner_preference(notifyosdprefs.UseMediaIcons) tray_hover = __inner_preference(notifyosdprefs.TrayHover) format_summary = __inner_preference(notifyosdprefs.Summary) format_artist = __inner_preference(notifyosdprefs.BodyArtist) format_album = __inner_preference(notifyosdprefs.BodyAlbum) notify_change = __inner_preference(notifyosdprefs.NotifyChange) def __init__(self): self.notify = pynotify.Notification('Exaile') self.exaile = None self.icon = None self.pauseicon = 'notification-audio-pause' self.resumeicon = 'notification-audio-play' self.stopicon = 'notification-audio-stop' # TRANSLATORS: title of a track if it is unknown self.unknown = _('Unknown') self.summary = None self.body = None self.gui_callback = False self.tray_connection= -1 event.add_callback(self.on_tray_toggled, 'tray_icon_toggled') def update_notify(self): if isinstance(self.icon, str): self.notify.clear_hints() # workaround a bug in libnotify, # pixbuf hint is not cleared self.notify.update(self.summary, self.body, self.icon) else: self.notify.update(self.summary, self.body) if self.icon is not None: self.notify.set_icon_from_pixbuf(self.icon) @common.threaded def update_track_notify(self, type, player, track, media_icon = None): if not track: return title = track.get_tag_display('title') artist = cgi.escape( track.get_tag_display('artist', artist_compilations=False) ) album = cgi.escape(track.get_tag_display('album')) # Determine the icon we will use self.icon = None if media_icon and self.use_media_icons: self.icon = media_icon else: if self.icon == self.stopicon and self.summary == title and \ self.use_media_icons and self.notify_pause: # this is for when the song has been stopped previously self.icon = self.resumeicon elif self.show_covers: cover_data = covers.MANAGER.get_cover(track, set_only=True, use_default=True) self.icon = icons.MANAGER.pixbuf_from_data(cover_data) # Setup the summary and body for the notification self.summary = self.format_summary % {'title': title or self.unknown} if artist and album: self.body = self.format_artist % {'artist' : artist} + '\n' + \ self.format_album % {'album' : album} elif artist: self.body = self.format_artist % {'artist' : artist} elif album: self.body = self.format_album % {'album' : album} else: self.body = "" self.update_notify() if settings.get_option("plugin/notifyosd/show_when_focused", \ True) or not self.exaile.gui.main.window.is_active(): try: self.notify.show() except glib.GError, e: logger.warning("error showing OSD notification: %s" % e ) logger.warning("Perhaps notify-osd is not installed?") def on_pause(self, type, player, track): if self.notify_pause: self.update_track_notify(type, player, track, self.pauseicon) def on_stop(self, type, player, track): if self.notify_pause: self.update_track_notify(type, player, track, self.stopicon) def on_resume(self, type, player, track): if self.notify_pause: self.update_track_notify(type, player, track, self.resumeicon) elif self.notify_play: self.update_track_notify(type, player, track) def on_play(self, type, player, track): if self.notify_play: self.update_track_notify(type, player, track) def on_quit(self, type, exaile, data=None): self.notify.close() def on_changed(self, type, track, tag): # ignore internal tag changes if self.notify_change and not tag.startswith('__') and track == player.PLAYER.current: self.update_track_notify(type, player.PLAYER, track) def on_tooltip(self, *e): if self.tray_hover: track = player.PLAYER.current if track: if self.icon == self.stopicon or self.icon == self.pauseicon: if self.use_media_icons: self.update_track_notify(type, player.PLAYER, track, self.icon) return self.update_track_notify(type, player.PLAYER, track) elif self.notify_pause and self.icon == self.stopicon: # if there is no track, then status is stopped self.update_notify() self.notify.show() def exaile_ready(self, type = None, data1 = None, data2 = None): if self.exaile.gui.tray_icon: self.tray_connection = self.exaile.gui.tray_icon.connect('query-tooltip', self.on_tooltip) def on_tray_toggled(self, type, object, data): if data and self.tray_connection == -1: glib.timeout_add_seconds(1, self.exaile_ready) elif not data and self.tray_connection != -1: self.tray_connection = -1 EXAILE_NOTIFYOSD = ExaileNotifyOsd() def enable(exaile): EXAILE_NOTIFYOSD.exaile = exaile event.add_callback(EXAILE_NOTIFYOSD.on_play, 'playback_track_start', player.PLAYER) event.add_callback(EXAILE_NOTIFYOSD.on_pause, 'playback_player_pause', player.PLAYER) event.add_callback(EXAILE_NOTIFYOSD.on_stop, 'playback_player_end', player.PLAYER) event.add_callback(EXAILE_NOTIFYOSD.on_resume, 'playback_player_resume', player.PLAYER) event.add_callback(EXAILE_NOTIFYOSD.on_quit, 'quit_application') event.add_callback(EXAILE_NOTIFYOSD.on_changed, 'track_tags_changed') if hasattr(exaile, 'gui'): EXAILE_NOTIFYOSD.exaile_ready() else: event.add_callback(EXAILE_NOTIFYOSD.exaile_ready, 'gui_loaded') EXAILE_NOTIFYOSD.gui_callback = True def disable(exaile): event.remove_callback(EXAILE_NOTIFYOSD.on_play, 'playback_track_start', player.PLAYER) event.remove_callback(EXAILE_NOTIFYOSD.on_pause, 'playback_player_pause', player.PLAYER) event.remove_callback(EXAILE_NOTIFYOSD.on_stop, 'playback_player_end', player.PLAYER) event.remove_callback(EXAILE_NOTIFYOSD.on_resume, 'playback_player_resume', player.PLAYER) event.remove_callback(EXAILE_NOTIFYOSD.on_quit, 'quit_application') event.remove_callback(EXAILE_NOTIFYOSD.on_changed, 'track_tags_changed') if EXAILE_NOTIFYOSD.exaile.gui.tray_icon: EXAILE_NOTIFYOSD.exaile.gui.tray_icon.disconnect(EXAILE_NOTIFYOSD.tray_connection) if EXAILE_NOTIFYOSD.gui_callback: event.remove_callback(EXAILE_NOTIFYOSD.exaile_ready, 'gui_loaded') def get_preferences_pane(): return notifyosdprefs dist/copy/plugins/notifyosd/PaxHeaders.26361/notifyosdprefs.py0000644000175000017500000000012412233027260023150 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.565046947 exaile-3.3.2/plugins/notifyosd/notifyosdprefs.py0000644000000000000000000000405212233027260022111 0ustar00rootroot00000000000000# Copyright (C) 2009-2010 Abhishek Mukherjee # # 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 1, 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 from xlgui.preferences import widgets from xl import xdg from xl.nls import gettext as _ name = _('Notify-osd notifications') basedir = os.path.dirname(os.path.realpath(__file__)) ui = os.path.join(basedir, "notifyosdprefs_pane.ui") class ShowCovers(widgets.CheckPreference): default = True name = 'plugin/notifyosd/covers' class NotifyPlay(widgets.CheckPreference): default = True name = 'plugin/notifyosd/notify_play' class NotifyChange(widgets.CheckPreference): default = True name = 'plugin/notifyosd/notify_change' class NotifyPause(widgets.CheckPreference): default = True name = 'plugin/notifyosd/notify_pause' class UseMediaIcons(widgets.CheckPreference): default = True name = 'plugin/notifyosd/media_icons' class TrayHover(widgets.CheckPreference): default = False name = 'plugin/notifyosd/tray_hover' class Summary(widgets.Preference): default = _("%(title)s") name = 'plugin/notifyosd/summary' class BodyArtist(widgets.Preference): default = _("by %(artist)s") name = 'plugin/notifyosd/bodyartist' class BodyAlbum(widgets.Preference): default = _("from %(album)s") name = 'plugin/notifyosd/bodyalbum' class ShowWhenFocused(widgets.CheckPreference): default = True name = 'plugin/notifyosd/show_when_focused' dist/copy/plugins/notifyosd/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260021115 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/notifyosd/PLUGININFO0000644000000000000000000000057712233027260020066 0ustar00rootroot00000000000000Version='0.1.0' Authors=['Adam Olsen ', 'Steve Dodier '] Name=_('Notify-osd notifications') Description=_('This plugins displays notification bubbles when a song is played/resumed/stopped, with either the song cover or a media icon to indicate the latest action.\n\nDepends: python-notify\nRecommends: notify-osd') Category=_('Notifications') dist/copy/plugins/PaxHeaders.26361/lyricwiki0000644000175000017500000000013212233027261017433 xustar000000000000000030 mtime=1382821553.697046951 30 atime=1382821552.785046922 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/lyricwiki/0000755000000000000000000000000012233027261016451 5ustar00rootroot00000000000000dist/copy/plugins/lyricwiki/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260021621 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821552.993046928 exaile-3.3.2/plugins/lyricwiki/__init__.py0000644000000000000000000000417212233027260020565 0ustar00rootroot00000000000000try: import BeautifulSoup except ImportError: BeautifulSoup = None import HTMLParser import re import urllib from xl.lyrics import ( LyricSearchMethod, LyricsNotFoundException ) from xl import providers def enable(exaile): """ Enables the lyric wiki plugin that fetches track lyrics from lyrics.wikia.com """ if BeautifulSoup: providers.register('lyrics', LyricWiki()) else: raise NotImplementedError('BeautifulSoup is not available.') return False def disable(exaile): providers.unregister('lyrics', providers.get_provider('lyrics', 'lyricwiki')) class LyricWiki(LyricSearchMethod): name= "lyricwiki" display_name = "Lyric Wiki" def find_lyrics(self, track): try: (artist, title) = track.get_tag_raw('artist')[0].encode("utf-8"), \ track.get_tag_raw('title')[0].encode("utf-8") except TypeError: raise LyricsNotFoundException if not artist or not title: raise LyricsNotFoundException artist = urllib.quote(artist.replace(' ','_')) title = urllib.quote(title.replace(' ','_')) url = 'http://lyrics.wikia.com/%s:%s' % (artist, title) try: html = urllib.urlopen(url).read() except: raise LyricsNotFoundException try: soup = BeautifulSoup.BeautifulSoup(html) except HTMLParser.HTMLParseError: raise LyricsNotFoundException lyrics = soup.findAll(attrs= {"class" : "lyricbox"}) if lyrics: lyrics = re.sub(r' Send.*?Ringtone to your Cell ','','\n'.join(self.remove_html_tags(lyrics[0].renderContents().replace('
','\n')).replace('\n\n\n','').split('\n')[0:-7])) else: raise LyricsNotFoundException lyrics = str(BeautifulSoup.BeautifulStoneSoup(lyrics,convertEntities=BeautifulSoup.BeautifulStoneSoup.HTML_ENTITIES)) return (lyrics, self.name, url) def remove_html_tags(self, data): p = re.compile(r'<[^<]*?/?>') data = p.sub('', data) p = re.compile(r'//') return p.sub('',data) dist/copy/plugins/lyricwiki/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260021105 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/lyricwiki/PLUGININFO0000644000000000000000000000036312233027260020047 0ustar00rootroot00000000000000Version='0.1.0' Authors=['Anthony Waters ', 'Johannes Schwarz '] Name=_('Lyrics Wiki') Description=_('Plugin to fetch lyrics from lyrics.wikia.com\nDepends: python-beautifulsoup') Category=_('Lyrics') dist/copy/plugins/PaxHeaders.26361/musicbrainzcovers0000644000175000017500000000013212233027261021175 xustar000000000000000030 mtime=1382821553.421046942 30 atime=1382821552.785046922 30 ctime=1382821553.421046942 exaile-3.3.2/plugins/musicbrainzcovers/0000755000000000000000000000000012233027261020213 5ustar00rootroot00000000000000dist/copy/plugins/musicbrainzcovers/PaxHeaders.26361/README.md0000644000175000017500000000012412233027260022531 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.421046942 exaile-3.3.2/plugins/musicbrainzcovers/README.md0000644000000000000000000000277212233027260021501 0ustar00rootroot00000000000000## Musicbrainz NGS bindings This library implements webservice bindings for the Musicbrainz NGS site, also known as /ws/2. For more information on the musicbrainz webservice see . ### Usage # Import the module import musicbrainzngs # If you plan to submit data, authenticate musicbrainzngs.auth("user", "password") # Tell musicbrainz what your app is, and how to contact you # (this step is required, as per the webservice access rules # at http://wiki.musicbrainz.org/XML_Web_Service/Rate_Limiting ) musicbrainzngs.set_useragent("Example music app", "0.1", "http://example.com/music") # If you are connecting to a development server musicbrainzngs.set_hostname("echoprint.musicbrainz.org") See the query.py file for more examples. ### Contribute 1. Fork the [repository](https://github.com/alastair/python-musicbrainz-ngs) on Github. 2. Make and test whatever changes you desire. 3. Signoff and commit your changes using `git commit -s`. 4. Send a pull request. ### Authors These bindings were written by [Alastair Porter](http://github.com/alastair). Contributions have been made by: * [Adrian Sampson](https://github.com/sampsyo) * [Michael Marineau](https://github.com/marineam) * [Thomas Vander Stichele](https://github.com/thomasvs) * [Ian McEwen](https://github.com/ianmcorvidae) * [Wieland Hoffmann](https://github.com/mineo) ### License This library is released under the simplified BSD license. See COPYING for details. dist/copy/plugins/musicbrainzcovers/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260023363 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821552.993046928 exaile-3.3.2/plugins/musicbrainzcovers/__init__.py0000644000000000000000000000565512233027260022336 0ustar00rootroot00000000000000# Copyright (C) 2012 Mathias Brodala # # 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, see . import logging import urllib2 from xl import ( covers, providers ) import musicbrainzngs logger = logging.getLogger(__name__) musicbrainzngs.set_useragent( 'Exaile MusicBrainz Covers', '1.0.0', 'http://exaile.org/' ) def enable(exaile): """ Enables the plugin """ providers.register('covers', MusicBrainzCoverSearch()) def disable(exaile): """ Disables the plugin """ providers.unregister('covers', providers.get_provider('covers', 'musicbrainz')) class MusicBrainzCoverSearch(covers.CoverSearchMethod): """ Searches MusicBrainz for an album cover """ name = 'musicbrainz' title = 'MusicBrainz' __caa_url ='http://coverartarchive.org/release/{mbid}/front-{size}' def find_covers(self, track, limit=-1): """ Performs the search """ try: artist = track.get_tag_raw('artist')[0] album = track.get_tag_raw('album')[0] except (AttributeError, TypeError): return [] result = musicbrainzngs.search_releases( release=album, artistname=artist, format='CD', limit=3 # Unlimited search is slow ) if result['release-list']: mbids = [a['id'] for a in result['release-list']] # Check the actual availability of the covers for mbid in mbids[:]: try: url = self.__caa_url.format(mbid=mbid, size=250) response = urllib2.urlopen(url) except urllib2.HTTPError: mbids.remove(mbid) # For now, limit to small sizes mbids = [mbid + ':250' for mbid in mbids] return mbids return [] def get_cover_data(self, db_string): """ Get the image data """ data = None mbid, size = db_string.split(':') url = self.__caa_url.format(mbid=mbid, size=size) try: logger.debug('Fetching cover from {url}'.format(url=url)) response = urllib2.urlopen(url) except urllib2.HTTPError: pass else: data = response.read() response.close() return data dist/copy/plugins/musicbrainzcovers/PaxHeaders.26361/COPYING0000644000175000017500000000012412233027260022305 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.417046942 exaile-3.3.2/plugins/musicbrainzcovers/COPYING0000644000000000000000000000245512233027260021253 0ustar00rootroot00000000000000Copyright 2011 Alastair Porter, Adrian Sampson, and others. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.dist/copy/plugins/musicbrainzcovers/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260022647 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.421046942 exaile-3.3.2/plugins/musicbrainzcovers/PLUGININFO0000644000000000000000000000025112233027260021605 0ustar00rootroot00000000000000Version='1.0.0' Authors=['Mathias Brodala '] Name=_('MusicBrainz Covers') Description=_('Integrates MusicBrainz for cover search') Category=_('Covers') dist/copy/plugins/musicbrainzcovers/PaxHeaders.26361/CHANGES0000644000175000017500000000012412233027260022245 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.417046942 exaile-3.3.2/plugins/musicbrainzcovers/CHANGES0000644000000000000000000000201012233027260021176 0ustar00rootroot000000000000000.3-dev: * Show relevancy scores on search results (Alastair Porter, #37) * Perform searches in lower case (Adrian Sampson, #36) * Use AND instead of OR by default in searches (Johannes Dewender) * Parse artist disambiguation field (Payl Bailey, #48) * Send zero-length body requests correctly (Adrian Sampson) * Fix bug in get methods when includes, release status, or release type are included (Alastair Porter, reported by palli81) * Support python 2 and python 3 * Update valid includes for some entity queries * Add usage examples 0.2 (2012-03-06): * ISRC submission support (Wieland Hoffmann) * Various submission bug fixes (Wieland Hoffmann) * Retry the query if the connection is reset (Adrian Sampson) * Rename some methods to make the API more consistent (Alastair Porter) * Use test methods from Python 2.6 (Alastair Porter) 0.1: Initial release Contributions by Alastair Porter, Adrian Sampson, Michael Marineau, Thomas Vander Stichele, Ian McEwen dist/copy/plugins/musicbrainzcovers/PaxHeaders.26361/musicbrainzngs0000644000175000017500000000013212233027261024233 xustar000000000000000030 mtime=1382821553.421046942 30 atime=1382821552.789046922 30 ctime=1382821553.421046942 exaile-3.3.2/plugins/musicbrainzcovers/musicbrainzngs/0000755000000000000000000000000012233027261023251 5ustar00rootroot00000000000000dist/copy/plugins/musicbrainzcovers/musicbrainzngs/PaxHeaders.26361/mbxml.py0000644000175000017500000000012412233027260026001 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.417046942 exaile-3.3.2/plugins/musicbrainzcovers/musicbrainzngs/mbxml.py0000644000000000000000000004433312233027260024750 0ustar00rootroot00000000000000# This file is part of the musicbrainzngs library # Copyright (C) Alastair Porter, Adrian Sampson, and others # This file is distributed under a BSD-2-Clause type license. # See the COPYING file for more information. import xml.etree.ElementTree as ET import logging from musicbrainzngs import util try: from ET import fixtag except: # Python < 2.7 def fixtag(tag, namespaces): # given a decorated tag (of the form {uri}tag), return prefixed # tag and namespace declaration, if any if isinstance(tag, ET.QName): tag = tag.text namespace_uri, tag = tag[1:].split("}", 1) prefix = namespaces.get(namespace_uri) if prefix is None: prefix = "ns%d" % len(namespaces) namespaces[namespace_uri] = prefix if prefix == "xml": xmlns = None else: xmlns = ("xmlns:%s" % prefix, namespace_uri) else: xmlns = None return "%s:%s" % (prefix, tag), xmlns NS_MAP = {"http://musicbrainz.org/ns/mmd-2.0#": "ws2", "http://musicbrainz.org/ns/ext#-2.0": "ext"} _log = logging.getLogger("python-musicbrainz-ngs") def make_artist_credit(artists): names = [] for artist in artists: if isinstance(artist, dict): if "name" in artist: names.append(artist.get("name", "")) else: names.append(artist.get("artist", {}).get("name", "")) else: names.append(artist) return "".join(names) def parse_elements(valid_els, element): """ Extract single level subelements from an element. For example, given the element: Text and a list valid_els that contains "subelement", return a dict {'subelement': 'Text'} """ result = {} for sub in element: t = fixtag(sub.tag, NS_MAP)[0] if ":" in t: t = t.split(":")[1] if t in valid_els: result[t] = sub.text or "" else: _log.debug("in <%s>, uncaught <%s>", fixtag(element.tag, NS_MAP)[0], t) return result def parse_attributes(attributes, element): """ Extract attributes from an element. For example, given the element: and a list attributes that contains "type", return a dict {'type': 'Group'} """ result = {} for attr in element.attrib: if "{" in attr: a = fixtag(attr, NS_MAP)[0] else: a = attr if a in attributes: result[a] = element.attrib[attr] else: _log.debug("in <%s>, uncaught attribute %s", fixtag(element.tag, NS_MAP)[0], attr) return result def parse_inner(inner_els, element): """ Delegate the parsing of a subelement to another function. For example, given the element: FooBar and a dictionary {'subelement': parse_subelement}, call parse_subelement() and return a dict {'subelement': } if parse_subelement returns a tuple of the form ('subelement-key', ) then return a dict {'subelement-key': } instead """ result = {} for sub in element: t = fixtag(sub.tag, NS_MAP)[0] if ":" in t: t = t.split(":")[1] if t in inner_els.keys(): inner_result = inner_els[t](sub) if isinstance(inner_result, tuple): result[inner_result[0]] = inner_result[1] else: result[t] = inner_result else: _log.debug("in <%s>, not delegating <%s>", fixtag(element.tag, NS_MAP)[0], t) return result def parse_message(message): tree = util.bytes_to_elementtree(message) root = tree.getroot() result = {} valid_elements = {"artist": parse_artist, "label": parse_label, "release": parse_release, "release-group": parse_release_group, "recording": parse_recording, "work": parse_work, "disc": parse_disc, "puid": parse_puid, "echoprint": parse_puid, "artist-list": parse_artist_list, "label-list": parse_label_list, "release-list": parse_release_list, "release-group-list": parse_release_group_list, "recording-list": parse_recording_list, "work-list": parse_work_list, "collection-list": parse_collection_list, "collection": parse_collection, "message": parse_response_message } result.update(parse_inner(valid_elements, root)) return result def parse_response_message(message): return parse_elements(["text"], message) def parse_collection_list(cl): return [parse_collection(c) for c in cl] def parse_collection(collection): result = {} attribs = ["id"] elements = ["name", "editor"] inner_els = {"release-list": parse_release_list} result.update(parse_attributes(attribs, collection)) result.update(parse_elements(elements, collection)) result.update(parse_inner(inner_els, collection)) return result def parse_collection_release_list(rl): attribs = ["count"] return parse_attributes(attribs, rl) def parse_artist_lifespan(lifespan): parts = parse_elements(["begin", "end"], lifespan) return parts def parse_artist_list(al): return [parse_artist(a) for a in al] def parse_artist(artist): result = {} attribs = ["id", "type", "ext:score"] elements = ["name", "sort-name", "country", "user-rating", "disambiguation", "gender", "ipi"] inner_els = {"life-span": parse_artist_lifespan, "recording-list": parse_recording_list, "release-list": parse_release_list, "release-group-list": parse_release_group_list, "work-list": parse_work_list, "tag-list": parse_tag_list, "user-tag-list": parse_tag_list, "rating": parse_rating, "ipi-list": parse_element_list, "alias-list": parse_element_list} result.update(parse_attributes(attribs, artist)) result.update(parse_elements(elements, artist)) result.update(parse_inner(inner_els, artist)) return result def parse_label_list(ll): return [parse_label(l) for l in ll] def parse_label(label): result = {} attribs = ["id", "type", "ext:score"] elements = ["name", "sort-name", "country", "label-code", "user-rating", "ipi", "disambiguation"] inner_els = {"life-span": parse_artist_lifespan, "release-list": parse_release_list, "tag-list": parse_tag_list, "user-tag-list": parse_tag_list, "rating": parse_rating, "ipi-list": parse_element_list, "alias-list": parse_element_list} result.update(parse_attributes(attribs, label)) result.update(parse_elements(elements, label)) result.update(parse_inner(inner_els, label)) return result def parse_relation_list(rl): attribs = ["target-type"] ttype = parse_attributes(attribs, rl) key = "%s-relation-list" % ttype["target-type"] return (key, [parse_relation(r) for r in rl]) def parse_relation(relation): result = {} attribs = ["type"] elements = ["target", "direction"] inner_els = {"artist": parse_artist, "label": parse_label, "recording": parse_recording, "release": parse_release, "release-group": parse_release_group, "attribute-list": parse_element_list, "work": parse_work } result.update(parse_attributes(attribs, relation)) result.update(parse_elements(elements, relation)) result.update(parse_inner(inner_els, relation)) return result def parse_release(release): result = {} attribs = ["id", "ext:score"] elements = ["title", "status", "disambiguation", "quality", "country", "barcode", "date", "packaging", "asin"] inner_els = {"text-representation": parse_text_representation, "artist-credit": parse_artist_credit, "label-info-list": parse_label_info_list, "medium-list": parse_medium_list, "release-group": parse_release_group, "relation-list": parse_relation_list} result.update(parse_attributes(attribs, release)) result.update(parse_elements(elements, release)) result.update(parse_inner(inner_els, release)) if "artist-credit" in result: result["artist-credit-phrase"] = make_artist_credit(result["artist-credit"]) return result def parse_medium_list(ml): return [parse_medium(m) for m in ml] def parse_medium(medium): result = {} elements = ["position", "format", "title"] inner_els = {"disc-list": parse_disc_list, "track-list": parse_track_list} result.update(parse_elements(elements, medium)) result.update(parse_inner(inner_els, medium)) return result def parse_disc_list(dl): return [parse_disc(d) for d in dl] def parse_text_representation(textr): return parse_elements(["language", "script"], textr) def parse_release_group(rg): result = {} attribs = ["id", "type", "ext:score"] elements = ["title", "user-rating", "first-release-date", "primary-type"] inner_els = {"artist-credit": parse_artist_credit, "release-list": parse_release_list, "tag-list": parse_tag_list, "user-tag-list": parse_tag_list, "secondary-type-list": parse_element_list, "rating": parse_rating} result.update(parse_attributes(attribs, rg)) result.update(parse_elements(elements, rg)) result.update(parse_inner(inner_els, rg)) if "artist-credit" in result: result["artist-credit-phrase"] = make_artist_credit(result["artist-credit"]) return result def parse_recording(recording): result = {} attribs = ["id", "ext:score"] elements = ["title", "length", "user-rating"] inner_els = {"artist-credit": parse_artist_credit, "release-list": parse_release_list, "tag-list": parse_tag_list, "user-tag-list": parse_tag_list, "rating": parse_rating, "puid-list": parse_external_id_list, "isrc-list": parse_external_id_list, "echoprint-list": parse_external_id_list, "relation-list": parse_relation_list} result.update(parse_attributes(attribs, recording)) result.update(parse_elements(elements, recording)) result.update(parse_inner(inner_els, recording)) if "artist-credit" in result: result["artist-credit-phrase"] = make_artist_credit(result["artist-credit"]) return result def parse_external_id_list(pl): return [parse_attributes(["id"], p)["id"] for p in pl] def parse_element_list(el): return [e.text for e in el] def parse_work_list(wl): return [parse_work(w) for w in wl] def parse_work(work): result = {} attribs = ["id", "ext:score"] elements = ["title", "user-rating", "language", "iswc"] inner_els = {"tag-list": parse_tag_list, "user-tag-list": parse_tag_list, "rating": parse_rating, "alias-list": parse_element_list, "iswc-list": parse_element_list, "relation-list": parse_relation_list} result.update(parse_attributes(attribs, work)) result.update(parse_elements(elements, work)) result.update(parse_inner(inner_els, work)) return result def parse_disc(disc): result = {} attribs = ["id"] elements = ["sectors"] inner_els = {"release-list": parse_release_list} result.update(parse_attributes(attribs, disc)) result.update(parse_elements(elements, disc)) result.update(parse_inner(inner_els, disc)) return result def parse_release_list(rl): result = [] for r in rl: result.append(parse_release(r)) return result def parse_release_group_list(rgl): result = [] for rg in rgl: result.append(parse_release_group(rg)) return result def parse_puid(puid): result = {} attribs = ["id"] inner_els = {"recording-list": parse_recording_list} result.update(parse_attributes(attribs, puid)) result.update(parse_inner(inner_els, puid)) return result def parse_recording_list(recs): result = [] for r in recs: result.append(parse_recording(r)) return result def parse_artist_credit(ac): result = [] for namecredit in ac: result.append(parse_name_credit(namecredit)) join = parse_attributes(["joinphrase"], namecredit) if "joinphrase" in join: result.append(join["joinphrase"]) return result def parse_name_credit(nc): result = {} elements = ["name"] inner_els = {"artist": parse_artist} result.update(parse_elements(elements, nc)) result.update(parse_inner(inner_els, nc)) return result def parse_label_info_list(lil): result = [] for li in lil: result.append(parse_label_info(li)) return result def parse_label_info(li): result = {} elements = ["catalog-number"] inner_els = {"label": parse_label} result.update(parse_elements(elements, li)) result.update(parse_inner(inner_els, li)) return result def parse_track_list(tl): result = [] for t in tl: result.append(parse_track(t)) return result def parse_track(track): result = {} elements = ["number", "position", "title", "length"] inner_els = {"recording": parse_recording, "artist-credit": parse_artist_credit} result.update(parse_elements(elements, track)) result.update(parse_inner(inner_els, track)) if "artist-credit" in result.get("recording", {}) and "artist-credit" not in result: result["artist-credit"] = result["recording"]["artist-credit"] if "artist-credit" in result: result["artist-credit-phrase"] = make_artist_credit(result["artist-credit"]) # Make a length field that contains track length or recording length track_or_recording = None if "length" in result: track_or_recording = result["length"] elif result.get("recording", {}).get("length"): track_or_recording = result.get("recording", {}).get("length") if track_or_recording: result["track_or_recording_length"] = track_or_recording return result def parse_tag_list(tl): return [parse_tag(t) for t in tl] def parse_tag(tag): result = {} attribs = ["count"] elements = ["name"] result.update(parse_attributes(attribs, tag)) result.update(parse_elements(elements, tag)) return result def parse_rating(rating): result = {} attribs = ["votes-count"] result.update(parse_attributes(attribs, rating)) result["rating"] = rating.text return result ### def make_barcode_request(barcodes): NS = "http://musicbrainz.org/ns/mmd-2.0#" root = ET.Element("{%s}metadata" % NS) rel_list = ET.SubElement(root, "{%s}release-list" % NS) for release, barcode in barcodes.items(): rel_xml = ET.SubElement(rel_list, "{%s}release" % NS) bar_xml = ET.SubElement(rel_xml, "{%s}barcode" % NS) rel_xml.set("{%s}id" % NS, release) bar_xml.text = barcode return ET.tostring(root, "utf-8") def make_puid_request(puids): NS = "http://musicbrainz.org/ns/mmd-2.0#" root = ET.Element("{%s}metadata" % NS) rec_list = ET.SubElement(root, "{%s}recording-list" % NS) for recording, puid_list in puids.items(): rec_xml = ET.SubElement(rec_list, "{%s}recording" % NS) rec_xml.set("id", recording) p_list_xml = ET.SubElement(rec_xml, "{%s}puid-list" % NS) l = puid_list if isinstance(puid_list, list) else [puid_list] for p in l: p_xml = ET.SubElement(p_list_xml, "{%s}puid" % NS) p_xml.set("id", p) return ET.tostring(root, "utf-8") def make_echoprint_request(echoprints): NS = "http://musicbrainz.org/ns/mmd-2.0#" root = ET.Element("{%s}metadata" % NS) rec_list = ET.SubElement(root, "{%s}recording-list" % NS) for recording, echoprint_list in echoprints.items(): rec_xml = ET.SubElement(rec_list, "{%s}recording" % NS) rec_xml.set("id", recording) e_list_xml = ET.SubElement(rec_xml, "{%s}echoprint-list" % NS) l = echoprint_list if isinstance(echoprint_list, list) else [echoprint_list] for e in l: e_xml = ET.SubElement(e_list_xml, "{%s}echoprint" % NS) e_xml.set("id", e) return ET.tostring(root, "utf-8") def make_tag_request(artist_tags, recording_tags): NS = "http://musicbrainz.org/ns/mmd-2.0#" root = ET.Element("{%s}metadata" % NS) rec_list = ET.SubElement(root, "{%s}recording-list" % NS) for rec, tags in recording_tags.items(): rec_xml = ET.SubElement(rec_list, "{%s}recording" % NS) rec_xml.set("{%s}id" % NS, rec) taglist = ET.SubElement(rec_xml, "{%s}user-tag-list" % NS) for t in tags: usertag_xml = ET.SubElement(taglist, "{%s}user-tag" % NS) name_xml = ET.SubElement(usertag_xml, "{%s}name" % NS) name_xml.text = t art_list = ET.SubElement(root, "{%s}artist-list" % NS) for art, tags in artist_tags.items(): art_xml = ET.SubElement(art_list, "{%s}artist" % NS) art_xml.set("{%s}id" % NS, art) taglist = ET.SubElement(art_xml, "{%s}user-tag-list" % NS) for t in tags: usertag_xml = ET.SubElement(taglist, "{%s}user-tag" % NS) name_xml = ET.SubElement(usertag_xml, "{%s}name" % NS) name_xml.text = t return ET.tostring(root, "utf-8") def make_rating_request(artist_ratings, recording_ratings): NS = "http://musicbrainz.org/ns/mmd-2.0#" root = ET.Element("{%s}metadata" % NS) rec_list = ET.SubElement(root, "{%s}recording-list" % NS) for rec, rating in recording_ratings.items(): rec_xml = ET.SubElement(rec_list, "{%s}recording" % NS) rec_xml.set("{%s}id" % NS, rec) rating_xml = ET.SubElement(rec_xml, "{%s}user-rating" % NS) if isinstance(rating, int): rating = "%d" % rating rating_xml.text = rating art_list = ET.SubElement(root, "{%s}artist-list" % NS) for art, rating in artist_ratings.items(): art_xml = ET.SubElement(art_list, "{%s}artist" % NS) art_xml.set("{%s}id" % NS, art) rating_xml = ET.SubElement(art_xml, "{%s}user-rating" % NS) if isinstance(rating, int): rating = "%d" % rating rating_xml.text = rating return ET.tostring(root, "utf-8") def make_isrc_request(recordings_isrcs): NS = "http://musicbrainz.org/ns/mmd-2.0#" root = ET.Element("{%s}metadata" % NS) rec_list = ET.SubElement(root, "{%s}recording-list" % NS) for rec, isrcs in recordings_isrcs.items(): if len(isrcs) > 0: rec_xml = ET.SubElement(rec_list, "{%s}recording" % NS) rec_xml.set("{%s}id" % NS, rec) isrc_list_xml = ET.SubElement(rec_xml, "{%s}isrc-list" % NS) isrc_list_xml.set("{%s}count" % NS, str(len(isrcs))) for isrc in isrcs: isrc_xml = ET.SubElement(isrc_list_xml, "{%s}isrc" % NS) isrc_xml.set("{%s}id" % NS, isrc) return ET.tostring(root, "utf-8") dist/copy/plugins/musicbrainzcovers/musicbrainzngs/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260026421 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.417046942 exaile-3.3.2/plugins/musicbrainzcovers/musicbrainzngs/__init__.py0000644000000000000000000000005112233027260025355 0ustar00rootroot00000000000000from musicbrainzngs.musicbrainz import * dist/copy/plugins/musicbrainzcovers/musicbrainzngs/PaxHeaders.26361/compat.py0000644000175000017500000000012412233027260026145 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.417046942 exaile-3.3.2/plugins/musicbrainzcovers/musicbrainzngs/compat.py0000644000000000000000000000326412233027260025112 0ustar00rootroot00000000000000# -*- coding: utf-8 -*- # Copyright (c) 2012 Kenneth Reitz. # Permission to use, copy, modify, and/or distribute this software for any # purpose with or without fee is hereby granted, provided that the above # copyright notice and this permission notice appear in all copies. # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. """ pythoncompat """ import sys # ------- # Pythons # ------- # Syntax sugar. _ver = sys.version_info #: Python 2.x? is_py2 = (_ver[0] == 2) #: Python 3.x? is_py3 = (_ver[0] == 3) # --------- # Specifics # --------- if is_py2: from StringIO import StringIO from urllib2 import HTTPPasswordMgr, HTTPDigestAuthHandler, Request,\ HTTPHandler, build_opener, HTTPError, URLError,\ build_opener from httplib import BadStatusLine, HTTPException from urlparse import urlunparse from urllib import urlencode bytes = str unicode = unicode basestring = basestring elif is_py3: from io import StringIO from urllib.request import HTTPPasswordMgr, HTTPDigestAuthHandler, Request,\ HTTPHandler, build_opener from urllib.error import HTTPError, URLError from http.client import HTTPException, BadStatusLine from urllib.parse import urlunparse, urlencode unicode = str bytes = bytes basestring = (str,bytes) dist/copy/plugins/musicbrainzcovers/musicbrainzngs/PaxHeaders.26361/musicbrainz.py0000644000175000017500000000012412233027260027210 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.417046942 exaile-3.3.2/plugins/musicbrainzcovers/musicbrainzngs/musicbrainz.py0000644000000000000000000007272712233027260026167 0ustar00rootroot00000000000000# This file is part of the musicbrainzngs library # Copyright (C) Alastair Porter, Adrian Sampson, and others # This file is distributed under a BSD-2-Clause type license. # See the COPYING file for more information. import re import threading import time import logging import socket import xml.etree.ElementTree as etree from xml.parsers import expat from musicbrainzngs import mbxml from musicbrainzngs import util from musicbrainzngs import compat _version = "0.3dev" _log = logging.getLogger("musicbrainzngs") # Constants for validation. VALID_INCLUDES = { 'artist': [ "recordings", "releases", "release-groups", "works", # Subqueries "various-artists", "discids", "media", "aliases", "tags", "user-tags", "ratings", "user-ratings", # misc "artist-rels", "label-rels", "recording-rels", "release-rels", "release-group-rels", "url-rels", "work-rels" ], 'label': [ "releases", # Subqueries "discids", "media", "aliases", "tags", "user-tags", "ratings", "user-ratings", # misc "artist-rels", "label-rels", "recording-rels", "release-rels", "release-group-rels", "url-rels", "work-rels" ], 'recording': [ "artists", "releases", # Subqueries "discids", "media", "artist-credits", "tags", "user-tags", "ratings", "user-ratings", # misc "artist-rels", "label-rels", "recording-rels", "release-rels", "release-group-rels", "url-rels", "work-rels" ], 'release': [ "artists", "labels", "recordings", "release-groups", "media", "artist-credits", "discids", "puids", "echoprints", "isrcs", "artist-rels", "label-rels", "recording-rels", "release-rels", "release-group-rels", "url-rels", "work-rels", "recording-level-rels", "work-level-rels" ], 'release-group': [ "artists", "releases", "discids", "media", "artist-credits", "tags", "user-tags", "ratings", "user-ratings", # misc "artist-rels", "label-rels", "recording-rels", "release-rels", "release-group-rels", "url-rels", "work-rels" ], 'work': [ "artists", # Subqueries "aliases", "tags", "user-tags", "ratings", "user-ratings", # misc "artist-rels", "label-rels", "recording-rels", "release-rels", "release-group-rels", "url-rels", "work-rels" ], 'discid': [ "artists", "labels", "recordings", "release-groups", "media", "artist-credits", "discids", "puids", "echoprints", "isrcs", "artist-rels", "label-rels", "recording-rels", "release-rels", "release-group-rels", "url-rels", "work-rels", "recording-level-rels", "work-level-rels" ], 'echoprint': ["artists", "releases"], 'puid': ["artists", "releases", "puids", "echoprints", "isrcs"], 'isrc': ["artists", "releases", "puids", "echoprints", "isrcs"], 'iswc': ["artists"], 'collection': ['releases'], } VALID_RELEASE_TYPES = [ "nat", "album", "single", "ep", "compilation", "soundtrack", "spokenword", "interview", "audiobook", "live", "remix", "other" ] VALID_RELEASE_STATUSES = ["official", "promotion", "bootleg", "pseudo-release"] VALID_SEARCH_FIELDS = { 'artist': [ 'arid', 'artist', 'sortname', 'type', 'begin', 'end', 'comment', 'alias', 'country', 'gender', 'tag', 'ipi', 'artistaccent' ], 'release-group': [ 'rgid', 'releasegroup', 'reid', 'release', 'arid', 'artist', 'artistname', 'creditname', 'type', 'tag', 'releasegroupaccent', 'releases', 'comment' ], 'release': [ 'reid', 'release', 'arid', 'artist', 'artistname', 'creditname', 'type', 'status', 'tracks', 'tracksmedium', 'discids', 'discidsmedium', 'mediums', 'date', 'asin', 'lang', 'script', 'country', 'date', 'label', 'catno', 'barcode', 'puid', 'comment', 'format', 'releaseaccent', 'rgid' ], 'recording': [ 'rid', 'recording', 'isrc', 'arid', 'artist', 'artistname', 'creditname', 'reid', 'release', 'type', 'status', 'tracks', 'tracksrelease', 'dur', 'qdur', 'tnum', 'position', 'tag', 'comment', 'country', 'date' 'format', 'recordingaccent' ], 'label': [ 'laid', 'label', 'sortname', 'type', 'code', 'country', 'begin', 'end', 'comment', 'alias', 'tag', 'ipi', 'labelaccent' ], 'work': [ 'wid', 'work', 'iswc', 'type', 'arid', 'artist', 'alias', 'tag', 'comment', 'workaccent' ], } # Exceptions. class MusicBrainzError(Exception): """Base class for all exceptions related to MusicBrainz.""" pass class UsageError(MusicBrainzError): """Error related to misuse of the module API.""" pass class InvalidSearchFieldError(UsageError): pass class InvalidIncludeError(UsageError): def __init__(self, msg='Invalid Includes', reason=None): super(InvalidIncludeError, self).__init__(self) self.msg = msg self.reason = reason def __str__(self): return self.msg class InvalidFilterError(UsageError): def __init__(self, msg='Invalid Includes', reason=None): super(InvalidFilterError, self).__init__(self) self.msg = msg self.reason = reason def __str__(self): return self.msg class WebServiceError(MusicBrainzError): """Error related to MusicBrainz API requests.""" def __init__(self, message=None, cause=None): """Pass ``cause`` if this exception was caused by another exception. """ self.message = message self.cause = cause def __str__(self): if self.message: msg = "%s, " % self.message else: msg = "" msg += "caused by: %s" % str(self.cause) return msg class NetworkError(WebServiceError): """Problem communicating with the MB server.""" pass class ResponseError(WebServiceError): """Bad response sent by the MB server.""" pass class AuthenticationError(WebServiceError): """Received a HTTP 401 response while accessing a protected resource.""" pass # Helpers for validating and formatting allowed sets. def _check_includes_impl(includes, valid_includes): for i in includes: if i not in valid_includes: raise InvalidIncludeError("Bad includes", "%s is not a valid include" % i) def _check_includes(entity, inc): _check_includes_impl(inc, VALID_INCLUDES[entity]) def _check_filter(values, valid): for v in values: if v not in valid: raise InvalidFilterError(v) def _check_filter_and_make_params(entity, includes, release_status=[], release_type=[]): """Check that the status or type values are valid. Then, check that the filters can be used with the given includes. Return a params dict that can be passed to _do_mb_query. """ if isinstance(release_status, compat.basestring): release_status = [release_status] if isinstance(release_type, compat.basestring): release_type = [release_type] _check_filter(release_status, VALID_RELEASE_STATUSES) _check_filter(release_type, VALID_RELEASE_TYPES) if release_status and "releases" not in includes: raise InvalidFilterError("Can't have a status with no release include") if release_type and ("release-groups" not in includes and "releases" not in includes and entity != "release-group"): raise InvalidFilterError("Can't have a release type with no " "release-group include") # Build parameters. params = {} if len(release_status): params["status"] = "|".join(release_status) if len(release_type): params["type"] = "|".join(release_type) return params # Global authentication and endpoint details. user = password = "" hostname = "musicbrainz.org" _client = "" _useragent = "" def auth(u, p): """Set the username and password to be used in subsequent queries to the MusicBrainz XML API that require authentication. """ global user, password user = u password = p def set_useragent(app, version, contact=None): """Set the User-Agent to be used for requests to the MusicBrainz webservice. This must be set before requests are made.""" global _useragent, _client if not app or not version: raise ValueError("App and version can not be empty") if contact is not None: _useragent = "%s/%s python-musicbrainz-ngs/%s ( %s )" % (app, version, _version, contact) else: _useragent = "%s/%s python-musicbrainz-ngs/%s" % (app, version, _version) _client = "%s-%s" % (app, version) _log.debug("set user-agent to %s" % _useragent) def set_hostname(new_hostname): """Set the base hostname for MusicBrainz webservice requests. Defaults to 'musicbrainz.org'.""" global hostname hostname = new_hostname # Rate limiting. limit_interval = 1.0 limit_requests = 1 do_rate_limit = True def set_rate_limit(limit_or_interval=1.0, new_requests=1): """Sets the rate limiting behavior of the module. Must be invoked before the first Web service call. If the `limit_or_interval` parameter is set to False then rate limiting will be disabled. If it is a number then only a set number of requests (`new_requests`) will be made per given interval (`limit_or_interval`). """ global limit_interval global limit_requests global do_rate_limit if isinstance(limit_or_interval, bool): do_rate_limit = limit_or_interval else: if limit_or_interval <= 0.0: raise ValueError("limit_or_interval can't be less than 0") if new_requests <= 0: raise ValueError("new_requests can't be less than 0") do_rate_limit = True limit_interval = limit_or_interval limit_requests = new_requests class _rate_limit(object): """A decorator that limits the rate at which the function may be called. The rate is controlled by the `limit_interval` and `limit_requests` global variables. The limiting is thread-safe; only one thread may be in the function at a time (acts like a monitor in this sense). The globals must be set before the first call to the limited function. """ def __init__(self, fun): self.fun = fun self.last_call = 0.0 self.lock = threading.Lock() self.remaining_requests = None # Set on first invocation. def _update_remaining(self): """Update remaining requests based on the elapsed time since they were last calculated. """ # On first invocation, we have the maximum number of requests # available. if self.remaining_requests is None: self.remaining_requests = float(limit_requests) else: since_last_call = time.time() - self.last_call self.remaining_requests += since_last_call * \ (limit_requests / limit_interval) self.remaining_requests = min(self.remaining_requests, float(limit_requests)) self.last_call = time.time() def __call__(self, *args, **kwargs): with self.lock: if do_rate_limit: self._update_remaining() # Delay if necessary. while self.remaining_requests < 0.999: time.sleep((1.0 - self.remaining_requests) * (limit_requests / limit_interval)) self._update_remaining() # Call the original function, "paying" for this call. self.remaining_requests -= 1.0 return self.fun(*args, **kwargs) # From pymb2 class _RedirectPasswordMgr(compat.HTTPPasswordMgr): def __init__(self): self._realms = { } def find_user_password(self, realm, uri): # ignoring the uri parameter intentionally try: return self._realms[realm] except KeyError: return (None, None) def add_password(self, realm, uri, username, password): # ignoring the uri parameter intentionally self._realms[realm] = (username, password) class _DigestAuthHandler(compat.HTTPDigestAuthHandler): def get_authorization (self, req, chal): qop = chal.get ('qop', None) if qop and ',' in qop and 'auth' in qop.split (','): chal['qop'] = 'auth' return compat.HTTPDigestAuthHandler.get_authorization (self, req, chal) class _MusicbrainzHttpRequest(compat.Request): """ A custom request handler that allows DELETE and PUT""" def __init__(self, method, url, data=None): compat.Request.__init__(self, url, data) allowed_m = ["GET", "POST", "DELETE", "PUT"] if method not in allowed_m: raise ValueError("invalid method: %s" % method) self.method = method def get_method(self): return self.method # Core (internal) functions for calling the MB API. def _safe_open(opener, req, body=None, max_retries=8, retry_delay_delta=2.0): """Open an HTTP request with a given URL opener and (optionally) a request body. Transient errors lead to retries. Permanent errors and repeated errors are translated into a small set of handleable exceptions. Returns a file-like object. """ last_exc = None for retry_num in range(max_retries): if retry_num: # Not the first try: delay an increasing amount. _log.debug("retrying after delay (#%i)" % retry_num) time.sleep(retry_num * retry_delay_delta) try: if body: f = opener.open(req, body) else: f = opener.open(req) except compat.HTTPError as exc: if exc.code in (400, 404, 411): # Bad request, not found, etc. raise ResponseError(cause=exc) elif exc.code in (503, 502, 500): # Rate limiting, internal overloading... _log.debug("HTTP error %i" % exc.code) elif exc.code in (401, ): raise AuthenticationError(cause=exc) else: # Other, unknown error. Should handle more cases, but # retrying for now. _log.debug("unknown HTTP error %i" % exc.code) last_exc = exc except compat.BadStatusLine as exc: _log.debug("bad status line") last_exc = exc except compat.HTTPException as exc: _log.debug("miscellaneous HTTP exception: %s" % str(exc)) last_exc = exc except compat.URLError as exc: if isinstance(exc.reason, socket.error): code = exc.reason.errno if code == 104: # "Connection reset by peer." continue raise NetworkError(cause=exc) except socket.error as exc: if exc.errno == 104: continue raise NetworkError(cause=exc) except IOError as exc: raise NetworkError(cause=exc) else: # No exception! Yay! return f # Out of retries! raise NetworkError("retried %i times" % max_retries, last_exc) # Get the XML parsing exceptions to catch. The behavior chnaged with Python 2.7 # and ElementTree 1.3. if hasattr(etree, 'ParseError'): ETREE_EXCEPTIONS = (etree.ParseError, expat.ExpatError) else: ETREE_EXCEPTIONS = (expat.ExpatError) @_rate_limit def _mb_request(path, method='GET', auth_required=False, client_required=False, args=None, data=None, body=None): """Makes a request for the specified `path` (endpoint) on /ws/2 on the globally-specified hostname. Parses the responses and returns the resulting object. `auth_required` and `client_required` control whether exceptions should be raised if the client and username/password are left unspecified, respectively. """ if args is None: args = {} else: args = dict(args) or {} if _useragent == "": raise UsageError("set a proper user-agent with " "set_useragent(\"application name\", \"application version\", \"contact info (preferably URL or email for your application)\")") if client_required: args["client"] = _client # Encode Unicode arguments using UTF-8. for key, value in args.items(): if isinstance(value, compat.unicode): args[key] = value.encode('utf8') # Construct the full URL for the request, including hostname and # query string. url = compat.urlunparse(( 'http', hostname, '/ws/2/%s' % path, '', compat.urlencode(args), '' )) _log.debug("%s request for %s" % (method, url)) # Set up HTTP request handler and URL opener. httpHandler = compat.HTTPHandler(debuglevel=0) handlers = [httpHandler] # Add credentials if required. if auth_required: _log.debug("Auth required for %s" % url) if not user: raise UsageError("authorization required; " "use auth(user, pass) first") passwordMgr = _RedirectPasswordMgr() authHandler = _DigestAuthHandler(passwordMgr) authHandler.add_password("musicbrainz.org", (), user, password) handlers.append(authHandler) opener = compat.build_opener(*handlers) # Make request. req = _MusicbrainzHttpRequest(method, url, data) req.add_header('User-Agent', _useragent) _log.debug("requesting with UA %s" % _useragent) if body: req.add_header('Content-Type', 'application/xml; charset=UTF-8') elif not data and not req.has_header('Content-Length'): # Explicitly indicate zero content length if no request data # will be sent (avoids HTTP 411 error). req.add_header('Content-Length', '0') f = _safe_open(opener, req, body) # Parse the response. try: return mbxml.parse_message(f) except UnicodeError as exc: raise ResponseError(cause=exc) except Exception as exc: if isinstance(exc, ETREE_EXCEPTIONS): raise ResponseError(cause=exc) else: raise def _is_auth_required(entity, includes): """ Some calls require authentication. This returns True if a call does, False otherwise """ if "user-tags" in includes or "user-ratings" in includes: return True elif entity.startswith("collection"): return True else: return False def _do_mb_query(entity, id, includes=[], params={}): """Make a single GET call to the MusicBrainz XML API. `entity` is a string indicated the type of object to be retrieved. The id may be empty, in which case the query is a search. `includes` is a list of strings that must be valid includes for the entity type. `params` is a dictionary of additional parameters for the API call. The response is parsed and returned. """ # Build arguments. if not isinstance(includes, list): includes = [includes] _check_includes(entity, includes) auth_required = _is_auth_required(entity, includes) args = dict(params) if len(includes) > 0: inc = " ".join(includes) args["inc"] = inc # Build the endpoint components. path = '%s/%s' % (entity, id) return _mb_request(path, 'GET', auth_required, args=args) def _do_mb_search(entity, query='', fields={}, limit=None, offset=None, strict=False): """Perform a full-text search on the MusicBrainz search server. `query` is a lucene query string when no fields are set, but is escaped when any fields are given. `fields` is a dictionary of key/value query parameters. They keys in `fields` must be valid for the given entity type. """ # Encode the query terms as a Lucene query string. query_parts = [] if query: clean_query = util._unicode(query) if fields: clean_query = re.sub(r'([+\-&|!(){}\[\]\^"~*?:\\])', r'\\\1', clean_query) if strict: query_parts.append('"%s"' % clean_query) else: query_parts.append(clean_query.lower()) else: query_parts.append(clean_query) for key, value in fields.items(): # Ensure this is a valid search field. if key not in VALID_SEARCH_FIELDS[entity]: raise InvalidSearchFieldError( '%s is not a valid search field for %s' % (key, entity) ) # Escape Lucene's special characters. value = util._unicode(value) value = re.sub(r'([+\-&|!(){}\[\]\^"~*?:\\])', r'\\\1', value) if value: if strict: query_parts.append('%s:"%s"' % (key, value)) else: value = value.lower() # avoid AND / OR query_parts.append('%s:(%s)' % (key, value)) if strict: full_query = ' AND '.join(query_parts).strip() else: full_query = ' '.join(query_parts).strip() if not full_query: raise ValueError('at least one query term is required') # Additional parameters to the search. params = {'query': full_query} if limit: params['limit'] = str(limit) if offset: params['offset'] = str(offset) return _do_mb_query(entity, '', [], params) def _do_mb_delete(path): """Send a DELETE request for the specified object. """ return _mb_request(path, 'DELETE', True, True) def _do_mb_put(path): """Send a PUT request for the specified object. """ return _mb_request(path, 'PUT', True, True) def _do_mb_post(path, body): """Perform a single POST call for an endpoint with a specified request body. """ return _mb_request(path, 'POST', True, True, body=body) # The main interface! # Single entity by ID def get_artist_by_id(id, includes=[], release_status=[], release_type=[]): params = _check_filter_and_make_params("artist", includes, release_status, release_type) return _do_mb_query("artist", id, includes, params) def get_label_by_id(id, includes=[], release_status=[], release_type=[]): params = _check_filter_and_make_params("label", includes, release_status, release_type) return _do_mb_query("label", id, includes, params) def get_recording_by_id(id, includes=[], release_status=[], release_type=[]): params = _check_filter_and_make_params("recording", includes, release_status, release_type) return _do_mb_query("recording", id, includes, params) def get_release_by_id(id, includes=[], release_status=[], release_type=[]): params = _check_filter_and_make_params("release", includes, release_status, release_type) return _do_mb_query("release", id, includes, params) def get_release_group_by_id(id, includes=[], release_status=[], release_type=[]): params = _check_filter_and_make_params("release-group", includes, release_status, release_type) return _do_mb_query("release-group", id, includes, params) def get_work_by_id(id, includes=[]): return _do_mb_query("work", id, includes) # Searching def search_artists(query='', limit=None, offset=None, strict=False, **fields): """Search for artists by a free-form `query` string or any of the following keyword arguments specifying field queries: arid, artist, sortname, type, begin, end, comment, alias, country, gender, tag When `fields` are set, special lucene characters are escaped in the `query`. """ return _do_mb_search('artist', query, fields, limit, offset, strict) def search_labels(query='', limit=None, offset=None, strict=False, **fields): """Search for labels by a free-form `query` string or any of the following keyword arguments specifying field queries: laid, label, sortname, type, code, country, begin, end, comment, alias, tag When `fields` are set, special lucene characters are escaped in the `query`. """ return _do_mb_search('label', query, fields, limit, offset, strict) def search_recordings(query='', limit=None, offset=None, strict=False, **fields): """Search for recordings by a free-form `query` string or any of the following keyword arguments specifying field queries: rid, recording, isrc, arid, artist, artistname, creditname, reid, release, type, status, tracks, tracksrelease, dur, qdur, tnum, position, tag When `fields` are set, special lucene characters are escaped in the `query`. """ return _do_mb_search('recording', query, fields, limit, offset, strict) def search_releases(query='', limit=None, offset=None, strict=False, **fields): """Search for releases by a free-form `query` string or any of the following keyword arguments specifying field queries: reid, release, arid, artist, artistname, creditname, type, status, tracks, tracksmedium, discids, discidsmedium, mediums, date, asin, lang, script, country, date, label, catno, barcode, puid When `fields` are set, special lucene characters are escaped in the `query`. """ return _do_mb_search('release', query, fields, limit, offset, strict) def search_release_groups(query='', limit=None, offset=None, strict=False, **fields): """Search for release groups by a free-form `query` string or any of the following keyword arguments specifying field queries: rgid, releasegroup, reid, release, arid, artist, artistname, creditname, type, tag When `fields` are set, special lucene characters are escaped in the `query`. """ return _do_mb_search('release-group', query, fields, limit, offset, strict) def search_works(query='', limit=None, offset=None, strict=False, **fields): """Search for works by a free-form `query` string or any of the following keyword arguments specifying field queries: wid, work, iswc, type, arid, artist, alias, tag When `fields` are set, special lucene characters are escaped in the `query`. """ return _do_mb_search('work', query, fields, limit, offset, strict) # Lists of entities def get_releases_by_discid(id, includes=[], release_status=[], release_type=[]): params = _check_filter_and_make_params(includes, release_status, release_type=release_type) return _do_mb_query("discid", id, includes, params) def get_recordings_by_echoprint(echoprint, includes=[], release_status=[], release_type=[]): params = _check_filter_and_make_params(includes, release_status, release_type) return _do_mb_query("echoprint", echoprint, includes, params) def get_recordings_by_puid(puid, includes=[], release_status=[], release_type=[]): params = _check_filter_and_make_params(includes, release_status, release_type) return _do_mb_query("puid", puid, includes, params) def get_recordings_by_isrc(isrc, includes=[], release_status=[], release_type=[]): params = _check_filter_and_make_params(includes, release_status, release_type) return _do_mb_query("isrc", isrc, includes, params) def get_works_by_iswc(iswc, includes=[]): return _do_mb_query("iswc", iswc, includes) def _browse_impl(entity, includes, valid_includes, limit, offset, params, release_status=[], release_type=[]): _check_includes_impl(includes, valid_includes) p = {} for k,v in params.items(): if v: p[k] = v if len(p) > 1: raise Exception("Can't have more than one of " + ", ".join(params.keys())) if limit: p["limit"] = limit if offset: p["offset"] = offset filterp = _check_filter_and_make_params(entity, includes, release_status, release_type) p.update(filterp) return _do_mb_query(entity, "", includes, p) # Browse methods # Browse include are a subset of regular get includes, so we check them here # and the test in _do_mb_query will pass anyway. def browse_artists(recording=None, release=None, release_group=None, includes=[], limit=None, offset=None): # optional parameter work? valid_includes = ["aliases", "tags", "ratings", "user-tags", "user-ratings"] params = {"recording": recording, "release": release, "release-group": release_group} return _browse_impl("artist", includes, valid_includes, limit, offset, params) def browse_labels(release=None, includes=[], limit=None, offset=None): valid_includes = ["aliases", "tags", "ratings", "user-tags", "user-ratings"] params = {"release": release} return _browse_impl("label", includes, valid_includes, limit, offset, params) def browse_recordings(artist=None, release=None, includes=[], limit=None, offset=None): valid_includes = ["artist-credits", "tags", "ratings", "user-tags", "user-ratings"] params = {"artist": artist, "release": release} return _browse_impl("recording", includes, valid_includes, limit, offset, params) def browse_releases(artist=None, label=None, recording=None, release_group=None, release_status=[], release_type=[], includes=[], limit=None, offset=None): # track_artist param doesn't work yet valid_includes = ["artist-credits", "labels", "recordings", "release-groups"] params = {"artist": artist, "label": label, "recording": recording, "release-group": release_group} return _browse_impl("release", includes, valid_includes, limit, offset, params, release_status, release_type) def browse_release_groups(artist=None, release=None, release_type=[], includes=[], limit=None, offset=None): valid_includes = ["artist-credits", "tags", "ratings", "user-tags", "user-ratings"] params = {"artist": artist, "release": release} return _browse_impl("release-group", includes, valid_includes, limit, offset, params, [], release_type) # browse_work is defined in the docs but has no browse criteria # Collections def get_collections(): # Missing the count in the reply return _do_mb_query("collection", '') def get_releases_in_collection(collection): return _do_mb_query("collection", "%s/releases" % collection) # Submission methods def submit_barcodes(barcodes): """Submits a set of {release1: barcode1, release2:barcode2} Must call auth(user, pass) first""" query = mbxml.make_barcode_request(barcodes) return _do_mb_post("release", query) def submit_puids(puids): """Submit PUIDs. Must call auth(user, pass) first""" query = mbxml.make_puid_request(puids) return _do_mb_post("recording", query) def submit_echoprints(echoprints): """Submit echoprints. Must call auth(user, pass) first""" query = mbxml.make_echoprint_request(echoprints) return _do_mb_post("recording", query) def submit_isrcs(recordings_isrcs): """Submit ISRCs. Submits a set of {recording-id: [isrc1, isrc2, ...]} Must call auth(user, pass) first""" query = mbxml.make_isrc_request(recordings_isrcs=recordings_isrcs) return _do_mb_post("recording", query) def submit_tags(artist_tags={}, recording_tags={}): """Submit user tags. Artist or recording parameters are of the form: {'entityid': [taglist]} Must call auth(user, pass) first""" query = mbxml.make_tag_request(artist_tags, recording_tags) return _do_mb_post("tag", query) def submit_ratings(artist_ratings={}, recording_ratings={}): """ Submit user ratings. Artist or recording parameters are of the form: {'entityid': rating} Must call auth(user, pass) first""" query = mbxml.make_rating_request(artist_ratings, recording_ratings) return _do_mb_post("rating", query) def add_releases_to_collection(collection, releases=[]): """Add releases to a collection. Collection and releases should be identified by their MBIDs Must call auth(user, pass) first""" # XXX: Maximum URI length of 16kb means we should only allow ~400 releases releaselist = ";".join(releases) _do_mb_put("collection/%s/releases/%s" % (collection, releaselist)) def remove_releases_from_collection(collection, releases=[]): """Remove releases from a collection. Collection and releases should be identified by their MBIDs Must call auth(user, pass) first""" releaselist = ";".join(releases) _do_mb_delete("collection/%s/releases/%s" % (collection, releaselist)) dist/copy/plugins/musicbrainzcovers/musicbrainzngs/PaxHeaders.26361/util.py0000644000175000017500000000012412233027260025637 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.421046942 exaile-3.3.2/plugins/musicbrainzcovers/musicbrainzngs/util.py0000644000000000000000000000237112233027260024602 0ustar00rootroot00000000000000# This file is part of the musicbrainzngs library # Copyright (C) Alastair Porter, Adrian Sampson, and others # This file is distributed under a BSD-2-Clause type license. # See the COPYING file for more information. import sys import locale import xml.etree.ElementTree as ET from . import compat def _unicode(string, encoding=None): """Try to decode byte strings to unicode. This can only be a guess, but this might be better than failing. It is safe to use this on numbers or strings that are already unicode. """ if isinstance(string, compat.unicode): unicode_string = string elif isinstance(string, compat.bytes): # use given encoding, stdin, preferred until something != None is found if encoding is None: encoding = sys.stdin.encoding if encoding is None: encoding = locale.getpreferredencoding() unicode_string = string.decode(encoding, "ignore") else: unicode_string = compat.unicode(string) return unicode_string.replace('\x00', '').strip() def bytes_to_elementtree(_bytes): if compat.is_py3: s = _unicode(_bytes.read(), "utf-8") else: s = _bytes.read() f = compat.StringIO(s) tree = ET.ElementTree(file=f) return tree dist/copy/plugins/PaxHeaders.26361/exfalso0000644000175000017500000000013212233027261017066 xustar000000000000000030 mtime=1382821553.697046951 30 atime=1382821552.785046922 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/exfalso/0000755000000000000000000000000012233027261016104 5ustar00rootroot00000000000000dist/copy/plugins/exfalso/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260021254 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821552.993046928 exaile-3.3.2/plugins/exfalso/__init__.py0000644000000000000000000001406712233027260020224 0ustar00rootroot00000000000000# exaile/exfalso - Exaile plugin to use Ex Falso as tagger # Copyright (C) 2009-2010 Johannes Sasongko # # 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, see . import os import gio, gtk import quodlibet as ql # Modify Quod Libet's print_ function to default to not print anything (output= # None). qlprint = ql.print_ def print_(string_, frm='utf-8', prefix='', output=None, log=None): qlprint(string_, frm, prefix, output, log) import __builtin__ __builtin__.__dict__['print_'] = ql.print_ = print_ class ExFalsoController: def __init__(self, on_changed=None): from quodlibet import const, config from quodlibet.qltk.exfalsowindow import ExFalsoWindow config.init(const.CONFIG) try: self.instance = backend, library, player = ql.init( gtk=False, # Don't initialize GLib/GTK+ stuff. backend='nullbe') self.api_version = 1 except TypeError: library = ql.init() ql.init_backend('nullbe', library.librarian) self.api_version = 2 self.on_changed = on_changed if on_changed: library.connect('changed', self._on_changed) self.window = window = ExFalsoWindow(library) if self.api_version == 2: from quodlibet import widgets widgets.main = window widgets.watcher = library.librarian # Ex Falso doesn't have any shortcut for the directory and file list # widgets, so we hack into them using multiple get_children calls. # Hierarchy: # Window > HPaned > VBox > FileSelector (VPaned) # - ScrolledWindow > DirectoryTree (TreeView) # directory list # - ScrolledWindow > AllTreeView (TreeView) # file list filesel = window.get_child().get_children()[0].get_children()[0] children = filesel.get_children() self.dirlist = children[0].child self.filelist = children[1].child assert isinstance(self.dirlist, gtk.TreeView) assert isinstance(self.filelist, gtk.TreeView) def _on_changed(self, library, items): # We can't directly use the items passed in because Ex Falso converts # all the paths into real paths, removing symlink information; so, we # manually read the selected files from the file list. filelist = self.filelist filesel = filelist.get_selection() model, paths = filesel.get_selected_rows() fpaths = [model[path][0] for path in paths] self.on_changed(fpaths) def select(self, paths): # We are calling a "private" method here, but there's no other way to # make Ex Falso show the confirmation dialog when changing files. cancel = self.window._ExFalsoWindow__pre_selection_changed(None, None, None, None) if cancel: return dirlist = self.dirlist dirsel = dirlist.get_selection() dirsel.unselect_all() filelist = self.filelist filesel = filelist.get_selection() filesel.unselect_all() paths = frozenset(paths) dirs = frozenset(os.path.split(path)[0] for path in paths) map(dirlist.go_to, dirs) treepaths = [row.path for row in filelist.get_model() if row[0] in paths] map(filesel.select_path, treepaths) def main(self): """Runs the mainloop. Do not call if you have your own mainloop.""" ql.main(self.window) def cleanup(self): from quodlibet import config, const if self.api_version == 1: ql.quit(self.instance) config.write(const.CONFIG) elif self.api_version == 2: from quodlibet.util import copool copool.remove_all() config.save(const.CONFIG) config.quit() import xl.event, xl.trax from xlgui import guiutil class ExFalsoPlugin: def __init__(self, exaile): self.exaile = exaile self.exfalso = None def destroy(self, *a): if self.exfalso: self.exfalso.cleanup() self.exfalso = None def run(self, tracks): ef = self.exfalso if ef is None: ef = self.exfalso = ExFalsoController(self.on_changed) ef.window.connect('destroy', self.destroy) ef.window.present() ef.select(track.get_local_path() for track in tracks) def on_changed(self, paths): get_track = self.exaile.collection.get_track_by_loc for path in paths: uri = gio.File(path).get_uri() track = get_track(uri) or xl.trax.Track(uri) track.read_tags() xl.event.log_event('track_tags_changed', track, None) PLUGIN = None # Hook to replace Exaile's original Properties dialog from xlgui import properties as xlprops xl_properties_dialog = xlprops.TrackPropertiesDialog def properties_dialog(parent, tracks, current_position=0, with_extras=False): if with_extras: PLUGIN.run((tracks[current_position],)) else: PLUGIN.run(tracks) def enable(exaile): if exaile.loading: xl.event.add_callback(_enable, 'exaile_loaded') else: _enable(None, exaile, None) @guiutil.idle_add() def _enable(event, exaile, nothing): global PLUGIN PLUGIN = ExFalsoPlugin(exaile) xlprops.TrackPropertiesDialog = properties_dialog def disable(exaile): global PLUGIN PLUGIN.destroy() PLUGIN = None xlprops.TrackPropertiesDialog = xl_properties_dialog if __name__ == "__main__": ef = ExFalsoController() ef.main() ef.cleanup() # vi: et sts=4 sw=4 tw=80 dist/copy/plugins/exfalso/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260020540 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/exfalso/PLUGININFO0000644000000000000000000000031412233027260017476 0ustar00rootroot00000000000000Version='0.3.0' Authors=['Johannes Sasongko '] Name=_('Ex Falso tag editor') Description=_('Integrates the Ex Falso tag editor with Exaile.\nDepends: Ex Falso.') Category=_('Tagging') dist/copy/plugins/PaxHeaders.26361/gnomemmkeys0000644000175000017500000000013212233027261017760 xustar000000000000000030 mtime=1382821553.697046951 30 atime=1382821552.785046922 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/gnomemmkeys/0000755000000000000000000000000012233027261016776 5ustar00rootroot00000000000000dist/copy/plugins/gnomemmkeys/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260022146 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.509046945 exaile-3.3.2/plugins/gnomemmkeys/__init__.py0000644000000000000000000000734312233027260021115 0ustar00rootroot00000000000000# Copyright (C) 2009-2010 Aren Olson # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. GNOME_MMKEYS = None from xl import common, event, player import dbus, logging, traceback logger = logging.getLogger(__name__) def callback(key): if key in ('Play', 'PlayPause', 'Pause'): if player.PLAYER.is_playing() or player.PLAYER.is_paused(): player.PLAYER.toggle_pause() elif key != "Pause": player.QUEUE.play() else: pass elif key == 'Stop': player.PLAYER.stop() elif key == 'Previous': player.QUEUE.prev() elif key == 'Next': player.QUEUE.next() def enable(exaile): if exaile.loading: event.add_callback(_enable, "player_loaded") else: _enable(None, player.PLAYER, None) def _enable(eventname, player, nothing): global GNOME_MMKEYS def on_gnome_mmkey(app, key): if app == "Exaile": callback(key) try: bus = dbus.SessionBus() try: # Mate desktop obj = bus.get_object('org.mate.SettingsDaemon', '/org/mate/SettingsDaemon/MediaKeys') GNOME_MMKEYS = dbus.Interface(obj, 'org.mate.SettingsDaemon.MediaKeys') except dbus.DBusException: try: # New method (for Gnome 2.22.x) obj = bus.get_object('org.gnome.SettingsDaemon', '/org/gnome/SettingsDaemon/MediaKeys') GNOME_MMKEYS = dbus.Interface(obj, 'org.gnome.SettingsDaemon.MediaKeys') except dbus.DBusException: try: # Old method obj = bus.get_object('org.gnome.SettingsDaemon', '/org/gnome/SettingsDaemon') GNOME_MMKEYS = dbus.Interface(obj, 'org.gnome.SettingsDaemon') except dbus.DBusException: # Make sure we bail out completely here raise except dbus.DBusException: disable(None) # Disconnect if we failed to load completely GNOME_MMKEYS = None common.log_exception(logger) return False else: GNOME_MMKEYS.GrabMediaPlayerKeys("Exaile", 0) GNOME_MMKEYS.connect_to_signal('MediaPlayerKeyPressed', on_gnome_mmkey) return True def disable(exaile): global GNOME_MMKEYS if GNOME_MMKEYS: try: GNOME_MMKEYS.ReleaseMediaPlayerKeys("Exaile") except: common.log_exception() GNOME_MMKEYS = None return False GNOME_MMKEYS = None return True dist/copy/plugins/gnomemmkeys/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260021432 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/gnomemmkeys/PLUGININFO0000644000000000000000000000035412233027260020374 0ustar00rootroot00000000000000Version='0.1.0' Authors=['Aren Olson '] Name=_('GNOME Multimedia Keys') Description=_('Adds support for controlling Exaile via GNOME\'s multimedia key system. Compatible with GNOME >= 2.20.x') Category=_('Hotkeys') dist/copy/plugins/PaxHeaders.26361/mainmenubutton0000644000175000017500000000013212233027261020472 xustar000000000000000030 mtime=1382821553.513046945 30 atime=1382821552.785046922 30 ctime=1382821553.513046945 exaile-3.3.2/plugins/mainmenubutton/0000755000000000000000000000000012233027261017510 5ustar00rootroot00000000000000dist/copy/plugins/mainmenubutton/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260022660 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.513046945 exaile-3.3.2/plugins/mainmenubutton/__init__.py0000644000000000000000000001012712233027260021621 0ustar00rootroot00000000000000# Copyright (C) 2012 Mathias Brodala # # 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, see . import gtk from xl.nls import gettext as _ from xl import event from xlgui import main MAINMENUBUTTON = None def enable(exaile): """ Enables the plugin """ try: gtk.Notebook.get_action_widget except AttributeError: raise NotImplementedError(_('This plugin needs at least ' 'PyGTK 2.22 and GTK 2.20.')) else: if exaile.loading: event.add_callback(on_gui_loaded, 'gui_loaded') else: on_gui_loaded() def disable(exaile): """ Disables the plugin """ if MAINMENUBUTTON: MAINMENUBUTTON.destroy() def on_gui_loaded(*args): """ Creates the main menu button which takes care of the rest """ global MAINMENUBUTTON MAINMENUBUTTON = MainMenuButton() class MainMenuButton(gtk.ToggleButton): """ """ __gsignals__ = {} def __init__(self): """ Adds the button to the main window and moves the main menu items """ gtk.Button.__init__(self) self.set_image(gtk.image_new_from_icon_name('exaile', gtk.ICON_SIZE_BUTTON)) self.set_tooltip_text(_('Main Menu')) self.set_focus_on_click(True) self.set_relief(gtk.RELIEF_NONE) builder = main.mainwindow().builder # Insert button at the top of the panel notebook self.panel_notebook = builder.get_object('panel_notebook') self.panel_notebook.set_action_widget(self, gtk.PACK_START) # Move menu items of the main menu to the internal menu self.mainmenu = builder.get_object('mainmenu') self.menu = gtk.Menu() self.menu.attach_to_widget(self, lambda *args: False) self.menu.connect('map', self.on_menu_map) self.menu.connect('deactivate', self.on_menu_deactivate) for menuitem in self.mainmenu: menuitem.reparent(self.menu) self.menu.show_all() self.show_all() def destroy(self): """ Moves the main menu items back and removes the button from the main window """ for menuitem in self.menu: menuitem.reparent(self.mainmenu) self.unparent() gtk.Button.destroy(self) def get_menu_position(self, menu): """ Positions the menu at the right of the button """ # Origin includes window position and decorations x, y = self.props.window.get_origin() allocation = self.get_allocation() return ( x + allocation.x + allocation.width, y + allocation.y, False ) def do_button_press_event(self, e): """ Pops out the menu upon click """ if e.button == 1: self.menu.popup(None, None, self.get_menu_position, e.button, e.time) return True def do_popup_menu(self): """ Pops out the menu upon pressing the Menu or Shift+F10 keys """ self.menu.popup(None, None, self.get_menu_position, 0, gtk.get_current_event_time()) return True def on_menu_map(self, widget): """ Indicates button activation upon menu popup """ self.set_active(True) def on_menu_deactivate(self, menu): """ Removes button activation upno menu popdown """ self.set_active(False) dist/copy/plugins/mainmenubutton/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260022144 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821552.993046928 exaile-3.3.2/plugins/mainmenubutton/PLUGININFO0000644000000000000000000000033112233027260021101 0ustar00rootroot00000000000000Version='1.0.0' Authors=['Mathias Brodala '] Name=_('Main Menu Button') Description=_('Moves the main menu into a button on top of the panels.\nDepends: PyGTK >= 2.22, GTK >= 2.20') Category=_('GUI') dist/copy/plugins/PaxHeaders.26361/lastfmdynamic0000644000175000017500000000013212233027261020260 xustar000000000000000030 mtime=1382821553.697046951 30 atime=1382821552.785046922 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/lastfmdynamic/0000755000000000000000000000000012233027261017276 5ustar00rootroot00000000000000dist/copy/plugins/lastfmdynamic/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260022446 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.509046945 exaile-3.3.2/plugins/lastfmdynamic/__init__.py0000644000000000000000000000465612233027260021421 0ustar00rootroot00000000000000# Copyright (C) 2009-2010 Aren Olson # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. try: import xml.etree.cElementTree as ETree except: import xml.etree.ElementTree as ETree import urllib from xl.dynamic import DynamicSource from xl import providers, common LFMS = None # Last.fm API Key for Exaile # if you reuse this code in a different application, please # register your own key with last.fm API_KEY = '3599c79a97fd61ce518b75922688bc38' def enable(exaile): global LFMS LFMS = LastfmSource() providers.register("dynamic_playlists", LFMS) def disable(exaile): global LFMS providers.unregister("dynamic_playlists", LFMS) LFMS = None class LastfmSource(DynamicSource): name='lastfm' def __init__(self): DynamicSource.__init__(self) def get_results(self, artist): ar = urllib.quote_plus(artist.encode('utf-8')) url = 'http://ws.audioscrobbler.com/2.0/?method=artist.getsimilar&artist=%s&api_key='+API_KEY try: f = urllib.urlopen(url%ar).read() except IOError: common.log_exception() return [] retlist = [] xml = ETree.fromstring(f) for e in xml.getiterator('artist'): retlist.append((float(e.find('match').text), e.find('name').text)) return retlist dist/copy/plugins/lastfmdynamic/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260021732 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/lastfmdynamic/PLUGININFO0000644000000000000000000000027412233027260020675 0ustar00rootroot00000000000000Version='0.0.3' Authors=['Aren Olson '] Name=_('Last.fm Dynamic Playlists') Description=_('The Last.fm backend for dynamic playlists') Category=_('Dynamic Playlists') dist/copy/plugins/PaxHeaders.26361/lyricsviewer0000644000175000017500000000013212233027261020154 xustar000000000000000030 mtime=1382821553.697046951 30 atime=1382821552.785046922 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/lyricsviewer/0000755000000000000000000000000012233027261017172 5ustar00rootroot00000000000000dist/copy/plugins/lyricsviewer/PaxHeaders.26361/lyricsviewer.ui0000644000175000017500000000012412233027260023317 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.265046937 exaile-3.3.2/plugins/lyricsviewer/lyricsviewer.ui0000644000000000000000000001402112233027260022255 0ustar00rootroot00000000000000 all Lyrics 100 100 True 3 vertical 3 True 34 34 True True True True Refresh Lyrics True gtk-refresh False False end 0 False False 0 1 True True False word center 3 3 False TrackTextBuffer False False False 1 True True automatic automatic 1 True True False word center 3 3 False LyricsTextBuffer False 5 2 1 True True False word center 3 5 False LyricsSourceTextBuffer False False False 3 url_tag False single LyricsSourceTagTable dist/copy/plugins/lyricsviewer/PaxHeaders.26361/images0000644000175000017500000000013212233027261021421 xustar000000000000000030 mtime=1382821553.265046937 30 atime=1382821552.785046922 30 ctime=1382821553.265046937 exaile-3.3.2/plugins/lyricsviewer/images/0000755000000000000000000000000012233027261020437 5ustar00rootroot00000000000000dist/copy/plugins/lyricsviewer/images/PaxHeaders.26361/loading.gif0000644000175000017500000000012412233027260023602 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.265046937 exaile-3.3.2/plugins/lyricsviewer/images/loading.gif0000644000000000000000000000124112233027260022540 0ustar00rootroot00000000000000GIF89aBBBbbb! NETSCAPE2.0!Created with ajaxload.info! ,30Ikc:Nf E1º.`q-[9ݦ9 JkH! ,4N!  DqBQT`1 `LE[|ua C%$*! ,62#+AȐ̔V/cNIBap ̳ƨ+Y2d! ,3b%+2V_ ! 1DaFbR]=08,Ȥr9L! ,2r'+JdL &v`\bThYB)@<&,ȤR! ,3 9tڞ0!.BW1  sa50 m)J! ,2 ٜU]qp`a4AF0` @1Α! ,20IeBԜ) q10ʰPaVڥ ub[;dist/copy/plugins/lyricsviewer/PaxHeaders.26361/lyricsviewer_prefs.ui0000644000175000017500000000012412233027260024516 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.417046942 exaile-3.3.2/plugins/lyricsviewer/lyricsviewer_prefs.ui0000644000000000000000000000651512233027260023465 0ustar00rootroot00000000000000 False True False 6 True False 6 True False 0 Lyrics font: False True 0 False True True True False False True 1 False True True True True Reset to the system font False True False gtk-revert-to-saved False True 2 False True 0 dist/copy/plugins/lyricsviewer/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260022342 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.513046945 exaile-3.3.2/plugins/lyricsviewer/__init__.py0000644000000000000000000003470312233027260021311 0ustar00rootroot00000000000000# Copyright (C) 2009-2010 Aren Olson # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import gtk import glib import pango import os import webbrowser from xl.nls import gettext as _ from xl import ( common, event, lyrics, player, providers, settings ) from xlgui import guiutil import lyricsviewerprefs LYRICSPANEL = None CURPATH = os.path.realpath(__file__) BASEDIR = os.path.dirname(CURPATH) + os.path.sep IMAGEDIR = os.path.join(BASEDIR, "images") def enable(exaile): if exaile.loading: event.add_callback(_enable, 'exaile_loaded') else: _enable(None, exaile, None) def _enable(o1, exaile, o2): global LYRICSPANEL global LYRICSVIEWER LYRICSVIEWER = LyricsViewer(exaile) LYRICSPANEL = LYRICSVIEWER.get_panel() exaile.gui.add_panel(LYRICSPANEL, _('Lyrics')) def disable(exaile): global LYRICSPANEL global LYRICSVIEWER LYRICSVIEWER.remove_callbacks() exaile.gui.remove_panel(LYRICSPANEL) LYRICSVIEWER = None LYRICSPANEL = None def get_preferences_pane(): return lyricsviewerprefs class LyricsViewer(object): loading_image = 'loading.gif' ui = 'lyricsviewer.ui' def __init__(self, exaile): self.exaile = exaile self.notebook = exaile.gui.panel_notebook self.source_url = "" self.lyrics_found = [] self._initialize_widgets() self._lyrics_id = 0 event.add_callback(self.playback_cb, 'playback_track_start') event.add_callback(self.on_track_tags_changed, 'track_tags_changed') event.add_callback(self.end_cb, 'playback_player_end') event.add_callback(self.search_method_added_cb, 'lyrics_search_method_added') event.add_callback(self.on_option_set, 'plugin_lyricsviewer_option_set') self.style_handler = self.notebook.connect('style-set', self.set_style) self.update_lyrics() def _initialize_widgets(self): builder = gtk.Builder() builder.add_from_file(os.path.join(BASEDIR, self.ui)) builder.connect_signals({ 'on_RefreshButton_clicked' : self.on_refresh_button_clicked, 'on_LyricsSourceText_motion_notify_event' : self.on_lst_motion_event, 'on_UrlTag_event' : self.on_url_tag_event }) self.lyrics_panel = builder.get_object('LyricsPanel') self.lyrics_top_box = builder.get_object('LyricsTopBox') self.lyrics_methods_combo = LyricsMethodsComboBox(self.exaile) self.lyrics_top_box.pack_start( self.lyrics_methods_combo, True, True, 0) self.lyrics_methods_combo.connect('changed', self.on_combo_active_changed) self.lyrics_methods_combo.show() self.refresh_button = builder.get_object('RefreshButton') self.refresh_button_image = builder.get_object('RefreshLyrics') self.loading_animation = gtk.gdk.PixbufAnimation( os.path.join(IMAGEDIR, self.loading_image)) #track name title text self.track_text = builder.get_object('TrackText') self.track_text.modify_font(pango.FontDescription("Bold")) self.track_text_buffer = builder.get_object('TrackTextBuffer') #trackname end #the textview which cointains the lyrics self.lyrics_text = builder.get_object('LyricsText') self.lyrics_text_buffer = builder.get_object('LyricsTextBuffer') self.lyrics_text.modify_font(pango.FontDescription( settings.get_option('plugin/lyricsviewer/lyrics_font'))) #end lyrictextview #text url and source self.lyrics_source_text = builder.get_object('LyricsSourceText') self.lyrics_source_text.modify_font( pango.FontDescription("Bold Italic")) self.lyrics_source_text_buffer = builder.get_object( 'LyricsSourceTextBuffer') #the tag to create a hyperlink in a textbuffer lyrics_source_tag_table = builder.get_object('LyricsSourceTagTable') self.url_tag = builder.get_object('UrlTag') lyrics_source_tag_table.add(self.url_tag) #end text url and source self.set_style(self.notebook) #end initialize_widgets def on_option_set(self, event, settings, option): if option == 'plugin/lyricsviewer/lyrics_font': self.lyrics_text.modify_font(pango.FontDescription( settings.get_option(option))) def remove_callbacks(self): event.remove_callback(self.playback_cb, 'playback_track_start') event.remove_callback(self.on_track_tags_changed, 'track_tags_changed') event.remove_callback(self.end_cb, 'playback_player_end') event.remove_callback(self.search_method_added_cb, 'lyrics_search_method_added') event.remove_callback(self.on_option_set, 'plugin_lyricsviewer_option_set') self.notebook.disconnect(self.style_handler) def search_method_added_cb(self, eventtype, lyrics, provider): self.update_lyrics() def on_track_tags_changed(self, eventtype, track, tag): if player.PLAYER.current == track and tag in ["artist", "title"]: self.update_lyrics() def playback_cb(self, eventtype, player, data): self.update_lyrics() def end_cb(self, eventtype, player, data): self.update_lyrics() @guiutil.idle_add() def on_lst_motion_event(self, textview, event): """ Catches when the mouse moves on the TextView lyrics_source_text If the source url exists changes tooltip and the mouse cursor depending on its position. """ tag = None window = textview.get_window(gtk.TEXT_WINDOW_TEXT) cursor_type = window.get_cursor().type.value_name if self.source_url != "": x, y, mod = window.get_pointer() x, y = textview.window_to_buffer_coords(gtk.TEXT_WINDOW_TEXT, x, y) tag = textview.get_iter_at_location(x, y).get_tags() tooltip_text = textview.get_tooltip_text() if (cursor_type == "GDK_XTERM" or self.source_url != tooltip_text) \ and tag: #url_tag affected by the motion event window.set_cursor(gtk.gdk.Cursor(gtk.gdk.HAND2)) textview.set_tooltip_text(self.source_url) return if cursor_type == "GDK_HAND2" and not tag: #url_tag not affected by the motion event #restore default state window.set_cursor(gtk.gdk.Cursor(gtk.gdk.XTERM)) self.lyrics_source_text.set_tooltip_text(None) def on_url_tag_event(self, tag, widget, event, iter): """ Catches when the user clicks the url_tag . Opens a new page (or tab) in the preferred browser. """ if event.type == gtk.gdk.BUTTON_RELEASE: self.open_url(self.source_url) @common.threaded def open_url(self, url): webbrowser.open_new_tab(url) def on_refresh_button_clicked(self, button): self.update_lyrics(refresh = True) def on_combo_active_changed(self, combobox): """ Catches when the user selects an item of the combo. Calls the update_lyrics_text if lyrics are cached. """ if self.lyrics_found: self.update_lyrics_text(self._lyrics_id) def update_lyrics(self, refresh = False): def do_update(refresh): self.track_text_buffer.set_text("") self.lyrics_text_buffer.set_text("") self.lyrics_source_text_buffer.set_text("") self.lyrics_found = [] if player.PLAYER.current: self.set_top_box_widgets(False) self.get_lyrics(player.PLAYER.current, self._lyrics_id, refresh) else: self.lyrics_text_buffer.set_text(_('Not playing.')) self.set_top_box_widgets(False, True) return False if self._lyrics_id != 0: glib.source_remove(self._lyrics_id) self._lyrics_id = glib.idle_add(do_update, refresh) @common.threaded def get_lyrics(self, track, lyrics_id, refresh = False): lyrics_found = [] try: try: text_track = (track.get_tag_raw('artist')[0] + \ " - " + track.get_tag_raw('title')[0]) except Exception: raise lyrics.LyricsNotFoundException self.track_text_buffer.set_text(text_track) lyrics_found = lyrics.MANAGER.find_all_lyrics(track, refresh) except lyrics.LyricsNotFoundException: lyrics_found = [] return finally: if self._lyrics_id == lyrics_id: self.lyrics_found = lyrics_found self.update_lyrics_text(lyrics_id) self.set_top_box_widgets(True) def update_lyrics_text(self, lyrics_id): """ Updates the lyrics text view, showing the lyrics from the selected lyrics search method :param lyrics_id: id of the lyrics found """ lyrics = _("No lyrics found.") source = "" url = "" if self.lyrics_found: (index, selected_method) = self.lyrics_methods_combo.\ get_active_item() for (name, lyr, sou, ur) in self.lyrics_found: if name == selected_method or index == 0: lyrics, source, url = lyr, sou, ur break if self._lyrics_id == lyrics_id: glib.idle_add(self.lyrics_text_buffer.set_text, lyrics) self.update_source_text(source, url) @guiutil.idle_add() def update_source_text(self, source, url): """ Sets the url tag in the source text buffer to the value of the source :param source: the name to display as url tag :param url: the url string of the source """ self.source_url = "" if url != "": self.lyrics_source_text_buffer.set_text(_("Go to: ")) iter = self.lyrics_source_text_buffer.get_end_iter() self.lyrics_source_text_buffer.insert_with_tags( iter, source, self.url_tag) self.source_url = url else: self.lyrics_source_text_buffer.set_text("") @guiutil.idle_add() def set_top_box_widgets(self, state, init = False): if state or init: self.refresh_button_image.set_from_icon_name( 'view-refresh', gtk.ICON_SIZE_BUTTON) else: self.refresh_button_image.set_from_animation( self.loading_animation) self.refresh_button.set_sensitive(state) self.lyrics_methods_combo.set_sensitive(state) def set_style(self, widget, oldstyle = None): """ Sets lyricsviewer style according to the widget param passed """ states = [gtk.STATE_NORMAL, gtk.STATE_ACTIVE, gtk.STATE_SELECTED] widget_style = widget.get_style() bg = widget_style.bg fg = widget_style.fg for state, rstate in zip(states[::-1], states): self.modify_textview_look(self.lyrics_text, state, bg[state].to_string(), fg[state].to_string()) for textview in (self.lyrics_source_text, self.track_text): self.modify_textview_look(textview, state, bg[rstate].to_string(), fg[rstate].to_string()) @guiutil.idle_add() def modify_textview_look(self, textview, state, base_color, text_color): textview.modify_base(state, gtk.gdk.color_parse(base_color)) textview.modify_text(state, gtk.gdk.color_parse(text_color)) def get_panel(self): self.lyrics_panel.unparent() return(self.lyrics_panel) class LyricsMethodsComboBox(gtk.ComboBox, providers.ProviderHandler): """ An extended gtk.ComboBox class. Shows lyrics methods search registered """ def __init__(self, exaile): gtk.ComboBox.__init__(self) providers.ProviderHandler.__init__(self, 'lyrics') liststore = gtk.ListStore(str) self.set_model(liststore) cell = gtk.CellRendererText() self.pack_start(cell, True) self.add_attribute(cell, 'text', 0) self.model = self.get_model() # Default value, any registered lyrics provider self.append_text(_("Any")) for provider in self.get_providers(): self.append_text(provider.display_name) self.set_active(0) def remove_item(self, name): index = self.search_item(name) if index: glib.idle_add(self.remove_text, index) return True return False def append_item(self, name): if not self.search_item(name): glib.idle_add(self.append_text, name) return True return False def search_item(self, name): index = 0 for item in self.model: if item[0] == name: return index index += 1 return False def get_active_item(self): active = self.get_active() if active >= 0: return (active, self.model[active][0]) else: return (None, None) def on_provider_added(self, provider): self.append_item(provider.display_name) def on_provider_removed(self, provider): self.remove_item(provider.display_name) dist/copy/plugins/lyricsviewer/PaxHeaders.26361/lyricsviewerprefs.py0000644000175000017500000000012412233027260024372 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.565046947 exaile-3.3.2/plugins/lyricsviewer/lyricsviewerprefs.py0000644000000000000000000000257512233027260023343 0ustar00rootroot00000000000000# 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 1, 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 xlgui.preferences import widgets from xl import xdg from xl.nls import gettext as _ import os import gtk name = _('Lyrics Viewer') basedir = os.path.dirname(os.path.realpath(__file__)) ui = os.path.join(basedir, 'lyricsviewer_prefs.ui') def _get_system_default_font(): return gtk.widget_get_default_style().font_desc.to_string() class LyricsFontPreference(widgets.FontButtonPreference): default = _get_system_default_font() name = 'plugin/lyricsviewer/lyrics_font' class LyricsFontResetButtonPreference(widgets.FontResetButtonPreference): default = _get_system_default_font() name = 'plugin/lyricsviewer/reset_button' condition_preference_name = 'plugin/lyricsviewer/lyrics_font' dist/copy/plugins/lyricsviewer/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260021626 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/lyricsviewer/PLUGININFO0000644000000000000000000000027612233027260020573 0ustar00rootroot00000000000000Version='0.3.0' Authors=['Aren Olson '] Name=_('Lyrics Viewer') Description=_('Adds a side tab displaying lyrics for the currently playing track.') Category=_('Lyrics') dist/copy/plugins/PaxHeaders.26361/multialarmclock0000644000175000017500000000013212233027261020610 xustar000000000000000030 mtime=1382821553.697046951 30 atime=1382821552.785046922 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/multialarmclock/0000755000000000000000000000000012233027261017626 5ustar00rootroot00000000000000dist/copy/plugins/multialarmclock/PaxHeaders.26361/icons0000644000175000017500000000013212233027261021723 xustar000000000000000030 mtime=1382821553.165046934 30 atime=1382821552.789046922 30 ctime=1382821553.165046934 exaile-3.3.2/plugins/multialarmclock/icons/0000755000000000000000000000000012233027261020741 5ustar00rootroot00000000000000dist/copy/plugins/multialarmclock/icons/PaxHeaders.26361/clock32.png0000644000175000017500000000012412233027260023746 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.165046934 exaile-3.3.2/plugins/multialarmclock/icons/clock32.png0000644000000000000000000000551712233027260022716 0ustar00rootroot00000000000000PNG  IHDR szz pHYs  gAMA|Q cHRMz%u0`:o_F IDATxėoUWv?{}Gll1P6'<$$c)"TJ^6UU[M'IժTi( 3%͈I2@G!ā@p !~}s^\C/-t]w~ˍ9 J9X JR䔋 HR.3ee+AEiFxc e VXkq_ ⌎z88$" ^ |ٮ"5(Q ]P5b#Q(X[KROOwm}+V544)e< #(vgZ\)VDpXAkBJĂ\Xzέׯh䋯S]tH/Ǎ)[Ÿ g{{ھc#hہ~oȦMhHb)0MPB%CD'N-Zll-5kP. QEDc v+/ygyD"P.[`tt/bk3\б:).]<3ttaRhLsM)SM>[r#ܻ1mhfU껕kL+\_<N:PPTtXlM$m###ŋQ׆(yÐǬ_7~K})}Y::H\RX q\.W7.@\Uՠ4(HMJͫogɩ_`ahBP*޼)7-ӧɝow?J( ?4`~qެk&$맧UC:e<A)HZ'\|AVI`MZsazGDpX,f N\_᩠ B2m\P`L@.)ar7Yi#h+$ Qgh!)0F  LRT$Ӻb)bk6yu{}c')iP(IX)~{Yr *E ,!gΟ"΢'RIeo!lٲщ҅ -yP.ٻw/<===e\q.Zk\X%X|嗴S,}ߗ' _eKG)zS) 1O>ZD㢬pƎ\ev.eRcK:q u٨\.iGGGpFGLD8kzq/>nRredd$dɒ&K;0)+^|{u:!*8BZ6!Z $*D/h=.?Zf;抭%m @zmێ TIӼ ͤp7sq(w|grrT*źudddtOV\ӵo֢v~?_Br9߶M[# ϟcQ'k>SosV>!y??C?YuKAk@D0h;ޡ+Wnhllt.~,.4LJ5`j*M1?k:c=K^cժU 7#sR}\]7) ?ygwK%6?lTYSW rܚ}T*EkB:::IWgGЪ}o}7^<><><### Alarm Clock Stuph ###><><><### class Alarm: ''' Class for individual alarms. ''' def __init__(self, time="09:00", days=None, name="New Alarm", active=True, dict={}): self.active = active self.time = time self.name = name if days is None: self.days = [True]*7 else: self.days = days # For setting attributes by dictionary self.__dict__.update(dict) def on(self): self.active = True def off(self): self.active = False def toggle(self): if self.active: self.off() else: self.on() class AlarmClock: ''' Class that handles the TreeView interaction and keeps track of alarms. ''' def __init__(self, exaile): self.RANG = {} # Keep track of alarms that have gone off self.exaile = exaile # self.view_window = None # self.view = None # Create Model self.model = gtk.ListStore(bool, str, str, object, str) # Load any saved alarms self.load_list() def _create_view(self): '''Create treeview to display model''' # Create View view = gtk.TreeView() view.set_model(self.model) # setup view cr = gtk.CellRendererToggle() cr.connect('toggled', self.enable_cb) col = gtk.TreeViewColumn('Enabled', cr, active=0) view.append_column(col) cr = gtk.CellRendererText() cr.connect('edited', self.text_edited, 1) cr.set_property('editable', True) col = gtk.TreeViewColumn('Name', cr, text=1) view.append_column(col) cr = gtk.CellRendererText() cr.connect('edited', self.text_edited, 2) cr.set_property('editable', True) col = gtk.TreeViewColumn('Time', cr, text=2) view.append_column(col) # custom CellRenderer for Days Popup cr = CellRendererDays() cr.connect('days-changed', self.days_changed) cr.set_property('editable', True) col = gtk.TreeViewColumn('Days', cr, days=3, text=4) view.append_column(col) return view def enable_cb(self, cell, path): '''Callback for toggling an alarm on/off''' active = self.model[path][0] self.model[path][0] = not active logger.debug('Alarm {0} {1}abled.'.format(self.model[path][1], 'dis' if active else 'en')) # save change self.save_list() def init_ui(self, builder): '''Called by exaile to initialize prefs pane. Set up pefs UI''' logger.debug('init_ui() called.') # if self.view_window is not None: # already setup # return # grab widgets view_window = builder.get_object('alarm_scrolledwindow') add_button = builder.get_object('add_button') del_button = builder.get_object('remove_button') # when a plugin is disabled and re-enabled, the preferences pane is not re-created until the prefs dialog is closed # so if we recycle our class and create a new one, we have to replace the old TreeView with our new one. # NOTE: reloading the plugin from prefs page (DEBUG MODE) breaks this anyway child = view_window.get_child() view = self._create_view() if child is not None: logger.debug('stale treeview found, replacing...') guiutil.gtk_widget_replace(child, view) else: view_window.add(view) # signals add_button.connect('clicked', self.add_button) del_button.connect('clicked', self.delete_button, view.get_selection()) def days_changed(self, cr, path, days): '''Callback for change of selected days for selected alarm''' # update model self.model[path][3] = days # update display days_str = ['Su','M','Tu','W','Th','F','Sa'] self.model[path][4] = ','.join( [ days_str[i] for i in range(0,7) if days[i] ] ) # save changes self.save_list() def text_edited(self, cr, path, new_text, idx): '''Callback for edit of text columns (name and time)''' old_text = self.model[path][idx] if old_text == new_text: return # No change if idx == 1: # Name edit self.model[path][1] = new_text # save change self.save_list() elif idx == 2: # Time edit # validate try: t = time.strptime(new_text, '%H:%M') new_text = time.strftime('%H:%M', t) # ensure consistent 0-padding except ValueError: logger.warning('Invalid time format, use: HH:MM (24-hour)') return # update self.model[path][2] = new_text # save change self.save_list() def add_alarm(self, alarm): '''Add an alarm to the model''' # update display days_str = ['Su','M','Tu','W','Th','F','Sa'] day_disp = ','.join( [ days_str[i] for i in range(0,7) if alarm.days[i] ] ) self.model.append([alarm.active, alarm.name, alarm.time, alarm.days, day_disp]) # save list changes - NO, called by loader # self.save_list() def add_button(self, widget): '''Callback for clicking add button''' # generate unique name names = [ row[1] for row in self.model ] base = 'Alarm' name = base i = 0 while name in names: i = i+1 name = base + ' {0}'.format(i) # add the new alarm alarm = Alarm(name=name) self.add_alarm(alarm) # save list changes self.save_list() def delete_button(self, widget, selection): '''Callback for clicking the delete button''' # get selected row model, tree_iter = selection.get_selected() if tree_iter is not None: model.remove(tree_iter) # save list changes self.save_list() else: logger.info('No alarm selected for removal.') def load_list(self): '''Load alarms from file''' logger.debug('load_list() called.') path = os.path.join(xdg.get_data_dirs()[0],'alarmlist.dat') try: # Load Alarm List from file. with open(path,'rb') as f: raw = f.read() try: alist = _read(raw) assert isinstance(alist, list) # should be list of dicts (new format) except: try: # try to import old format for line in raw.strip().split('\n'): a = Alarm(dict=eval(line, {'__builtin__':None})) logger.debug('loaded alarm {0} ({1}) from file.'.format(a.name, a.time)) self.add_alarm(a) # force save in new format logger.info('Old alarm file format found, converting.') self.save_list() except Exception, (e): logger.warning('Failed to load alarm data from file: {0}'.format(e)) else: for a in alist: alarm = Alarm(dict=a) logger.debug('loaded alarm {0} ({1}) from file.'.format(alarm.name, alarm.time)) self.add_alarm(alarm) except IOError, (e,s): # File might not exist logger.warning('Could not open file: {0}'.format( s)) @idle_add def save_list(self): '''Save alarms to file''' logger.debug('save_list() called.') # Save List path = os.path.join(xdg.get_data_dirs()[0],'alarmlist.dat') if len(self.model) > 0: alist = [ { 'active':row[0], 'name':row[1], 'time':row[2], 'days':row[3] } for row in self.model ] with open(path,'wb') as f: f.write(_write(alist)) logger.debug('saving {0} alarms.'.format(len(alist))) ###><><><### Globals ###><><><### # This is here because sometimes get_prefs_pane gets called before _enabled #ALARM_CLOCK_MAIN = AlarmClock(exaile) @common.threaded def fade_in(main, exaile): '''Fade exaile's volume from min to max''' logger.debug('fade_in() called.') # pull settings temp_volume = settings.get_option('plugin/multialarmclock/fade_min_volume')/100. fade_max_volume = settings.get_option('plugin/multialarmclock/fade_max_volume')/100. fade_inc = settings.get_option('plugin/multialarmclock/fade_increment')/100. time_per_inc = settings.get_option('plugin/multialarmclock/fade_time') / ((fade_max_volume-temp_volume)/fade_inc) while temp_volume < fade_max_volume: logger.debug('set volume to {0}'.format(temp_volume)) settings.set_option('player/volume', temp_volume) temp_volume += fade_inc time.sleep( time_per_inc ) if player.PLAYER.is_paused() or not player.PLAYER.is_playing(): return settings.set_option('player/volume', fade_max_volume) def check_alarms(main, exaile): """ Called every timeout. If the plugin is not enabled, it does nothing. If the current time matches the time specified and the current day is selected, it starts playing """ if not main: return True # TODO: new way? current = time.strftime("%H:%M", time.localtime()) currentDay = int(time.strftime("%w", time.localtime())) # generate list of alarms from model alist = [ Alarm(active=row[0], name=row[1], time=row[2], days=row[3]) for row in main.model ] # print current , [ a.time for a in alist if a.active ] for al in alist: if al.active and al.time == current and al.days[currentDay] == True: check = time.strftime("%m %d %Y %H:%M") # clever... if main.RANG.has_key(check): logger.debug('Alarm {0} in RANG'.format(al.name)) return True logger.info('Alarm {0} hit.'.format(al.name)) # tracks to play? count = len(player.QUEUE) if player.QUEUE.current_playlist: count += len(player.QUEUE.current_playlist) else: count += len(exaile.gui.main.get_selected_page().playlist) if count == 0: logger.warning('No tracks queued for alarm to play.') return True if player.PLAYER.is_playing(): # Check if there are songs in playlist and if it is already playing logger.info('Alarm hit, but already playing') return True if settings.get_option('plugin/multialarmclock/fading_on'): fade_in(main, exaile) # thread.start_new(fade_in, (main, exaile)) if settings.get_option('plugin/multialarmclock/restart_playlist_on'): logger.debug('try to restart playlist') if player.QUEUE.current_playlist: player.QUEUE.current_playlist.set_current_position(-1) else: player.QUEUE.set_current_playlist(exaile.gui.main.get_selected_page()) player.QUEUE.play() main.RANG[check] = True return True ###><><><### Plugin Handling Functions ###><><><### def enable(exaile): '''Called by exaile to enable plugin''' if exaile.loading: logger.debug('waitin for loaded event') event.add_callback(_enable,'exaile_loaded') else: _enable(None, exaile, None) @idle_add def _enable(stuff, exaile, junk): ''' Enable plugin. Start timer and create class. ''' logger.debug('_enable called') global TIMER_ID, MENU_ITEM, ALARM_CLOCK_MAIN, MY_BUILDER if ALARM_CLOCK_MAIN is None: ALARM_CLOCK_MAIN = AlarmClock(exaile) main = ALARM_CLOCK_MAIN if MY_BUILDER is not None: #'''Since I don't know if init() or enable() will be called first, save builder and setup UI if enabled() was already called.''' main.init_ui(MY_BUILDER) TIMER_ID = glib.timeout_add_seconds(5, check_alarms, main, exaile) def disable(exaile): ''' Called when plugin is unloaded. Stop timer. ''' global TIMER_ID, MENU_ITEM, ALARM_CLOCK_MAIN, MY_BUILDER # Cleanup if TIMER_ID is not None: glib.source_remove(TIMER_ID) TIMER_ID = None if ALARM_CLOCK_MAIN is not None: ALARM_CLOCK_MAIN = None # disable/enable doesn't re-call init(), so if we scrap and re-create the class, we wont' get our gtk.Builder back, and there will # be a disconnect between the Alarm class and the UI in the prefs page # NOTE: reloading the plugin from prefs page (DEBUG MODE) breaks this anyway # if MY_BUILDER is not None: # MY_BUILDER = None dist/copy/plugins/multialarmclock/PaxHeaders.26361/cellrenderers.py0000644000175000017500000000012412233027260024070 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.513046945 exaile-3.3.2/plugins/multialarmclock/cellrenderers.py0000644000000000000000000001211112233027260023024 0ustar00rootroot00000000000000#!/usr/bin/python # Copyright (C) 2010 by Brian Parma # # 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 1, 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 gtk import gobject class CellRendererDays(gtk.CellRendererText): '''Custom Cell Renderer for showing a ListView of 7 days with checkboxes, based off pygtk FAQ example''' __gtype_name__ = 'CellRendererDays' __gproperties__ = { 'days':(object, 'days', 'List of enabled days', gobject.PARAM_READWRITE) } __gsignals__ = { 'days-changed':(gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, (str, object))} property_names = __gproperties__.keys() def __init__(self): self.__gobject_init__() self.model = gtk.ListStore(bool, str) self.view = None self.view_window = None for day in ['Sunday','Monday','Tuesday','Wednesday', 'Thursday', 'Friday', 'Saturday']: self.model.append([True, day]) self.set_property('text','Edit me') def _create_view(self, treeview): '''Create the Window and View to display when editing''' self.view_window = gtk.Window() self.view_window.set_decorated(False) self.view_window.set_property('skip-taskbar-hint', True) self.view = gtk.TreeView() self.view.set_model(self.model) self.view.set_headers_visible(False) cr = gtk.CellRendererToggle() cr.connect('toggled', self._toggle) col = gtk.TreeViewColumn('Enabled', cr, active=0) self.view.append_column(col) cr = gtk.CellRendererText() col = gtk.TreeViewColumn('Day', cr, text=1) self.view.append_column(col) # events self.view.connect('focus-out-event', self._close) self.view.connect('key-press-event', self._key_pressed) # should be automatic self.view_window.set_modal(False) self.view_window.set_transient_for(None) # cancel the modality of dialog self.view_window.add(self.view) # necessary for getting the (width, height) of calendar_window self.view.show() self.view_window.realize() def do_set_property(self, pspec, value): '''Set property overload''' setattr(self, pspec.name, value) def do_get_property(self, pspec): '''Get property overload''' return getattr(self, pspec.name) def do_start_editing(self, event, treeview, path, background_area, cell_area, flags): '''Called when user starts editing the cell''' if not self.get_property('editable'): return # create window/view if it doesn't exist if not self.view_window: self._create_view(treeview) else: self.view_window.show() # set display to reflect 'days' property for i,row in enumerate(self.model): row[0] = self.days[i] # position the popup below the edited cell (and try hard to keep the popup within the toplevel window) (tree_x, tree_y) = treeview.get_bin_window().get_origin() (tree_w, tree_h) = treeview.window.get_geometry()[2:4] (my_w, my_h) = self.view_window.window.get_geometry()[2:4] x = tree_x + min(cell_area.x, tree_w - my_w + treeview.get_visible_rect().x) y = tree_y + min(cell_area.y, tree_h - my_h + treeview.get_visible_rect().y) self.view_window.move(x, y) # save the path so we can return it in _done, and we aren't using dialog so we can't block.... self._path = path return None # don't return any editable, our gtk.Dialog did the work already def _done(self): '''Called when we are done editing''' days = [ row[0] for row in self.model ] if days != self.days: self.emit('days-changed', self._path, days) self.view_window.hide() def _key_pressed(self, view, event): '''Key pressed event handler, finish editing on Return''' # event == None for day selected via doubleclick if not event or event.type == gtk.gdk.KEY_PRESS and gtk.gdk.keyval_name(event.keyval) == 'Return': self._done() return True def _toggle(self, cell, path): '''Checkbox toggle event handler''' active = self.model[path][0] self.model[path][0] = not active return True def _close(self, view, event): '''Focus-out-event handler''' self._done() return True dist/copy/plugins/multialarmclock/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260022262 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/multialarmclock/PLUGININFO0000644000000000000000000000051612233027260021224 0ustar00rootroot00000000000000Version='0.2.1' Authors=['Brian Parma '] Name=_('Multi-Alarm Clock') Description=_('Plays music at specific times and days.\n\nNote that when the specified time arrives, Exaile will just act like you pressed the play button, so be sure you have the music you want to hear in your playlist') Category=_('Utility') dist/copy/plugins/multialarmclock/PaxHeaders.26361/macprefs.py0000644000175000017500000000012412233027260023037 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.565046947 exaile-3.3.2/plugins/multialarmclock/macprefs.py0000644000000000000000000000507612233027260022007 0ustar00rootroot00000000000000# Copyright (C) 2010 Brian Parma # # 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 1, 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 from xlgui.preferences import widgets from xlgui import icons from xl import xdg from xl.nls import gettext as _ name = _('Multi-Alarm Clock') basedir = os.path.dirname(os.path.realpath(__file__)) ui = os.path.join(basedir, "malrmclk.ui") icons.MANAGER.add_icon_name_from_directory('clock', os.path.join(basedir, 'icons')) icon = 'clock' class FadingEnabledPreference(widgets.CheckPreference): name = 'plugin/multialarmclock/fading_on' default = True class FadingConditional(widgets.CheckConditional): condition_preference_name = 'plugin/multialarmclock/fading_on' class RestartPlaylistPreference(widgets.CheckPreference): name = 'plugin/multialarmclock/restart_playlist_on' default = False class FadeMinVolumePreference(widgets.SpinPreference, FadingConditional): name = 'plugin/multialarmclock/fade_min_volume' default = 0 def __init__(self, prefs, widget): widgets.SpinPreference.__init__(self, prefs, widget) FadingConditional.__init__(self) class FadeMaxVolumePreference(widgets.SpinPreference, FadingConditional): name = 'plugin/multialarmclock/fade_max_volume' default = 100 def __init__(self, prefs, widget): widgets.SpinPreference.__init__(self, prefs, widget) FadingConditional.__init__(self) class FadeIncrementPreference(widgets.SpinPreference, FadingConditional): name = 'plugin/multialarmclock/fade_increment' default = 1 def __init__(self, prefs, widget): widgets.SpinPreference.__init__(self, prefs, widget) FadingConditional.__init__(self) class FadeTimePreference(widgets.SpinPreference, FadingConditional): name = 'plugin/multialarmclock/fade_time' default = 30 def __init__(self, prefs, widget): widgets.SpinPreference.__init__(self, prefs, widget) FadingConditional.__init__(self) dist/copy/plugins/multialarmclock/PaxHeaders.26361/malrmclk.ui0000644000175000017500000000012412233027260023026 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.281046938 exaile-3.3.2/plugins/multialarmclock/malrmclk.ui0000644000000000000000000004515312233027260021776 0ustar00rootroot00000000000000 True True 0 none True 12 True True True adjustment1 adjustment2 automatic automatic in 0 True 6 True end Add True True True False False 0 Remove True True True False False 1 False 6 1 True <b>Alarms</b> True 0 True 0 none True 12 True 6 2 Enable volume fade-in True True False True 2 1 2 GTK_FILL True 0 Fade start volume: 2 3 GTK_FILL True 0 Fade stop volume: 3 4 GTK_FILL True 0 Fade Increment: 4 5 GTK_FILL True 0 Fade Time (s): 5 6 GTK_FILL True 10 True True min_vol 100 False 0 True True 3 3 min_vol True False 1 1 2 2 3 10 True 10 True True max_vol False 0 True True 3 3 max_vol True False 1 1 2 3 4 10 True True True 3 fade_inc False 10 0 1 2 4 5 True True True 6 3 adjustment3 True False 10 0 1 2 5 6 Restart playlist True True False True 2 True <b>Playback</b> True False 1 100 1 10 100 100 1 10 100 1 10 100 1 10 10 100 1 10 10 30 9999999 1 10 dist/copy/plugins/PaxHeaders.26361/karaoke0000644000175000017500000000013212233027261017042 xustar000000000000000030 mtime=1382821553.697046951 30 atime=1382821552.785046922 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/karaoke/0000755000000000000000000000000012233027261016060 5ustar00rootroot00000000000000dist/copy/plugins/karaoke/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260021230 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.473046944 exaile-3.3.2/plugins/karaoke/__init__.py0000644000000000000000000000235412233027260020174 0ustar00rootroot00000000000000# karaoke - Removes voice from Exaile's audio output # Copyright (C) 2009-2010 Johannes Sasongko # # 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, see . import gst import xl.providers from xl.player.pipe import ElementBin class Karaoke(ElementBin): index = 50 name = 'karaoke' def __init__(self, player): ElementBin.__init__(self, player, name=self.name) self.elements[50] = gst.element_factory_make('audiokaraoke') self.setup_elements() def enable(exaile): xl.providers.register('stream_element', Karaoke) def disable(exaile): xl.providers.unregister('stream_element', Karaoke) # vi: et sts=4 sw=4 tw=80 dist/copy/plugins/karaoke/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260020514 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/karaoke/PLUGININFO0000644000000000000000000000022412233027260017452 0ustar00rootroot00000000000000Version='0.0.2' Authors=['Johannes Sasongko '] Name=_('Karaoke') Description=_('Removes voice from audio') Category=_('Effect') dist/copy/plugins/PaxHeaders.26361/mpris0000644000175000017500000000013212233027261016557 xustar000000000000000030 mtime=1382821553.697046951 30 atime=1382821552.785046922 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/mpris/0000755000000000000000000000000012233027261015575 5ustar00rootroot00000000000000dist/copy/plugins/mpris/PaxHeaders.26361/mpris_tracklist.py0000644000175000017500000000012412233027260022420 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.569046947 exaile-3.3.2/plugins/mpris/mpris_tracklist.py0000644000000000000000000001122012233027260021354 0ustar00rootroot00000000000000# Copyright (C) 2009-2010 Abhishek Mukherjee # # 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 3, 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. """/TrackList object for MPRIS specification interface to Exaile http://wiki.xmms2.xmms.se/wiki/MPRIS#.2FTrackList_object_methods """ import dbus import dbus.service import xl.trax import xl.event from xl import player import mpris_tag_converter INTERFACE_NAME = 'org.freedesktop.MediaPlayer' class ExaileMprisTrackList(dbus.service.Object): """ /TrackList object methods """ def __init__(self, exaile, bus): dbus.service.Object.__init__(self, bus, '/TrackList') self.exaile = exaile self.tag_converter = mpris_tag_converter.ExaileTagConverter(exaile) for event in ('tracks_removed', 'tracks_added'): xl.event.add_callback(self.tracklist_change_cb, event) def __get_playlist(self): """ Returns the list of tracks in the current playlist """ return player.QUEUE.current_playlist.get_ordered_tracks() @dbus.service.method(INTERFACE_NAME, in_signature="i", out_signature="a{sv}") def GetMetadata(self, pos): """ Gives all meta data available for element at given position in the TrackList, counting from 0 Each dict entry is organized as follows * string: Metadata item name * variant: Metadata value """ track = self.__get_playlist()[pos] return self.tag_converter.get_metadata(track) @dbus.service.method(INTERFACE_NAME, out_signature="i") def GetCurrentTrack(self): """ Return the position of current URI in the TrackList The return value is zero-based, so the position of the first URI in the TrackList is 0. The behavior of this method is unspecified if there are zero elements in the TrackList. """ try: return player.QUEUE.current_playlist.index( player.PLAYER.current) except ValueError: return -1 @dbus.service.method(INTERFACE_NAME, out_signature="i") def GetLength(self): """ Number of elements in the TrackList """ return len(player.QUEUE.current_playlist) @dbus.service.method(INTERFACE_NAME, in_signature="sb", out_signature="i") def AddTrack(self, uri, play_immediately): """ Appends an URI in the TrackList. """ uri = uri[7:] track = self.exaile.collection.get_track_by_loc(unicode(uri)) if track is None: track = xl.trax.Track(uri) player.QUEUE.current_playlist.add(track) if play_immediately: player.QUEUE.play(track) return 0 @dbus.service.method(INTERFACE_NAME, in_signature="i") def DelTrack(self, pos): """ Appends an URI in the TrackList. """ player.QUEUE.current_playlist.remove(pos) @dbus.service.method(INTERFACE_NAME, in_signature="b") def SetLoop(self, loop): """ Sets the player's "repeat" or "loop" setting """ player.QUEUE.current_playlist.set_repeat(loop) @dbus.service.method(INTERFACE_NAME, in_signature="b") def SetRandom(self, random): """ Sets the player's "random" setting """ player.QUEUE.current_playlist.set_random(random) def tracklist_change_cb(self, type, object, data): """ Callback for a track list change """ len = self.GetLength() self.TrackListChange(len) @dbus.service.signal(INTERFACE_NAME, signature="i") def TrackListChange(self, num_of_elements): """ Signal is emitted when the "TrackList" content has changed: * When one or more elements have been added * When one or more elements have been removed * When the ordering of elements has changed The argument is the number of elements in the TrackList after the change happened. """ pass dist/copy/plugins/mpris/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260020745 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.569046947 exaile-3.3.2/plugins/mpris/__init__.py0000644000000000000000000000256012233027260017710 0ustar00rootroot00000000000000# Copyright (C) 2009-2010 Abhisehk Mukherjee # # 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 3, 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. """MPRIS Specification implementation plugin for Exaile""" __all__ = ["exaile_mpris", "mpris_player", "mpris_root", "mpris_tracklist", "mpris_tag_converter"] import exaile_mpris import logging LOG = logging.getLogger("exaile.plugins.mpris") _MPRIS = None def enable(exaile): """Opens an object reference for D-BUS""" global _MPRIS LOG.debug("Enabling MPRIS") if _MPRIS is None: _MPRIS = exaile_mpris.ExaileMpris(exaile) _MPRIS.exaile = exaile _MPRIS.acquire() def disable(exaile): """Closes the current connection to D-Bus""" LOG.debug("Disabling MPRIS") _MPRIS.release() dist/copy/plugins/mpris/PaxHeaders.26361/mpris_tag_converter.py0000644000175000017500000000012412233027260023262 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.569046947 exaile-3.3.2/plugins/mpris/mpris_tag_converter.py0000644000000000000000000001740212233027260022226 0ustar00rootroot00000000000000# Copyright (C) 2009-2010 Abhishek Mukherjee # # 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 3, 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. """ A converter utility to convert from exaile tags to mpris Metadata """ import logging _LOG = logging.getLogger('exaile.plugins.mpris.mpris_tag_converter') # Dictionary to map MPRIS tags to Exaile Tags # Each key is the mpris tag, each value is a dictionary with possible keys: # * out_type: REQUIRED, function that will convert to the MPRIS type # * exaile_tag: the name of the tag in exaile, defaults to the mpris tag # * conv: a conversion function to call on the exaile metadata, defaults to # lambda x: x # * desc: a description of what's in the tag # * constructor: a function to call that takes (exaile, track) and returns # the value for the key. If it returns None, the tag is not # set MPRIS_TAG_INFORMATION = { 'location' : {'out_type' : unicode, 'exaile_tag': '__loc', 'desc' : 'Name', }, 'artist' : {'out_type' : unicode, 'desc' : 'Name of artist or band', }, 'title' : {'out_type' : unicode, 'desc' : 'Name of artist or band', }, 'album' : {'out_type' : unicode, 'desc' : 'Name of compilation', }, 'tracknumber': {'out_type' : unicode, 'desc' : 'The position in album', }, 'time' : {'out_type' : int, 'exaile_tag': '__length', 'desc' : 'The duration in seconds', }, 'mtime' : {'out_type' : int, 'desc' : 'The duration in milliseconds', }, 'genre' : {'out_type' : unicode, 'desc' : 'The genre', }, 'comment' : {'out_type' : unicode, 'desc' : 'A comment about the work', }, 'rating' : {'out_type' : int, 'desc' : 'A "taste" rate value, out of 5', }, 'year' : {'out_type' : int, 'exaile_tag': 'date', 'conv' : lambda x: x.split('-')[0], 'desc' : 'The year of performing', }, 'date' : {'out_type' : int, 'exaile_tag': None, 'desc' : 'When the performing was realized, ' 'since epoch', }, 'arturl' : {'out_type' : unicode, 'desc' : 'an URI to an image', }, 'audio-bitrate': {'out_type': int, 'exaile_tag': '__bitrate', 'desc' : 'The number of bits per second', }, 'audio-samplerate': {'out_type': int, 'desc' : 'The number of samples per second', }, } EXAILE_TAG_INFORMATION = {} def __fill_exaile_tag_information(): """ Fille EXAILE_TAG_INFORMATION with the exaile_tag: mpris_tag, the inverse of MPRIS_TAG_INFORMATION """ for mpris_tag in MPRIS_TAG_INFORMATION: if 'exaile_tag' in MPRIS_TAG_INFORMATION[mpris_tag]: exaile_tag = MPRIS_TAG_INFORMATION[mpris_tag]['exaile_tag'] else: exaile_tag = mpris_tag if exaile_tag is None: continue EXAILE_TAG_INFORMATION[exaile_tag] = mpris_tag __fill_exaile_tag_information() class OutputTypeMismatchException(Exception): """ Exception for when a tag from Exaile could not be converted to an MPRIS tag """ def __init__(self, exaile_tag, mpris_tag, val): Exception.__init__(self, "Could not convert tag exaile:'%s' to mpris:'%s':" "Error converting '%s' to type '%s" % (exaile_tag, mpris_tag, val, MPRIS_TAG_INFORMATION[mpris_tag]['out_type'])) class ExaileTagConverter(object): """ Class to convert tags from Exaile to Metadata for MPRIS """ def __init__(self, exaile): self.exaile = exaile def get_metadata(self, track): """ Returns the Metadata for track as defined by MPRIS standard """ metadata = {} for exaile_tag in track.list_tags(): if exaile_tag not in EXAILE_TAG_INFORMATION: continue val = ExaileTagConverter.__get_first_item(track.get_tag_raw(exaile_tag)) try: mpris_tag, mpris_val = ExaileTagConverter.convert_tag( exaile_tag, val) except OutputTypeMismatchException, e: _LOG.exception(e) continue if mpris_tag is None: continue metadata[mpris_tag] = mpris_val for mpris_tag in MPRIS_TAG_INFORMATION: if 'constructor' in MPRIS_TAG_INFORMATION[mpris_tag]: val = MPRIS_TAG_INFORMATION[mpris_tag]['constructor']( self.exaile, track ) if val is not None: try: metadata[mpris_tag] = \ MPRIS_TAG_INFORMATION[mpris_tag]['out_type'](val) except ValueError: raise OutputTypeMismatchException( MPRIS_TAG_INFORMATION[mpris_tag]['exaile_tag'], mpris_tag, val, ) return metadata @staticmethod def __get_first_item(value): """ Unlists lists and returns the first value, if not a lists, returns value """ if not isinstance(value, basestring) and hasattr(value, "__getitem__"): if len(value): return value[0] return None return value @staticmethod def convert_tag(exaile_tag, exaile_value): """ Converts a single tag into MPRIS form, return a 2-tuple of (mpris_tag, mpris_val). Returns (None, None) if there is no translation """ if exaile_tag not in EXAILE_TAG_INFORMATION: return (None, None) mpris_tag = EXAILE_TAG_INFORMATION[exaile_tag] info = MPRIS_TAG_INFORMATION[mpris_tag] if 'conv' in info: mpris_value = info['conv'](exaile_value) else: mpris_value = exaile_value try: mpris_value = info['out_type'](mpris_value) except ValueError: raise OutputTypeMismatchException(exaile_tag, mpris_tag, exaile_value, ) return (mpris_tag, mpris_value) dist/copy/plugins/mpris/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260020231 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/mpris/PLUGININFO0000644000000000000000000000033312233027260017170 0ustar00rootroot00000000000000Version='0.0.3' Authors=['Abhishek Mukherjee '] Name='MPRIS' Description=_('Implements the MPRIS (org.freedesktop.MediaPlayer) DBus interface for controlling Exaile.') Category=_('Utility') dist/copy/plugins/mpris/PaxHeaders.26361/mpris_root.py0000644000175000017500000000012412233027260021403 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.569046947 exaile-3.3.2/plugins/mpris/mpris_root.py0000644000000000000000000000330712233027260020346 0ustar00rootroot00000000000000# Copyright (C) 2009-2010 Abhishek Mukherjee # # 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 3, 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. """/ Object for MPRIS specification interface to Exaile http://wiki.xmms2.xmms.se/wiki/MPRIS#.2F_.28Root.29_object_methods """ import dbus import dbus.service from xl.nls import gettext as _ INTERFACE_NAME = 'org.freedesktop.MediaPlayer' class ExaileMprisRoot(dbus.service.Object): """ / (Root) object methods """ def __init__(self, exaile, bus): dbus.service.Object.__init__(self, bus, '/') self.exaile = exaile @dbus.service.method(INTERFACE_NAME, out_signature="s") def Identity(self): """ Identify the "media player" """ return "Exaile %s" % self.exaile.get_version() @dbus.service.method(INTERFACE_NAME) def Quit(self): """ Makes the "Media Player" exit. """ self.exaile.quit() @dbus.service.method(INTERFACE_NAME, out_signature="(qq)") def MprisVersion(self): """ Makes the "Media Player" exit. """ return (1, 0) dist/copy/plugins/mpris/PaxHeaders.26361/exaile_mpris.py0000644000175000017500000000012412233027260021667 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.569046947 exaile-3.3.2/plugins/mpris/exaile_mpris.py0000644000000000000000000000554612233027260020641 0ustar00rootroot00000000000000# Copyright (C) 2009-2010 Abhishek Mukherjee # # 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 3, 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. """ An implementation of the MPRIS D-Bus protocol for use with Exaile """ import dbus import dbus.service import logging import mpris_root import mpris_tracklist import mpris_player LOG = logging.getLogger("exaile.plugins.mpris.exaile_mpris") OBJECT_NAME = 'org.mpris.exaile' class ExaileMpris(object): """ Controller for various MPRIS objects. """ def __init__(self, exaile=None): """ Constructs an MPRIS controller. Note, you must call acquire() """ self.exaile = exaile self.mpris_root = None self.mpris_tracklist = None self.mpris_player = None self.bus = None def release(self): """ Releases all objects from D-Bus and unregisters the bus """ for obj in (self.mpris_root, self.mpris_tracklist, self.mpris_player): if obj is not None: obj.remove_from_connection() self.mpris_root = None self.mpris_tracklist = None self.mpris_player = None if self.bus is not None: self.bus.get_bus().release_name(self.bus.get_name()) def acquire(self): """ Connects to D-Bus and registers all components """ self._acquire_bus() self._add_interfaces() def _acquire_bus(self): """ Connect to D-Bus and set self.bus to be a valid connection """ if self.bus is not None: self.bus.get_bus().request_name(OBJECT_NAME) else: self.bus = dbus.service.BusName(OBJECT_NAME, bus=dbus.SessionBus()) def _add_interfaces(self): """ Connects all interfaces to D-Bus """ self.mpris_root = mpris_root.ExaileMprisRoot(self.exaile, self.bus) self.mpris_tracklist = mpris_tracklist.ExaileMprisTrackList( self.exaile, self.bus) self.mpris_player = mpris_player.ExaileMprisPlayer( self.exaile, self.bus) dist/copy/plugins/mpris/PaxHeaders.26361/mpris_player.py0000644000175000017500000000012412233027260021714 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.569046947 exaile-3.3.2/plugins/mpris/mpris_player.py0000644000000000000000000001762012233027260020662 0ustar00rootroot00000000000000# Copyright (C) 2009-2010 Abhishek Mukherjee # # 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 3, 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. """/Player object for MPRIS specification interface to Exaile http://wiki.xmms2.xmms.se/wiki/MPRIS#.2FPlayer_object_methods """ from __future__ import division from xl import player, settings import dbus import dbus.service import xl.event import mpris_tag_converter INTERFACE_NAME = 'org.freedesktop.MediaPlayer' class MprisCaps(object): """ Specification for the capabilities field in MPRIS """ NONE = 0 CAN_GO_NEXT = 1 << 0 CAN_GO_PREV = 1 << 1 CAN_PAUSE = 1 << 2 CAN_PLAY = 1 << 3 CAN_SEEK = 1 << 4 CAN_PROVIDE_METADATA = 1 << 5 CAN_HAS_TRACKLIST = 1 << 6 EXAILE_CAPS = (MprisCaps.CAN_GO_NEXT | MprisCaps.CAN_GO_PREV | MprisCaps.CAN_PAUSE | MprisCaps.CAN_PLAY | MprisCaps.CAN_SEEK | MprisCaps.CAN_PROVIDE_METADATA | MprisCaps.CAN_HAS_TRACKLIST) class ExaileMprisPlayer(dbus.service.Object): """ /Player (Root) object methods """ def __init__(self, exaile, bus): dbus.service.Object.__init__(self, bus, '/Player') self.exaile = exaile self._tag_converter = mpris_tag_converter.ExaileTagConverter(exaile) xl.event.add_callback(self.track_change_cb, 'playback_track_start', player.PLAYER) # FIXME: Does not watch for shuffle, repeat # TODO: playback_start does not distinguish if play button was pressed # or we simply moved to a new track for event in ('playback_player_end', 'playback_player_start', 'playback_toggle_pause'): xl.event.add_callback(self.status_change_cb, event, player.PLAYER) @dbus.service.method(INTERFACE_NAME) def Next(self): """ Goes to the next element """ player.QUEUE.next() @dbus.service.method(INTERFACE_NAME) def Prev(self): """ Goes to the previous element """ player.QUEUE.prev() @dbus.service.method(INTERFACE_NAME) def Pause(self): """ If playing, pause. If paused, unpause. """ player.PLAYER.toggle_pause() @dbus.service.method(INTERFACE_NAME) def Stop(self): """ Stop playing """ player.PLAYER.stop() @dbus.service.method(INTERFACE_NAME) def Play(self): """ If Playing, rewind to the beginning of the current track, else. start playing """ if player.PLAYER.is_playing(): player.PLAYER.play(player.PLAYER.current) else: player.QUEUE.play() @dbus.service.method(INTERFACE_NAME, in_signature="b") def Repeat(self, repeat): """ Toggle the current track repeat """ pass @dbus.service.method(INTERFACE_NAME, out_signature="(iiii)") def GetStatus(self): """ Return the status of "Media Player" as a struct of 4 ints: * First integer: 0 = Playing, 1 = Paused, 2 = Stopped. * Second interger: 0 = Playing linearly , 1 = Playing randomly. * Third integer: 0 = Go to the next element once the current has finished playing , 1 = Repeat the current element * Fourth integer: 0 = Stop playing once the last element has been played, 1 = Never give up playing """ if player.PLAYER.is_playing(): playing = 0 elif player.PLAYER.is_paused(): playing = 1 else: playing = 2 if player.QUEUE.current_playlist.get_shuffle_mode() == 'disabled': random = 0 else: random = 1 if player.QUEUE.current_playlist.get_repeat_mode() == 'track': go_to_next = 0 else: go_to_next = 1 if player.QUEUE.current_playlist.get_repeat_mode() == 'all': repeat = 1 else: repeat = 0 return (playing, random, go_to_next, repeat) @dbus.service.method(INTERFACE_NAME, out_signature="a{sv}") def GetMetadata(self): """ Gives all meta data available for the currently played element. """ if player.PLAYER.current is None: return [] return self._tag_converter.get_metadata(player.PLAYER.current) @dbus.service.method(INTERFACE_NAME, out_signature="i") def GetCaps(self): """ Returns the "Media player"'s current capabilities, see MprisCaps """ return EXAILE_CAPS @dbus.service.method(INTERFACE_NAME, in_signature="i") def VolumeSet(self, volume): """ Sets the volume, arument in the range [0, 100] """ if volume < 0 or volume > 100: pass settings.set_option('player/volume', volume / 100) @dbus.service.method(INTERFACE_NAME, out_signature="i") def VolumeGet(self): """ Returns the current volume (must be in [0;100]) """ return settings.get_option('player/volume', 0) * 100 @dbus.service.method(INTERFACE_NAME, in_signature="i") def PositionSet(self, millisec): """ Sets the playing position (argument must be in [0, ] in milliseconds) """ if millisec > player.PLAYER.current.get_tag_raw('__length') \ * 1000 or millisec < 0: return player.PLAYER.seek(millisec / 1000) @dbus.service.method(INTERFACE_NAME, out_signature="i") def PositionGet(self): """ Returns the playing position (will be [0, track_length] in milliseconds) """ return int(player.PLAYER.get_position() / 1000000) def track_change_cb(self, type, object, data): """ Callback will emit the dbus signal TrackChange with the current songs metadata """ metadata = self.GetMetadata() self.TrackChange(metadata) def status_change_cb(self, type, object, data): """ Callback will emit the dbus signal StatusChange with the current status """ struct = self.GetStatus() self.StatusChange(struct) def caps_change_cb(self, type, object, data): """ Callback will emit the dbus signal CapsChange with the current Caps """ caps = self.GetCaps() self.CapsChange(caps) @dbus.service.signal(INTERFACE_NAME, signature="a{sv}") def TrackChange(self, metadata): """ Signal is emitted when the "Media Player" plays another "Track". Argument of the signal is the metadata attached to the new "Track" """ pass @dbus.service.signal(INTERFACE_NAME, signature="(iiii)") def StatusChange(self, struct): """ Signal is emitted when the status of the "Media Player" change. The argument has the same meaning as the value returned by GetStatus. """ pass @dbus.service.signal(INTERFACE_NAME) def CapsChange(self): """ Signal is emitted when the "Media Player" changes capabilities, see GetCaps method. """ pass dist/copy/plugins/PaxHeaders.26361/podcasts0000644000175000017500000000013212233027261017245 xustar000000000000000030 mtime=1382821553.697046951 30 atime=1382821552.785046922 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/podcasts/0000755000000000000000000000000012233027261016263 5ustar00rootroot00000000000000dist/copy/plugins/podcasts/PaxHeaders.26361/_feedparser.py0000644000175000017500000000012412233027260022153 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.417046942 exaile-3.3.2/plugins/podcasts/_feedparser.py0000644000000000000000000035715012233027260021126 0ustar00rootroot00000000000000"""Universal feed parser Handles RSS 0.9x, RSS 1.0, RSS 2.0, CDF, Atom 0.3, and Atom 1.0 feeds Visit http://feedparser.org/ for the latest version Visit http://feedparser.org/docs/ for the latest documentation Required: Python 2.1 or later Recommended: Python 2.3 or later Recommended: CJKCodecs and iconv_codec """ __version__ = "4.1"# + "$Revision: 1.92 $"[11:15] + "-cvs" __license__ = """Copyright (c) 2002-2006, Mark Pilgrim, All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.""" __author__ = "Mark Pilgrim " __contributors__ = ["Jason Diamond ", "John Beimler ", "Fazal Majid ", "Aaron Swartz ", "Kevin Marks "] _debug = 0 # HTTP "User-Agent" header to send to servers when downloading feeds. # If you are embedding feedparser in a larger application, you should # change this to your application name and URL. USER_AGENT = "UniversalFeedParser/%s +http://feedparser.org/" % __version__ # HTTP "Accept" header to send to servers when downloading feeds. If you don't # want to send an Accept header, set this to None. ACCEPT_HEADER = "application/atom+xml,application/rdf+xml,application/rss+xml,application/x-netcdf,application/xml;q=0.9,text/xml;q=0.2,*/*;q=0.1" # List of preferred XML parsers, by SAX driver name. These will be tried first, # but if they're not installed, Python will keep searching through its own list # of pre-installed parsers until it finds one that supports everything we need. PREFERRED_XML_PARSERS = ["drv_libxml2"] # If you want feedparser to automatically run HTML markup through HTML Tidy, set # this to 1. Requires mxTidy # or utidylib . TIDY_MARKUP = 0 # List of Python interfaces for HTML Tidy, in order of preference. Only useful # if TIDY_MARKUP = 1 PREFERRED_TIDY_INTERFACES = ["uTidy", "mxTidy"] # ---------- required modules (should come with any Python distribution) ---------- import sgmllib, re, sys, copy, urlparse, time, rfc822, types, cgi, urllib, urllib2 try: from cStringIO import StringIO as _StringIO except: from StringIO import StringIO as _StringIO # ---------- optional modules (feedparser will work without these, but with reduced functionality) ---------- # gzip is included with most Python distributions, but may not be available if you compiled your own try: import gzip except: gzip = None try: import zlib except: zlib = None # If a real XML parser is available, feedparser will attempt to use it. feedparser has # been tested with the built-in SAX parser, PyXML, and libxml2. On platforms where the # Python distribution does not come with an XML parser (such as Mac OS X 10.2 and some # versions of FreeBSD), feedparser will quietly fall back on regex-based parsing. try: import xml.sax xml.sax.make_parser(PREFERRED_XML_PARSERS) # test for valid parsers from xml.sax.saxutils import escape as _xmlescape _XML_AVAILABLE = 1 except: _XML_AVAILABLE = 0 def _xmlescape(data): data = data.replace('&', '&') data = data.replace('>', '>') data = data.replace('<', '<') return data # base64 support for Atom feeds that contain embedded binary data try: import base64, binascii except: base64 = binascii = None # cjkcodecs and iconv_codec provide support for more character encodings. # Both are available from http://cjkpython.i18n.org/ try: import cjkcodecs.aliases except: pass try: import iconv_codec except: pass # chardet library auto-detects character encodings # Download from http://chardet.feedparser.org/ try: import chardet if _debug: import chardet.constants chardet.constants._debug = 1 except: chardet = None # ---------- don't touch these ---------- class ThingsNobodyCaresAboutButMe(Exception): pass class CharacterEncodingOverride(ThingsNobodyCaresAboutButMe): pass class CharacterEncodingUnknown(ThingsNobodyCaresAboutButMe): pass class NonXMLContentType(ThingsNobodyCaresAboutButMe): pass class UndeclaredNamespace(Exception): pass sgmllib.tagfind = re.compile('[a-zA-Z][-_.:a-zA-Z0-9]*') sgmllib.special = re.compile('' % (tag, ''.join([' %s="%s"' % t for t in attrs])), escape=0) # match namespaces if tag.find(':') <> -1: prefix, suffix = tag.split(':', 1) else: prefix, suffix = '', tag prefix = self.namespacemap.get(prefix, prefix) if prefix: prefix = prefix + '_' # special hack for better tracking of empty textinput/image elements in illformed feeds if (not prefix) and tag not in ('title', 'link', 'description', 'name'): self.intextinput = 0 if (not prefix) and tag not in ('title', 'link', 'description', 'url', 'href', 'width', 'height'): self.inimage = 0 # call special handler (if defined) or default handler methodname = '_start_' + prefix + suffix try: method = getattr(self, methodname) return method(attrsD) except AttributeError: return self.push(prefix + suffix, 1) def unknown_endtag(self, tag): if _debug: sys.stderr.write('end %s\n' % tag) # match namespaces if tag.find(':') <> -1: prefix, suffix = tag.split(':', 1) else: prefix, suffix = '', tag prefix = self.namespacemap.get(prefix, prefix) if prefix: prefix = prefix + '_' # call special handler (if defined) or default handler methodname = '_end_' + prefix + suffix try: method = getattr(self, methodname) method() except AttributeError: self.pop(prefix + suffix) # track inline content if self.incontent and self.contentparams.has_key('type') and not self.contentparams.get('type', 'xml').endswith('xml'): # element declared itself as escaped markup, but it isn't really self.contentparams['type'] = 'application/xhtml+xml' if self.incontent and self.contentparams.get('type') == 'application/xhtml+xml': tag = tag.split(':')[-1] self.handle_data('' % tag, escape=0) # track xml:base and xml:lang going out of scope if self.basestack: self.basestack.pop() if self.basestack and self.basestack[-1]: self.baseuri = self.basestack[-1] if self.langstack: self.langstack.pop() if self.langstack: # and (self.langstack[-1] is not None): self.lang = self.langstack[-1] def handle_charref(self, ref): # called for each character reference, e.g. for ' ', ref will be '160' if not self.elementstack: return ref = ref.lower() if ref in ('34', '38', '39', '60', '62', 'x22', 'x26', 'x27', 'x3c', 'x3e'): text = '&#%s;' % ref else: if ref[0] == 'x': c = int(ref[1:], 16) else: c = int(ref) text = unichr(c).encode('utf-8') self.elementstack[-1][2].append(text) def handle_entityref(self, ref): # called for each entity reference, e.g. for '©', ref will be 'copy' if not self.elementstack: return if _debug: sys.stderr.write('entering handle_entityref with %s\n' % ref) if ref in ('lt', 'gt', 'quot', 'amp', 'apos'): text = '&%s;' % ref else: # entity resolution graciously donated by Aaron Swartz def name2cp(k): import htmlentitydefs if hasattr(htmlentitydefs, 'name2codepoint'): # requires Python 2.3 return htmlentitydefs.name2codepoint[k] k = htmlentitydefs.entitydefs[k] if k.startswith('&#') and k.endswith(';'): return int(k[2:-1]) # not in latin-1 return ord(k) try: name2cp(ref) except KeyError: text = '&%s;' % ref else: text = unichr(name2cp(ref)).encode('utf-8') self.elementstack[-1][2].append(text) def handle_data(self, text, escape=1): # called for each block of plain text, i.e. outside of any tag and # not containing any character or entity references if not self.elementstack: return if escape and self.contentparams.get('type') == 'application/xhtml+xml': text = _xmlescape(text) self.elementstack[-1][2].append(text) def handle_comment(self, text): # called for each comment, e.g. pass def handle_pi(self, text): # called for each processing instruction, e.g. pass def handle_decl(self, text): pass def parse_declaration(self, i): # override internal declaration handler to handle CDATA blocks if _debug: sys.stderr.write('entering parse_declaration\n') if self.rawdata[i:i+9] == '', i) if k == -1: k = len(self.rawdata) self.handle_data(_xmlescape(self.rawdata[i+9:k]), 0) return k+3 else: k = self.rawdata.find('>', i) return k+1 def mapContentType(self, contentType): contentType = contentType.lower() if contentType == 'text': contentType = 'text/plain' elif contentType == 'html': contentType = 'text/html' elif contentType == 'xhtml': contentType = 'application/xhtml+xml' return contentType def trackNamespace(self, prefix, uri): loweruri = uri.lower() if (prefix, loweruri) == (None, 'http://my.netscape.com/rdf/simple/0.9/') and not self.version: self.version = 'rss090' if loweruri == 'http://purl.org/rss/1.0/' and not self.version: self.version = 'rss10' if loweruri == 'http://www.w3.org/2005/atom' and not self.version: self.version = 'atom10' if loweruri.find('backend.userland.com/rss') <> -1: # match any backend.userland.com namespace uri = 'http://backend.userland.com/rss' loweruri = uri if self._matchnamespaces.has_key(loweruri): self.namespacemap[prefix] = self._matchnamespaces[loweruri] self.namespacesInUse[self._matchnamespaces[loweruri]] = uri else: self.namespacesInUse[prefix or ''] = uri def resolveURI(self, uri): return _urljoin(self.baseuri or '', uri) def decodeEntities(self, element, data): return data def push(self, element, expectingText): self.elementstack.append([element, expectingText, []]) def pop(self, element, stripWhitespace=1): if not self.elementstack: return if self.elementstack[-1][0] != element: return element, expectingText, pieces = self.elementstack.pop() output = ''.join(pieces) if stripWhitespace: output = output.strip() if not expectingText: return output # decode base64 content if base64 and self.contentparams.get('base64', 0): try: output = base64.decodestring(output) except binascii.Error: pass except binascii.Incomplete: pass # resolve relative URIs if (element in self.can_be_relative_uri) and output: output = self.resolveURI(output) # decode entities within embedded markup if not self.contentparams.get('base64', 0): output = self.decodeEntities(element, output) # remove temporary cruft from contentparams try: del self.contentparams['mode'] except KeyError: pass try: del self.contentparams['base64'] except KeyError: pass # resolve relative URIs within embedded markup if self.mapContentType(self.contentparams.get('type', 'text/html')) in self.html_types: if element in self.can_contain_relative_uris: output = _resolveRelativeURIs(output, self.baseuri, self.encoding) # sanitize embedded markup if self.mapContentType(self.contentparams.get('type', 'text/html')) in self.html_types: if element in self.can_contain_dangerous_markup: output = _sanitizeHTML(output, self.encoding) if self.encoding and type(output) != type(u''): try: output = unicode(output, self.encoding) except: pass # categories/tags/keywords/whatever are handled in _end_category if element == 'category': return output # store output in appropriate place(s) if self.inentry and not self.insource: if element == 'content': self.entries[-1].setdefault(element, []) contentparams = copy.deepcopy(self.contentparams) contentparams['value'] = output self.entries[-1][element].append(contentparams) elif element == 'link': self.entries[-1][element] = output if output: self.entries[-1]['links'][-1]['href'] = output else: if element == 'description': element = 'summary' self.entries[-1][element] = output if self.incontent: contentparams = copy.deepcopy(self.contentparams) contentparams['value'] = output self.entries[-1][element + '_detail'] = contentparams elif (self.infeed or self.insource) and (not self.intextinput) and (not self.inimage): context = self._getContext() if element == 'description': element = 'subtitle' context[element] = output if element == 'link': context['links'][-1]['href'] = output elif self.incontent: contentparams = copy.deepcopy(self.contentparams) contentparams['value'] = output context[element + '_detail'] = contentparams return output def pushContent(self, tag, attrsD, defaultContentType, expectingText): self.incontent += 1 self.contentparams = FeedParserDict({ 'type': self.mapContentType(attrsD.get('type', defaultContentType)), 'language': self.lang, 'base': self.baseuri}) self.contentparams['base64'] = self._isBase64(attrsD, self.contentparams) self.push(tag, expectingText) def popContent(self, tag): value = self.pop(tag) self.incontent -= 1 self.contentparams.clear() return value def _mapToStandardPrefix(self, name): colonpos = name.find(':') if colonpos <> -1: prefix = name[:colonpos] suffix = name[colonpos+1:] prefix = self.namespacemap.get(prefix, prefix) name = prefix + ':' + suffix return name def _getAttribute(self, attrsD, name): return attrsD.get(self._mapToStandardPrefix(name)) def _isBase64(self, attrsD, contentparams): if attrsD.get('mode', '') == 'base64': return 1 if self.contentparams['type'].startswith('text/'): return 0 if self.contentparams['type'].endswith('+xml'): return 0 if self.contentparams['type'].endswith('/xml'): return 0 return 1 def _itsAnHrefDamnIt(self, attrsD): href = attrsD.get('url', attrsD.get('uri', attrsD.get('href', None))) if href: try: del attrsD['url'] except KeyError: pass try: del attrsD['uri'] except KeyError: pass attrsD['href'] = href return attrsD def _save(self, key, value): context = self._getContext() context.setdefault(key, value) def _start_rss(self, attrsD): versionmap = {'0.91': 'rss091u', '0.92': 'rss092', '0.93': 'rss093', '0.94': 'rss094'} if not self.version: attr_version = attrsD.get('version', '') version = versionmap.get(attr_version) if version: self.version = version elif attr_version.startswith('2.'): self.version = 'rss20' else: self.version = 'rss' def _start_dlhottitles(self, attrsD): self.version = 'hotrss' def _start_channel(self, attrsD): self.infeed = 1 self._cdf_common(attrsD) _start_feedinfo = _start_channel def _cdf_common(self, attrsD): if attrsD.has_key('lastmod'): self._start_modified({}) self.elementstack[-1][-1] = attrsD['lastmod'] self._end_modified() if attrsD.has_key('href'): self._start_link({}) self.elementstack[-1][-1] = attrsD['href'] self._end_link() def _start_feed(self, attrsD): self.infeed = 1 versionmap = {'0.1': 'atom01', '0.2': 'atom02', '0.3': 'atom03'} if not self.version: attr_version = attrsD.get('version') version = versionmap.get(attr_version) if version: self.version = version else: self.version = 'atom' def _end_channel(self): self.infeed = 0 _end_feed = _end_channel def _start_image(self, attrsD): self.inimage = 1 self.push('image', 0) context = self._getContext() context.setdefault('image', FeedParserDict()) def _end_image(self): self.pop('image') self.inimage = 0 def _start_textinput(self, attrsD): self.intextinput = 1 self.push('textinput', 0) context = self._getContext() context.setdefault('textinput', FeedParserDict()) _start_textInput = _start_textinput def _end_textinput(self): self.pop('textinput') self.intextinput = 0 _end_textInput = _end_textinput def _start_author(self, attrsD): self.inauthor = 1 self.push('author', 1) _start_managingeditor = _start_author _start_dc_author = _start_author _start_dc_creator = _start_author _start_itunes_author = _start_author def _end_author(self): self.pop('author') self.inauthor = 0 self._sync_author_detail() _end_managingeditor = _end_author _end_dc_author = _end_author _end_dc_creator = _end_author _end_itunes_author = _end_author def _start_itunes_owner(self, attrsD): self.inpublisher = 1 self.push('publisher', 0) def _end_itunes_owner(self): self.pop('publisher') self.inpublisher = 0 self._sync_author_detail('publisher') def _start_contributor(self, attrsD): self.incontributor = 1 context = self._getContext() context.setdefault('contributors', []) context['contributors'].append(FeedParserDict()) self.push('contributor', 0) def _end_contributor(self): self.pop('contributor') self.incontributor = 0 def _start_dc_contributor(self, attrsD): self.incontributor = 1 context = self._getContext() context.setdefault('contributors', []) context['contributors'].append(FeedParserDict()) self.push('name', 0) def _end_dc_contributor(self): self._end_name() self.incontributor = 0 def _start_name(self, attrsD): self.push('name', 0) _start_itunes_name = _start_name def _end_name(self): value = self.pop('name') if self.inpublisher: self._save_author('name', value, 'publisher') elif self.inauthor: self._save_author('name', value) elif self.incontributor: self._save_contributor('name', value) elif self.intextinput: context = self._getContext() context['textinput']['name'] = value _end_itunes_name = _end_name def _start_width(self, attrsD): self.push('width', 0) def _end_width(self): value = self.pop('width') try: value = int(value) except: value = 0 if self.inimage: context = self._getContext() context['image']['width'] = value def _start_height(self, attrsD): self.push('height', 0) def _end_height(self): value = self.pop('height') try: value = int(value) except: value = 0 if self.inimage: context = self._getContext() context['image']['height'] = value def _start_url(self, attrsD): self.push('href', 1) _start_homepage = _start_url _start_uri = _start_url def _end_url(self): value = self.pop('href') if self.inauthor: self._save_author('href', value) elif self.incontributor: self._save_contributor('href', value) elif self.inimage: context = self._getContext() context['image']['href'] = value elif self.intextinput: context = self._getContext() context['textinput']['link'] = value _end_homepage = _end_url _end_uri = _end_url def _start_email(self, attrsD): self.push('email', 0) _start_itunes_email = _start_email def _end_email(self): value = self.pop('email') if self.inpublisher: self._save_author('email', value, 'publisher') elif self.inauthor: self._save_author('email', value) elif self.incontributor: self._save_contributor('email', value) _end_itunes_email = _end_email def _getContext(self): if self.insource: context = self.sourcedata elif self.inentry: context = self.entries[-1] else: context = self.feeddata return context def _save_author(self, key, value, prefix='author'): context = self._getContext() context.setdefault(prefix + '_detail', FeedParserDict()) context[prefix + '_detail'][key] = value self._sync_author_detail() def _save_contributor(self, key, value): context = self._getContext() context.setdefault('contributors', [FeedParserDict()]) context['contributors'][-1][key] = value def _sync_author_detail(self, key='author'): context = self._getContext() detail = context.get('%s_detail' % key) if detail: name = detail.get('name') email = detail.get('email') if name and email: context[key] = '%s (%s)' % (name, email) elif name: context[key] = name elif email: context[key] = email else: author = context.get(key) if not author: return emailmatch = re.search(r'''(([a-zA-Z0-9\_\-\.\+]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?))''', author) if not emailmatch: return email = emailmatch.group(0) # probably a better way to do the following, but it passes all the tests author = author.replace(email, '') author = author.replace('()', '') author = author.strip() if author and (author[0] == '('): author = author[1:] if author and (author[-1] == ')'): author = author[:-1] author = author.strip() context.setdefault('%s_detail' % key, FeedParserDict()) context['%s_detail' % key]['name'] = author context['%s_detail' % key]['email'] = email def _start_subtitle(self, attrsD): self.pushContent('subtitle', attrsD, 'text/plain', 1) _start_tagline = _start_subtitle _start_itunes_subtitle = _start_subtitle def _end_subtitle(self): self.popContent('subtitle') _end_tagline = _end_subtitle _end_itunes_subtitle = _end_subtitle def _start_rights(self, attrsD): self.pushContent('rights', attrsD, 'text/plain', 1) _start_dc_rights = _start_rights _start_copyright = _start_rights def _end_rights(self): self.popContent('rights') _end_dc_rights = _end_rights _end_copyright = _end_rights def _start_item(self, attrsD): self.entries.append(FeedParserDict()) self.push('item', 0) self.inentry = 1 self.guidislink = 0 id = self._getAttribute(attrsD, 'rdf:about') if id: context = self._getContext() context['id'] = id self._cdf_common(attrsD) _start_entry = _start_item _start_product = _start_item def _end_item(self): self.pop('item') self.inentry = 0 _end_entry = _end_item def _start_dc_language(self, attrsD): self.push('language', 1) _start_language = _start_dc_language def _end_dc_language(self): self.lang = self.pop('language') _end_language = _end_dc_language def _start_dc_publisher(self, attrsD): self.push('publisher', 1) _start_webmaster = _start_dc_publisher def _end_dc_publisher(self): self.pop('publisher') self._sync_author_detail('publisher') _end_webmaster = _end_dc_publisher def _start_published(self, attrsD): self.push('published', 1) _start_dcterms_issued = _start_published _start_issued = _start_published def _end_published(self): value = self.pop('published') self._save('published_parsed', _parse_date(value)) _end_dcterms_issued = _end_published _end_issued = _end_published def _start_updated(self, attrsD): self.push('updated', 1) _start_modified = _start_updated _start_dcterms_modified = _start_updated _start_pubdate = _start_updated _start_dc_date = _start_updated def _end_updated(self): value = self.pop('updated') parsed_value = _parse_date(value) self._save('updated_parsed', parsed_value) _end_modified = _end_updated _end_dcterms_modified = _end_updated _end_pubdate = _end_updated _end_dc_date = _end_updated def _start_created(self, attrsD): self.push('created', 1) _start_dcterms_created = _start_created def _end_created(self): value = self.pop('created') self._save('created_parsed', _parse_date(value)) _end_dcterms_created = _end_created def _start_expirationdate(self, attrsD): self.push('expired', 1) def _end_expirationdate(self): self._save('expired_parsed', _parse_date(self.pop('expired'))) def _start_cc_license(self, attrsD): self.push('license', 1) value = self._getAttribute(attrsD, 'rdf:resource') if value: self.elementstack[-1][2].append(value) self.pop('license') def _start_creativecommons_license(self, attrsD): self.push('license', 1) def _end_creativecommons_license(self): self.pop('license') def _addTag(self, term, scheme, label): context = self._getContext() tags = context.setdefault('tags', []) if (not term) and (not scheme) and (not label): return value = FeedParserDict({'term': term, 'scheme': scheme, 'label': label}) if value not in tags: tags.append(FeedParserDict({'term': term, 'scheme': scheme, 'label': label})) def _start_category(self, attrsD): if _debug: sys.stderr.write('entering _start_category with %s\n' % repr(attrsD)) term = attrsD.get('term') scheme = attrsD.get('scheme', attrsD.get('domain')) label = attrsD.get('label') self._addTag(term, scheme, label) self.push('category', 1) _start_dc_subject = _start_category _start_keywords = _start_category def _end_itunes_keywords(self): for term in self.pop('itunes_keywords').split(): self._addTag(term, 'http://www.itunes.com/', None) def _start_itunes_category(self, attrsD): self._addTag(attrsD.get('text'), 'http://www.itunes.com/', None) self.push('category', 1) def _end_category(self): value = self.pop('category') if not value: return context = self._getContext() tags = context['tags'] if value and len(tags) and not tags[-1]['term']: tags[-1]['term'] = value else: self._addTag(value, None, None) _end_dc_subject = _end_category _end_keywords = _end_category _end_itunes_category = _end_category def _start_cloud(self, attrsD): self._getContext()['cloud'] = FeedParserDict(attrsD) def _start_link(self, attrsD): attrsD.setdefault('rel', 'alternate') attrsD.setdefault('type', 'text/html') attrsD = self._itsAnHrefDamnIt(attrsD) if attrsD.has_key('href'): attrsD['href'] = self.resolveURI(attrsD['href']) expectingText = self.infeed or self.inentry or self.insource context = self._getContext() context.setdefault('links', []) context['links'].append(FeedParserDict(attrsD)) if attrsD['rel'] == 'enclosure': self._start_enclosure(attrsD) if attrsD.has_key('href'): expectingText = 0 if (attrsD.get('rel') == 'alternate') and (self.mapContentType(attrsD.get('type')) in self.html_types): context['link'] = attrsD['href'] else: self.push('link', expectingText) _start_producturl = _start_link def _end_link(self): value = self.pop('link') context = self._getContext() if self.intextinput: context['textinput']['link'] = value if self.inimage: context['image']['link'] = value _end_producturl = _end_link def _start_guid(self, attrsD): self.guidislink = (attrsD.get('ispermalink', 'true') == 'true') self.push('id', 1) def _end_guid(self): value = self.pop('id') self._save('guidislink', self.guidislink and not self._getContext().has_key('link')) if self.guidislink: # guid acts as link, but only if 'ispermalink' is not present or is 'true', # and only if the item doesn't already have a link element self._save('link', value) def _start_title(self, attrsD): self.pushContent('title', attrsD, 'text/plain', self.infeed or self.inentry or self.insource) _start_dc_title = _start_title _start_media_title = _start_title def _end_title(self): value = self.popContent('title') context = self._getContext() if self.intextinput: context['textinput']['title'] = value elif self.inimage: context['image']['title'] = value _end_dc_title = _end_title _end_media_title = _end_title def _start_description(self, attrsD): context = self._getContext() if context.has_key('summary'): self._summaryKey = 'content' self._start_content(attrsD) else: self.pushContent('description', attrsD, 'text/html', self.infeed or self.inentry or self.insource) def _start_abstract(self, attrsD): self.pushContent('description', attrsD, 'text/plain', self.infeed or self.inentry or self.insource) def _end_description(self): if self._summaryKey == 'content': self._end_content() else: value = self.popContent('description') context = self._getContext() if self.intextinput: context['textinput']['description'] = value elif self.inimage: context['image']['description'] = value self._summaryKey = None _end_abstract = _end_description def _start_info(self, attrsD): self.pushContent('info', attrsD, 'text/plain', 1) _start_feedburner_browserfriendly = _start_info def _end_info(self): self.popContent('info') _end_feedburner_browserfriendly = _end_info def _start_generator(self, attrsD): if attrsD: attrsD = self._itsAnHrefDamnIt(attrsD) if attrsD.has_key('href'): attrsD['href'] = self.resolveURI(attrsD['href']) self._getContext()['generator_detail'] = FeedParserDict(attrsD) self.push('generator', 1) def _end_generator(self): value = self.pop('generator') context = self._getContext() if context.has_key('generator_detail'): context['generator_detail']['name'] = value def _start_admin_generatoragent(self, attrsD): self.push('generator', 1) value = self._getAttribute(attrsD, 'rdf:resource') if value: self.elementstack[-1][2].append(value) self.pop('generator') self._getContext()['generator_detail'] = FeedParserDict({'href': value}) def _start_admin_errorreportsto(self, attrsD): self.push('errorreportsto', 1) value = self._getAttribute(attrsD, 'rdf:resource') if value: self.elementstack[-1][2].append(value) self.pop('errorreportsto') def _start_summary(self, attrsD): context = self._getContext() if context.has_key('summary'): self._summaryKey = 'content' self._start_content(attrsD) else: self._summaryKey = 'summary' self.pushContent(self._summaryKey, attrsD, 'text/plain', 1) _start_itunes_summary = _start_summary def _end_summary(self): if self._summaryKey == 'content': self._end_content() else: self.popContent(self._summaryKey or 'summary') self._summaryKey = None _end_itunes_summary = _end_summary def _start_enclosure(self, attrsD): attrsD = self._itsAnHrefDamnIt(attrsD) self._getContext().setdefault('enclosures', []).append(FeedParserDict(attrsD)) href = attrsD.get('href') if href: context = self._getContext() if not context.get('id'): context['id'] = href def _start_source(self, attrsD): self.insource = 1 def _end_source(self): self.insource = 0 self._getContext()['source'] = copy.deepcopy(self.sourcedata) self.sourcedata.clear() def _start_content(self, attrsD): self.pushContent('content', attrsD, 'text/plain', 1) src = attrsD.get('src') if src: self.contentparams['src'] = src self.push('content', 1) def _start_prodlink(self, attrsD): self.pushContent('content', attrsD, 'text/html', 1) def _start_body(self, attrsD): self.pushContent('content', attrsD, 'application/xhtml+xml', 1) _start_xhtml_body = _start_body def _start_content_encoded(self, attrsD): self.pushContent('content', attrsD, 'text/html', 1) _start_fullitem = _start_content_encoded def _end_content(self): copyToDescription = self.mapContentType(self.contentparams.get('type')) in (['text/plain'] + self.html_types) value = self.popContent('content') if copyToDescription: self._save('description', value) _end_body = _end_content _end_xhtml_body = _end_content _end_content_encoded = _end_content _end_fullitem = _end_content _end_prodlink = _end_content def _start_itunes_image(self, attrsD): self.push('itunes_image', 0) self._getContext()['image'] = FeedParserDict({'href': attrsD.get('href')}) _start_itunes_link = _start_itunes_image def _end_itunes_block(self): value = self.pop('itunes_block', 0) self._getContext()['itunes_block'] = (value == 'yes') and 1 or 0 def _end_itunes_explicit(self): value = self.pop('itunes_explicit', 0) self._getContext()['itunes_explicit'] = (value == 'yes') and 1 or 0 if _XML_AVAILABLE: class _StrictFeedParser(_FeedParserMixin, xml.sax.handler.ContentHandler): def __init__(self, baseuri, baselang, encoding): if _debug: sys.stderr.write('trying StrictFeedParser\n') xml.sax.handler.ContentHandler.__init__(self) _FeedParserMixin.__init__(self, baseuri, baselang, encoding) self.bozo = 0 self.exc = None def startPrefixMapping(self, prefix, uri): self.trackNamespace(prefix, uri) def startElementNS(self, name, qname, attrs): namespace, localname = name lowernamespace = str(namespace or '').lower() if lowernamespace.find('backend.userland.com/rss') <> -1: # match any backend.userland.com namespace namespace = 'http://backend.userland.com/rss' lowernamespace = namespace if qname and qname.find(':') > 0: givenprefix = qname.split(':')[0] else: givenprefix = None prefix = self._matchnamespaces.get(lowernamespace, givenprefix) if givenprefix and (prefix == None or (prefix == '' and lowernamespace == '')) and not self.namespacesInUse.has_key(givenprefix): raise UndeclaredNamespace, "'%s' is not associated with a namespace" % givenprefix if prefix: localname = prefix + ':' + localname localname = str(localname).lower() if _debug: sys.stderr.write('startElementNS: qname = %s, namespace = %s, givenprefix = %s, prefix = %s, attrs = %s, localname = %s\n' % (qname, namespace, givenprefix, prefix, attrs.items(), localname)) # qname implementation is horribly broken in Python 2.1 (it # doesn't report any), and slightly broken in Python 2.2 (it # doesn't report the xml: namespace). So we match up namespaces # with a known list first, and then possibly override them with # the qnames the SAX parser gives us (if indeed it gives us any # at all). Thanks to MatejC for helping me test this and # tirelessly telling me that it didn't work yet. attrsD = {} for (namespace, attrlocalname), attrvalue in attrs._attrs.items(): lowernamespace = (namespace or '').lower() prefix = self._matchnamespaces.get(lowernamespace, '') if prefix: attrlocalname = prefix + ':' + attrlocalname attrsD[str(attrlocalname).lower()] = attrvalue for qname in attrs.getQNames(): attrsD[str(qname).lower()] = attrs.getValueByQName(qname) self.unknown_starttag(localname, attrsD.items()) def characters(self, text): self.handle_data(text) def endElementNS(self, name, qname): namespace, localname = name lowernamespace = str(namespace or '').lower() if qname and qname.find(':') > 0: givenprefix = qname.split(':')[0] else: givenprefix = '' prefix = self._matchnamespaces.get(lowernamespace, givenprefix) if prefix: localname = prefix + ':' + localname localname = str(localname).lower() self.unknown_endtag(localname) def error(self, exc): self.bozo = 1 self.exc = exc def fatalError(self, exc): self.error(exc) raise exc class _BaseHTMLProcessor(sgmllib.SGMLParser): elements_no_end_tag = ['area', 'base', 'basefont', 'br', 'col', 'frame', 'hr', 'img', 'input', 'isindex', 'link', 'meta', 'param'] def __init__(self, encoding): self.encoding = encoding if _debug: sys.stderr.write('entering BaseHTMLProcessor, encoding=%s\n' % self.encoding) sgmllib.SGMLParser.__init__(self) def reset(self): self.pieces = [] sgmllib.SGMLParser.reset(self) def _shorttag_replace(self, match): tag = match.group(1) if tag in self.elements_no_end_tag: return '<' + tag + ' />' else: return '<' + tag + '>' def feed(self, data): data = re.compile(r'', self._shorttag_replace, data) # bug [ 1399464 ] Bad regexp for _shorttag_replace data = re.sub(r'<([^<\s]+?)\s*/>', self._shorttag_replace, data) data = data.replace(''', "'") data = data.replace('"', '"') if self.encoding and type(data) == type(u''): data = data.encode(self.encoding) sgmllib.SGMLParser.feed(self, data) def normalize_attrs(self, attrs): # utility method to be called by descendants attrs = [(k.lower(), v) for k, v in attrs] attrs = [(k, k in ('rel', 'type') and v.lower() or v) for k, v in attrs] return attrs def unknown_starttag(self, tag, attrs): # called for each start tag # attrs is a list of (attr, value) tuples # e.g. for
, tag='pre', attrs=[('class', 'screen')]
        if _debug: sys.stderr.write('_BaseHTMLProcessor, unknown_starttag, tag=%s\n' % tag)
        uattrs = []
        # thanks to Kevin Marks for this breathtaking hack to deal with (valid) high-bit attribute values in UTF-8 feeds
        for key, value in attrs:
            if type(value) != type(u''):
                value = unicode(value, self.encoding)
            uattrs.append((unicode(key, self.encoding), value))
        strattrs = u''.join([u' %s="%s"' % (key, value) for key, value in uattrs]).encode(self.encoding)
        if tag in self.elements_no_end_tag:
            self.pieces.append('<%(tag)s%(strattrs)s />' % locals())
        else:
            self.pieces.append('<%(tag)s%(strattrs)s>' % locals())

    def unknown_endtag(self, tag):
        # called for each end tag, e.g. for 
, tag will be 'pre' # Reconstruct the original end tag. if tag not in self.elements_no_end_tag: self.pieces.append("" % locals()) def handle_charref(self, ref): # called for each character reference, e.g. for ' ', ref will be '160' # Reconstruct the original character reference. self.pieces.append('&#%(ref)s;' % locals()) def handle_entityref(self, ref): # called for each entity reference, e.g. for '©', ref will be 'copy' # Reconstruct the original entity reference. self.pieces.append('&%(ref)s;' % locals()) def handle_data(self, text): # called for each block of plain text, i.e. outside of any tag and # not containing any character or entity references # Store the original text verbatim. if _debug: sys.stderr.write('_BaseHTMLProcessor, handle_text, text=%s\n' % text) self.pieces.append(text) def handle_comment(self, text): # called for each HTML comment, e.g. # Reconstruct the original comment. self.pieces.append('' % locals()) def handle_pi(self, text): # called for each processing instruction, e.g. # Reconstruct original processing instruction. self.pieces.append('' % locals()) def handle_decl(self, text): # called for the DOCTYPE, if present, e.g. # # Reconstruct original DOCTYPE self.pieces.append('' % locals()) _new_declname_match = re.compile(r'[a-zA-Z][-_.a-zA-Z0-9:]*\s*').match def _scan_name(self, i, declstartpos): rawdata = self.rawdata n = len(rawdata) if i == n: return None, -1 m = self._new_declname_match(rawdata, i) if m: s = m.group() name = s.strip() if (i + len(s)) == n: return None, -1 # end of buffer return name.lower(), m.end() else: self.handle_data(rawdata) # self.updatepos(declstartpos, i) return None, -1 def output(self): '''Return processed HTML as a single string''' return ''.join([str(p) for p in self.pieces]) class _LooseFeedParser(_FeedParserMixin, _BaseHTMLProcessor): def __init__(self, baseuri, baselang, encoding): sgmllib.SGMLParser.__init__(self) _FeedParserMixin.__init__(self, baseuri, baselang, encoding) def decodeEntities(self, element, data): data = data.replace('<', '<') data = data.replace('<', '<') data = data.replace('>', '>') data = data.replace('>', '>') data = data.replace('&', '&') data = data.replace('&', '&') data = data.replace('"', '"') data = data.replace('"', '"') data = data.replace(''', ''') data = data.replace(''', ''') if self.contentparams.has_key('type') and not self.contentparams.get('type', 'xml').endswith('xml'): data = data.replace('<', '<') data = data.replace('>', '>') data = data.replace('&', '&') data = data.replace('"', '"') data = data.replace(''', "'") return data class _RelativeURIResolver(_BaseHTMLProcessor): relative_uris = [('a', 'href'), ('applet', 'codebase'), ('area', 'href'), ('blockquote', 'cite'), ('body', 'background'), ('del', 'cite'), ('form', 'action'), ('frame', 'longdesc'), ('frame', 'src'), ('iframe', 'longdesc'), ('iframe', 'src'), ('head', 'profile'), ('img', 'longdesc'), ('img', 'src'), ('img', 'usemap'), ('input', 'src'), ('input', 'usemap'), ('ins', 'cite'), ('link', 'href'), ('object', 'classid'), ('object', 'codebase'), ('object', 'data'), ('object', 'usemap'), ('q', 'cite'), ('script', 'src')] def __init__(self, baseuri, encoding): _BaseHTMLProcessor.__init__(self, encoding) self.baseuri = baseuri def resolveURI(self, uri): return _urljoin(self.baseuri, uri) def unknown_starttag(self, tag, attrs): attrs = self.normalize_attrs(attrs) attrs = [(key, ((tag, key) in self.relative_uris) and self.resolveURI(value) or value) for key, value in attrs] _BaseHTMLProcessor.unknown_starttag(self, tag, attrs) def _resolveRelativeURIs(htmlSource, baseURI, encoding): if _debug: sys.stderr.write('entering _resolveRelativeURIs\n') p = _RelativeURIResolver(baseURI, encoding) p.feed(htmlSource) return p.output() class _HTMLSanitizer(_BaseHTMLProcessor): acceptable_elements = ['a', 'abbr', 'acronym', 'address', 'area', 'b', 'big', 'blockquote', 'br', 'button', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'dd', 'del', 'dfn', 'dir', 'div', 'dl', 'dt', 'em', 'fieldset', 'font', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hr', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'map', 'menu', 'ol', 'optgroup', 'option', 'p', 'pre', 'q', 's', 'samp', 'select', 'small', 'span', 'strike', 'strong', 'sub', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'tr', 'tt', 'u', 'ul', 'var'] acceptable_attributes = ['abbr', 'accept', 'accept-charset', 'accesskey', 'action', 'align', 'alt', 'axis', 'border', 'cellpadding', 'cellspacing', 'char', 'charoff', 'charset', 'checked', 'cite', 'class', 'clear', 'cols', 'colspan', 'color', 'compact', 'coords', 'datetime', 'dir', 'disabled', 'enctype', 'for', 'frame', 'headers', 'height', 'href', 'hreflang', 'hspace', 'id', 'ismap', 'label', 'lang', 'longdesc', 'maxlength', 'media', 'method', 'multiple', 'name', 'nohref', 'noshade', 'nowrap', 'prompt', 'readonly', 'rel', 'rev', 'rows', 'rowspan', 'rules', 'scope', 'selected', 'shape', 'size', 'span', 'src', 'start', 'summary', 'tabindex', 'target', 'title', 'type', 'usemap', 'valign', 'value', 'vspace', 'width'] unacceptable_elements_with_end_tag = ['script', 'applet'] def reset(self): _BaseHTMLProcessor.reset(self) self.unacceptablestack = 0 def unknown_starttag(self, tag, attrs): if not tag in self.acceptable_elements: if tag in self.unacceptable_elements_with_end_tag: self.unacceptablestack += 1 return attrs = self.normalize_attrs(attrs) attrs = [(key, value) for key, value in attrs if key in self.acceptable_attributes] _BaseHTMLProcessor.unknown_starttag(self, tag, attrs) def unknown_endtag(self, tag): if not tag in self.acceptable_elements: if tag in self.unacceptable_elements_with_end_tag: self.unacceptablestack -= 1 return _BaseHTMLProcessor.unknown_endtag(self, tag) def handle_pi(self, text): pass def handle_decl(self, text): pass def handle_data(self, text): if not self.unacceptablestack: _BaseHTMLProcessor.handle_data(self, text) def _sanitizeHTML(htmlSource, encoding): p = _HTMLSanitizer(encoding) p.feed(htmlSource) data = p.output() if TIDY_MARKUP: # loop through list of preferred Tidy interfaces looking for one that's installed, # then set up a common _tidy function to wrap the interface-specific API. _tidy = None for tidy_interface in PREFERRED_TIDY_INTERFACES: try: if tidy_interface == "uTidy": from tidy import parseString as _utidy def _tidy(data, **kwargs): return str(_utidy(data, **kwargs)) break elif tidy_interface == "mxTidy": from mx.Tidy import Tidy as _mxtidy def _tidy(data, **kwargs): nerrors, nwarnings, data, errordata = _mxtidy.tidy(data, **kwargs) return data break except: pass if _tidy: utf8 = type(data) == type(u'') if utf8: data = data.encode('utf-8') data = _tidy(data, output_xhtml=1, numeric_entities=1, wrap=0, char_encoding="utf8") if utf8: data = unicode(data, 'utf-8') if data.count(''): data = data.split('>', 1)[1] if data.count('= '2.3.3' assert base64 != None user, passw = base64.decodestring(req.headers['Authorization'].split(' ')[1]).split(':') realm = re.findall('realm="([^"]*)"', headers['WWW-Authenticate'])[0] self.add_password(realm, host, user, passw) retry = self.http_error_auth_reqed('www-authenticate', host, req, headers) self.reset_retry_count() return retry except: return self.http_error_default(req, fp, code, msg, headers) def _open_resource(url_file_stream_or_string, etag, modified, agent, referrer, handlers): """URL, filename, or string --> stream This function lets you define parsers that take any input source (URL, pathname to local or network file, or actual data as a string) and deal with it in a uniform manner. Returned object is guaranteed to have all the basic stdio read methods (read, readline, readlines). Just .close() the object when you're done with it. If the etag argument is supplied, it will be used as the value of an If-None-Match request header. If the modified argument is supplied, it must be a tuple of 9 integers as returned by gmtime() in the standard Python time module. This MUST be in GMT (Greenwich Mean Time). The formatted date/time will be used as the value of an If-Modified-Since request header. If the agent argument is supplied, it will be used as the value of a User-Agent request header. If the referrer argument is supplied, it will be used as the value of a Referer[sic] request header. If handlers is supplied, it is a list of handlers used to build a urllib2 opener. """ if hasattr(url_file_stream_or_string, 'read'): return url_file_stream_or_string if url_file_stream_or_string == '-': return sys.stdin if urlparse.urlparse(url_file_stream_or_string)[0] in ('http', 'https', 'ftp'): if not agent: agent = USER_AGENT # test for inline user:password for basic auth auth = None if base64: urltype, rest = urllib.splittype(url_file_stream_or_string) realhost, rest = urllib.splithost(rest) if realhost: user_passwd, realhost = urllib.splituser(realhost) if user_passwd: url_file_stream_or_string = '%s://%s%s' % (urltype, realhost, rest) auth = base64.encodestring(user_passwd).strip() # try to open with urllib2 (to use optional headers) request = urllib2.Request(url_file_stream_or_string) request.add_header('User-Agent', agent) if etag: request.add_header('If-None-Match', etag) if modified: # format into an RFC 1123-compliant timestamp. We can't use # time.strftime() since the %a and %b directives can be affected # by the current locale, but RFC 2616 states that dates must be # in English. short_weekdays = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] request.add_header('If-Modified-Since', '%s, %02d %s %04d %02d:%02d:%02d GMT' % (short_weekdays[modified[6]], modified[2], months[modified[1] - 1], modified[0], modified[3], modified[4], modified[5])) if referrer: request.add_header('Referer', referrer) if gzip and zlib: request.add_header('Accept-encoding', 'gzip, deflate') elif gzip: request.add_header('Accept-encoding', 'gzip') elif zlib: request.add_header('Accept-encoding', 'deflate') else: request.add_header('Accept-encoding', '') if auth: request.add_header('Authorization', 'Basic %s' % auth) if ACCEPT_HEADER: request.add_header('Accept', ACCEPT_HEADER) request.add_header('A-IM', 'feed') # RFC 3229 support opener = apply(urllib2.build_opener, tuple([_FeedURLHandler()] + handlers)) opener.addheaders = [] # RMK - must clear so we only send our custom User-Agent try: return opener.open(request) finally: opener.close() # JohnD # try to open with native open function (if url_file_stream_or_string is a filename) try: return open(url_file_stream_or_string) except: pass # treat url_file_stream_or_string as string return _StringIO(str(url_file_stream_or_string)) _date_handlers = [] def registerDateHandler(func): '''Register a date handler function (takes string, returns 9-tuple date in GMT)''' _date_handlers.insert(0, func) # ISO-8601 date parsing routines written by Fazal Majid. # The ISO 8601 standard is very convoluted and irregular - a full ISO 8601 # parser is beyond the scope of feedparser and would be a worthwhile addition # to the Python library. # A single regular expression cannot parse ISO 8601 date formats into groups # as the standard is highly irregular (for instance is 030104 2003-01-04 or # 0301-04-01), so we use templates instead. # Please note the order in templates is significant because we need a # greedy match. _iso8601_tmpl = ['YYYY-?MM-?DD', 'YYYY-MM', 'YYYY-?OOO', 'YY-?MM-?DD', 'YY-?OOO', 'YYYY', '-YY-?MM', '-OOO', '-YY', '--MM-?DD', '--MM', '---DD', 'CC', ''] _iso8601_re = [ tmpl.replace( 'YYYY', r'(?P\d{4})').replace( 'YY', r'(?P\d\d)').replace( 'MM', r'(?P[01]\d)').replace( 'DD', r'(?P[0123]\d)').replace( 'OOO', r'(?P[0123]\d\d)').replace( 'CC', r'(?P\d\d$)') + r'(T?(?P\d{2}):(?P\d{2})' + r'(:(?P\d{2}))?' + r'(?P[+-](?P\d{2})(:(?P\d{2}))?|Z)?)?' for tmpl in _iso8601_tmpl] del tmpl _iso8601_matches = [re.compile(regex).match for regex in _iso8601_re] del regex def _parse_date_iso8601(dateString): '''Parse a variety of ISO-8601-compatible formats like 20040105''' m = None for _iso8601_match in _iso8601_matches: m = _iso8601_match(dateString) if m: break if not m: return if m.span() == (0, 0): return params = m.groupdict() ordinal = params.get('ordinal', 0) if ordinal: ordinal = int(ordinal) else: ordinal = 0 year = params.get('year', '--') if not year or year == '--': year = time.gmtime()[0] elif len(year) == 2: # ISO 8601 assumes current century, i.e. 93 -> 2093, NOT 1993 year = 100 * int(time.gmtime()[0] / 100) + int(year) else: year = int(year) month = params.get('month', '-') if not month or month == '-': # ordinals are NOT normalized by mktime, we simulate them # by setting month=1, day=ordinal if ordinal: month = 1 else: month = time.gmtime()[1] month = int(month) day = params.get('day', 0) if not day: # see above if ordinal: day = ordinal elif params.get('century', 0) or \ params.get('year', 0) or params.get('month', 0): day = 1 else: day = time.gmtime()[2] else: day = int(day) # special case of the century - is the first year of the 21st century # 2000 or 2001 ? The debate goes on... if 'century' in params.keys(): year = (int(params['century']) - 1) * 100 + 1 # in ISO 8601 most fields are optional for field in ['hour', 'minute', 'second', 'tzhour', 'tzmin']: if not params.get(field, None): params[field] = 0 hour = int(params.get('hour', 0)) minute = int(params.get('minute', 0)) second = int(params.get('second', 0)) # weekday is normalized by mktime(), we can ignore it weekday = 0 # daylight savings is complex, but not needed for feedparser's purposes # as time zones, if specified, include mention of whether it is active # (e.g. PST vs. PDT, CET). Using -1 is implementation-dependent and # and most implementations have DST bugs daylight_savings_flag = 0 tm = [year, month, day, hour, minute, second, weekday, ordinal, daylight_savings_flag] # ISO 8601 time zone adjustments tz = params.get('tz') if tz and tz != 'Z': if tz[0] == '-': tm[3] += int(params.get('tzhour', 0)) tm[4] += int(params.get('tzmin', 0)) elif tz[0] == '+': tm[3] -= int(params.get('tzhour', 0)) tm[4] -= int(params.get('tzmin', 0)) else: return None # Python's time.mktime() is a wrapper around the ANSI C mktime(3c) # which is guaranteed to normalize d/m/y/h/m/s. # Many implementations have bugs, but we'll pretend they don't. return time.localtime(time.mktime(tm)) registerDateHandler(_parse_date_iso8601) # 8-bit date handling routines written by ytrewq1. _korean_year = u'\ub144' # b3e2 in euc-kr _korean_month = u'\uc6d4' # bff9 in euc-kr _korean_day = u'\uc77c' # c0cf in euc-kr _korean_am = u'\uc624\uc804' # bfc0 c0fc in euc-kr _korean_pm = u'\uc624\ud6c4' # bfc0 c8c4 in euc-kr _korean_onblog_date_re = \ re.compile('(\d{4})%s\s+(\d{2})%s\s+(\d{2})%s\s+(\d{2}):(\d{2}):(\d{2})' % \ (_korean_year, _korean_month, _korean_day)) _korean_nate_date_re = \ re.compile(u'(\d{4})-(\d{2})-(\d{2})\s+(%s|%s)\s+(\d{,2}):(\d{,2}):(\d{,2})' % \ (_korean_am, _korean_pm)) def _parse_date_onblog(dateString): '''Parse a string according to the OnBlog 8-bit date format''' m = _korean_onblog_date_re.match(dateString) if not m: return w3dtfdate = '%(year)s-%(month)s-%(day)sT%(hour)s:%(minute)s:%(second)s%(zonediff)s' % \ {'year': m.group(1), 'month': m.group(2), 'day': m.group(3),\ 'hour': m.group(4), 'minute': m.group(5), 'second': m.group(6),\ 'zonediff': '+09:00'} if _debug: sys.stderr.write('OnBlog date parsed as: %s\n' % w3dtfdate) return _parse_date_w3dtf(w3dtfdate) registerDateHandler(_parse_date_onblog) def _parse_date_nate(dateString): '''Parse a string according to the Nate 8-bit date format''' m = _korean_nate_date_re.match(dateString) if not m: return hour = int(m.group(5)) ampm = m.group(4) if (ampm == _korean_pm): hour += 12 hour = str(hour) if len(hour) == 1: hour = '0' + hour w3dtfdate = '%(year)s-%(month)s-%(day)sT%(hour)s:%(minute)s:%(second)s%(zonediff)s' % \ {'year': m.group(1), 'month': m.group(2), 'day': m.group(3),\ 'hour': hour, 'minute': m.group(6), 'second': m.group(7),\ 'zonediff': '+09:00'} if _debug: sys.stderr.write('Nate date parsed as: %s\n' % w3dtfdate) return _parse_date_w3dtf(w3dtfdate) registerDateHandler(_parse_date_nate) _mssql_date_re = \ re.compile('(\d{4})-(\d{2})-(\d{2})\s+(\d{2}):(\d{2}):(\d{2})(\.\d+)?') def _parse_date_mssql(dateString): '''Parse a string according to the MS SQL date format''' m = _mssql_date_re.match(dateString) if not m: return w3dtfdate = '%(year)s-%(month)s-%(day)sT%(hour)s:%(minute)s:%(second)s%(zonediff)s' % \ {'year': m.group(1), 'month': m.group(2), 'day': m.group(3),\ 'hour': m.group(4), 'minute': m.group(5), 'second': m.group(6),\ 'zonediff': '+09:00'} if _debug: sys.stderr.write('MS SQL date parsed as: %s\n' % w3dtfdate) return _parse_date_w3dtf(w3dtfdate) registerDateHandler(_parse_date_mssql) # Unicode strings for Greek date strings _greek_months = \ { \ u'\u0399\u03b1\u03bd': u'Jan', # c9e1ed in iso-8859-7 u'\u03a6\u03b5\u03b2': u'Feb', # d6e5e2 in iso-8859-7 u'\u039c\u03ac\u03ce': u'Mar', # ccdcfe in iso-8859-7 u'\u039c\u03b1\u03ce': u'Mar', # cce1fe in iso-8859-7 u'\u0391\u03c0\u03c1': u'Apr', # c1f0f1 in iso-8859-7 u'\u039c\u03ac\u03b9': u'May', # ccdce9 in iso-8859-7 u'\u039c\u03b1\u03ca': u'May', # cce1fa in iso-8859-7 u'\u039c\u03b1\u03b9': u'May', # cce1e9 in iso-8859-7 u'\u0399\u03bf\u03cd\u03bd': u'Jun', # c9effded in iso-8859-7 u'\u0399\u03bf\u03bd': u'Jun', # c9efed in iso-8859-7 u'\u0399\u03bf\u03cd\u03bb': u'Jul', # c9effdeb in iso-8859-7 u'\u0399\u03bf\u03bb': u'Jul', # c9f9eb in iso-8859-7 u'\u0391\u03cd\u03b3': u'Aug', # c1fde3 in iso-8859-7 u'\u0391\u03c5\u03b3': u'Aug', # c1f5e3 in iso-8859-7 u'\u03a3\u03b5\u03c0': u'Sep', # d3e5f0 in iso-8859-7 u'\u039f\u03ba\u03c4': u'Oct', # cfeaf4 in iso-8859-7 u'\u039d\u03bf\u03ad': u'Nov', # cdefdd in iso-8859-7 u'\u039d\u03bf\u03b5': u'Nov', # cdefe5 in iso-8859-7 u'\u0394\u03b5\u03ba': u'Dec', # c4e5ea in iso-8859-7 } _greek_wdays = \ { \ u'\u039a\u03c5\u03c1': u'Sun', # caf5f1 in iso-8859-7 u'\u0394\u03b5\u03c5': u'Mon', # c4e5f5 in iso-8859-7 u'\u03a4\u03c1\u03b9': u'Tue', # d4f1e9 in iso-8859-7 u'\u03a4\u03b5\u03c4': u'Wed', # d4e5f4 in iso-8859-7 u'\u03a0\u03b5\u03bc': u'Thu', # d0e5ec in iso-8859-7 u'\u03a0\u03b1\u03c1': u'Fri', # d0e1f1 in iso-8859-7 u'\u03a3\u03b1\u03b2': u'Sat', # d3e1e2 in iso-8859-7 } _greek_date_format_re = \ re.compile(u'([^,]+),\s+(\d{2})\s+([^\s]+)\s+(\d{4})\s+(\d{2}):(\d{2}):(\d{2})\s+([^\s]+)') def _parse_date_greek(dateString): '''Parse a string according to a Greek 8-bit date format.''' m = _greek_date_format_re.match(dateString) if not m: return try: wday = _greek_wdays[m.group(1)] month = _greek_months[m.group(3)] except: return rfc822date = '%(wday)s, %(day)s %(month)s %(year)s %(hour)s:%(minute)s:%(second)s %(zonediff)s' % \ {'wday': wday, 'day': m.group(2), 'month': month, 'year': m.group(4),\ 'hour': m.group(5), 'minute': m.group(6), 'second': m.group(7),\ 'zonediff': m.group(8)} if _debug: sys.stderr.write('Greek date parsed as: %s\n' % rfc822date) return _parse_date_rfc822(rfc822date) registerDateHandler(_parse_date_greek) # Unicode strings for Hungarian date strings _hungarian_months = \ { \ u'janu\u00e1r': u'01', # e1 in iso-8859-2 u'febru\u00e1ri': u'02', # e1 in iso-8859-2 u'm\u00e1rcius': u'03', # e1 in iso-8859-2 u'\u00e1prilis': u'04', # e1 in iso-8859-2 u'm\u00e1ujus': u'05', # e1 in iso-8859-2 u'j\u00fanius': u'06', # fa in iso-8859-2 u'j\u00falius': u'07', # fa in iso-8859-2 u'augusztus': u'08', u'szeptember': u'09', u'okt\u00f3ber': u'10', # f3 in iso-8859-2 u'november': u'11', u'december': u'12', } _hungarian_date_format_re = \ re.compile(u'(\d{4})-([^-]+)-(\d{,2})T(\d{,2}):(\d{2})((\+|-)(\d{,2}:\d{2}))') def _parse_date_hungarian(dateString): '''Parse a string according to a Hungarian 8-bit date format.''' m = _hungarian_date_format_re.match(dateString) if not m: return try: month = _hungarian_months[m.group(2)] day = m.group(3) if len(day) == 1: day = '0' + day hour = m.group(4) if len(hour) == 1: hour = '0' + hour except: return w3dtfdate = '%(year)s-%(month)s-%(day)sT%(hour)s:%(minute)s%(zonediff)s' % \ {'year': m.group(1), 'month': month, 'day': day,\ 'hour': hour, 'minute': m.group(5),\ 'zonediff': m.group(6)} if _debug: sys.stderr.write('Hungarian date parsed as: %s\n' % w3dtfdate) return _parse_date_w3dtf(w3dtfdate) registerDateHandler(_parse_date_hungarian) # W3DTF-style date parsing adapted from PyXML xml.utils.iso8601, written by # Drake and licensed under the Python license. Removed all range checking # for month, day, hour, minute, and second, since mktime will normalize # these later def _parse_date_w3dtf(dateString): def __extract_date(m): year = int(m.group('year')) if year < 100: year = 100 * int(time.gmtime()[0] / 100) + int(year) if year < 1000: return 0, 0, 0 julian = m.group('julian') if julian: julian = int(julian) month = julian / 30 + 1 day = julian % 30 + 1 jday = None while jday != julian: t = time.mktime((year, month, day, 0, 0, 0, 0, 0, 0)) jday = time.gmtime(t)[-2] diff = abs(jday - julian) if jday > julian: if diff < day: day = day - diff else: month = month - 1 day = 31 elif jday < julian: if day + diff < 28: day = day + diff else: month = month + 1 return year, month, day month = m.group('month') day = 1 if month is None: month = 1 else: month = int(month) day = m.group('day') if day: day = int(day) else: day = 1 return year, month, day def __extract_time(m): if not m: return 0, 0, 0 hours = m.group('hours') if not hours: return 0, 0, 0 hours = int(hours) minutes = int(m.group('minutes')) seconds = m.group('seconds') if seconds: seconds = int(seconds) else: seconds = 0 return hours, minutes, seconds def __extract_tzd(m): '''Return the Time Zone Designator as an offset in seconds from UTC.''' if not m: return 0 tzd = m.group('tzd') if not tzd: return 0 if tzd == 'Z': return 0 hours = int(m.group('tzdhours')) minutes = m.group('tzdminutes') if minutes: minutes = int(minutes) else: minutes = 0 offset = (hours*60 + minutes) * 60 if tzd[0] == '+': return -offset return offset __date_re = ('(?P\d\d\d\d)' '(?:(?P-|)' '(?:(?P\d\d\d)' '|(?P\d\d)(?:(?P=dsep)(?P\d\d))?))?') __tzd_re = '(?P[-+](?P\d\d)(?::?(?P\d\d))|Z)' __tzd_rx = re.compile(__tzd_re) __time_re = ('(?P\d\d)(?P:|)(?P\d\d)' '(?:(?P=tsep)(?P\d\d(?:[.,]\d+)?))?' + __tzd_re) __datetime_re = '%s(?:T%s)?' % (__date_re, __time_re) __datetime_rx = re.compile(__datetime_re) m = __datetime_rx.match(dateString) if (m is None) or (m.group() != dateString): return gmt = __extract_date(m) + __extract_time(m) + (0, 0, 0) if gmt[0] == 0: return return time.gmtime(time.mktime(gmt) + __extract_tzd(m) - time.timezone) registerDateHandler(_parse_date_w3dtf) def _parse_date_rfc822(dateString): '''Parse an RFC822, RFC1123, RFC2822, or asctime-style date''' data = dateString.split() if data[0][-1] in (',', '.') or data[0].lower() in rfc822._daynames: del data[0] if len(data) == 4: s = data[3] i = s.find('+') if i > 0: data[3:] = [s[:i], s[i+1:]] else: data.append('') dateString = " ".join(data) if len(data) < 5: dateString += ' 00:00:00 GMT' tm = rfc822.parsedate_tz(dateString) if tm: return time.gmtime(rfc822.mktime_tz(tm)) # rfc822.py defines several time zones, but we define some extra ones. # 'ET' is equivalent to 'EST', etc. _additional_timezones = {'AT': -400, 'ET': -500, 'CT': -600, 'MT': -700, 'PT': -800} rfc822._timezones.update(_additional_timezones) registerDateHandler(_parse_date_rfc822) def _parse_date(dateString): '''Parses a variety of date formats into a 9-tuple in GMT''' for handler in _date_handlers: try: date9tuple = handler(dateString) if not date9tuple: continue if len(date9tuple) != 9: if _debug: sys.stderr.write('date handler function must return 9-tuple\n') raise ValueError map(int, date9tuple) return date9tuple except Exception, e: if _debug: sys.stderr.write('%s raised %s\n' % (handler.__name__, repr(e))) pass return None def _getCharacterEncoding(http_headers, xml_data): '''Get the character encoding of the XML document http_headers is a dictionary xml_data is a raw string (not Unicode) This is so much trickier than it sounds, it's not even funny. According to RFC 3023 ('XML Media Types'), if the HTTP Content-Type is application/xml, application/*+xml, application/xml-external-parsed-entity, or application/xml-dtd, the encoding given in the charset parameter of the HTTP Content-Type takes precedence over the encoding given in the XML prefix within the document, and defaults to 'utf-8' if neither are specified. But, if the HTTP Content-Type is text/xml, text/*+xml, or text/xml-external-parsed-entity, the encoding given in the XML prefix within the document is ALWAYS IGNORED and only the encoding given in the charset parameter of the HTTP Content-Type header should be respected, and it defaults to 'us-ascii' if not specified. Furthermore, discussion on the atom-syntax mailing list with the author of RFC 3023 leads me to the conclusion that any document served with a Content-Type of text/* and no charset parameter must be treated as us-ascii. (We now do this.) And also that it must always be flagged as non-well-formed. (We now do this too.) If Content-Type is unspecified (input was local file or non-HTTP source) or unrecognized (server just got it totally wrong), then go by the encoding given in the XML prefix of the document and default to 'iso-8859-1' as per the HTTP specification (RFC 2616). Then, assuming we didn't find a character encoding in the HTTP headers (and the HTTP Content-type allowed us to look in the body), we need to sniff the first few bytes of the XML data and try to determine whether the encoding is ASCII-compatible. Section F of the XML specification shows the way here: http://www.w3.org/TR/REC-xml/#sec-guessing-no-ext-info If the sniffed encoding is not ASCII-compatible, we need to make it ASCII compatible so that we can sniff further into the XML declaration to find the encoding attribute, which will tell us the true encoding. Of course, none of this guarantees that we will be able to parse the feed in the declared character encoding (assuming it was declared correctly, which many are not). CJKCodecs and iconv_codec help a lot; you should definitely install them if you can. http://cjkpython.i18n.org/ ''' def _parseHTTPContentType(content_type): '''takes HTTP Content-Type header and returns (content type, charset) If no charset is specified, returns (content type, '') If no content type is specified, returns ('', '') Both return parameters are guaranteed to be lowercase strings ''' content_type = content_type or '' content_type, params = cgi.parse_header(content_type) return content_type, params.get('charset', '').replace("'", '') sniffed_xml_encoding = '' xml_encoding = '' true_encoding = '' http_content_type, http_encoding = _parseHTTPContentType(http_headers.get('content-type')) # Must sniff for non-ASCII-compatible character encodings before # searching for XML declaration. This heuristic is defined in # section F of the XML specification: # http://www.w3.org/TR/REC-xml/#sec-guessing-no-ext-info try: if xml_data[:4] == '\x4c\x6f\xa7\x94': # EBCDIC xml_data = _ebcdic_to_ascii(xml_data) elif xml_data[:4] == '\x00\x3c\x00\x3f': # UTF-16BE sniffed_xml_encoding = 'utf-16be' xml_data = unicode(xml_data, 'utf-16be').encode('utf-8') elif (len(xml_data) >= 4) and (xml_data[:2] == '\xfe\xff') and (xml_data[2:4] != '\x00\x00'): # UTF-16BE with BOM sniffed_xml_encoding = 'utf-16be' xml_data = unicode(xml_data[2:], 'utf-16be').encode('utf-8') elif xml_data[:4] == '\x3c\x00\x3f\x00': # UTF-16LE sniffed_xml_encoding = 'utf-16le' xml_data = unicode(xml_data, 'utf-16le').encode('utf-8') elif (len(xml_data) >= 4) and (xml_data[:2] == '\xff\xfe') and (xml_data[2:4] != '\x00\x00'): # UTF-16LE with BOM sniffed_xml_encoding = 'utf-16le' xml_data = unicode(xml_data[2:], 'utf-16le').encode('utf-8') elif xml_data[:4] == '\x00\x00\x00\x3c': # UTF-32BE sniffed_xml_encoding = 'utf-32be' xml_data = unicode(xml_data, 'utf-32be').encode('utf-8') elif xml_data[:4] == '\x3c\x00\x00\x00': # UTF-32LE sniffed_xml_encoding = 'utf-32le' xml_data = unicode(xml_data, 'utf-32le').encode('utf-8') elif xml_data[:4] == '\x00\x00\xfe\xff': # UTF-32BE with BOM sniffed_xml_encoding = 'utf-32be' xml_data = unicode(xml_data[4:], 'utf-32be').encode('utf-8') elif xml_data[:4] == '\xff\xfe\x00\x00': # UTF-32LE with BOM sniffed_xml_encoding = 'utf-32le' xml_data = unicode(xml_data[4:], 'utf-32le').encode('utf-8') elif xml_data[:3] == '\xef\xbb\xbf': # UTF-8 with BOM sniffed_xml_encoding = 'utf-8' xml_data = unicode(xml_data[3:], 'utf-8').encode('utf-8') else: # ASCII-compatible pass xml_encoding_match = re.compile('^<\?.*encoding=[\'"](.*?)[\'"].*\?>').match(xml_data) except: xml_encoding_match = None if xml_encoding_match: xml_encoding = xml_encoding_match.groups()[0].lower() if sniffed_xml_encoding and (xml_encoding in ('iso-10646-ucs-2', 'ucs-2', 'csunicode', 'iso-10646-ucs-4', 'ucs-4', 'csucs4', 'utf-16', 'utf-32', 'utf_16', 'utf_32', 'utf16', 'u16')): xml_encoding = sniffed_xml_encoding acceptable_content_type = 0 application_content_types = ('application/xml', 'application/xml-dtd', 'application/xml-external-parsed-entity') text_content_types = ('text/xml', 'text/xml-external-parsed-entity') if (http_content_type in application_content_types) or \ (http_content_type.startswith('application/') and http_content_type.endswith('+xml')): acceptable_content_type = 1 true_encoding = http_encoding or xml_encoding or 'utf-8' elif (http_content_type in text_content_types) or \ (http_content_type.startswith('text/')) and http_content_type.endswith('+xml'): acceptable_content_type = 1 true_encoding = http_encoding or 'us-ascii' elif http_content_type.startswith('text/'): true_encoding = http_encoding or 'us-ascii' elif http_headers and (not http_headers.has_key('content-type')): true_encoding = xml_encoding or 'iso-8859-1' else: true_encoding = xml_encoding or 'utf-8' return true_encoding, http_encoding, xml_encoding, sniffed_xml_encoding, acceptable_content_type def _toUTF8(data, encoding): '''Changes an XML data stream on the fly to specify a new encoding data is a raw sequence of bytes (not Unicode) that is presumed to be in %encoding already encoding is a string recognized by encodings.aliases ''' if _debug: sys.stderr.write('entering _toUTF8, trying encoding %s\n' % encoding) # strip Byte Order Mark (if present) if (len(data) >= 4) and (data[:2] == '\xfe\xff') and (data[2:4] != '\x00\x00'): if _debug: sys.stderr.write('stripping BOM\n') if encoding != 'utf-16be': sys.stderr.write('trying utf-16be instead\n') encoding = 'utf-16be' data = data[2:] elif (len(data) >= 4) and (data[:2] == '\xff\xfe') and (data[2:4] != '\x00\x00'): if _debug: sys.stderr.write('stripping BOM\n') if encoding != 'utf-16le': sys.stderr.write('trying utf-16le instead\n') encoding = 'utf-16le' data = data[2:] elif data[:3] == '\xef\xbb\xbf': if _debug: sys.stderr.write('stripping BOM\n') if encoding != 'utf-8': sys.stderr.write('trying utf-8 instead\n') encoding = 'utf-8' data = data[3:] elif data[:4] == '\x00\x00\xfe\xff': if _debug: sys.stderr.write('stripping BOM\n') if encoding != 'utf-32be': sys.stderr.write('trying utf-32be instead\n') encoding = 'utf-32be' data = data[4:] elif data[:4] == '\xff\xfe\x00\x00': if _debug: sys.stderr.write('stripping BOM\n') if encoding != 'utf-32le': sys.stderr.write('trying utf-32le instead\n') encoding = 'utf-32le' data = data[4:] newdata = unicode(data, encoding) if _debug: sys.stderr.write('successfully converted %s data to unicode\n' % encoding) declmatch = re.compile('^<\?xml[^>]*?>') newdecl = '''''' if declmatch.search(newdata): newdata = declmatch.sub(newdecl, newdata) else: newdata = newdecl + u'\n' + newdata return newdata.encode('utf-8') def _stripDoctype(data): '''Strips DOCTYPE from XML document, returns (rss_version, stripped_data) rss_version may be 'rss091n' or None stripped_data is the same XML document, minus the DOCTYPE ''' entity_pattern = re.compile(r']*?)>', re.MULTILINE) data = entity_pattern.sub('', data) doctype_pattern = re.compile(r']*?)>', re.MULTILINE) doctype_results = doctype_pattern.findall(data) doctype = doctype_results and doctype_results[0] or '' if doctype.lower().count('netscape'): version = 'rss091n' else: version = None data = doctype_pattern.sub('', data) return version, data def parse(url_file_stream_or_string, etag=None, modified=None, agent=None, referrer=None, handlers=[]): '''Parse a feed from a URL, file, stream, or string''' result = FeedParserDict() result['feed'] = FeedParserDict() result['entries'] = [] if _XML_AVAILABLE: result['bozo'] = 0 if type(handlers) == types.InstanceType: handlers = [handlers] try: f = _open_resource(url_file_stream_or_string, etag, modified, agent, referrer, handlers) data = f.read() except Exception, e: result['bozo'] = 1 result['bozo_exception'] = e data = '' f = None # if feed is gzip-compressed, decompress it if f and data and hasattr(f, 'headers'): if gzip and f.headers.get('content-encoding', '') == 'gzip': try: data = gzip.GzipFile(fileobj=_StringIO(data)).read() except Exception, e: # Some feeds claim to be gzipped but they're not, so # we get garbage. Ideally, we should re-request the # feed without the 'Accept-encoding: gzip' header, # but we don't. result['bozo'] = 1 result['bozo_exception'] = e data = '' elif zlib and f.headers.get('content-encoding', '') == 'deflate': try: data = zlib.decompress(data, -zlib.MAX_WBITS) except Exception, e: result['bozo'] = 1 result['bozo_exception'] = e data = '' # save HTTP headers if hasattr(f, 'info'): info = f.info() result['etag'] = info.getheader('ETag') last_modified = info.getheader('Last-Modified') if last_modified: result['modified'] = _parse_date(last_modified) if hasattr(f, 'url'): result['href'] = f.url result['status'] = 200 if hasattr(f, 'status'): result['status'] = f.status if hasattr(f, 'headers'): result['headers'] = f.headers.dict if hasattr(f, 'close'): f.close() # there are four encodings to keep track of: # - http_encoding is the encoding declared in the Content-Type HTTP header # - xml_encoding is the encoding declared in the ; changed # project name #2.5 - 7/25/2003 - MAP - changed to Python license (all contributors agree); # removed unnecessary urllib code -- urllib2 should always be available anyway; # return actual url, status, and full HTTP headers (as result['url'], # result['status'], and result['headers']) if parsing a remote feed over HTTP -- # this should pass all the HTTP tests at ; # added the latest namespace-of-the-week for RSS 2.0 #2.5.1 - 7/26/2003 - RMK - clear opener.addheaders so we only send our custom # User-Agent (otherwise urllib2 sends two, which confuses some servers) #2.5.2 - 7/28/2003 - MAP - entity-decode inline xml properly; added support for # inline and as used in some RSS 2.0 feeds #2.5.3 - 8/6/2003 - TvdV - patch to track whether we're inside an image or # textInput, and also to return the character encoding (if specified) #2.6 - 1/1/2004 - MAP - dc:author support (MarekK); fixed bug tracking # nested divs within content (JohnD); fixed missing sys import (JohanS); # fixed regular expression to capture XML character encoding (Andrei); # added support for Atom 0.3-style links; fixed bug with textInput tracking; # added support for cloud (MartijnP); added support for multiple # category/dc:subject (MartijnP); normalize content model: 'description' gets # description (which can come from description, summary, or full content if no # description), 'content' gets dict of base/language/type/value (which can come # from content:encoded, xhtml:body, content, or fullitem); # fixed bug matching arbitrary Userland namespaces; added xml:base and xml:lang # tracking; fixed bug tracking unknown tags; fixed bug tracking content when # element is not in default namespace (like Pocketsoap feed); # resolve relative URLs in link, guid, docs, url, comments, wfw:comment, # wfw:commentRSS; resolve relative URLs within embedded HTML markup in # description, xhtml:body, content, content:encoded, title, subtitle, # summary, info, tagline, and copyright; added support for pingback and # trackback namespaces #2.7 - 1/5/2004 - MAP - really added support for trackback and pingback # namespaces, as opposed to 2.6 when I said I did but didn't really; # sanitize HTML markup within some elements; added mxTidy support (if # installed) to tidy HTML markup within some elements; fixed indentation # bug in _parse_date (FazalM); use socket.setdefaulttimeout if available # (FazalM); universal date parsing and normalization (FazalM): 'created', modified', # 'issued' are parsed into 9-tuple date format and stored in 'created_parsed', # 'modified_parsed', and 'issued_parsed'; 'date' is duplicated in 'modified' # and vice-versa; 'date_parsed' is duplicated in 'modified_parsed' and vice-versa #2.7.1 - 1/9/2004 - MAP - fixed bug handling " and '. fixed memory # leak not closing url opener (JohnD); added dc:publisher support (MarekK); # added admin:errorReportsTo support (MarekK); Python 2.1 dict support (MarekK) #2.7.4 - 1/14/2004 - MAP - added workaround for improperly formed
tags in # encoded HTML (skadz); fixed unicode handling in normalize_attrs (ChrisL); # fixed relative URI processing for guid (skadz); added ICBM support; added # base64 support #2.7.5 - 1/15/2004 - MAP - added workaround for malformed DOCTYPE (seen on many # blogspot.com sites); added _debug variable #2.7.6 - 1/16/2004 - MAP - fixed bug with StringIO importing #3.0b3 - 1/23/2004 - MAP - parse entire feed with real XML parser (if available); # added several new supported namespaces; fixed bug tracking naked markup in # description; added support for enclosure; added support for source; re-added # support for cloud which got dropped somehow; added support for expirationDate #3.0b4 - 1/26/2004 - MAP - fixed xml:lang inheritance; fixed multiple bugs tracking # xml:base URI, one for documents that don't define one explicitly and one for # documents that define an outer and an inner xml:base that goes out of scope # before the end of the document #3.0b5 - 1/26/2004 - MAP - fixed bug parsing multiple links at feed level #3.0b6 - 1/27/2004 - MAP - added feed type and version detection, result['version'] # will be one of SUPPORTED_VERSIONS.keys() or empty string if unrecognized; # added support for creativeCommons:license and cc:license; added support for # full Atom content model in title, tagline, info, copyright, summary; fixed bug # with gzip encoding (not always telling server we support it when we do) #3.0b7 - 1/28/2004 - MAP - support Atom-style author element in author_detail # (dictionary of 'name', 'url', 'email'); map author to author_detail if author # contains name + email address #3.0b8 - 1/28/2004 - MAP - added support for contributor #3.0b9 - 1/29/2004 - MAP - fixed check for presence of dict function; added # support for summary #3.0b10 - 1/31/2004 - MAP - incorporated ISO-8601 date parsing routines from # xml.util.iso8601 #3.0b11 - 2/2/2004 - MAP - added 'rights' to list of elements that can contain # dangerous markup; fiddled with decodeEntities (not right); liberalized # date parsing even further #3.0b12 - 2/6/2004 - MAP - fiddled with decodeEntities (still not right); # added support to Atom 0.2 subtitle; added support for Atom content model # in copyright; better sanitizing of dangerous HTML elements with end tags # (script, frameset) #3.0b13 - 2/8/2004 - MAP - better handling of empty HTML tags (br, hr, img, # etc.) in embedded markup, in either HTML or XHTML form (
,
,
) #3.0b14 - 2/8/2004 - MAP - fixed CDATA handling in non-wellformed feeds under # Python 2.1 #3.0b15 - 2/11/2004 - MAP - fixed bug resolving relative links in wfw:commentRSS; # fixed bug capturing author and contributor URL; fixed bug resolving relative # links in author and contributor URL; fixed bug resolvin relative links in # generator URL; added support for recognizing RSS 1.0; passed Simon Fell's # namespace tests, and included them permanently in the test suite with his # permission; fixed namespace handling under Python 2.1 #3.0b16 - 2/12/2004 - MAP - fixed support for RSS 0.90 (broken in b15) #3.0b17 - 2/13/2004 - MAP - determine character encoding as per RFC 3023 #3.0b18 - 2/17/2004 - MAP - always map description to summary_detail (Andrei); # use libxml2 (if available) #3.0b19 - 3/15/2004 - MAP - fixed bug exploding author information when author # name was in parentheses; removed ultra-problematic mxTidy support; patch to # workaround crash in PyXML/expat when encountering invalid entities # (MarkMoraes); support for textinput/textInput #3.0b20 - 4/7/2004 - MAP - added CDF support #3.0b21 - 4/14/2004 - MAP - added Hot RSS support #3.0b22 - 4/19/2004 - MAP - changed 'channel' to 'feed', 'item' to 'entries' in # results dict; changed results dict to allow getting values with results.key # as well as results[key]; work around embedded illformed HTML with half # a DOCTYPE; work around malformed Content-Type header; if character encoding # is wrong, try several common ones before falling back to regexes (if this # works, bozo_exception is set to CharacterEncodingOverride); fixed character # encoding issues in BaseHTMLProcessor by tracking encoding and converting # from Unicode to raw strings before feeding data to sgmllib.SGMLParser; # convert each value in results to Unicode (if possible), even if using # regex-based parsing #3.0b23 - 4/21/2004 - MAP - fixed UnicodeDecodeError for feeds that contain # high-bit characters in attributes in embedded HTML in description (thanks # Thijs van de Vossen); moved guid, date, and date_parsed to mapped keys in # FeedParserDict; tweaked FeedParserDict.has_key to return True if asking # about a mapped key #3.0fc1 - 4/23/2004 - MAP - made results.entries[0].links[0] and # results.entries[0].enclosures[0] into FeedParserDict; fixed typo that could # cause the same encoding to be tried twice (even if it failed the first time); # fixed DOCTYPE stripping when DOCTYPE contained entity declarations; # better textinput and image tracking in illformed RSS 1.0 feeds #3.0fc2 - 5/10/2004 - MAP - added and passed Sam's amp tests; added and passed # my blink tag tests #3.0fc3 - 6/18/2004 - MAP - fixed bug in _changeEncodingDeclaration that # failed to parse utf-16 encoded feeds; made source into a FeedParserDict; # duplicate admin:generatorAgent/@rdf:resource in generator_detail.url; # added support for image; refactored parse() fallback logic to try other # encodings if SAX parsing fails (previously it would only try other encodings # if re-encoding failed); remove unichr madness in normalize_attrs now that # we're properly tracking encoding in and out of BaseHTMLProcessor; set # feed.language from root-level xml:lang; set entry.id from rdf:about; # send Accept header #3.0 - 6/21/2004 - MAP - don't try iso-8859-1 (can't distinguish between # iso-8859-1 and windows-1252 anyway, and most incorrectly marked feeds are # windows-1252); fixed regression that could cause the same encoding to be # tried twice (even if it failed the first time) #3.0.1 - 6/22/2004 - MAP - default to us-ascii for all text/* content types; # recover from malformed content-type header parameter with no equals sign # ('text/xml; charset:iso-8859-1') #3.1 - 6/28/2004 - MAP - added and passed tests for converting HTML entities # to Unicode equivalents in illformed feeds (aaronsw); added and # passed tests for converting character entities to Unicode equivalents # in illformed feeds (aaronsw); test for valid parsers when setting # XML_AVAILABLE; make version and encoding available when server returns # a 304; add handlers parameter to pass arbitrary urllib2 handlers (like # digest auth or proxy support); add code to parse username/password # out of url and send as basic authentication; expose downloading-related # exceptions in bozo_exception (aaronsw); added __contains__ method to # FeedParserDict (aaronsw); added publisher_detail (aaronsw) #3.2 - 7/3/2004 - MAP - use cjkcodecs and iconv_codec if available; always # convert feed to UTF-8 before passing to XML parser; completely revamped # logic for determining character encoding and attempting XML parsing # (much faster); increased default timeout to 20 seconds; test for presence # of Location header on redirects; added tests for many alternate character # encodings; support various EBCDIC encodings; support UTF-16BE and # UTF16-LE with or without a BOM; support UTF-8 with a BOM; support # UTF-32BE and UTF-32LE with or without a BOM; fixed crashing bug if no # XML parsers are available; added support for 'Content-encoding: deflate'; # send blank 'Accept-encoding: ' header if neither gzip nor zlib modules # are available #3.3 - 7/15/2004 - MAP - optimize EBCDIC to ASCII conversion; fix obscure # problem tracking xml:base and xml:lang if element declares it, child # doesn't, first grandchild redeclares it, and second grandchild doesn't; # refactored date parsing; defined public registerDateHandler so callers # can add support for additional date formats at runtime; added support # for OnBlog, Nate, MSSQL, Greek, and Hungarian dates (ytrewq1); added # zopeCompatibilityHack() which turns FeedParserDict into a regular # dictionary, required for Zope compatibility, and also makes command- # line debugging easier because pprint module formats real dictionaries # better than dictionary-like objects; added NonXMLContentType exception, # which is stored in bozo_exception when a feed is served with a non-XML # media type such as 'text/plain'; respect Content-Language as default # language if not xml:lang is present; cloud dict is now FeedParserDict; # generator dict is now FeedParserDict; better tracking of xml:lang, # including support for xml:lang='' to unset the current language; # recognize RSS 1.0 feeds even when RSS 1.0 namespace is not the default # namespace; don't overwrite final status on redirects (scenarios: # redirecting to a URL that returns 304, redirecting to a URL that # redirects to another URL with a different type of redirect); add # support for HTTP 303 redirects #4.0 - MAP - support for relative URIs in xml:base attribute; fixed # encoding issue with mxTidy (phopkins); preliminary support for RFC 3229; # support for Atom 1.0; support for iTunes extensions; new 'tags' for # categories/keywords/etc. as array of dict # {'term': term, 'scheme': scheme, 'label': label} to match Atom 1.0 # terminology; parse RFC 822-style dates with no time; lots of other # bug fixes #4.1 - MAP - removed socket timeout; added support for chardet library dist/copy/plugins/podcasts/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260021433 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.157046934 exaile-3.3.2/plugins/podcasts/__init__.py0000644000000000000000000001567612233027260020412 0ustar00rootroot00000000000000import gtk, glib from xl import event, common, playlist from xl import trax from xl.nls import gettext as _ from xlgui import panel, main from xlgui import guiutil from xlgui.widgets import dialogs from xl import xdg import xlgui, os, os.path import _feedparser as fp import traceback # set up logger import logging logger = logging.getLogger(__name__) PODCASTS = None CURPATH = os.path.realpath(__file__) BASEDIR = os.path.dirname(CURPATH) try: import hashlib md5 = hashlib.md5 except ImportError: import md5 md5 = md5.new def enable(exaile): if exaile.loading: event.add_callback(exaile_ready, 'gui_loaded') else: exaile_ready(None, exaile, None) def exaile_ready(event, exaile, nothing): global PODCASTS if not PODCASTS: PODCASTS = PodcastPanel(main.mainwindow().window) controller = xlgui.get_controller() controller.panels['podcasts'] = PODCASTS controller.add_panel(*PODCASTS.get_panel()) def disable(exaile): global PODCASTS if PODCASTS: conroller = xlgui.get_controller() conroller.remove_panel(PODCASTS.get_panel()[0]) PODCASTS = None class PodcastPanel(panel.Panel): ui_info = (os.path.join(BASEDIR, 'podcasts.ui'), 'PodcastPanelWindow') def __init__(self, parent): panel.Panel.__init__(self, parent, _('Podcasts')) self.podcasts = [] self.podcast_playlists = playlist.PlaylistManager( 'podcast_plugin_playlists') self._setup_widgets() self._connect_events() self.podcast_file = os.path.join(xdg.get_plugin_data_dir(), 'podcasts_plugin.db') self._load_podcasts() def _setup_widgets(self): self.model = gtk.ListStore(str, str) self.tree = self.builder.get_object('podcast_tree') self.tree.set_model(self.model) text = gtk.CellRendererText() self.column = gtk.TreeViewColumn(_('Podcast')) self.column.pack_start(text, True) self.column.set_expand(True) self.column.set_attributes(text, text=0) self.tree.append_column(self.column) self.status = self.builder.get_object('podcast_statusbar') self.menu = guiutil.Menu() self.menu.append(_('Refresh Podcast'), self._on_refresh, gtk.STOCK_REFRESH) self.menu.append(_('Delete'), self._on_delete, gtk.STOCK_DELETE) @guiutil.idle_add() def _set_status(self, message, timeout=0): self.status.set_text(message) if timeout: glib.timeout_add_seconds(timeout, self._set_status, '', 0) def _connect_events(self): self.builder.connect_signals({ 'on_add_button_clicked': self.on_add_podcast, }) self.tree.connect('row-activated', self._on_row_activated) self.tree.connect('button-press-event', self._on_button_press) def _on_button_press(self, button, event): if event.button == 3: self.menu.popup(event) def _on_refresh(self, *e): (url, title) = self.get_selected_podcast() self._parse_podcast(url) def _on_delete(self, *e): (url, title) = self.get_selected_podcast() for item in self.podcasts: (title, _url) = item if _url == url: self.podcasts.remove(item) self.podcast_playlists.remove_playlist(md5(url).hexdigest()) break self._save_podcasts() self._load_podcasts() def on_add_podcast(self, *e): dialog = dialogs.TextEntryDialog(_('Enter the URL of the ' 'podcast to add'), _('Open Podcast')) dialog.set_transient_for(self.parent) dialog.set_position(gtk.WIN_POS_CENTER_ON_PARENT) result = dialog.run() dialog.hide() if result == gtk.RESPONSE_OK: url = dialog.get_value() self._parse_podcast(url, True) def get_selected_podcast(self): selection = self.tree.get_selection() (model, iter) = selection.get_selected() url = self.model.get_value(iter, 1) title = self.model.get_value(iter, 0) return (url, title) def _on_row_activated(self, *e): (url, title) = self.get_selected_podcast() try: pl = self.podcast_playlists.get_playlist(md5(url).hexdigest()) self._open_podcast(pl, title) except ValueError: self._parse_podcast(url) @common.threaded def _parse_podcast(self, url, add_to_db=False): try: url = url.replace('itpc://', 'http://') self._set_status(_('Loading %s...') % url) d = fp.parse(url) entries = d['entries'] title = d['feed']['title'] if add_to_db: self._add_to_db(url, title) pl = playlist.Playlist(md5(url).hexdigest()) tracks = [] for e in entries: tr = trax.Track(e['enclosures'][0].href) date = e['updated_parsed'] tr.set_tag_raw('artist', title) tr.set_tag_raw('title', e['title']) tr.set_tag_raw('date', "%d-%02d-%02d" % (date.tm_year, date.tm_mon, date.tm_mday)) tracks.append(tr) pl.extend(tracks) self._set_status('') self._open_podcast(pl, title) self.podcast_playlists.save_playlist(pl, overwrite=True) except: traceback.print_exc() self._set_status(_('Error loading podcast.'), 2) @guiutil.idle_add() def _add_to_db(self, url, title): self.podcasts.append((title, url)) self._save_podcasts() self._load_podcasts() @guiutil.idle_add() def _open_podcast(self, pl, title): new_pl = playlist.Playlist(title) new_pl.extend(pl) main.mainwindow().playlist_notebook.create_tab_from_playlist(new_pl) @common.threaded def _load_podcasts(self): self._set_status(_("Loading Podcasts...")) try: h = open(self.podcast_file) lines = (line.strip() for line in h.readlines()) h.close() self.podcasts = [] for line in lines: (url, title) = line.split('\t') self.podcasts.append((title, url)) except (IOError, OSError): logger.info('WARNING: could not open podcast file') self._set_status('') return self._done_loading_podcasts() @guiutil.idle_add() def _done_loading_podcasts(self): self.model.clear() self.podcasts.sort() for (title, url) in self.podcasts: self.model.append([title, url]) self._set_status('') def _save_podcasts(self): try: h = open(self.podcast_file, 'w') except (OSError, IOError): dialogs.error(self.parent, _('Could not save podcast file')) return for (title, url) in self.podcasts: h.write('%s\t%s\n' % (url, title)) h.close() dist/copy/plugins/podcasts/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260020717 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/podcasts/PLUGININFO0000644000000000000000000000022712233027260017660 0ustar00rootroot00000000000000Version='0.0.3' Authors=['Adam Olsen '] Name=_('Podcasts') Description=_('Adds Simple Podcast Support') Category=_('Media Sources') dist/copy/plugins/podcasts/PaxHeaders.26361/podcasts.ui0000644000175000017500000000012412233027260021501 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.305046938 exaile-3.3.2/plugins/podcasts/podcasts.ui0000644000000000000000000001106212233027260020441 0ustar00rootroot00000000000000 True 3 3 True 3 True True False True 0 0 True 2 True gtk-add False False 0 True Add Podcast True False False 1 False False 0 False False 0 True True automatic automatic etched-in True True False 1 True 0 False False 2 dist/copy/plugins/PaxHeaders.26361/alarmclock0000644000175000017500000000013212233027261017535 xustar000000000000000030 mtime=1382821553.697046951 30 atime=1382821552.785046922 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/alarmclock/0000755000000000000000000000000012233027261016553 5ustar00rootroot00000000000000dist/copy/plugins/alarmclock/PaxHeaders.26361/acprefs.py0000644000175000017500000000012412233027260021607 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.513046945 exaile-3.3.2/plugins/alarmclock/acprefs.py0000644000000000000000000000472512233027260020557 0ustar00rootroot00000000000000# Copyright (C) 2006 Adam Olsen # # 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 1, 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 from xlgui.preferences import widgets from xl import xdg from xl.nls import gettext as _ name = _('Alarm Clock') basedir = os.path.dirname(os.path.realpath(__file__)) ui = os.path.join(basedir, "acprefs_pane.ui") class HourPreference(widgets.SpinPreference): default = 12 name = 'plugin/alarmclock/hour' class MinutsPreference(widgets.SpinPreference): default = 30 name = 'plugin/alarmclock/minuts' class MondayPreference(widgets.CheckPreference): default = False name = 'plugin/alarmclock/monday' class TuesdayPreference(widgets.CheckPreference): default = False name = 'plugin/alarmclock/tuesday' class WednesdayPreference(widgets.CheckPreference): default = False name = 'plugin/alarmclock/wednesday' class ThursdayPreference(widgets.CheckPreference): default = False name = 'plugin/alarmclock/thursday' class FridayPreference(widgets.CheckPreference): default = False name = 'plugin/alarmclock/friday' class SaturdayPreference(widgets.CheckPreference): default = False name = 'plugin/alarmclock/saturday' class SundayPreference(widgets.CheckPreference): default = False name = 'plugin/alarmclock/sunday' class FadingPreferencew(widgets.CheckPreference): default = False name = 'plugin/alarmclock/alarm_use_fading' class MinVolumePreference(widgets.SpinPreference): default = 0 name = 'plugin/alarmclock/alarm_min_volume' class MaxVolumePreference(widgets.SpinPreference): default = 100 name = 'plugin/alarmclock/alarm_max_volume' class IncrementPreference(widgets.SpinPreference): default = 1 name = 'plugin/alarmclock/alarm_increment' class TimerperIncPreference(widgets.SpinPreference): default = 1 name = 'plugin/alarmclock/alarm_timer_per_inc' dist/copy/plugins/alarmclock/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260021723 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.157046934 exaile-3.3.2/plugins/alarmclock/__init__.py0000644000000000000000000001055612233027260020672 0ustar00rootroot00000000000000import gtk, time, glib, thread from gettext import gettext as _ from xl import player from xl.plugins import PluginsManager import acprefs from xl import settings ALARM=None RANG = dict() def enable(exaile): """ Starts the timer """ global ALARM ALARM=Alarmclock() ALARM.enable_alarm() def disable(exaile): """ Stops the timer for this plugin """ if ALARM: ALARM.disable_alarm() def get_preferences_pane(): if ALARM: ALARM.enable_alarm() return acprefs class VolumeControl: def __init__(self): self.thread = thread def print_debug( self ): print self.min_volume print self.max_volume print self.increment print self.time_per_inc def fade_in( self ): temp_volume = self.min_volume while temp_volume <= self.max_volume: #print "set volume to %s" % str(temp_volume / 100.0) player.PLAYER.set_volume( ( temp_volume / 100.0 ) ) temp_volume += self.increment time.sleep( self.time_per_inc ) if player.PLAYER.is_paused() or not player.PLAYER.is_playing(): self.stop_fading() def fade_out( self): temp_volume = self.max_volume while temp_volume >= self.min_volume: #print "set volume to %d" % (temp_volume / 100.0) player.PLAYER.set_volume( ( temp_volume / 100.0) ) temp_volume -= self.increment time.sleep( self.time_per_inc ) if player.PLAYER.is_paused() or not player.PLAYER.is_playing(): self.stop_fading() def fade_in_thread( self ): if self.use_fading == "True": self.thread.start_new( self.fade_in, ()) def stop_fading( self ): self.thread.exit() def load_settings( self ): prefix = "plugin/alarmclock/" # Setting name, property to save to, default value setting_values = ( ('alarm_use_fading', 'use_fading', False), ('alarm_min_volume', 'min_volume', 0), ('alarm_max_volume', 'max_volume', 100), ('alarm_increment', 'increment', 1), ('alarm_time_per_inc', 'time_per_inc', 1), ) for name, prop, default in setting_values: setattr(self, prop, settings.get_option(prefix + name, default)) class Alarmclock(object): def __init__(self): self.timer_id=None self.volume_control=VolumeControl() def timout_alarm(self): """ Called every two seconds. If the plugin is not enabled, it does nothing. If the current time matches the time specified, it starts playing """ self.hour=int(settings.get_option('plugin/alarmclock/hour', 15)) self.minuts=int(settings.get_option('plugin/alarmclock/minuts', 20)) self.volume_control.load_settings() active_days_dict = [ settings.get_option('plugin/alarmclock/sunday', False), settings.get_option('plugin/alarmclock/monday', False), settings.get_option('plugin/alarmclock/tuesday', False), settings.get_option('plugin/alarmclock/wednesday', False), settings.get_option('plugin/alarmclock/thursday', False), settings.get_option('plugin/alarmclock/friday', False), settings.get_option('plugin/alarmclock/saturday', False) ] if not self.hour and self.minuts: return True if not active_days_dict: return True current = time.strftime("%H:%M", time.localtime()) curhour = int(current.split(":")[0]) curminuts = int(current.split(":")[1]) currentDay = int(time.strftime("%w", time.localtime())) if curhour==self.hour and curminuts==self.minuts and active_days_dict[currentDay]==True: check = time.strftime("%m %d %Y %H:%M") if RANG.has_key(check): return True track = player.PLAYER.current if track and (player.PLAYER.is_playing() or player.PLAYER.is_paused()): return True player.QUEUE.play() self.volume_control.fade_in_thread() RANG[check] = True return True def enable_alarm(self): if self.timer_id != None : glib.source_remove(self.timer_id) self.timer_id = glib.timeout_add_seconds(5, self.timout_alarm) def disable_alarm(self): glib.source_remove(self.timer_id) dist/copy/plugins/alarmclock/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260021207 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/alarmclock/PLUGININFO0000644000000000000000000000056512233027260020155 0ustar00rootroot00000000000000Version='0.1.5' Authors=['Adam Olsen ', 'François Martorello '] Name=_('Alarm Clock') Description=_('Plays music at a specific time.\n\nNote that when the specified time arrives, Exaile will just act like you pressed the play button, so be sure you have the music you want to hear in your playlist') Category=_('Utility') dist/copy/plugins/alarmclock/PaxHeaders.26361/acprefs_pane.ui0000644000175000017500000000012412233027260022577 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.621046948 exaile-3.3.2/plugins/alarmclock/acprefs_pane.ui0000644000000000000000000004267012233027260021550 0ustar00rootroot00000000000000 12 23 1 10 30 59 1 10 100 1 10 100 100 1 10 1 100 1 10 1 100 1 10 True 3 vertical 6 True 0 none True 6 True True adjustment1 False False 0 True : False False 1 True True adjustment2 False False 2 True <b>Alarm time</b> True False False 0 True 0 none True vertical True True Monday True True False True 0 Tuesday True True False True 1 Wednesday True True False True 2 Thursday True True False True 3 0 True True Friday True True False True 0 Saturday True True False True 1 Sunday True True False True 2 True 3 False False 1 True <b>Alarm Days</b> True False False 1 Use Fading True True False True False False 2 True 4 2 6 True 0 Minimum volume: GTK_FILL True 0 Maximum volume: 1 2 GTK_FILL True 0 Increment: 2 3 GTK_FILL True 0 Time per increment: 3 4 GTK_FILL True True adjustment3 1 2 GTK_FILL True True adjustment4 1 2 1 2 GTK_FILL True True adjustment5 1 2 2 3 GTK_FILL True True adjustment6 1 2 3 4 GTK_FILL False False 3 dist/copy/plugins/PaxHeaders.26361/librivox0000644000175000017500000000013212233027261017263 xustar000000000000000030 mtime=1382821553.697046951 30 atime=1382821552.785046922 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/librivox/0000755000000000000000000000000012233027261016301 5ustar00rootroot00000000000000dist/copy/plugins/librivox/PaxHeaders.26361/clock.png0000644000175000017500000000012412233027260021141 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.165046934 exaile-3.3.2/plugins/librivox/clock.png0000644000000000000000000000221612233027260020102 0ustar00rootroot00000000000000PNG  IHDR sRGBbKGD pHYs B(xtIME IDAT8ˍ_hSWӛ%mR2KVv=C?>m0Ƙ >l@φ=:tNtOZ]G@1m{sLB;6Ï{~O;vTU]_{^>޽.|!R*m vuuBЏ`w͑ף:KKKLMM166.>|BK&D"aF"_7n]|ۨEJeYaLMMs=~)d2d2fՖ[lѹ>_ooiirl۶@ @KK igbX-ٳ7w4nM*U(r9.^|;dG===+@۷? E!$͢(  r9zUU;hkkkuDa)euRyuuN{RrO;uyEU\u4!nv]/kRNgm[ΩTjʶu9<̌ţGRYMӜ^\\|=[[[RACCC466V x5nܸ1 *X(RBr\,) UPJIQIENDB`dist/copy/plugins/librivox/PaxHeaders.26361/book_icon.png0000644000175000017500000000012412233027260022010 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.165046934 exaile-3.3.2/plugins/librivox/book_icon.png0000644000000000000000000000136312233027260020753 0ustar00rootroot00000000000000PNG  IHDRasBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<pIDAT8uNSA}l7Dlx# Ý^ MA^MPPxTZ> [,DV2dok͌ڡR̛+^4baP>szL[gT*=d23wW{8A$ADbۼtRS###=(<$CnLLhJ4Mui~J+nvUJXQۡ'Q.qB|\Jm_; 8+Ip]='&8<~o).Qx9hVG7 <r8O//ɩ֍`Mkfe\.E_9N[s(`%"$!n42-i {ljaeZʝ< Xؐl6ZX)c[&?Sox}@)58Wq8*C_շf:=kqL 8V `RP Q ;Y@{1Ј(7T 6Huws2"ח%Sy}j^:bvyvvvP(۟c8,mUZYٮ:?7{:'K̹[;>${{?X: _XlIENDB`dist/copy/plugins/librivox/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260021451 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.509046945 exaile-3.3.2/plugins/librivox/__init__.py0000644000000000000000000003240312233027260020413 0ustar00rootroot00000000000000# 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 3, 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. # # Arunas Radzvilavicius, arunas.rv@gmail.com # TODO: download books? # Drag and drop for books with yet unknown chapters works with # main playlist only (see get_chapters_and_drop and related functions). # Otherwise, (without threaded functions) UI is non responsive, while # fetching that info... import gtk, gobject, os import librivoxsearch as LS import about_window as AW from xl import ( common, event, playlist, settings, trax, xdg ) from xlgui import ( guiutil, icons, main ) from xlgui.widgets.common import DragTreeView def enable(exaile): if exaile.loading: event.add_callback(_enable, 'exaile_loaded') else: _enable(None, exaile, None) def _enable(o1, exaile, o2): global panel panel=LVPanel(exaile) def disable(exaile): global panel if panel.aboutwindow!=None: panel.aboutwindow.win.destroy() exaile.gui.remove_panel(panel.vbox) class LVPanel(): def on_search(self, widget): self.run_search(widget) @common.threaded def run_search(self, widget): (c_id, msg_id)=self.statusbar.set_status('Searching...') self.keyword=unicode(self.entry.get_text(), 'utf-8') self.books=LS.find_books(self.keyword) self.generate_treestore(self.books) self.statusbar.unset_status(c_id, msg_id) def on_row_exp(self, treeview, iter, path): row=path[0] if not self.books[row].is_loading and not self.books[row].loaded: self.get_chapters(row) @common.threaded def get_chapters(self, row): self.get_all(row) return @common.threaded def get_chapters_and_add(self, row): self.get_all(row) self.add_to_playlist(self.books[row].chapters) return @guiutil.idle_add() def done_getting_chapters(self, row): # adds chapters to treeview and removes "Loading..." message l_iter=self.treestore.get_iter((row,0)) iter=self.treestore.get_iter((row,)) for chapter in self.books[row].chapters: self.rowlvl2=self.treestore.append(iter, [chapter[0], self.chapter_icon]) if len(self.books[row].chapters)>0: self.treestore.remove(l_iter) def __init__(self,exaile): self.librivoxdir= os.path.dirname(__file__) self.abicon = gtk.gdk.pixbuf_new_from_file(self.librivoxdir+'/ebook.png') self.clock_icon=gtk.gdk.pixbuf_new_from_file(self.librivoxdir+'/clock.png') self.chapter_icon=icons.MANAGER.pixbuf_from_icon_name( 'audio-x-generic', gtk.ICON_SIZE_SMALL_TOOLBAR) self.gui_init(exaile) self.connect_events() self.getting_info=False def gui_init(self, exaile): self.vbox=gtk.VBox() self.vbox.set_border_width(3) self.search_label=gtk.Label("LibriVox.org") self.vbox.pack_start(self.search_label, False, True, 4) self.entry=guiutil.SearchEntry() self.entry.connect("activate", self.run_search) self.hbox=gtk.HBox() self.vbox.pack_start(self.hbox, False, True, 0) self.hbox.pack_start(self.entry.entry, True, True, 0) self.searchbutton=gtk.Button() self.searchimage=gtk.Image() self.searchimage.set_from_stock(gtk.STOCK_FIND, gtk.ICON_SIZE_MENU) self.searchbutton.set_image(self.searchimage) self.searchbutton.connect("pressed", self.run_search) self.hbox.pack_start(self.searchbutton, False, True, 0) self.statusbar=Status() self.vbox.pack_start(self.statusbar.bar, False, True, 0) self.scrlw=gtk.ScrolledWindow() self.scrlw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) self.scrlw.set_shadow_type(gtk.SHADOW_IN) self.vbox.pack_start(self.scrlw, True, True, 0) self.treestore = gtk.TreeStore(str, gtk.gdk.Pixbuf) self.treeview=gtk.TreeView(self.treestore) self.treeview.set_headers_visible(False) self.column = gtk.TreeViewColumn(None) self.cell = gtk.CellRendererText() if settings.get_option('gui/ellipsize_text_in_panels', False): import pango self.cell.set_property( 'ellipsize-set', True) self.cell.set_property( 'ellipsize', pango.ELLIPSIZE_END) self.cellpb = gtk.CellRendererPixbuf() self.column.pack_start(self.cellpb, False) self.column.pack_start(self.cell, True) self.column.set_attributes(self.cell, text=0) self.column.set_attributes(self.cellpb, pixbuf=1) self.treeview.append_column(self.column) self.treeview.connect("row-expanded", self.on_row_exp) self.treeview.drag_source_set(gtk.gdk.BUTTON1_MASK, [('text/uri-list', 0, 0)], gtk.gdk.ACTION_COPY) self.treeview.connect("drag-data-get", self.drag_data_get) self.scrlw.add(self.treeview) self.title='LibriVox' self.vbox.show_all() exaile.gui.add_panel(self.vbox, self.title) self.popup_menu=gtk.Menu() self.add_to_pl=gtk.ImageMenuItem("Append to Current") self.add_to_pl.set_image(gtk.image_new_from_stock(gtk.STOCK_ADD, gtk.ICON_SIZE_MENU)) self.about_book=gtk.ImageMenuItem("About the Book") self.about_book.set_image(gtk.image_new_from_stock(gtk.STOCK_ABOUT, gtk.ICON_SIZE_MENU)) self.popup_menu.add(self.add_to_pl) self.popup_menu.add(self.about_book) self.popup_menu.show_all() self.aboutwindow=None def connect_events(self): self.treeview.connect("row-activated", self.on_append_to_playlist) self.treeview.connect("button-press-event", self.menu_popup) self.add_to_pl.connect("activate", self.on_append_to_playlist) self.about_book.connect("button-press-event", self.on_about_book) self.treeview.connect("drag_begin", self.on_drag_begin) def generate_tracks(self, chapters): tracks=[] for chapter in chapters: chapter_track=trax.Track(chapter[1]) chapter_track.set_tag_raw('artist', 'Librivox.org') chapter_track.set_tag_raw('title', chapter[0]) chapter_track.set_tag_raw('album', 'Audiobook') tracks.append(chapter_track) return tracks def on_append_to_playlist(self, widget, path=None, column=None): if not path: path=self.treeview.get_cursor()[0] row=path[0] if self.books[row].is_loading: return if len(path)==1: # selected item is book if self.books[row].loaded: # book info already loaded self.add_to_playlist(self.books[row].chapters) else: self.get_chapters_and_add(row) if len(path)>1: # selected item is chapter chapter=self.books[path[0]].chapters[path[1]] self.add_to_playlist([chapter]) def add_to_playlist(self, chapters): current_playlist = main.get_selected_playlist() if not current_playlist: return tracks = self.generate_tracks(chapters) current_playlist.playlist.extend(tracks) def menu_popup(self, treeview, event): if event.button == 3: x = int(event.x) y = int(event.y) time = event.time pthinfo = self.treeview.get_path_at_pos(x, y) if pthinfo is not None: path, col, cellx, celly = pthinfo self.treeview.grab_focus() self.treeview.set_cursor(path, col, 0) self.popup_menu.popup( None, None, None, event.button, time) return 1 @guiutil.idle_add() def generate_treestore(self, books): self.treestore.clear() for book in books: self.rowlvl1=self.treestore.append(None, [book.title, self.abicon]) self.rowlvl2=self.treestore.append(self.rowlvl1, ["Loading...", self.clock_icon]) def drag_data_get(self, treeview, context, selection, info, timestamp): path=self.treeview.get_cursor()[0] if not path: return if len(path)==1: # book selected book=self.books[path[0]] uris=[] if book.loaded: #chapters loaded for chapter in book.chapters: chapter_track=self.generate_tracks([chapter]) DragTreeView.dragged_data[chapter[1]] = chapter_track[0] uris.append(chapter[1]) selection.set_uris(uris) del uris else: if book.is_loading: return current_playlist = main.get_selected_playlist() if not current_playlist: return current_playlist_tv = current_playlist.list (x,y)=current_playlist_tv.get_pointer() rect=current_playlist_tv.get_allocation() if x<0 or x>rect.width or y<0 or y>rect.height: # dropping not in main playlist return drop_info=current_playlist_tv.get_dest_row_at_pos(x, y) if drop_info: PLpath, position = drop_info if (position == gtk.TREE_VIEW_DROP_AFTER): after=True else: after=False self.get_chapters_and_drop(book, current_playlist, PLpath, after) else: self.get_chapters_and_add(path[0]) elif len(path)==2: if self.books[path[0]].is_loading: return chapter=self.books[path[0]].chapters[path[1]] chapter_track=self.generate_tracks([chapter]) DragTreeView.dragged_data[chapter[1]] = chapter_track[0] uri=chapter[1] selection.set('text/uri-list', 0, uri) @common.threaded def get_chapters_and_drop(self, book, current_playlist, PLpath, after): path=self.treeview.get_cursor()[0] row=path[0] self.get_all(row) self.drop_after_getting(book, current_playlist, PLpath, after) @guiutil.idle_add() def drop_after_getting(self, book, current_playlist, PLpath, after): # simulates drag_data_received() function of xlgui/playlist.py if current_playlist.playlist.ordered_tracks: curtrack = current_playlist.playlist.get_current() else: curtrack = None iter = current_playlist.model.get_iter(PLpath) tracks=self.generate_tracks(book.chapters) for track in tracks: ar = current_playlist._get_ar(track) if not after: after=True iter = current_playlist.model.insert_before(iter, ar) else: iter = current_playlist.model.insert_after(iter, ar) #re add to ordered playlist current_playlist.playlist.ordered_tracks = [] for row in current_playlist.model: current_playlist.playlist.ordered_tracks.append(row[0]) current_playlist.main.update_track_counts() if curtrack is not None: index = current_playlist.playlist.index(curtrack) current_playlist.playlist.set_current_pos(index) def on_drag_begin(self, widget, context): self.treeview.drag_source_set_icon_pixbuf(self.abicon) @common.threaded def on_about_book(self, widget, event): path=self.treeview.get_cursor()[0] row=path[0] if self.books[row].is_loading: return if not self.books[row].loaded: self.get_all(row) self.done_getting_info(row) @guiutil.idle_add() def done_getting_info(self, row): if self.aboutwindow==None: self.aboutwindow=AW.AboutWindow() self.aboutwindow.set_text(self.books[row]) if not self.aboutwindow.showing: self.aboutwindow.win.show() self.aboutwindow.showing=True elif self.aboutwindow.showing: self.aboutwindow.win.present() def get_all(self, row): (c_id, msg_id)=self.statusbar.set_status('Loading...') self.books[row].is_loading=True self.books[row].get_all() self.done_getting_chapters(row) self.books[row].is_loading=False self.statusbar.unset_status(c_id, msg_id) class Status(): '''Status bar''' def __init__(self): self.bar=gtk.Statusbar() self.bar.set_has_resize_grip(False) self.bar.show_all() def set_status(self, status): context_id=1 msg_id=self.bar.push(context_id, status) return (context_id, msg_id) def unset_status(self, context_id, msg_id): self.bar.remove_message(context_id, msg_id) dist/copy/plugins/librivox/PaxHeaders.26361/ebook.png0000644000175000017500000000012412233027260021145 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.189046935 exaile-3.3.2/plugins/librivox/ebook.png0000644000000000000000000000153112233027260020105 0ustar00rootroot00000000000000PNG  IHDR sRGBbKGD pHYs B(xtIME  j2IDAT8ˍKoE{6 倄H\8r#@B΍+/$^Ycvfzױlԥj4_ף苯Eݗ8ĕFgp﫽Jν}V 9BP-9'>{e7?J?+?|FQs!Vz#=xv9,c6࣏0UT=b3=&YtWc+V^s<>L @vnEP ہ ŸO:Z ]K&)P[E*juah0 t;,S)Ŏ~N"ݘS M3^T?8$*E)fFQc1ǫ%lHNYhLE{A[5/o(&a@ȖHD"^Ȗ9r .W1RPVxtL9(WL&8լ1O5=eSORptB:&V^G)Vc D==B/xd~CIK  .0\`;DYEqL#hWzAgE6#v'ih##rt6#S{y^"ue,uu.![*y Y}z5U3jY EVK"P;_7~8$f"alUlE./O,/s_IENDB`dist/copy/plugins/librivox/PaxHeaders.26361/librivoxsearch.py0000644000175000017500000000012412233027260022736 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.449046943 exaile-3.3.2/plugins/librivox/librivoxsearch.py0000644000000000000000000000652112233027260021702 0ustar00rootroot00000000000000# 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 3, 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. # # Arunas Radzvilavicius, arunas.rv@gmail.com import urllib from xml.etree import ElementTree from xl import common import logging logger = logging.getLogger(__name__) class AppURLopener(urllib.FancyURLopener): version = "App/1.7" urllib._urlopener = AppURLopener() # TODO: The 'new' API doesn't allow general queries, only allows exact # matching.. if they fix it, we'll fix it. >_> search_url = 'http://librivox.org/api/feed/audiobooks/?title=' class Book(): def __init__(self, title, rssurl): self.title=title self.rssurl=rssurl self.chapters=[] self.info=None self.is_loading=False self.xmldata=None self.xmltree=None self.loaded=False def get_all(self): ''' Unified function for getting chapters and info at the same time. ''' if self.loaded: return try: self.xmldata=urllib.urlopen(self.rssurl).read() except: logger.error("LIBRIVOX: Connection error") return try: self.xmltree=ElementTree.XML(self.xmldata) except: logger.error("LIBRIVOX: XML error") return self.chapters=[] items=self.xmltree.findall("channel/item") for item in items: title=item.find("title").text link=item.find("link").text duration=item.find("{http://www.itunes.com/dtds/podcast-1.0.dtd}duration").text if duration is None: duration = 'Unknown length' link=link.replace("_64kb.mp3", ".ogg") self.chapters.append([title+" "+"("+duration+")", link]) self.info=self.xmltree.find("channel/description") self.info=self.info.text self.loaded=True return def find_books(keyword): ''' Returns a list of Book instances, with unknown chapters... ''' # urlencode the search string url=search_url+urllib.quote_plus(keyword) try: data=urllib.urlopen(url).read() except: logger.error("LIBRIVOX: connection error") return [] try: tree=ElementTree.XML(data) except: logger.error("LIBRIVOX: XML error") return [] books = [] for elem in tree: if elem.tag == 'error': logger.error('LIBRIVOX: query error: %s' % elem.text) elif elem.tag == 'books': for bk in elem.findall('book'): title=bk.find("title").text rssurl=bk.find("url_rss").text book=Book(title, rssurl) books.append(book) return books dist/copy/plugins/librivox/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260020735 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/librivox/PLUGININFO0000644000000000000000000000027312233027260017677 0ustar00rootroot00000000000000Version='1.2.2' Authors=['Arunas Radzvilavicius '] Name=_('Librivox') Description=_('Browse and listen to audiobooks from Librivox.org.') Category=_('Media Sources') dist/copy/plugins/librivox/PaxHeaders.26361/about_window.py0000644000175000017500000000012412233027260022413 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.445046943 exaile-3.3.2/plugins/librivox/about_window.py0000644000000000000000000000553012233027260021356 0ustar00rootroot00000000000000# 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 3, 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. # # Arunas Radzvilavicius, arunas.rv@gmail.com import gtk, pango class AboutWindow(): def __init__(self): self.book=None self.showing=False self.win=gtk.Window() self.win.set_title("About") self.win.set_default_size(300, 200) self.win.set_geometry_hints(self.win, min_width=100, min_height=100) self.vbox=gtk.VBox() self.win.add(self.vbox) self.scrollwin=gtk.ScrolledWindow() self.scrollwin.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) self.vbox.pack_start(self.scrollwin, True, True, 0) self.textview=gtk.TextView() self.textview.set_cursor_visible(False) self.textview.set_editable(False) self.textview.set_wrap_mode(gtk.WRAP_WORD) self.textview.set_justification(gtk.JUSTIFY_LEFT) self.textview.set_left_margin(4) self.textview.set_left_margin(4) self.scrollwin.add(self.textview) self.textbuffer=gtk.TextBuffer() self.textbuffer.create_tag('bold', weight=pango.WEIGHT_BOLD) self.textview.set_buffer(self.textbuffer) self.hbox=gtk.HBox() self.vbox.pack_start(self.hbox, False, False, 2) self.closebutton=gtk.Button("Close") self.closebutton.connect("pressed", self.closebutton_pressed) self.closeimage=gtk.image_new_from_stock(gtk.STOCK_CLOSE, gtk.ICON_SIZE_MENU) self.closebutton.set_image(self.closeimage) self.hbox.pack_end(self.closebutton, False, False) self.vbox.show_all() self.win.connect("delete-event", self.on_delete) def set_text(self, book): self.book=book titlelength=len(book.title) if book.info==None: book.info="No information." self.textbuffer.set_text(book.title+'\n\n'+book.info+'\n') start=self.textbuffer.get_iter_at_offset(0) end=self.textbuffer.get_iter_at_offset(titlelength) self.textbuffer.apply_tag_by_name('bold',start, end) def on_delete(self, window, event): self.win.hide() self.showing=False return True def closebutton_pressed(self, widget): self.win.hide() self.showing=False dist/copy/plugins/PaxHeaders.26361/daapserver0000644000175000017500000000013212233027261017561 xustar000000000000000030 mtime=1382821553.473046944 30 atime=1382821552.785046922 30 ctime=1382821553.473046944 exaile-3.3.2/plugins/daapserver/0000755000000000000000000000000012233027261016577 5ustar00rootroot00000000000000dist/copy/plugins/daapserver/PaxHeaders.26361/spydaap.py0000644000175000017500000000012412233027260021651 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.317046939 exaile-3.3.2/plugins/daapserver/spydaap.py0000755000000000000000000001346212233027260020622 0ustar00rootroot00000000000000#Copyright (C) 2008 Erik Hetzner #This file is part of Spydaap. Spydaap 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 3 of the License, or (at your option) any later version. #Spydaap 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 Spydaap. If not, see . import BaseHTTPServer, SocketServer, getopt, grp, httplib, logging, os, pwd, select, signal, spydaap, sys import spydaap.daap, spydaap.metadata, spydaap.containers, spydaap.cache, spydaap.server, spydaap.zeroconf from spydaap.daap import do import config logging.basicConfig() log = logging.getLogger('spydaap') cache = spydaap.cache.Cache(spydaap.cache_dir) md_cache = spydaap.metadata.MetadataCache(os.path.join(spydaap.cache_dir, "media"), spydaap.parsers) container_cache = spydaap.containers.ContainerCache(os.path.join(spydaap.cache_dir, "containers"), spydaap.container_list) keep_running = True class Log: """file like for writes with auto flush after each write to ensure that everything is logged, even during an unexpected exit.""" def __init__(self, f): self.f = f def write(self, s): self.f.write(s) self.f.flush() class MyThreadedHTTPServer(SocketServer.ThreadingMixIn, BaseHTTPServer.HTTPServer): """Handle requests in a separate thread.""" timeout = 1 def __init__(self, *args): BaseHTTPServer.HTTPServer.__init__(self,*args) self.keep_running = True def serve_forever(self): while self.keep_running: self.handle_request() def force_stop(self): self.keep_running = False self.server_close() def rebuild_cache(signum=None, frame=None): md_cache.build(os.path.abspath(spydaap.media_path)) container_cache.clean() container_cache.build(md_cache) cache.clean() def usage(): sys.stderr.write("Usage: %s [OPTION]\n"%(sys.argv[0])) sys.stderr.write(" -f, --foreground run in foreground, rather than daemonizing\n") sys.stderr.write(" -g, --group=groupname specify group to run as\n") sys.stderr.write(" -h, --help print this help\n") sys.stderr.write(" -l, --logfile=file use .log file (default is ./spydaap.log\n") sys.stderr.write(" -p, --pidfile=file use .pid file (default is ./spydaap.pid\n") sys.stderr.write(" -u, --user=username specify username to run as\n") def make_shutdown(httpd): def _shutdown(signum, frame): httpd.force_stop() return _shutdown def really_main(): rebuild_cache() zeroconf = spydaap.zeroconf.Zeroconf(spydaap.server_name, spydaap.port, stype="_daap._tcp") zeroconf.publish() log.warn("Listening.") httpd = MyThreadedHTTPServer(('0.0.0.0', spydaap.port), spydaap.server.makeDAAPHandlerClass(spydaap.server_name, cache, md_cache, container_cache)) signal.signal(signal.SIGTERM, make_shutdown(httpd)) signal.signal(signal.SIGHUP, rebuild_cache) while httpd.keep_running: try: httpd.serve_forever() except select.error: pass except KeyboardInterrupt: httpd.force_stop() log.warn("Shutting down.") zeroconf.unpublish() def main(): daemonize = True logfile = os.path.abspath("spydaap.log") pidfile = os.path.abspath("spydaap.pid") uid = os.getuid() gid = os.getgid() try: opts, args = getopt.gnu_getopt(sys.argv[1:], "fg:hl:p:u:", ["foreground", "group=", "help", "logfile=", "pidfile=", "user="]) for o, a in opts: if o in ("-h", "--help"): usage() sys.exit() elif o in ("-g", "--group"): gid = grp.getgrnam(a)[2] elif o in ("-f", "--foreground"): daemonize = False elif o in ("-l", "--logfile"): logfile = a elif o in ("-p", "--pidfile"): pidfile = a elif o in ("-u", "--user"): uid = pwd.getpwnam(a)[2] else: assert False, "unhandled option" except getopt.GetoptError, err: # print help information and exit: sys.stderr.write(str(err)) usage() sys.exit(2) if uid == 0 or gid == 0: sys.stderr.write("spydaap must not run as root\n") sys.exit(2) #ensure the that the daemon runs a normal user os.setegid(gid) os.seteuid(uid) if not(daemonize): really_main() else: #redirect outputs to a logfile sys.stdout = sys.stderr = Log(open(logfile, 'a+')) try: pid = os.fork() if pid > 0: # exit first parent sys.exit(0) except OSError, e: sys.stderr.write("fork #1 failed: %d (%s)\n" % (e.errno, e.strerror)) sys.exit(1) # decouple from parent environment os.chdir("/") #don't prevent unmounting.... os.setsid() os.umask(0) # do second fork try: pid = os.fork() if pid > 0: # exit from second parent, print eventual PID before #print "Daemon PID %d" % pid open(pidfile,'w').write("%d"%pid) sys.exit(0) except OSError, e: print >>sys.stderr, "fork #2 failed: %d (%s)" % (e.errno, e.strerror) sys.exit(1) really_main() if __name__ == "__main__": main() dist/copy/plugins/daapserver/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260021747 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.473046944 exaile-3.3.2/plugins/daapserver/__init__.py0000644000000000000000000000613312233027260020712 0ustar00rootroot00000000000000 import logging import gobject from xl import collection, event, settings import spydaap.parser.exaile log = logging.getLogger(__file__) # todo support multiple connections? class CollectionWrapper: '''Class to wrap Exaile's collection to make it spydaap compatible''' class TrackWrapper: '''Wrap a single track for spydaap''' def __init__(self, id, track): self.track = track self.id = id self.parser = spydaap.parser.exaile.ExaileParser() self.daap = None def get_dmap_raw(self): if self.daap is None: do = self.parser.parse(self.track)[0] if do is not None: self.daap = ''.join([d.encode() for d in do]) else: self.daap = '' return self.daap def get_original_filename(self): return self.track.get_local_path() def __init__(self, collection): self.collection = collection self.map = [] def __iter__(self): i = 0 self.map = [] for t in self.collection: self.map.append(self.TrackWrapper(i, t)) yield self.map[i] i += 1 def get_item_by_id(self, id): return self.map[int(id)] def __getitem__(self, idx): return self.map[idx] def __len__(self): return len(self.collection) from server import DaapServer ds = None def _enable(exaile): # real enable global ds event.add_callback(on_settings_change, 'plugin_daapserver_option_set') port = int(settings.get_option('plugin/daapserver/port', 3689)) name = settings.get_option('plugin/daapserver/name', 'Exaile Share') host = settings.get_option('plugin/daapserver/host', '0.0.0.0') ds = DaapServer(CollectionWrapper(exaile.collection), port=port, name=name, host=host) if( settings.get_option('plugin/daapserver/enabled', True) ): ds.start() def __enb(evname, exaile, wat): gobject.idle_add(_enable, exaile) def enable(exaile): if exaile.loading: event.add_callback(__enb, 'gui_loaded') else: __enb(None, exaile, None) def teardown(exaile): ds.stop_server() def disable(exaile): ds.stop_server() # settings stuff import daapserverprefs def get_preferences_pane(): return daapserverprefs def on_settings_change(event, setting, option): if option == 'plugin/daapserver/name' and ds is not None: ds.set(name=settings.get_option(option,'Exaile Share')) if option == 'plugin/daapserver/port' and ds is not None: ds.set(port=settings.get_option(option,3689)) if option == 'plugin/daapserver/host' and ds is not None: ds.set(host=settings.get_option(option,'0.0.0.0')) if option == 'plugin/daapserver/enabled' and ds is not None: enabled = setting.get_option(option, True) if enabled: if not ds.start(): logger.error('failed to start DAAP Server.') else: ds.stop_server() dist/copy/plugins/daapserver/PaxHeaders.26361/README0000644000175000017500000000012412233027260020516 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.317046939 exaile-3.3.2/plugins/daapserver/README0000644000000000000000000000266112233027260017463 0ustar00rootroot00000000000000* Requirements python2.4 or later ; mutagen ; pybonjour * Installing ** Ubuntu/Debian > sudo apt-get install python-mutagen > wget http://o2s.csail.mit.edu/download/pybonjour/pybonjour-1.1.0.tar.gz > tar xzvf pybonjour-1.1.0.tar.gz > cd pybonjour-1.1.0 > sudo python setup.py install ** Mac OS X (with MacPorts) > sudo port install python25 > sudo port install py25-hashlib > sudo port install py25-zlib > wget http://www.sacredchao.net/~piman/software/mutagen-1.12.tar.gz > tar xzvf mutagen-1.12.tar.gz > cd mutagen-1.12 > sudo python2.5 setup.py install > cd .. > wget http://o2s.csail.mit.edu/download/pybonjour/pybonjour-1.1.0.tar.gz > tar xzvf pybonjour-1.1.0.tar.gz > cd pybonjour-1.1.0 > sudo python2.5 setup.py install > cd .. * Running > cd spydaap > mkdir media Media is the default directory where spydaap looks for media files. It can be change by editing config.py. > ln -s ~/music media/ > ln -s ~/more-music media Link in all the directories whose files you'd like to make available. > ./spydaap [ on Ubuntu/Debian ] > python2.5 spydaap.py [ on Mac OS X if python2.5 is not your default python ] Easy daemonizing will come soon. * Customizing See config.py for information on setting port, name, etc. There also examples of some custom smart playlists. For writing your own smart playlists, see spydaap/playlists.py. dist/copy/plugins/daapserver/PaxHeaders.26361/COPYING0000644000175000017500000000012412233027260020671 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.177046934 exaile-3.3.2/plugins/daapserver/COPYING0000644000000000000000000010451312233027260017635 0ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 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 3 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, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . dist/copy/plugins/daapserver/PaxHeaders.26361/daapserverprefs.py0000644000175000017500000000012412233027260023404 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.177046934 exaile-3.3.2/plugins/daapserver/daapserverprefs.py0000644000000000000000000000120412233027260022341 0ustar00rootroot00000000000000 from xlgui.preferences import widgets from xl.nls import gettext as _ import os name = _('DAAP Server') basedir = os.path.dirname(os.path.realpath(__file__)) ui = os.path.join(basedir, 'daapserver_prefs.ui') class PortPreference(widgets.SpinPreference): default = 3689 name = 'plugin/daapserver/port' class NamePreference(widgets.Preference): default = 'Exaile Share' name = 'plugin/daapserver/name' class EnabledPreference(widgets.CheckPreference): default = True name = 'plugin/daapserver/enabled' class HostPreference(widgets.Preference): default = '0.0.0.0' name = 'plugin/daapserver/host' dist/copy/plugins/daapserver/PaxHeaders.26361/config.py0000644000175000017500000000012412233027260021455 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.177046934 exaile-3.3.2/plugins/daapserver/config.py0000644000000000000000000000142112233027260020413 0ustar00rootroot00000000000000import spydaap, spydaap.parser.mp3, spydaap.parser.ogg, spydaap.parser.flac spydaap.parsers = [spydaap.parser.mp3.Mp3Parser(), spydaap.parser.flac.FlacParser(), spydaap.parser.ogg.OggParser()] #to process .mov files #from spydaap.parser import mp3,mov #spydaap.server_name = "spydaap" #spydaap.port = 3689 #top path to scan for media #spydaap.media_path = "media" #spydaap.cache_dir = 'cache' spydaap.container_list.append(spydaap.playlists.Genre('reggae', ["reggae", "reggae: dub", "dub"])) spydaap.container_list.append(spydaap.playlists.Recent('last 30 days', (60 * 60 * 24 * 30))) spydaap.container_list.append(spydaap.playlists.YearRange('1970s', 1970, 1979)) spydaap.container_list.append(spydaap.playlists.Rating('top rated', 100)) dist/copy/plugins/daapserver/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260021233 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.097046932 exaile-3.3.2/plugins/daapserver/PLUGININFO0000644000000000000000000000036412233027260020176 0ustar00rootroot00000000000000Version='0.2.1' Authors=['Brian Parma '] Name=_('DAAP Server') Description=_('This plugin integrates spydaap (http://launchpad.net/spydaap) into Exaile so a collection can be shared over DAAP.') Category=_('Media Sources') dist/copy/plugins/daapserver/PaxHeaders.26361/server.py0000644000175000017500000000012412233027260021516 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.473046944 exaile-3.3.2/plugins/daapserver/server.py0000755000000000000000000001223512233027260020464 0ustar00rootroot00000000000000# Modified to work with Exaile - Brian Parma # #Copyright (C) 2008 Erik Hetzner #This file is part of Spydaap. Spydaap 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 3 of the License, or (at your option) any later version. #Spydaap 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 Spydaap. If not, see . import BaseHTTPServer, SocketServer, getopt, grp, httplib, logging, os, pwd, select, signal, spydaap, sys, socket import spydaap.daap, spydaap.metadata, spydaap.containers, spydaap.cache, spydaap.server, spydaap.zeroconf from spydaap.daap import do from threading import Thread from xl import common, event import config #logging.basicConfig() logger = logging.getLogger('daapserver') __all__ = ['DaapServer'] class MyThreadedHTTPServer(SocketServer.ThreadingMixIn, BaseHTTPServer.HTTPServer): """Handle requests in a separate thread.""" timeout = 1 def __init__(self, *args): if ':' in args[0][0]: self.address_family = socket.AF_INET6 BaseHTTPServer.HTTPServer.__init__(self,*args) self.keep_running = True def serve_forever(self): while self.keep_running: self.handle_request() def force_stop(self): self.keep_running = False self.server_close() class DaapServer(): def __init__(self, library, name=spydaap.server_name, host='', port=spydaap.port): # Thread.__init__(self) self.host = host self.port = port self.library = library self.name = name self.httpd = None self.handler = None # Set a callback that will let us propagate library changes to clients event.add_callback( self.update_rev, 'libraries_modified', library.collection) def update_rev(self, *args): if self.handler is not None: # Updating the server revision, so if a client checks # it can see the library has changed self.handler.daap_server_revision += 1 logger.info('Libraries Changed, incrementing revision to %d.' % self.handler.daap_server_revision ) def set(self, **kwargs): for key in kwargs: setattr(self, key, kwargs[key]) @common.threaded def run(self): self.zeroconf = spydaap.zeroconf.Zeroconf(self.name, self.port, stype="_daap._tcp") self.handler = spydaap.server.makeDAAPHandlerClass( str(self.name), [], self.library, []) self.httpd = MyThreadedHTTPServer((self.host, self.port), self.handler) #signal.signal(signal.SIGTERM, make_shutdown(httpd)) #signal.signal(signal.SIGHUP, rebuild_cache) if self.httpd.address_family == socket.AF_INET: self.zeroconf.publish(ipv4=True,ipv6=False) else: self.zeroconf.publish(ipv4=False,ipv6=True) try: try: logger.warning("Listening.") self.httpd.serve_forever() except select.error: pass except KeyboardInterrupt: self.httpd.force_stop() logger.warning("Shutting down.") self.zeroconf.unpublish() self.httpd = None def start(self): if self.httpd is None: self.run() return True return False def stop(self): if self.httpd is not None: self.httpd.force_stop() return True return False def stop_server(self): self.stop() #def rebuild_cache(signum=None, frame=None): # md_cache.build(os.path.abspath(spydaap.media_path)) # container_cache.clean() # container_cache.build(md_cache) # cache.clean() #def really_main(): # rebuild_cache() # zeroconf = spydaap.zeroconf.Zeroconf(spydaap.server_name, # spydaap.port, # stype="_daap._tcp") # zeroconf.publish() # logger.warn("Listening.") # httpd = MyThreadedHTTPServer(('0.0.0.0', spydaap.port), # spydaap.server.makeDAAPHandlerClass(spydaap.server_name, cache, md_cache, container_cache)) # ## signal.signal(signal.SIGTERM, make_shutdown(httpd)) ## signal.signal(signal.SIGHUP, rebuild_cache) # # try: # try: # httpd.serve_forever() # except select.error: # pass # except KeyboardInterrupt: # httpd.force_stop() # logger.warn("Shutting down.") # zeroconf.unpublish() #def main(): # really_main() #if __name__ == "__main__": # main() dist/copy/plugins/daapserver/PaxHeaders.26361/spydaap0000644000175000017500000000013212233027261021222 xustar000000000000000030 mtime=1382821553.473046944 30 atime=1382821552.785046922 30 ctime=1382821553.473046944 exaile-3.3.2/plugins/daapserver/spydaap/0000755000000000000000000000000012233027261020240 5ustar00rootroot00000000000000dist/copy/plugins/daapserver/spydaap/PaxHeaders.26361/playlists.py0000644000175000017500000000012412233027260023675 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.297046938 exaile-3.3.2/plugins/daapserver/spydaap/playlists.py0000644000000000000000000000626012233027260022641 0ustar00rootroot00000000000000#Copyright (C) 2008 Erik Hetzner #This file is part of Spydaap. Spydaap 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 3 of the License, or (at your option) any later version. #Spydaap 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 Spydaap. If not, see . import os, time class Playlist(object): name = None smart_playlist = True def sort(self, entries): pass def safe_cmp(self, a, b, key): if a.has_key(key) and b.has_key(key): return cmp(a[key], b[key]) elif a.has_key(key): return 1 elif b.has_key(key): return -1 else: return 0 def safe_cmp_series(self, a, b, key_list): if len(key_list) == 0: return 0 key = key_list[0] r = self.safe_cmp(a, b, key) if r != 0: return r else: return self.safe_cmp_series(a, b, key_list[1:]) class Library(Playlist): def __init__(self): self.name = "Library" self.smart_playlist = False def contains(self, md): return True class Genre(Playlist): def __init__(self, name, genre): self.name = name self.genre = genre def contains(self, md): if not(md.has_key('daap.songgenre')): return False else: songgenre = md['daap.songgenre'].lower() if type(self.genre) == str: return songgenre == self.genre elif type(self.genre) == list: return songgenre in self.genre class YearRange(Playlist): def __init__(self, name, first,last=None): self.name = name if last == None: last = first self.last = last self.first = first def contains(self, md): if not(md.has_key('daap.songyear')): return False else: year = md['daap.songyear'] return year >= self.first and year <= self.last def sort(self, entries): def s(a,b): return self.safe_cmp_series(a, b, ['daap.songyear', 'daap.songartist', 'daap.songalbum', 'daap.songtracknumber']) entries.sort(cmp=s) class Recent(Playlist): def __init__(self, name, seconds=604800): self.name = name self.seconds = seconds def contains(self, md): f_mtime = os.stat(md.get_original_filename()).st_mtime return ((f_mtime + self.seconds) > time.time()) class Rating(Playlist): def __init__(self, name, rating): self.name = name self.rating = rating def contains(self, md): if md.has_key('daap.songuserrating'): return md['daap.songuserrating'] >= self.rating else: return False dist/copy/plugins/daapserver/spydaap/PaxHeaders.26361/cache.py0000644000175000017500000000012412233027260022714 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.165046934 exaile-3.3.2/plugins/daapserver/spydaap/cache.py0000644000000000000000000000616012233027260021657 0ustar00rootroot00000000000000#Copyright (C) 2008 Erik Hetzner #This file is part of Spydaap. Spydaap 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 3 of the License, or (at your option) any later version. #Spydaap 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 Spydaap. If not, see . import md5, os, sys class Cache(object): def __init__(self, dir): self.dir = os.path.abspath(dir) if (not(os.path.exists(self.dir))): os.mkdir(self.dir) def get(self, id, func): id = md5.md5(id).hexdigest() fn = os.path.join(self.dir, id) if (not(os.path.exists(fn))): f = open(fn, 'w') func (f) f.close() return open(fn) def clean(self): for f in os.listdir(self.dir): p = os.path.join(self.dir, f) if os.path.isfile(p): os.remove(p) class OrderedCache(object): class Iter: def __init__(self, cache): self.cache = cache self.n = 0 def __iter__(self): return self def next(self): if self.n >= len(self.cache): raise StopIteration self.n = self.n + 1 return self.cache.get_item_by_id(self.n) def __init__(self, dir): self.dir = os.path.abspath(dir) if (not(os.path.exists(self.dir))): os.mkdir(self.dir) def __iter__(self): return OrderedCache.Iter(self) def get_item_by_id(self, id): fi = open(os.path.join(self.dir, 'index'), 'r') fi.seek((int(id) - 1) * 32) cfn = fi.read(32) fi.close() return self.get_item_by_pid(cfn, id) def __len__(self): return os.path.getsize(os.path.join(self.dir, 'index')) / 32 def build_index(self, pid_list=None): index_fn = os.path.join(self.dir, 'index') if os.path.exists(index_fn): os.remove(index_fn) if pid_list == None: pid_list = [ f for f in os.listdir(self.dir) if f != "index"] pid_list.sort() fi = open(index_fn, 'w') for pid in pid_list: fi.write(pid) fi.close() def clean(self): for f in os.listdir(self.dir): p = os.path.join(self.dir, f) if os.path.isfile(p): os.remove(p) class OrderedCacheItem(object): def __init__(self, cache, pid, id): self.cache = cache self.pid = pid self.id = id self.path = os.path.join(self.cache.dir, pid) def get_mtime(self): return os.stat(self.path).st_mtime def get_exists(self): return os.path.exists(self.path) def get_id(self): return self.id def get_pid(self): return self.pid dist/copy/plugins/daapserver/spydaap/PaxHeaders.26361/daap_data.py0000644000175000017500000000012412233027260023547 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.177046934 exaile-3.3.2/plugins/daapserver/spydaap/daap_data.py0000644000000000000000000001474512233027260022522 0ustar00rootroot00000000000000__all__ = ['dmapCodeTypes', 'dmapDataTypes', 'dmapNames', 'dmapReverseDataTypes'] dmapCodeTypes = { #'f\x8dch': ('dmap.haschildcontainers', 'b'), 'abal': ('daap.browsealbumlisting', 'c'), 'abar': ('daap.browseartistlisting', 'c'), 'abcp': ('daap.browsecomposerlisting', 'c'), 'abgn': ('daap.browsegenrelisting', 'c'), 'abpl': ('daap.baseplaylist', 'b'), 'abro': ('daap.databasebrowse', 'c'), 'adbs': ('daap.databasesongs', 'c'), 'aeAI': ('com.apple.itunes.itms-artistid', 'i'), 'aeCI': ('com.apple.itunes.itms-composerid', 'i'), 'aeEN': ('com.apple.itunes.episode-num-str', 's'), 'aeES': ('com.apple.itunes.episode-sort', 'i'), 'aeFP': ('com.apple.itunes.req-fplay', 'b'), 'aeGU': ('com.apple.itunes.gapless-dur', 'l'), 'aeGD': ('com.apple.itunes.gapless-enc-dr', 'i'), 'aeGE': ('com.apple.itunes.gapless-enc-del', 'i'), 'aeGH': ('com.apple.itunes.gapless-heur', 'i'), 'aeGI': ('com.apple.itunes.itms-genreid', 'i'), 'aeGR': ('com.apple.itunes.gapless-resy', 'l'), 'aeHV': ('com.apple.itunes.has-video', 'b'), 'aeMK': ('com.apple.itunes.mediakind', 'b'), 'aeNN': ('com.apple.itunes.network-name', 's'), 'aeNV': ('com.apple.itunes.norm-volume', 'i'), 'aePC': ('com.apple.itunes.is-podcast', 'b'), 'aePI': ('com.apple.itunes.itms-playlistid', 'i'), 'aePP': ('com.apple.itunes.is-podcast-playlist', 'b'), 'aePS': ('com.apple.itunes.special-playlist', 'b'), 'aeSU': ('com.apple.itunes.season-num', 'i'), 'aeSF': ('com.apple.itunes.itms-storefrontid', 'i'), 'aeSI': ('com.apple.itunes.itms-songid', 'i'), 'aeSN': ('com.apple.itunes.series-name', 's'), 'aeSP': ('com.apple.itunes.smart-playlist', 'b'), 'aeSV': ('com.apple.itunes.music-sharing-version', 'i'), 'agrp': ('daap.songgrouping', 's'), 'aply': ('daap.databaseplaylists', 'c'), 'aprm': ('daap.playlistrepeatmode', 'b'), 'apro': ('daap.protocolversion', 'v'), 'apsm': ('daap.playlistshufflemode', 'b'), 'apso': ('daap.playlistsongs', 'c'), 'arif': ('daap.resolveinfo', 'c'), 'arsv': ('daap.resolve', 'c'), 'asaa': ('daap.songalbumartist', 's'), 'asal': ('daap.songalbum', 's'), 'asar': ('daap.songartist', 's'), 'asbk': ('daap.bookmarkable', 'b'), 'asbo': ('daap.songbookmark', 'i'), 'asbr': ('daap.songbitrate', 'h'), 'asbt': ('daap.songbeatsperminute', 'h'), 'ascd': ('daap.songcodectype', 'i'), 'ascm': ('daap.songcomment', 's'), 'ascn': ('daap.songcontentdescription', 's'), 'asco': ('daap.songcompilation', 'b'), 'ascp': ('daap.songcomposer', 's'), 'ascr': ('daap.songcontentrating', 'b'), 'ascs': ('daap.songcodecsubtype', 'i'), 'asct': ('daap.songcategory', 's'), 'asda': ('daap.songdateadded', 't'), 'asdb': ('daap.songdisabled', 'b'), 'asdc': ('daap.songdisccount', 'h'), 'asdk': ('daap.songdatakind', 'b'), 'asdm': ('daap.songdatemodified', 't'), 'asdn': ('daap.songdiscnumber', 'h'), 'asdp': ('daap.songdatepurchased', 't'), 'asdr': ('daap.songdatereleased', 't'), 'asdt': ('daap.songdescription', 's'), 'ased': ('daap.songextradata', 'h'), 'aseq': ('daap.songeqpreset', 's'), 'asfm': ('daap.songformat', 's'), 'asgn': ('daap.songgenre', 's'), 'asgp': ('daap.songgapless', 'b'), 'ashp': ('daap.songhasbeenplayed', 'b'), 'asky': ('daap.songkeywords', 's'), 'aslc': ('daap.songlongcontentdescription', 's'), 'asrv': ('daap.songrelativevolume', 'ub'), 'assu': ('daap.sortalbum', 's'), 'assa': ('daap.sortartist', 's'), 'assc': ('daap.sortcomposer', 's'), 'assl': ('daap.sortalbumartist', 's'), 'assn': ('daap.sortname', 's'), 'assp': ('daap.songstoptime', 'i'), 'assr': ('daap.songsamplerate', 'i'), 'asss': ('daap.sortseriesname', 's'), 'asst': ('daap.songstarttime', 'i'), 'assz': ('daap.songsize', 'i'), 'astc': ('daap.songtrackcount', 'h'), 'astm': ('daap.songtime', 'i'), 'astn': ('daap.songtracknumber', 'h'), 'asul': ('daap.songdataurl', 's'), 'asur': ('daap.songuserrating', 'b'), 'asyr': ('daap.songyear', 'h'), 'ated': ('daap.supportsextradata', 'h'), 'avdb': ('daap.serverdatabases', 'c'), 'mbcl': ('dmap.bag', 'c'), 'mccr': ('dmap.contentcodesresponse', 'c'), 'mcna': ('dmap.contentcodesname', 's'), 'mcnm': ('dmap.contentcodesnumber', 'i'), 'mcon': ('dmap.container', 'c'), 'mctc': ('dmap.containercount', 'i'), 'mcti': ('dmap.containeritemid', 'i'), 'mcty': ('dmap.contentcodestype', 'h'), 'mdcl': ('dmap.dictionary', 'c'), 'miid': ('dmap.itemid', 'i'), 'mikd': ('dmap.itemkind', 'b'), 'mimc': ('dmap.itemcount', 'i'), 'minm': ('dmap.itemname', 's'), 'mlcl': ('dmap.listing', 'c'), 'mlid': ('dmap.sessionid', 'i'), 'mlit': ('dmap.listingitem', 'c'), 'mlog': ('dmap.loginresponse', 'c'), 'mpco': ('dmap.parentcontainerid', 'i'), 'mper': ('dmap.persistentid', 'l'), 'mpro': ('dmap.protocolversion', 'v'), 'mrco': ('dmap.returnedcount', 'i'), 'msau': ('dmap.authenticationmethod', 'b'), 'msal': ('dmap.supportsautologout', 'b'), 'msas': ('dmap.authenticationschemes', 'i'), 'msbr': ('dmap.supportsbrowse', 'b'), 'msdc': ('dmap.databasescount', 'i'), 'msex': ('dmap.supportsextensions', 'b'), 'msix': ('dmap.supportsindex', 'b'), 'mslr': ('dmap.loginrequired', 'b'), 'mspi': ('dmap.supportspersistentids', 'b'), 'msqy': ('dmap.supportsquery', 'b'), 'msrs': ('dmap.supportsresolve', 'b'), 'msrv': ('dmap.serverinforesponse', 'c'), 'mstc': ('dmap.utctime', 't'), 'mstm': ('dmap.timeoutinterval', 'i'), 'msto': ('dmap.utcoffset', 'ui'), 'msts': ('dmap.statusstring', 's'), 'mstt': ('dmap.status', 'i'), 'msup': ('dmap.supportsupdate', 'b'), 'mtco': ('dmap.specifiedtotalcount', 'i'), 'mudl': ('dmap.deletedidlisting', 'c'), 'mupd': ('dmap.updateresponse', 'c'), 'musr': ('dmap.serverrevision', 'i'), 'muty': ('dmap.updatetype', 'b'), 'ppro': ('dpap.protocolversion', 'i'), 'pret': ('dpap.unknown', 'c'), } dmapDataTypes = { 1:'b', # byte 2:'ub', # unsigned byte 3:'h', # short 4:'uh', # unsigned short 5:'i', # integer 6:'ui', # unsigned integer 7:'l', # long 8:'ul', # unsigned long 9:'s', # string 10:'t', # timestamp 11:'v', # version 12:'c', # container } dmapNames = {} for k in dmapCodeTypes.keys(): dmapNames[dmapCodeTypes[k][0]] = k dmapReverseDataTypes = {} for k in dmapDataTypes.keys(): dmapReverseDataTypes[dmapDataTypes[k]] = k dist/copy/plugins/daapserver/spydaap/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260023410 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.157046934 exaile-3.3.2/plugins/daapserver/spydaap/__init__.py0000644000000000000000000000344212233027260022353 0ustar00rootroot00000000000000#Copyright (C) 2008 Erik Hetzner #This file is part of Spydaap. Spydaap 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 3 of the License, or (at your option) any later version. #Spydaap 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 Spydaap. If not, see . import os, playlists server_name = "spydaap" port = 3689 media_path = os.path.abspath("media") cache_dir = os.path.abspath("cache") container_list = [playlists.Library()] class ContentRangeFile(object): def __init__(self, name, parent, start, end=None, chunk=1024): self.name = name self.parent = parent self.start = start self.end = end self.chunk = chunk self.parent.seek(self.start) self.read = start self.length = self.end - self.start def __len__(self): return self.length def next(self): to_read = self.chunk if (self.end != None): if (self.read >= self.end): self.parent.close() raise StopIteration if (to_read + self.read > self.end): to_read = self.end - self.read retval = self.parent.read(to_read) self.read = self.read + len(retval) else: retval = self.parent.read(to_read) if retval == '': self.parent.close() raise StopIteration else: return retval def __iter__(self): return self dist/copy/plugins/daapserver/spydaap/PaxHeaders.26361/containers.py0000644000175000017500000000012412233027260024016 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.177046934 exaile-3.3.2/plugins/daapserver/spydaap/containers.py0000644000000000000000000000632312233027260022762 0ustar00rootroot00000000000000#Copyright (C) 2008 Erik Hetzner #This file is part of Spydaap. Spydaap 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 3 of the License, or (at your option) any later version. #Spydaap 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 Spydaap. If not, see . import os, struct, md5, spydaap.cache from spydaap.daap import do class ContainerCache(spydaap.cache.OrderedCache): def __init__(self, cache_dir, container_list): self.container_list = container_list super(ContainerCache, self).__init__(cache_dir) def get_item_by_pid(self, pid, n=None): return ContainerCacheItem(self, pid, None) def build(self, md_cache): def build_do(md, id): d = do('dmap.listingitem', [ do('dmap.itemkind', 2), do('dmap.itemid', md.id), do('dmap.itemname', md.get_name()), do('dmap.containeritemid', id) ] ) return d pid_list = [] for pl in self.container_list: entries = [n for n in md_cache if pl.contains(n)] pl.sort(entries) d = do('daap.playlistsongs', [ do('dmap.status', 200), do('dmap.updatetype', 0), do('dmap.specifiedtotalcount', len(entries)), do('dmap.returnedcount', len(entries)), do('dmap.listing', [ build_do (md,id) for (id, md) in enumerate(entries) ]) ]) ContainerCacheItem.write_entry(self.dir, pl.name, d, len(entries)) pid_list.append(md5.md5(pl.name).hexdigest()) self.build_index(pid_list) class ContainerCacheItem(spydaap.cache.OrderedCacheItem): @classmethod def write_entry(self, dir, name, d, length): data = struct.pack('!i', length) data = data + struct.pack('!i%ss' % len(name), len(name), name) data = data + d.encode() cachefn = os.path.join(dir, md5.md5(name).hexdigest()) f = open(cachefn, 'w') f.write(data) f.close() def __init__(self, cache, pid, id): super(ContainerCacheItem, self).__init__(cache, pid, id) self.daap_raw = None self.name = None self._len = None def read(self): f = open(self.path) self._len = struct.unpack('!i', f.read(4))[0] name_len = struct.unpack('!i', f.read(4))[0] self.name = f.read(name_len) self.daap_raw = f.read() f.close() def get_daap_raw(self): if self.daap_raw == None: self.read() return self.daap_raw def get_name(self): if self.name == None: self.read() return self.name def __len__(self): if self._len == None: self.read() return self._len dist/copy/plugins/daapserver/spydaap/PaxHeaders.26361/zeroconf.py0000644000175000017500000000012412233027260023476 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.473046944 exaile-3.3.2/plugins/daapserver/spydaap/zeroconf.py0000644000000000000000000001004512233027260022436 0ustar00rootroot00000000000000# adopted from http://stackp.online.fr/?p=35 __all__ = ["Zeroconf"] import select, sys, traceback import logging logger = logging.getLogger(__name__) class Zeroconf(object): """A simple class to publish a network service with zeroconf using avahi or pybonjour, preferring pybonjour. """ class Helper(object): def __init__(self, name, port, **kwargs): self.name = name self.port = port self.stype = kwargs.get('stype', "_http._tcp") self.domain = kwargs.get('domain', '') self.host = kwargs.get('host', '') self.text = kwargs.get('text', '') class Pybonjour(Helper): def publish(self): import pybonjour #records as in mt-daapd txtRecord=pybonjour.TXTRecord() txtRecord['txtvers'] = '1' txtRecord['iTSh Version'] = '131073' #'196609' txtRecord['Machine Name'] = self.name txtRecord['Password'] = '0' # 'False' ? #txtRecord['Database ID'] = '' # 16 hex digits #txtRecord['Version'] = '196616' #txtRecord['iTSh Version'] = #txtRecord['Machine ID'] = '' # 12 hex digits #txtRecord['Media Kinds Shared'] = '0' #txtRecord['OSsi'] = '0x1F6' #? #txtRecord['MID'] = '0x3AA6175DD7155BA7', = database id - 2 ? #txtRecord['dmv'] = '131077' def register_callback(sdRef, flags, errorCode, name, regtype, domain): pass self.sdRef = pybonjour.DNSServiceRegister(name = self.name, regtype = "_daap._tcp", port = self.port, callBack = register_callback, txtRecord=txtRecord) while True: ready = select.select([self.sdRef], [], []) if self.sdRef in ready[0]: pybonjour.DNSServiceProcessResult(self.sdRef) break def unpublish(self): self.sdRef.close() class Avahi(Helper): def publish(self, ipv4=True, ipv6=True): import dbus, avahi bus = dbus.SystemBus() server = dbus.Interface( bus.get_object( avahi.DBUS_NAME, avahi.DBUS_PATH_SERVER), avahi.DBUS_INTERFACE_SERVER) self.group = dbus.Interface( bus.get_object(avahi.DBUS_NAME, server.EntryGroupNew()), avahi.DBUS_INTERFACE_ENTRY_GROUP) if ipv4 and ipv6: prot = avahi.PROTO_UNSPEC elif ipv6: proto = avahi.PROTO_INET6 else: # we don't let them both be false proto = avahi.PROTO_INET self.group.AddService(avahi.IF_UNSPEC, proto, dbus.UInt32(0), self.name, self.stype, self.domain, self.host, dbus.UInt16(self.port), self.text) self.group.Commit() def unpublish(self): self.group.Reset() def __init__(self, *args, **kwargs): try: import pybonjour self.helper = Zeroconf.Pybonjour(*args, **kwargs) except ImportError: logger.info('pybonjour not found, using avahi') try: import avahi, dbus self.helper = Zeroconf.Avahi(*args, **kwargs) except ImportError: logger.warning('pybonjour nor avahi found, cannot announce presence') self.helper = None def publish(self, *args, **kwargs): if self.helper != None: self.helper.publish(*args, **kwargs) def unpublish(self): if self.helper != None: self.helper.unpublish() dist/copy/plugins/daapserver/spydaap/PaxHeaders.26361/daap.py0000644000175000017500000000012412233027260022556 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.177046934 exaile-3.3.2/plugins/daapserver/spydaap/daap.py0000644000000000000000000004752312233027260021531 0ustar00rootroot00000000000000# daap.py # # DAAP classes and methods. # # original work (c) 2004, Davyd Madeley # # Later iTunes authentication work and object model # copyright 2005 Tom Insam # # Stripped clean + a few bug fixes, Erik Hetzner import struct, sys, httplib import logging from daap_data import * from cStringIO import StringIO __all__ = ['DAAPError', 'DAAPObject', 'do'] log = logging.getLogger('daap') def DAAPParseCodeTypes(treeroot): # the treeroot we are given should be a # dmap.contentcodesresponse if treeroot.codeName() != 'dmap.contentcodesresponse': raise DAAPError("DAAPParseCodeTypes: We cannot generate a dictionary from this tree.") return for object in treeroot.contains: # each item should be one of two things # a status code, or a dictionary if object.codeName() == 'dmap.status': pass elif object.codeName() == 'dmap.dictionary': code = None name = None dtype = None # a dictionary object should contain three items: # a 'dmap.contentcodesnumber' the 4 letter content code # a 'dmap.contentcodesname' the name of the code # a 'dmap.contentcodestype' the type of the code for info in object.contains: if info.codeName() == 'dmap.contentcodesnumber': code = info.value elif info.codeName() == 'dmap.contentcodesname': name = info.value elif info.codeName() == 'dmap.contentcodestype': try: dtype = dmapDataTypes[info.value] except: log.debug('DAAPParseCodeTypes: unknown data type %s for code %s, defaulting to s', info.value, name) dtype = 's' else: raise DAAPError('DAAPParseCodeTypes: unexpected code %s at level 2' % info.codeName()) if code == None or name == None or dtype == None: log.debug('DAAPParseCodeTypes: missing information, not adding entry') else: try: dtype = dmapFudgeDataTypes[name] except: pass #print("** %s %s %s", code, name, dtype) dmapCodeTypes[code] = (name, dtype) else: raise DAAPError('DAAPParseCodeTypes: unexpected code %s at level 1' % info.codeName()) class DAAPError(Exception): pass class DAAPObject(object): def __init__(self, code=None, value=None, **kwargs): if (code != None): if (len(code) == 4): self.code = code else: self.code = dmapNames[code] if self.code == None or not dmapCodeTypes.has_key(self.code): self.type = None else: self.type = dmapCodeTypes[self.code][1] self.value = value if self.type == 'c' and type(self.value) == list: self.contains = value if kwargs.has_key('parent'): kwargs['parent'].contains.append(self) def getAtom(self, code): """returns an atom of the given code by searching 'contains' recursively.""" if self.code == code: if self.type == 'c': return self return self.value # ok, it's not us. check our children if hasattr(self, 'contains'): for object in self.contains: value = object.getAtom(code) if value: return value return None def codeName(self): if self.code == None or not dmapCodeTypes.has_key(self.code): return None else: return dmapCodeTypes[self.code][0] def objectType(self): if self.code == None or not dmapCodeTypes.has_key(self.code): return None else: return dmapCodeTypes[self.code][1] def printTree(self, level = 0, out = sys.stdout): if hasattr(self, 'value'): out.write('\t' * level + '%s (%s)\t%s\t%s\n' % (self.codeName(), self.code, self.type, self.value)) else: out.write('\t' * level + '%s (%s)\t%s\t%s\n' % (self.codeName(), self.code, self.type, None)) if hasattr(self, 'contains'): for object in self.contains: object.printTree(level + 1) def encode(self): # generate DMAP tagged data format # step 1 - find out what type of object we are if self.type == 'c': # our object is a container, # this means we're going to have to # check contains[] value = '' for item in self.contains: # get the data stream from each of the sub elements if type(item) == str: #preencoded value += item else: value += item.encode() # get the length of the data length = len(value) # pack: 4 byte code, 4 byte length, length bytes of value data = struct.pack('!4sI%ss' % length, self.code, length, value) return data else: # we don't have to traverse anything # to calculate the length and such # we want to encode the contents of # value for our value value = self.value if type(value) == float: value = int(value) if self.type == 'v': value = value.split('.') value = struct.pack('!HH', int(value[0]), int(value[1])) packing = "4s" elif self.type == 'l': packing = 'q' elif self.type == 'ul': packing = 'Q' elif self.type == 'i': if (type(value) == str and len(value) <= 4): packing = '4s' else: packing = 'i' elif self.type == 'ui': packing = 'I' elif self.type == 'h': packing = 'h' elif self.type == 'uh': packing = 'H' elif self.type == 'b': packing = 'b' elif self.type == 'ub': packing = 'B' elif self.type == 't': packing = 'I' elif self.type == 's': if type(value) == unicode: value = value.encode('utf-8') packing = '%ss' % len(value) else: raise DAAPError('DAAPObject: encode: unknown code %s' % self.code) return # calculate the length of what we're packing length = struct.calcsize('!%s' % packing) # pack: 4 characters for the code, 4 bytes for the length, and 'length' bytes for the value data = struct.pack('!4sI%s' % (packing), self.code, length, value) return data def processData(self, str): # read 4 bytes for the code and 4 bytes for the length of the objects data data = str.read(8) if not data: return self.code, self.length = struct.unpack('!4sI', data) # now we need to find out what type of object it is if self.code == None or not dmapCodeTypes.has_key(self.code): self.type = None else: self.type = dmapCodeTypes[self.code][1] if self.type == 'c': start_pos = str.tell() self.contains = [] # the object is a container, we need to pass it # it's length amount of data for processessing eof = 0 while str.tell() < start_pos + self.length: object = DAAPObject() self.contains.append(object) object.processData(str) return # not a container, we're a single atom. Read it. code = str.read(self.length) if self.type == 'l': # the object is a long long number, self.value = struct.unpack('!q', code)[0] elif self.type == 'ul': # the object is an unsigned long long self.value = struct.unpack('!Q', code)[0] elif self.type == 'i': # the object is a number, self.value = struct.unpack('!i', code)[0] elif self.type == 'ui': # unsigned integer self.value = struct.unpack('!I', code)[0] elif self.type == 'h': # this is a short number, self.value = struct.unpack('!h', code)[0] elif self.type == 'uh': # unsigned short self.value = struct.unpack('!H', code)[0] elif self.type == 'b': # this is a byte long number self.value = struct.unpack('!b', code)[0] elif self.type == 'ub': # unsigned byte self.value = struct.unpack('!B', code)[0] elif self.type == 'v': # this is a version tag self.value = float("%s.%s" % struct.unpack('!HH', code)) elif self.type == 't': # this is a time string self.value = struct.unpack('!I', code)[0] elif self.type == 's': # the object is a string # we need to read length characters from the string try: self.value = unicode( struct.unpack('!%ss' % self.length, code)[0], 'utf-8') except UnicodeDecodeError: # oh, urgh self.value = unicode( struct.unpack('!%ss' % self.length, code)[0], 'latin-1') else: # we don't know what to do with this object # put it's raw data into value log.debug('DAAPObject: Unknown code %s for type %s, writing raw data', code, self.code) self.value = code do = DAAPObject class DAAPClient(object): def __init__(self): self.socket = None self.request_id = 0 # self._old_itunes = 0 def connect(self, hostname, port = 3689, password = None): if self.socket != None: raise DAAPError("DAAPClient: already connected.") self.hostname = hostname self.port = port self.password = password self.socket = httplib.HTTPConnection(hostname, port) self.getContentCodes() # practically required self.getInfo() # to determine the remote server version def _get_response(self, r, params = {}, gzip = 1): """Makes a request, doing the right thing, returns the raw data""" if params: l = ['%s=%s' % (k, v) for k, v in params.iteritems()] r = '%s?%s' % (r, '&'.join(l)) log.debug('getting %s', r) headers = { 'Client-DAAP-Version': '3.0', 'Client-DAAP-Access-Index': '2', } if gzip: headers['Accept-encoding'] = 'gzip' if self.password: import base64 b64 = base64.encodestring( '%s:%s'%('user', self.password) )[:-1] headers['Authorization'] = 'Basic %s' % b64 # TODO - we should allow for different versions of itunes - there # are a few different hashing algos we could be using. I need some # older versions of iTunes to test against. if self.request_id > 0: headers[ 'Client-DAAP-Request-ID' ] = self.request_id # if (self._old_itunes): # headers[ 'Client-DAAP-Validation' ] = hash_v2(r, 2) # else: # headers[ 'Client-DAAP-Validation' ] = hash_v3(r, 2, self.request_id) # there are servers that don't allow >1 download from a single HTTP # session, or something. Reset the connection each time. Thanks to # Fernando Herrera for this one. self.socket.close() self.socket.connect() self.socket.request('GET', r, None, headers) response = self.socket.getresponse() return response; def request(self, r, params = {}, answers = 1): """Make a request to the DAAP server, with the passed params. This deals with all the cikiness like validation hashes, etc, etc""" # this returns an HTTP response object response = self._get_response(r, params) status = response.status content = response.read() # if we got gzipped data base, gunzip it. if response.getheader("Content-Encoding") == "gzip": log.debug("gunzipping data") old_len = len(content) compressedstream = StringIO( content ) gunzipper = gzip.GzipFile(fileobj=compressedstream) content = gunzipper.read() log.debug("expanded from %s bytes to %s bytes", old_len, len(content)) # close this, we're done with it response.close() if status == 401: raise DAAPError('DAAPClient: %s: auth required'%r) elif status == 403: raise DAAPError('DAAPClient: %s: Authentication failure'%r) elif status == 503: raise DAAPError('DAAPClient: %s: 503 - probably max connections to server'%r) elif status == 204: # no content, ie logout messages return None elif status != 200: raise DAAPError('DAAPClient: %s: Error %s making request'%(r, response.status)) return self.readResponse( content ) def readResponse(self, data): """Convert binary response from a request to a DAAPObject""" str = StringIO(data) object = DAAPObject() object.processData(str) return object def getContentCodes(self): # make the request for the content codes response = self.request('/content-codes') # now parse and add this information to the dictionary DAAPParseCodeTypes(response) def getInfo(self): response = self.request('/server-info') # detect the 'old' iTunes 4.2 servers, and set a flag, so we use # the real MD5 hash algo to verify requests. # version = response.getAtom("apro") or response.getAtom("ppro") # if int(version) == 2: # self._old_itunes = 1 # response.printTree() def login(self): response = self.request("/login") sessionid = response.getAtom("mlid") if sessionid == None: log.debug('DAAPClient: login unable to determine session ID') return log.debug("Logged in as session %s", sessionid) return DAAPSession(self, sessionid) class DAAPSession(object): def __init__(self, connection, sessionid): self.connection = connection self.sessionid = sessionid self.revision = 1 def request(self, r, params = {}, answers = 1): """Pass the request through to the connection, adding the session-id parameter.""" params['session-id'] = self.sessionid return self.connection.request(r, params, answers) def update(self): response = self.request("/update") #response.printTree() def databases(self): response = self.request("/databases") db_list = response.getAtom("mlcl").contains return [DAAPDatabase(self, d) for d in db_list] def library(self): # there's only ever one db, and it's always the library... return self.databases()[0] def logout(self): response = self.request("/logout") log.debug('DAAPSession: expired session id %s', self.sessionid) # the atoms we want. Making this list smaller reduces memory footprint, # and speeds up reading large libraries. It also reduces the metainformation # available to the client. daap_atoms = "dmap.itemid,dmap.itemname,daap.songalbum,daap.songartist,daap.songformat,daap.songtime,daap.songsize,daap.songgenre,daap.songyear,daap.songtracknumber" class DAAPDatabase(object): def __init__(self, session, atom): self.session = session self.name = atom.getAtom("minm") self.id = atom.getAtom("miid") def tracks(self): """returns all the tracks in this database, as DAAPTrack objects""" response = self.session.request("/databases/%s/items"%self.id, { 'meta':daap_atoms }) #response.printTree() track_list = response.getAtom("mlcl").contains return [DAAPTrack(self, t) for t in track_list] def playlists(self): response = self.session.request("/databases/%s/containers"%self.id) db_list = response.getAtom("mlcl").contains return [DAAPPlaylist(self, d) for d in db_list] class DAAPPlaylist(object): def __init__(self, database, atom): self.database = database self.id = atom.getAtom("miid") self.name = atom.getAtom("minm") self.count = atom.getAtom("mimc") def tracks(self): """returns all the tracks in this playlist, as DAAPTrack objects""" response = self.database.session.request("/databases/%s/containers/%s/items"%(self.database.id,self.id), { 'meta':daap_atoms }) track_list = response.getAtom("mlcl").contains return [DAAPTrack(self.database, t) for t in track_list] class DAAPTrack(object): attrmap = {'name':'minm', 'artist':'asar', 'album':'asal', 'id':'miid', 'type':'asfm', 'time':'astm', 'size':'assz'} def __init__(self, database, atom): self.database = database self.atom = atom def __getattr__(self, name): if self.__dict__.has_key(name): return self.__dict__[name] elif DAAPTrack.attrmap.has_key(name): return self.atom.getAtom(DAAPTrack.attrmap[name]) raise AttributeError, name def request(self): """returns a 'response' object for the track's mp3 data. presumably you can strem from this or something""" # gotta bump this every track download self.database.session.connection.request_id += 1 # get the raw response object directly, not the parsed version return self.database.session.connection._get_response( "/databases/%s/items/%s.%s"%(self.database.id, self.id, self.type), { 'session-id':self.database.session.sessionid }, gzip = 0, ) def save(self, filename): """saves the file to 'filename' on the local machine""" log.debug("saving to '%s'", filename) mp3 = open(filename, "wb") r = self.request() # doing this all on one lump seems to explode a lot. TODO - what # is a good block size here? data = r.read(32 * 1024) while (data): mp3.write(data) data = r.read(32 * 1024) mp3.close() r.close() log.debug("Done") if __name__ == '__main__': def main(): connection = DAAPClient() # I'm new to this python thing. There's got to be a better idiom # for this. try: host = sys.argv[1] except IndexError: host = "localhost" try: port = sys.argv[2] except IndexError: port = 3689 logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(levelname)s %(message)s') try: # do everything in a big try, so we can disconnect at the end connection.connect( host, port ) # auth isn't supported yet. Just log in session = connection.login() library = session.library() log.debug("Library name is '%s'", repr(library.name)) tracks = library.tracks() # demo - save the first track to disk #print("Saving %s by %s to disk as 'track.mp3'"%(tracks[0].name, tracks[0].artist)) #tracks[0].save("track.mp3") tracks[0].atom.printTree() finally: # this here, so we logout even if there's an error somewhere, # or itunes will eventually refuse more connections. print "--------------" try: session.logout() except Exception: pass main() dist/copy/plugins/daapserver/spydaap/PaxHeaders.26361/parser0000644000175000017500000000013212233027261022516 xustar000000000000000030 mtime=1382821553.473046944 30 atime=1382821552.785046922 30 ctime=1382821553.473046944 exaile-3.3.2/plugins/daapserver/spydaap/parser/0000755000000000000000000000000012233027261021534 5ustar00rootroot00000000000000dist/copy/plugins/daapserver/spydaap/parser/PaxHeaders.26361/mov.py0000644000175000017500000000012412233027260023746 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.285046938 exaile-3.3.2/plugins/daapserver/spydaap/parser/mov.py0000644000000000000000000000316412233027260022712 0ustar00rootroot00000000000000#Copyright (C) 2008 Erik Hetzner #This file is part of Spydaap. Spydaap 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 3 of the License, or (at your option) any later version. #Spydaap 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 Spydaap. If not, see . import re, spydaap, os, sys from spydaap.daap import do class MovParser(spydaap.parser.Parser): file_re = re.compile(".*\\.[mV][oO][vV]$") def understands(self, filename): return self.file_re.match(filename) def parse(self, filename): name = filename statinfo = os.stat(filename) d = [ do ('daap.songsize', os.path.getsize(filename)), do ('daap.songdateadded', statinfo.st_mtime), do ('daap.songdatemodified', statinfo.st_mtime), do ('dmap.itemname', name), do ('daap.songalbum', ''), do ('daap.songartist', ''), do ('daap.songbitrate', 0), do ('daap.songcomment', ''), do ('daap.songdescription', 'QuickTime movie file'), do ('daap.songformat', 'mov'), do ('com.apple.itunes.mediakind', 2), do ('com.apple.itunes.has-video', True) ] return (d, name) dist/copy/plugins/daapserver/spydaap/parser/PaxHeaders.26361/exaile.py0000644000175000017500000000012412233027260024414 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.473046944 exaile-3.3.2/plugins/daapserver/spydaap/parser/exaile.py0000644000000000000000000001061312233027260023355 0ustar00rootroot00000000000000#Copyright (C) 2008 Erik Hetzner # 2010 Brian Parma #This file is part of Spydaap. Spydaap 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 3 of the License, or (at your option) any later version. #Spydaap 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 Spydaap. If not, see . import mutagen, re, spydaap, re, os, sys from spydaap.daap import do import traceback import logging logger = logging.getLogger(__name__) class ExaileParser(spydaap.parser.Parser): _string_map = { 'title': 'dmap.itemname', 'artist': 'daap.songartist', 'composer': 'daap.songcomposer', 'genre': 'daap.songgenre', 'album': 'daap.songalbum' } _int_map = { 'bpm': 'daap.songbeatsperminute', # not used by exaile client, and not parsed right anyway (ie: '2010-01-01') # 'date': 'daap.songyear', #TODO 'year': 'daap.songyear', 'tracknumber': 'daap.songtracknumber', 'tracktotal': 'daap.songtrackcount', 'discnumber': 'daap.songdiscnumber' } def understands(self, filename): return true # return self.file_re.match(filename) # returns a list in exaile def handle_int_tags(self, map, md, daap): for k in md.list_tags(): if map.has_key(k): try: tn = str(md.get_tag_raw(k)[0]) if '/' in tn: # num, tot = tn.split('/') if num == '': # empty tags num = 0 daap.append(do(map[k], int(num))) # set total? else: daap.append(do(map[k], int(tn))) except Exception: logger.debug('exception caught parsing tag: {0}={1} from {2}' .format(k, tn, md)) logger.debug(traceback.format_exc()) # We can't use functions in __init__ because exaile tracks no longer # give us access to .tags def handle_string_tags(self, map, md, daap): for k in md.list_tags(): if map.has_key(k): try: tag = [ str(t) for t in md.get_tag_raw(k)] tag = [ t for t in tag if t != ""] daap.append(do(map[k], "/".join(tag))) except Exception: logger.debug(traceback.format_exc()) def parse(self, trk): try: #trk = mutagen.File(filename) d = [] if len(trk.list_tags()) > 0: if 'title' in trk.list_tags(): name = str(trk.get_tag_raw('title')[0]) else: name = str(trk) self.handle_string_tags(self._string_map, trk, d) self.handle_int_tags(self._int_map, trk, d) # self.handle_rating(trk, d) else: name = str(trk) #statinfo = os.stat(filename) _len = trk.get_tag_raw('__length') if _len is None: # don't parse songs that don't have length return (None, None) d.extend([#do('daap.songsize', trk.get_size()), #do('daap.songdateadded', statinfo.st_ctime), #do('daap.songdatemodified', statinfo.st_ctime), do('daap.songtime', _len * 1000), # do('daap.songbitrate', trk.get_tag_raw('__bitrate') / 1000), # do('daap.songsamplerate', ogg.info.sample_rate), # todo ?? do('daap.songformat', trk.get_local_path().split('.')[-1]), # todo ?? do('daap.songdescription', 'Exaile Streaming Audio'), ]) return (d, name) except Exception, e: logger.warning('caught exception while processing {0}: {1}' .format(trk, e)) logger.debug(traceback.format_exc()) return (None, None) dist/copy/plugins/daapserver/spydaap/parser/PaxHeaders.26361/flac.py0000644000175000017500000000012412233027260024052 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.241046936 exaile-3.3.2/plugins/daapserver/spydaap/parser/flac.py0000644000000000000000000000210612233027260023011 0ustar00rootroot00000000000000#Copyright (C) 2008 Erik Hetzner #This file is part of Spydaap. Spydaap 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 3 of the License, or (at your option) any later version. #Spydaap 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 Spydaap. If not, see . import spydaap.parser.vorbis, re from spydaap.daap import do class FlacParser(spydaap.parser.vorbis.VorbisParser): file_re = re.compile(".*\\.[fF][lL][aA][cC]$") def understands(self, filename): return self.file_re.match(filename) def parse_extra_vorbis(self, filename, md, daap): daap.extend([do('daap.songformat', 'flac'), do('daap.songdescription', 'FLAC Audio File')]) dist/copy/plugins/daapserver/spydaap/parser/PaxHeaders.26361/avi.py0000644000175000017500000000012412233027260023724 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.161046934 exaile-3.3.2/plugins/daapserver/spydaap/parser/avi.py0000644000000000000000000000315412233027260022667 0ustar00rootroot00000000000000#Copyright (C) 2008 Erik Hetzner #This file is part of Spydaap. Spydaap 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 3 of the License, or (at your option) any later version. #Spydaap 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 Spydaap. If not, see . import re, spydaap, re, os, sys from spydaap.daap import do class AviParser(spydaap.parser.Parser): file_re = re.compile(".*\\.[aA][vV][iI]$") def understands(self, filename): return self.file_re.match(filename) def parse(self, filename): name = filename statinfo = os.stat(filename) d = [ do ('daap.songsize', statinfo.st_size), do ('daap.songdateadded', statinfo.st_mtime), do ('daap.songdatemodified', statinfo.st_mtime), do ('dmap.itemname', name), do ('daap.songalbum', ''), do ('daap.songartist', ''), do ('daap.songbitrate', 0), do ('daap.songcomment', ''), do ('daap.songdescription', 'MPEG-4 video file'), do ('daap.songformat', 'avi'), do ('com.apple.itunes.mediakind', 2), do ('com.apple.itunes.has-video', True) ] return (d, name) dist/copy/plugins/daapserver/spydaap/parser/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260024704 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.157046934 exaile-3.3.2/plugins/daapserver/spydaap/parser/__init__.py0000644000000000000000000000416712233027260023654 0ustar00rootroot00000000000000#Copyright (C) 2008 Erik Hetzner #This file is part of Spydaap. Spydaap 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 3 of the License, or (at your option) any later version. #Spydaap 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 Spydaap. If not, see . import os, re from spydaap.daap import do class Parser: def handle_string_tags(self, map, md, daap): h = {} for k in md.tags.keys(): if map.has_key(k): tag = [ unicode(t) for t in md.tags[k] ] tag = [ t for t in tag if t != "" ] if not(h.has_key(map[k])): h[map[k]] = [] h[map[k]] = h[map[k]] + tag for k in h.keys(): h[k].sort() daap.append(do(k, "/".join(h[k]))) def handle_int_tags(self, map, md, daap): for k in md.tags.keys(): if map.has_key(k): val = md.tags[k] if type(val) == list: val = val[0] intval = self.my_int(unicode(val)) if intval: daap.append(do(map[k], intval)) def add_file_info(self, filename, daap): statinfo = os.stat(filename) daap.extend([do('daap.songsize', os.path.getsize(filename)), do('daap.songdateadded', statinfo.st_ctime), do('daap.songdatemodified', statinfo.st_ctime)]) def set_itemname_if_unset(self, name, daap): for d in daap: if d.code == 'minm': return d.value daap.extend([do('minm', name)]) return name def clean_int_string(self, s): return re.sub(u'[^0-9]', '', unicode(s)) def my_int(self, s): try: return int(self.clean_int_string(s)) except: return None dist/copy/plugins/daapserver/spydaap/parser/PaxHeaders.26361/vorbis.py0000644000175000017500000000012412233027260024451 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.329046939 exaile-3.3.2/plugins/daapserver/spydaap/parser/vorbis.py0000644000000000000000000000711112233027260023411 0ustar00rootroot00000000000000#Copyright (C) 2008 Erik Hetzner #This file is part of Spydaap. Spydaap 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 3 of the License, or (at your option) any later version. #Spydaap 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 Spydaap. If not, see . import mutagen, re, spydaap, re, os, sys from spydaap.daap import do # * TODO Implement song.songtrackcount, song.disccount #daap.songbeatsperminute #daap.songcomment #daap.songdateadded #daap.songdatemodified, #daap.songdisabled, #daap.songeqpreset #daap.songformat #daap.songdescription #daap.songrelativevolume, #daap.songsize, #daap.songstarttime, #daap.songstoptime, #daap.songtime, #daap.songuserrating, #daap.songdatakind, #daap.songdataurl class VorbisParser(spydaap.parser.Parser): vorbis_string_map = { 'grouping' : 'daap.songgrouping', 'title' : 'dmap.itemname', 'artist' : 'daap.songartist', 'composer' : 'daap.songcomposer', 'genre' : 'daap.songgenre', 'album' : 'daap.songalbum', 'albumartist': 'daap.songalbumartist', } vorbis_int_map = { 'bpm' : 'daap.songbeatsperminute', 'date' : 'daap.songyear', 'year' : 'daap.songyear', 'compilation' : 'daap.songcompilation', } def handle_track(self, flac, d): tracknumber = None trackcount = None if flac.tags.has_key('tracknumber'): t = str(flac.tags['tracknumber']).split('/') tracknumber = self.my_int(t[0]) if (len(t) == 2): trackcount = self.my_int(t[1]) if flac.tags.has_key('tracktotal'): trackcount = self.my_int(flac.tags['tracktotal']) if tracknumber: d.append(do('daap.songtracknumber', tracknumber)) if trackcount: d.append(do('daap.songtrackcount', trackcount)) def handle_disc(self, flac, d): discnumber = None disccount = None if flac.tags.has_key('discnumber'): t = unicode(flac.tags['discnumber'][0]).split('/') discnumber = self.my_int(t[0]) if (len(t) == 2): disccount = self.my_int(t[1]) if flac.tags.has_key('disctotal'): disccount = self.my_int(flac.tags['disctotal']) if discnumber: d.append(do('daap.songdiscnumber', discnumber)) if disccount: d.append(do('daap.songdisccount', disccount)) file_re = re.compile(".*\\.([fF][lL][aA][cC]|[oO][gG]{2})$") def understands(self, filename): return self.file_re.match(filename) def parse(self, filename): md = mutagen.File(filename) d = [] if md.tags != None: self.handle_string_tags(self.vorbis_string_map, md, d) self.handle_int_tags(self.vorbis_int_map, md, d) self.handle_track(md, d) self.handle_disc(md, d) self.add_file_info(filename, d) d.extend([do('daap.songtime', md.info.length * 1000), do('daap.songsamplerate', md.info.sample_rate)]) name = self.set_itemname_if_unset(os.path.basename(filename), d) if hasattr(self, 'parse_extra_vorbis'): self.parse_extra_vorbis(filename, md, d) return (d, name) dist/copy/plugins/daapserver/spydaap/parser/PaxHeaders.26361/mp3.py0000644000175000017500000000012412233027260023644 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.285046938 exaile-3.3.2/plugins/daapserver/spydaap/parser/mp3.py0000644000000000000000000000741112233027260022607 0ustar00rootroot00000000000000#Copyright (C) 2008 Erik Hetzner #This file is part of Spydaap. Spydaap 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 3 of the License, or (at your option) any later version. #Spydaap 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 Spydaap. If not, see . import mutagen.id3, mutagen.mp3, re, spydaap, re, os, struct, sys from spydaap.daap import do mutagen.id3.ID3.PEDANTIC = False class Mp3Parser(spydaap.parser.Parser): mp3_string_map = { 'TIT1': 'daap.songgrouping', 'TIT2': 'dmap.itemname', 'TPE1': 'daap.songartist', 'TPE3': 'daap.songalbumartist', 'TCOM': 'daap.songcomposer', 'TCON': 'daap.songgenre', 'TALB': 'daap.songalbum', } mp3_int_map = { 'TBPM': 'daap.songbeatsperminute', 'TDRC': 'daap.songyear', 'TCMP': 'daap.songcompilation', #'TLEN': 'daap.songtime', } #do('daap.songdiscnumber', 1), # do('daap.songgenre', 'Test'), # do('daap.songdisccount', 1), # do('daap.songcompilation', False), # do('daap.songuserrating', 1), def handle_rating(self, mp3, d): popm = mp3.tags.getall('POPM') if popm != None and len(popm) > 0: rating = int(popm[0].rating * (0.39215686274509803)) d.append(do('daap.songuserrating', rating)) def handle_track(self, mp3, d): tracknumber = None trackcount = None if mp3.tags.has_key('TRCK'): t = str(mp3.tags['TRCK']).split('/') tracknumber = self.my_int(t[0]) if (len(t) == 2): trackcount = self.my_int(t[1]) if tracknumber: d.append(do('daap.songtracknumber', tracknumber)) if trackcount: d.append(do('daap.songtrackcount', trackcount)) def handle_disc(self, mp3, d): discnumber = None disccount = None if mp3.tags.has_key('TPOS'): t = str(mp3.tags['TPOS']).split('/') discnumber = self.my_int(t[0]) if (len(t) == 2): disccount = self.my_int(t[1]) if discnumber: d.append(do('daap.songdiscnumber', discnumber)) if disccount: d.append(do('daap.songdisccount', disccount)) file_re = re.compile(".*\\.[mM][pP]3$") def understands(self, filename): return self.file_re.match(filename) def parse(self, filename): d = [] mp3 = None try: mp3 = mutagen.mp3.MP3(filename) except mutagen.mp3.HeaderNotFoundError: pass except struct.error: pass if mp3 != None: if mp3.tags != None: self.handle_string_tags(self.mp3_string_map, mp3, d) self.handle_int_tags(self.mp3_int_map, mp3, d) self.handle_rating(mp3, d) self.handle_track(mp3, d) self.handle_disc(mp3, d) self.add_file_info(filename, d) d.extend([do('daap.songtime', mp3.info.length * 1000), do('daap.songbitrate', mp3.info.bitrate / 1000), do('daap.songsamplerate', mp3.info.sample_rate), do('daap.songformat', 'mp3'), do('daap.songdescription', 'MPEG Audio File'), ]) name = self.set_itemname_if_unset(os.path.basename(filename), d) return (d, name) else: return (None, None) dist/copy/plugins/daapserver/spydaap/parser/PaxHeaders.26361/ogg.py0000644000175000017500000000012412233027260023721 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.289046938 exaile-3.3.2/plugins/daapserver/spydaap/parser/ogg.py0000644000000000000000000000221312233027260022657 0ustar00rootroot00000000000000#Copyright (C) 2008 Erik Hetzner #This file is part of Spydaap. Spydaap 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 3 of the License, or (at your option) any later version. #Spydaap 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 Spydaap. If not, see . import spydaap.parser.vorbis, re from spydaap.daap import do class OggParser(spydaap.parser.vorbis.VorbisParser): file_re = re.compile(".*\\.[oO][gG][gG]$") def understands(self, filename): return self.file_re.match(filename) def parse_extra_vorbis(self, filename, md, daap): daap.extend([do('daap.songbitrate', md.info.bitrate / 1000), do('daap.songformat', 'ogg'), do('daap.songdescription', 'Ogg/Vorbis Audio File')]) dist/copy/plugins/daapserver/spydaap/PaxHeaders.26361/server.py0000644000175000017500000000012412233027260023157 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.317046939 exaile-3.3.2/plugins/daapserver/spydaap/server.py0000644000000000000000000002626412233027260022131 0ustar00rootroot00000000000000#Copyright (C) 2009 Erik Hetzner #This file is part of Spydaap. Spydaap 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 3 of the License, or (at your option) any later version. #Spydaap 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 Spydaap. If not, see . import BaseHTTPServer, errno, logging, os, re, urlparse, socket, spydaap, sys, traceback from spydaap.daap import do def makeDAAPHandlerClass(server_name, cache, md_cache, container_cache): session_id = 1 log = logging.getLogger('spydaap.server') class DAAPHandler(BaseHTTPServer.BaseHTTPRequestHandler): daap_server_revision = 1 protocol_version = "HTTP/1.1" def h(self, data, **kwargs): self.send_response(kwargs.get('status', 200)) self.send_header('Content-Type', kwargs.get('type', 'application/x-dmap-tagged')) self.send_header('DAAP-Server', 'Simple') self.send_header('Expires', '-1') self.send_header('Cache-Control', 'no-cache') self.send_header('Accept-Ranges', 'bytes') self.send_header('Content-Language', 'en_us') if kwargs.has_key('extra_headers'): for k, v in kwargs['extra_headers'].iteritems(): self.send_header(k, v) try: if type(data) == file: self.send_header("Content-Length", str(os.stat(data.name).st_size)) else: self.send_header("Content-Length", len(data)) except: pass self.end_headers() if hasattr(self, 'isHEAD') and self.isHEAD: pass else: try: if (hasattr(data, 'next')): for d in data: self.wfile.write(d) else: self.wfile.write(data) except socket.error, ex: if ex.errno in [errno.ECONNRESET]: pass else: raise if (hasattr(data, 'close')): data.close() #itunes sends request for: #GET daap://192.168.1.4:3689/databases/1/items/626.mp3?seesion-id=1 #so we must hack the urls; annoying. itunes_re = '^(?://[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}:[0-9]+)?' drop_q = '(?:\\?.*)?$' def do_GET(self): parsed_path = urlparse.urlparse(self.path).path if re.match(self.itunes_re + "/$", parsed_path): self.do_GET_login() elif re.match(self.itunes_re + '/server-info$', parsed_path): self.do_GET_server_info() elif re.match(self.itunes_re + '/content-codes$', parsed_path): self.do_GET_content_codes() elif re.match(self.itunes_re + '/databases$', parsed_path): self.do_GET_database_list() elif re.match(self.itunes_re + '/databases/([0-9]+)/items$', parsed_path): md = re.match(self.itunes_re + '/databases/([0-9]+)/items$', parsed_path) self.do_GET_item_list(md.group(1)) elif re.match(self.itunes_re + '/databases/([0-9]+)/items/([0-9]+)\\.([0-9a-z]+)' + self.drop_q, parsed_path): md = re.match(self.itunes_re + '/databases/([0-9]+)/items/([0-9]+)\\.([0-9a-z]+)' + self.drop_q, parsed_path) self.do_GET_item(md.group(1), md.group(2), md.group(3)) elif re.match(self.itunes_re + '/databases/([0-9]+)/containers$', parsed_path): md = re.match(self.itunes_re + '/databases/([0-9]+)/containers$', parsed_path) self.do_GET_container_list(md.group(1)) elif re.match(self.itunes_re + '/databases/([0-9]+)/containers/([0-9]+)/items$', parsed_path): md = re.match(self.itunes_re + '/databases/([0-9]+)/containers/([0-9]+)/items$', parsed_path) self.do_GET_container_item_list(md.group(1), md.group(2)) elif re.match('^/login$', parsed_path): self.do_GET_login() elif re.match('^/logout$', parsed_path): self.do_GET_logout() elif re.match('^/update$', parsed_path): self.do_GET_update() else: self.send_error(404) return def do_HEAD(self): self.isHEAD = True self.do_GET() def do_GET_login(self): mlog = do('dmap.loginresponse', [ do('dmap.status', 200), do('dmap.sessionid', session_id) ]) self.h(mlog.encode()) def do_GET_logout(self): self.send_response(204) self.end_headers() def do_GET_server_info(self): msrv = do('dmap.serverinforesponse', [ do('dmap.status', 200), do('dmap.protocolversion', '2.0'), do('daap.protocolversion', '3.0'), do('dmap.timeoutinterval', 1800), do('dmap.itemname', server_name), do('dmap.loginrequired', 0), do('dmap.authenticationmethod', 0), do('dmap.supportsextensions', 0), do('dmap.supportsindex', 0), do('dmap.supportsbrowse', 0), do('dmap.supportsquery', 0), do('dmap.supportspersistentids', 0), do('dmap.databasescount', 1), #do('dmap.supportsautologout', 0), #do('dmap.supportsupdate', 0), #do('dmap.supportsresolve', 0), ]) self.h(msrv.encode()) def do_GET_content_codes(self): children = [ do('dmap.status', 200) ] for code in spydaap.daap.dmapCodeTypes.keys(): (name, dtype) = spydaap.daap.dmapCodeTypes[code] d = do('dmap.dictionary', [ do('dmap.contentcodesnumber', code), do('dmap.contentcodesname', name), do('dmap.contentcodestype', spydaap.daap.dmapReverseDataTypes[dtype]) ]) children.append(d) mccr = do('dmap.contentcodesresponse', children) self.h(mccr.encode()) def do_GET_database_list(self): d = do('daap.serverdatabases', [ do('dmap.status', 200), do('dmap.updatetype', 0), do('dmap.specifiedtotalcount', 1), do('dmap.returnedcount', 1), do('dmap.listing', [ do('dmap.listingitem', [ do('dmap.itemid', 1), do('dmap.persistentid', 1), do('dmap.itemname', server_name), do('dmap.itemcount', len(md_cache)), do('dmap.containercount', len(container_cache))]) ]) ]) self.h(d.encode()) def do_GET_item_list(self, database_id): def build_item(md): return do('dmap.listingitem', [ do('dmap.itemkind', 2), do('dmap.containeritemid', md.id), do('dmap.itemid', md.id), md.get_dmap_raw() ]) def build(): children = [ build_item (md) for md in md_cache ] file_count = len(children) d = do('daap.databasesongs', [ do('dmap.status', 200), do('dmap.updatetype', 0), do('dmap.specifiedtotalcount', file_count), do('dmap.returnedcount', file_count), do('dmap.listing', children) ]) return d.encode() data = build() # data = cache.get('item_list', build) self.h(data) def do_GET_update(self): mupd = do('dmap.updateresponse', [ do('dmap.status', 200), do('dmap.serverrevision', self.daap_server_revision), ]) self.h(mupd.encode()) def do_GET_item(self, database, item, format): try: fn = md_cache.get_item_by_id(item).get_original_filename() except IndexError: # if the track isn't in the DB, we get an exception self.send_error(404) # this can be caused by left overs from previous sessions return if (self.headers.has_key('Range')): rs = self.headers['Range'] m = re.compile('bytes=([0-9]+)-([0-9]+)?').match(rs) (start, end) = m.groups() if end != None: end = int(end) else: end = os.stat(fn).st_size start = int(start) f = spydaap.ContentRangeFile(fn, open(fn), start, end) extra_headers={"Content-Range": "bytes %s-%s/%s"%(str(start), str(end), str(os.stat(fn).st_size))} status=206 else: f = open(fn) extra_headers={} status=200 # this is ugly, very wrong. type = "audio/%s"%(os.path.splitext(fn)[1]) self.h(f, type=type, status=status, extra_headers=extra_headers) def do_GET_container_list(self, database): container_do = [] for i, c in enumerate(container_cache): d = [ do('dmap.itemid', i + 1 ), do('dmap.itemcount', len(c)), do('dmap.containeritemid', i + 1), do('dmap.itemname', c.get_name()) ] if c.get_name() == 'Library': # this should be better d.append(do('daap.baseplaylist', 1)) else: d.append(do('com.apple.itunes.smart-playlist', 1)) container_do.append(do('dmap.listingitem', d)) d = do('daap.databaseplaylists', [ do('dmap.status', 200), do('dmap.updatetype', 0), do('dmap.specifiedtotalcount', len(container_do)), do('dmap.returnedcount', len(container_do)), do('dmap.listing', container_do) ]) self.h(d.encode()) def do_GET_container_item_list(self, database_id, container_id): container = container_cache.get_item_by_id(container_id) self.h(container.get_daap_raw()) return DAAPHandler dist/copy/plugins/daapserver/spydaap/PaxHeaders.26361/metadata.py0000644000175000017500000000012412233027260023431 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.281046938 exaile-3.3.2/plugins/daapserver/spydaap/metadata.py0000644000000000000000000001030412233027260022367 0ustar00rootroot00000000000000#Copyright (C) 2008 Erik Hetzner #This file is part of Spydaap. Spydaap 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 3 of the License, or (at your option) any later version. #Spydaap 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 Spydaap. If not, see . from __future__ import with_statement import warnings with warnings.catch_warnings(): warnings.simplefilter("ignore") import md5 import os, struct, spydaap.cache, StringIO from spydaap.daap import do class MetadataCache(spydaap.cache.OrderedCache): def __init__(self, cache_dir, parsers): self.parsers = parsers super(MetadataCache, self).__init__(cache_dir) def get_item_by_pid(self, pid, n=None): return MetadataCacheItem(self, pid, n) def build(self, dir, marked={}, link=False): for path, dirs, files in os.walk(dir): for d in dirs: if os.path.islink(os.path.join(path, d)): self.build(os.path.join(path,d), marked, True) for fn in files: ffn = os.path.join(path, fn) digest = md5.md5(ffn).hexdigest() marked[digest] = True md = self.get_item_by_pid(digest) if (not(md.get_exists()) or \ (md.get_mtime() < os.stat(ffn).st_mtime)): for p in self.parsers: if p.understands(ffn): (m, name) = p.parse(ffn) if m != None: MetadataCacheItem.write_entry(self.dir, name, ffn, m) if not(link): for item in os.listdir(self.dir): if (len(item) == 32) and not(marked.has_key(item)): os.remove(os.path.join (self.dir, item)) self.build_index() class MetadataCacheItem(spydaap.cache.OrderedCacheItem): @classmethod def write_entry(self, dir, name, fn, daap): if type(name) == unicode: name = name.encode('utf-8') data = "".join([ d.encode() for d in daap]) data = struct.pack('!i%ss' % len(name), len(name), name) + data data = struct.pack('!i%ss' % len(fn), len(fn), fn) + data cachefn = os.path.join(dir, md5.md5(fn).hexdigest()) f = open(cachefn, 'w') f.write(data) f.close() def __init__(self, cache, pid, id): super(MetadataCacheItem, self).__init__(cache, pid, id) self.file = None self.daap = None self.name = None self.original_filename = None self.daap_raw = None self.md = None def __getitem__(self, k): return self.md[k] def has_key(self, k): return self.get_md().has_key(k) def read(self): f = open(self.path) fn_len = struct.unpack('!i', f.read(4))[0] self.original_filename = f.read(fn_len) name_len = struct.unpack('!i', f.read(4))[0] self.name = f.read(name_len) self.daap_raw = f.read() f.close() def get_original_filename(self): if self.original_filename == None: self.read() return self.original_filename def get_name(self): if self.name == None: self.read() return self.name def get_dmap_raw(self): if self.daap_raw == None: self.read() return self.daap_raw def get_md(self): if self.md == None: self.md = {} s = StringIO.StringIO(self.get_dmap_raw()) l = len(self.get_dmap_raw()) data = [] while s.tell() != l: d = do() d.processData(s) data.append(d) for d in data: self.md[d.codeName()] = d.value return self.md dist/copy/plugins/daapserver/PaxHeaders.26361/daapserver_prefs.ui0000644000175000017500000000012412233027260023530 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.177046934 exaile-3.3.2/plugins/daapserver/daapserver_prefs.ui0000644000000000000000000001270412233027260022474 0ustar00rootroot00000000000000 True vertical True 3 3 2 6 6 True 0 Server name: GTK_FILL True 0 Server host: 1 2 GTK_FILL True True True 0 True Port: False 6 1 True True adjustment1 True 2 1 2 1 2 True True 1 2 Server enabled True True False 1 1 True 2 2 3 False False 0 3689 65536 1 10 10 dist/copy/plugins/daapserver/PaxHeaders.26361/TODO0000644000175000017500000000012412233027260020326 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.329046939 exaile-3.3.2/plugins/daapserver/TODO0000644000000000000000000000035212233027260017266 0ustar00rootroot00000000000000* Transcoding of files Should be based on link speed & client type; we should transcode to WAV to a local iTunes, mp3 to a remote iTunes; no transcoding to local Rhythmbox; flac->mp3 on remote Rhythmbox. * Command line daemonizing dist/copy/plugins/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260017613 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.153046933 exaile-3.3.2/plugins/__init__.py0000644000000000000000000000005212233027260016550 0ustar00rootroot00000000000000# this is only here for unittest purposes dist/copy/plugins/PaxHeaders.26361/amazoncovers0000644000175000017500000000013212233027261020134 xustar000000000000000030 mtime=1382821553.697046951 30 atime=1382821552.789046922 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/amazoncovers/0000755000000000000000000000000012233027261017152 5ustar00rootroot00000000000000dist/copy/plugins/amazoncovers/PaxHeaders.26361/_ecs.py0000644000175000017500000000012412233027260021474 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.517046945 exaile-3.3.2/plugins/amazoncovers/_ecs.py0000644000000000000000000000534212233027260020440 0ustar00rootroot00000000000000# Copyright (C) 2006 Adam Olsen # # 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 1, 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 urllib import sys import hmac import hashlib import base64 import datetime import re from xl.nls import gettext as _ import logging logger = logging.getLogger(__name__) class AmazonSearchError(Exception): pass def generate_timestamp(): ret = datetime.datetime.utcnow() return ret.isoformat() + 'Z' # make a valid RESTful AWS query, that is signed, from a dictionary # http://docs.amazonwebservices.com/AWSECommerceService/latest/DG/index.html?RequestAuthenticationArticle.html # code by Robert Wallis: SmilingRob@gmail.com, your hourly software contractor def get_aws_query_string(aws_access_key_id, secret, query_dictionary): query_dictionary["AWSAccessKeyId"] = aws_access_key_id query_dictionary["Timestamp"] = generate_timestamp() query_pairs = map( lambda (k,v):(k+"="+urllib.quote(v)), query_dictionary.items() ) # The Amazon specs require a sorted list of arguments query_pairs.sort() query_string = "&".join(query_pairs) hm = hmac.new( secret, "GET\nwebservices.amazon.com\n/onca/xml\n"+query_string, hashlib.sha256 ) signature = urllib.quote(base64.b64encode(hm.digest())) query_string = "https://webservices.amazon.com/onca/xml?%s&Signature=%s" % (query_string, signature) return query_string def search_covers(search, api_key, secret_key): params = { 'Operation': 'ItemSearch', 'Keywords': str(search), 'Version': '2009-01-06', 'SearchIndex': 'Music', 'Service': 'AWSECommerceService', 'ResponseGroup': 'ItemAttributes,Images', } query_string = get_aws_query_string(str(api_key).strip(), str(secret_key).strip(), params) data = urllib.urlopen(query_string).read() # check for an error message m = re.search(r'(.*)', data, re.DOTALL) if m: logger.warning('Amazon Covers Search Error: %s' % m.group(1)) raise AmazonSearchError(m.group(1)) # check for large images regex = re.compile(r'([^<]*)', re.DOTALL) items = regex.findall(data) return items dist/copy/plugins/amazoncovers/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260022322 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.509046945 exaile-3.3.2/plugins/amazoncovers/__init__.py0000644000000000000000000000540712233027260021270 0ustar00rootroot00000000000000# Copyright (C) 2006 Adam Olsen # # 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 1, 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 hashlib import logging import time import urllib from xl import ( common, covers, event, metadata, providers, settings ) import _ecs as ecs import amazonprefs logger = logging.getLogger(__name__) AMAZON = None def enable(exaile): if exaile.loading: event.add_callback(_enable, "exaile_loaded") else: _enable(None, exaile, None) def _enable(eventname, exaile, nothing): global AMAZON AMAZON = AmazonCoverSearch() providers.register('covers', AMAZON) def disable(exaile): providers.unregister('covers', AMAZON) def get_preferences_pane(): return amazonprefs class AmazonCoverSearch(covers.CoverSearchMethod): """ Searches amazon for an album cover """ name = 'amazon' title = 'Amazon' def __init__(self): self.starttime = 0 def find_covers(self, track, limit=-1): """ Searches amazon for album covers """ try: artist = track.get_tag_raw('artist')[0] album = track.get_tag_raw('album')[0] except (AttributeError, TypeError): return [] # get the settings for amazon key and secret key api_key = settings.get_option( 'plugin/amazoncovers/api_key', '') secret_key = settings.get_option( 'plugin/amazoncovers/secret_key', '') if not api_key or not secret_key: logger.warning('Please enter your Amazon API and secret ' 'keys in the Amazon Covers preferences') return [] # wait at least 1 second until the next attempt waittime = 1 - (time.time() - self.starttime) if waittime > 0: time.sleep(waittime) self.starttime = time.time() search = "%s - %s" % (artist, album) try: albums = ecs.search_covers(search, api_key, secret_key) except ecs.AmazonSearchError: return [] return albums def get_cover_data(self, url): h = urllib.urlopen(url) data = h.read() h.close() return data dist/copy/plugins/amazoncovers/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260021606 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/amazoncovers/PLUGININFO0000644000000000000000000000034212233027260020545 0ustar00rootroot00000000000000Version='0.0.3' Authors=['Adam Olsen '] Name=_('Amazon Covers') Description=_('Searches Amazon for covers\n\nTo be able to use this plugin, an AWS API key and secret key are required.') Category=_('Covers') dist/copy/plugins/amazoncovers/PaxHeaders.26361/amazonprefs_pane.ui0000644000175000017500000000012412233027260024100 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.621046948 exaile-3.3.2/plugins/amazoncovers/amazonprefs_pane.ui0000644000000000000000000001035712233027260023046 0ustar00rootroot00000000000000 True 3 vertical 6 True 2 2 6 True 0 API key: GTK_FILL True True 1 2 GTK_FILL GTK_FILL True 0 Secret: 1 2 GTK_FILL True True 1 2 1 2 GTK_FILL False 0 True 0 0 True True <i>To sign up for an Amazon AWS account and get this information visit <a href="http://aws.amazon.com/">http://aws.amazon.com/</a></i> True center end 1 dist/copy/plugins/amazoncovers/PaxHeaders.26361/amazonprefs.py0000644000175000017500000000012412233027260023110 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.513046945 exaile-3.3.2/plugins/amazoncovers/amazonprefs.py0000644000000000000000000000222012233027260022044 0ustar00rootroot00000000000000# Copyright (C) 2006 Adam Olsen # # 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 1, 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 from xlgui.preferences import widgets from xl import xdg from xl.nls import gettext as _ name = _('Amazon Covers') basedir = os.path.dirname(os.path.realpath(__file__)) ui = os.path.join(basedir, 'amazonprefs_pane.ui') class APIKeyPreference(widgets.Preference): default = '' name = 'plugin/amazoncovers/api_key' class SecretKeyPreference(widgets.Preference): default = '' name = 'plugin/amazoncovers/secret_key' dist/copy/plugins/PaxHeaders.26361/inhibitsuspend0000644000175000017500000000013212233027261020455 xustar000000000000000030 mtime=1382821553.421046942 30 atime=1382821552.789046922 30 ctime=1382821553.421046942 exaile-3.3.2/plugins/inhibitsuspend/0000755000000000000000000000000012233027261017473 5ustar00rootroot00000000000000dist/copy/plugins/inhibitsuspend/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260022643 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.417046942 exaile-3.3.2/plugins/inhibitsuspend/__init__.py0000644000000000000000000002004012233027260021577 0ustar00rootroot00000000000000""" This plugin will make a dbus call to prevent the computer from suspending during music playback It uses the gnome SessionManager interface via dbus """ from __future__ import print_function, with_statement try: import thread as _thread except ImportError: import dummy_thread as _thread import logging import os import dbus from xl.player import adapters, PLAYER from xl import event SUSPEND_PLUGIN = None logger = logging.getLogger(__name__) def enable(exaile): """ Called when the plugin is enabled """ global SUSPEND_PLUGIN if SUSPEND_PLUGIN is None: try: SUSPEND_PLUGIN = SuspendInhibit() except EnvironmentError: logger.error('Failed to Acquire Suspend Bus') except NotImplementedError: logger.error('Desktop Session not implemented') # allow plugin to finished enabling so that if user returns # to gnome plugin will not have to be re-enabled logger.info('Suspend Inhibitor Enabled') def disable(exaile): """ Called when the plugin is disabled """ global SUSPEND_PLUGIN if SUSPEND_PLUGIN is not None: SUSPEND_PLUGIN.destroy() SUSPEND_PLUGIN = None logger.info('Suspend Inhibitor Disabled') class SuspendInhibit(object): """ Attempt to detect desktop session ands initialize appropriate adapter """ def __init__(self): # Attempt to detect Desktop Session Type session = os.getenv('DESKTOP_SESSION') # Attempt to find an adaptor that works if session == 'gnome': self.adapter = GnomeAdapter() elif session == 'kde': try: self.adapter = PowerManagerAdapter() except EnvironmentError: # Fall back to powerdevil self.adapter = KdeAdapter() elif session == 'xfce': self.adapter = XfceAdapter() elif session is None: logger.warning('Could not detect Desktop Session, will try default \ Power Manager then Gnome') try: self.adapter = PowerManagerAdapter() except EnvironmentError: # Fall back to Gnome power manager self.adapter = GnomeAdapter() else: raise NotImplementedError(session) def destroy(self): self.adapter.destroy() class SuspendAdapter(adapters.PlaybackAdapter): """ Base class for Desktop Session suspend inhibitors Subclasses will have to override the DBus call methods Thread safe """ PROGRAM = 'exaile' ACTIVITY = 'playing-music' def __init__(self, bus_name, object_path, interface): try: bus = dbus.SessionBus() obj = bus.get_object(bus_name, object_path) self.iface = dbus.Interface(obj, interface) logger.info('Suspend Bus Acquired') except dbus.DBusException: raise EnvironmentError(bus_name + ' bus not available') self.inhibited = False self.lock = _thread.allocate_lock() # Initialize parent object adapters.PlaybackAdapter.__init__(self) # Inhibit if player currently playing if PLAYER.is_playing(): self.inhibit() def inhibit(self): """ Inhibit user session suspension. Make DBus call to inhibit session suspension if session suspension not already inhibited. If suspending already inhibited call does nothing. DBus call returns unique cookie used to later uninhibit. """ with self.lock: if not self.inhibited: self._dbus_inhibit_call() self.inhibited = True logger.info('Inhibited Suspend') def uninhibit(self): """ Uninhibit user session suspension. Make DBus call to uninhibit session suspension if session suspension not already uninhibited. If suspending already uninhibited call does nothing. DBus call Requires cookie returned from original inhibit. """ with self.lock: if self.inhibited: if self.cookie is not None: self._dbus_uninhibit_call() self.cookie = None self.inhibited = False logger.info('Unihibited Suspend') else: logger.error('Cannot Unihibit Suspend without cookie') def is_inhibited(self): """ Inhibit Status """ return self.inhibited def destroy(self): """ Cleanup """ # Make sure to uninhibit when exiting self.uninhibit() adapters.PlaybackAdapter.destroy(self) logger.debug('Adapter Destroyed') """ Playback Adapter Callbacks """ def on_playback_track_start(self, event, player, track): self.inhibit() def on_playback_player_end(self, event, player, track): self.uninhibit() def on_playback_toggle_pause(self, event, player, track): if player.is_playing(): self.inhibit() else: self.uninhibit() def _dbus_inhibit_call(self): """ Override, overriding method must set self.inhibited value Make DBus call to inhibit suspend Must not block """ raise NotImplementedError('Method not Overridden') def _dbus_uninhibit_call(self): """ Override, overriding method must set self.inhibited value Make DBus call to uninhibit suspend Must not block """ raise NotImplementedError('Method not Overridden') class PowerManagerAdapter(SuspendAdapter): """ Default Adapter, implemented by most desktop sessions Adapter for org.freedesktop.PowerManagement.Inhibit Interface Some desktop sesssions use different bus names for this interface and have other small variances """ def __init__(self, bus_name='org.freedesktop.PowerManagement', object_name='/org/freedesktop/PowerManagement/Inhibit', interface_name='org.freedesktop.PowerManagement.Inhibit'): SuspendAdapter.__init__(self, bus_name, object_name, interface_name); def _dbus_inhibit_call(self): self.cookie = self.iface.Inhibit(self.PROGRAM, self.ACTIVITY) def _dbus_uninhibit_call(self): self.iface.UnInhibit(self.cookie) class GnomeAdapter(SuspendAdapter): """ Gnome uses a similar interface to org.freedesktop.PowerManagement but is has different bus name, object path and interface name The inhibit and uninhibit method signatures are also different """ SUSPEND_FLAG = 8 def __init__(self): SuspendAdapter.__init__(self, 'org.gnome.SessionManager', '/org/gnome/SessionManager', 'org.gnome.SessionManager') def _dbus_inhibit_call(self): """ Gnome Interface has more paramters """ self.cookie = self.iface.Inhibit(self.PROGRAM, 1, self.ACTIVITY, self.SUSPEND_FLAG) def _dbus_uninhibit_call(self): """ Gnome Interface has different case """ self.iface.Uninhibit(self.cookie) class KdeAdapter(PowerManagerAdapter): """ Adapter for when org.freedesktop.PowerManager interface located at bus org.kde.powerdevil """ def __init__(self): try: PowerManagerAdapter.__init__(self) except EnvironmentError: # Fall back to other bus name PowerManagerAdapter.__init__(self, bus_name='org.kde.powerdevil') class XfceAdapter(PowerManagerAdapter): """ Adapter for org.freedesktop.PowerManagement interface at bus name org.xfce.PowerManager """ def __init__(self): try: PowerManagerAdapter.__init__(self) except EnvironmentError: # Fall back to other bus name PowerManager.__init(self, bus_name='org.xfce.PowerManager') dist/copy/plugins/inhibitsuspend/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260022127 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.421046942 exaile-3.3.2/plugins/inhibitsuspend/PLUGININFO0000644000000000000000000000030512233027260021065 0ustar00rootroot00000000000000Version='0.1' Authors=['Ciaran Liedeman ciaranliedeman@gmail.com'] Name=_('Inhibit Suspend') Description=_("""Prevents User Session from suspending while music is playing""") Category=_("Utility") dist/copy/plugins/PaxHeaders.26361/dist_plugin.py0000644000175000017500000000012412233027260020375 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.517046945 exaile-3.3.2/plugins/dist_plugin.py0000644000000000000000000000724512233027260017345 0ustar00rootroot00000000000000# Copyright (C) 2008-2010 Adam Olsen # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. # script to turn a plugin dir into a .exz file suitable for distribution # takes one commandline parameter: the name of the plugin to build, which must # be a subdirectory of the current directory # outputs the built plugin to the current directory, overwriting any current # build of that plugin from optparse import OptionParser p = OptionParser() p.add_option("-c", "--compression", dest="compression", action="store", choices=("", "gz", "bz2"), default="bz2") p.add_option("-e", "--ignore-extension", dest="extensions", action="append", default=(".pyc", ".pyo")) p.add_option("-f", "--ignore-file", dest="files", action="append", default=("test.py")) p.add_option("-O", "--output", dest="output", action="store", default="") options, args = p.parse_args() # allowed values: "", "gz", "bz2" COMPRESSION = options.compression # don't add files with these extensions to the archive IGNORED_EXTENSIONS = options.extensions # don't add files with this exact name to the archive IGNORED_FILES = options.files _ = lambda x: x import sys, os, tarfile for dir in args: if not os.path.exists(dir): print "No such folder %s" % dir break print "Making plugin %s..." % dir if not os.path.exists(os.path.join(dir, "PLUGININFO")): print "ERROR: no valid info for %s, skipping..." % dir continue f = open(os.path.join(dir, "PLUGININFO")) info = {} for line in f: try: key, val = line.split("=",1) except ValueError: continue key = key.strip() val = eval(val) info[key] = val f.close() if "Version" not in info: print "ERROR: couldn't get version for %s, skipping..." % dir continue tfile = tarfile.open( options.output + dir + "-%s.exz"%info["Version"], "w:%s"%COMPRESSION) tfile.posix = True # we like being standards-compilant for fold, subdirs, files in os.walk(dir): for file in files: stop = False for ext in IGNORED_EXTENSIONS: if file.endswith(ext): stop = True break if stop: continue for name in IGNORED_FILES: if file == name: stop = True break if stop: continue path = os.path.join(fold, file) tfile.add(path) tfile.close() print "Done." dist/copy/plugins/PaxHeaders.26361/audioscrobbler0000644000175000017500000000013212233027261020424 xustar000000000000000030 mtime=1382821553.697046951 30 atime=1382821552.789046922 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/audioscrobbler/0000755000000000000000000000000012233027261017442 5ustar00rootroot00000000000000dist/copy/plugins/audioscrobbler/PaxHeaders.26361/icons0000644000175000017500000000013212233027260021536 xustar000000000000000030 mtime=1382821552.781046922 30 atime=1382821552.789046922 30 ctime=1382821552.781046922 exaile-3.3.2/plugins/audioscrobbler/icons/0000755000000000000000000000000012233027260020554 5ustar00rootroot00000000000000dist/copy/plugins/audioscrobbler/icons/PaxHeaders.26361/16x160000644000175000017500000000013212233027260022323 xustar000000000000000030 mtime=1382821552.993046928 30 atime=1382821552.789046922 30 ctime=1382821552.993046928 exaile-3.3.2/plugins/audioscrobbler/icons/16x16/0000755000000000000000000000000012233027260021341 5ustar00rootroot00000000000000dist/copy/plugins/audioscrobbler/icons/16x16/PaxHeaders.26361/audioscrobbler.png0000644000175000017500000000012412233027260026106 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821552.993046928 exaile-3.3.2/plugins/audioscrobbler/icons/16x16/audioscrobbler.png0000644000000000000000000000172112233027260025047 0ustar00rootroot00000000000000PNG  IHDRabKGD pHYs B(xtIME^IDAT8]SOHcg{3,նJ$ME1,/rztYAA%=yfZTjmT F}Yktefe0@% y -l]]uUU@N'cD"fݩ(Rz  A)=Pv;#111@ e\Z@tf +G("W6Y86Dž~Sw4y+j}2lloo4%Iz׷~XZZp8ЌFcfvvvcuugۃN[</yS$%~Ɍ~+"<>>ONNR+++mkBH&NW8/--=Q$r=Y\\| h4hc,iZ 28hIRiMn$\r9dppнO&)q\8Pokkk_g2Yep6 $ݵZ_ynTU}[VVX,g<(fvy4} nnn֫q@ϪP*vwwE1K622y~~^(uKKՕ_:G2YcWWׯ+=ϓo ؅;f2sssGccc (dyŤb˔MOO_\BH|u [}>;::XOOO7JBsu$}J \PJ$Rtħ:IENDB`dist/copy/plugins/audioscrobbler/icons/PaxHeaders.26361/22x220000644000175000017500000000013212233027260022315 xustar000000000000000030 mtime=1382821552.993046928 30 atime=1382821552.789046922 30 ctime=1382821552.993046928 exaile-3.3.2/plugins/audioscrobbler/icons/22x22/0000755000000000000000000000000012233027260021333 5ustar00rootroot00000000000000dist/copy/plugins/audioscrobbler/icons/22x22/PaxHeaders.26361/audioscrobbler.png0000644000175000017500000000012412233027260026100 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821552.993046928 exaile-3.3.2/plugins/audioscrobbler/icons/22x22/audioscrobbler.png0000644000000000000000000000200212233027260025032 0ustar00rootroot00000000000000PNG  IHDRĴl;sBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<IDAT8OH#gƟ0I4RvlPȡ[ 6@.9*6 C'!BsՂ)Jθ4P$]']cb6'NNZWR=&t#T;Xլz84M3Ji]$^Pl]Mn{0|>ϳ, `@JMòl,Y.sK晎,~ s`(j' 744d*k@VUq}MotxѨP(e _F` jeYB!75 uii+Joo$Ib1.Iң'E),,,\ёKjEz<ӎ ]kh^u2>>d*r\ϦfYzt:D"g][6<@Y^^722???(nw~AHMMMPt!$.M'J(ű?hZZZ>Y]]uHt/rp x OALcrrh40~M鉉"ȏ8uCZ|O-z$o3$&X,e5GJ2 :eIO/B:x'N4;;Kpݥ.uppqse`845!3w]7-~IENDB`dist/copy/plugins/audioscrobbler/PaxHeaders.26361/asprefs.py0000644000175000017500000000012412233027260022516 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.513046945 exaile-3.3.2/plugins/audioscrobbler/asprefs.py0000644000000000000000000000720012233027260021455 0ustar00rootroot00000000000000# Copyright (C) 2006 Adam Olsen # # 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 1, 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 glib import gtk import os.path import _scrobbler from xl import ( common, settings, xdg ) from xl.nls import gettext as _ from xlgui import icons from xlgui.preferences import widgets from xlgui.widgets import dialogs name = _('AudioScrobbler') basedir = os.path.dirname(os.path.realpath(__file__)) ui = os.path.join(basedir, "asprefs_pane.ui") icons.MANAGER.add_icon_name_from_directory('audioscrobbler', os.path.join(basedir, 'icons')) icon = 'audioscrobbler' class SubmitPreference(widgets.CheckPreference): default = True name = 'plugin/ascrobbler/submit' class MenuCheck(widgets.CheckPreference): default = False name = 'plugin/ascrobbler/menu_check' class UserPreference(widgets.Preference): name = 'plugin/ascrobbler/user' class PassPreference(widgets.HashedPreference): name = 'plugin/ascrobbler/password' class UrlPreference(widgets.ComboEntryPreference): name = 'plugin/ascrobbler/url' default = 'http://post.audioscrobbler.com/' preset_items = { 'http://post.audioscrobbler.com/': 'Last.fm', 'http://turtle.libre.fm/': 'Libre.fm' } class VerifyLoginButton(widgets.Button): name = 'plugin/ascrobbler/verify_login' def __init__(self, preferences, widget): """ Sets up the message """ widgets.Button.__init__(self, preferences, widget) self.message = dialogs.MessageBar( parent = preferences.builder.get_object('preferences_box'), buttons=gtk.BUTTONS_CLOSE ) @common.threaded def check_login(self): """ Tries to connect to the AudioScrobbler service with the existing login data """ username = settings.get_option('plugin/ascrobbler/user', '') password = settings.get_option('plugin/ascrobbler/password', '') url = settings.get_option('plugin/ascrobbler/url', 'http://post.audioscrobbler.com/') login_verified = False try: _scrobbler.login(username, password, post_url=url) except _scrobbler.AuthError: try: _scrobbler.login(username, password, hashpw=True, post_url=url) except _scrobbler.AuthError: pass else: login_verified = True else: login_verified = True if login_verified: glib.idle_add( self.message.show_info, _('Verification successful'), '' ) else: glib.idle_add( self.message.show_error, _('Verification failed'), _('Please make sure the entered data is correct.') ) glib.idle_add(self.widget.set_sensitive, True) def on_clicked(self, button): """ Initiates verification of the login data """ self.widget.set_sensitive(False) self.check_login() dist/copy/plugins/audioscrobbler/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260022612 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.569046947 exaile-3.3.2/plugins/audioscrobbler/__init__.py0000644000000000000000000002264112233027260021557 0ustar00rootroot00000000000000# Copyright (C) 2006 Adam Olsen # # 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 1, 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 _scrobbler as scrobbler import asprefs from xl import common, event, xdg, metadata, player, settings, providers from xl.nls import gettext as _ from xlgui.accelerators import Accelerator from xlgui.widgets import menu import glib, logging, time, pickle, os, gtk logger = logging.getLogger(__name__) SCROBBLER = None def enable(exaile): """ Enables the AudioScrobbler plugin """ global SCROBBLER SCROBBLER = ExaileScrobbler(exaile) if exaile.loading: event.add_callback(__enb, 'gui_loaded') else: __enb(None, exaile, None) def __enb(eventname, exaile, nothing): glib.idle_add(_enable, exaile) def _enable(exaile): # SCROBBLER.exaile_menu = exaile.gui.builder.get_object('tools_menu') SCROBBLER.get_options('','','plugin/ascrobbler/menu_check') def disable(exaile): """ Disables the AudioScrobbler plugin """ global SCROBBLER if SCROBBLER: SCROBBLER.stop() SCROBBLER = None def get_preferences_pane(): return asprefs class ExaileScrobbler(object): def __init__(self, exaile): """ Connects events to the player object, loads settings and cache """ self.connected = False self.connecting = False self.use_menu = False self.exaile = exaile self.cachefile = os.path.join(xdg.get_data_dirs()[0], "audioscrobbler.cache") self.get_options('','','plugin/ascrobbler/cache_size') self.get_options('','','plugin/ascrobbler/user') self.load_cache() event.add_callback(self.get_options, 'plugin_ascrobbler_option_set') event.add_callback(self._save_cache_cb, 'quit_application') # enable accelerator def toggle_submit(*x): logger.debug('Toggling AudioScrobbler submissions.') settings.set_option('plugin/ascrobbler/submit', not self.submit) self.accelerator = Accelerator('b', toggle_submit) providers.register('mainwindow-accelerators',self.accelerator) def get_options(self, type, sm, option): if option == 'plugin/ascrobbler/cache_size': self.set_cache_size( settings.get_option('plugin/ascrobbler/cache_size', 100), False) return if option in ['plugin/ascrobbler/user', 'plugin/ascrobbler/password', 'plugin/ascrobbler/submit']: username = settings.get_option('plugin/ascrobbler/user', '') password = settings.get_option('plugin/ascrobbler/password', '') server = settings.get_option('plugin/ascrobbler/url', 'http://post.audioscrobbler.com/') self.submit = settings.get_option('plugin/ascrobbler/submit', True) if (not self.connecting and not self.connected) and self.submit: if username and password: self.connecting = True self.initialize(username, password, server) if option == 'plugin/ascrobbler/menu_check': self.use_menu = settings.get_option('plugin/ascrobbler/menu_check', False) if self.use_menu: self.setup_menu() else: self.remove_menu() def setup_menu(self): self.menu_agr = self.exaile.gui.main.accel_group providers.register('menubar-tools-menu', menu.simple_separator('plugin-sep', ['track-properties'])) def factory(menu_, parent, context): item = gtk.CheckMenuItem(_('Enable audioscrobbling')) item.set_active(self.submit) key, mods = gtk.accelerator_parse('B') item.add_accelerator('activate', menu.FAKEACCELGROUP, key, mods, gtk.ACCEL_VISIBLE) item.connect('toggled', self._menu_entry_toggled) return item item = menu.MenuItem('scrobbler', factory, ['plugin-sep']) providers.register('menubar-tools-menu', item) def remove_menu(self): # self.menu_entry.disconnect(self.menu_conn) for item in providers.get('menubar-tools-menu'): if item.name == 'scrobbler': providers.unregister('menubar-tools-menu', item) break def _menu_entry_toggled(self, widget): settings.set_option('plugin/ascrobbler/submit', widget.get_active()) def stop(self): """ Stops submitting """ logger.info("Stopping AudioScrobbler submissions") if self.use_menu: self.remove_menu() if self.connected: event.remove_callback(self.on_play, 'playback_track_start', player.PLAYER) event.remove_callback(self.on_stop, 'playback_track_end', player.PLAYER) self.connected = False self.save_cache() providers.unregister('mainwindow-accelerators',self.accelerator) @common.threaded def initialize(self, username, password, server): try: logger.info("Attempting to connect to AudioScrobbler (%s)" % server) scrobbler.login(username, password, hashpw=False, post_url=server) except: try: scrobbler.login(username, password, hashpw=True, post_url=server) except: self.connecting = False common.log_exception() return logger.info("Connected to AudioScrobbler") event.add_callback(self.on_play, 'playback_track_start', player.PLAYER) event.add_callback(self.on_stop, 'playback_track_end', player.PLAYER) self.connected = True self.connecting = False @common.threaded def now_playing(self, player, track): # wait 5 seconds before now playing to allow for skipping time.sleep(5) if player.current != track: return logger.info("Attempting to submit \"Now Playing\" information to AudioScrobbler...") try: scrobbler.now_playing( track.get_tag_raw('artist', join=True), track.get_tag_raw('title', join=True), track.get_tag_raw('album', join=True), int(track.get_tag_raw('__length')), track.split_numerical(track.get_tag_raw('tracknumber'))[0] or 0 ) except Exception, e: logger.warning("Error submitting \"Now Playing\": %s" % e) def on_play(self, type, player, track): if self.submit: track.set_tag_raw('__audioscrobbler_playtime', track.get_tag_raw('__playtime')) track.set_tag_raw('__audioscrobbler_starttime', time.time()) if track.is_local(): self.now_playing(player, track) def on_stop(self, type, player, track): if not track or not track.is_local() \ or track.get_tag_raw('__playtime') is None: return playtime = (track.get_tag_raw('__playtime') or 0) - \ (track.get_tag_raw('__audioscrobbler_playtime') or 0) if playtime > 240 or \ playtime > float(track.get_tag_raw('__length')) / 2.0: if self.submit and track.get_tag_raw('__length') > 30: self.submit_to_scrobbler(track, track.get_tag_raw('__audioscrobbler_starttime'), playtime) track.set_tag_raw('__audioscrobbler_starttime', None) track.set_tag_raw('__audioscrobbler_playtime', None) def set_cache_size(self, size, save=True): scrobbler.MAX_CACHE = size if save: settings.set_option("plugin/ascrobbler/cache_size", size) def _save_cache_cb(self, a, b, c): self.save_cache() def save_cache(self): cache = scrobbler.SUBMIT_CACHE f = open(self.cachefile,'w') pickle.dump(cache, f) f.close() def load_cache(self): try: f = open(self.cachefile,'r') cache = pickle.load(f) f.close() scrobbler.SUBMIT_CACHE = cache except: pass @common.threaded def submit_to_scrobbler(self, track, time_started, time_played): if scrobbler.SESSION_ID and track and time_started and time_played: try: scrobbler.submit( track.get_tag_raw('artist', join=True), track.get_tag_raw('title', join=True), int(time_started), 'P', '', int(track.get_tag_raw('__length')), track.get_tag_raw('album', join=True), track.split_numerical(track.get_tag_raw('tracknumber'))[0] or 0, autoflush=True, ) except: common.log_exception() logger.warning("AS: Failed to submit track") dist/copy/plugins/audioscrobbler/PaxHeaders.26361/asprefs_pane.ui0000644000175000017500000000012412233027260023506 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.161046934 exaile-3.3.2/plugins/audioscrobbler/asprefs_pane.ui0000644000000000000000000002174712233027260022461 0ustar00rootroot00000000000000 False True False 3 Submit tracks using Audioscrobbler True True False 5 False True True False True 0 Show menuitem to toggle submission True True False 5 False True True False True 1 True False 4 2 6 True True False 1 2 1 2 True True 1 2 True False 0 6 Password: 1 2 GTK_FILL True False 0 6 Username: GTK_FILL True False 0 6 URL: 2 3 GTK_FILL True 1 2 2 3 True True True False True False 6 True False 1 gtk-network 6 True True 0 True False 0 Verify Login Data True True 1 2 3 4 False False 4 2 True False True True 3 dist/copy/plugins/audioscrobbler/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260022076 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/audioscrobbler/PLUGININFO0000644000000000000000000000033112233027260021033 0ustar00rootroot00000000000000Version='0.1.0' Authors=['Adam Olsen '] Name=_('AudioScrobbler') Description=_('Submits listening information to Last.fm and similar services supporting AudioScrobbler') Category=_('Notifications') dist/copy/plugins/audioscrobbler/PaxHeaders.26361/_scrobbler.py0000644000175000017500000000012412233027260023167 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.097046932 exaile-3.3.2/plugins/audioscrobbler/_scrobbler.py0000644000000000000000000002700012233027260022126 0ustar00rootroot00000000000000""" A pure-python library to assist sending data to AudioScrobbler (the Last.fm backend) """ import urllib, urllib2, logging from time import mktime from datetime import datetime, timedelta from hashlib import md5 from xl.nls import gettext as _ logger = logging.getLogger(__name__) SESSION_ID = None POST_URL = None NOW_URL = None HARD_FAILS = 0 LAST_HS = None # Last handshake time HS_DELAY = 0 # wait this many seconds until next handshake SUBMIT_CACHE = [] MAX_CACHE = 5 # keep only this many songs in the cache MAX_SUBMIT = 10 # submit at most this many tracks at one time PROTOCOL_VERSION = '1.2' __LOGIN = {} # data required to login class BackendError(Exception): "Raised if the AS backend does something funny" pass class AuthError(Exception): "Raised on authencitation errors" pass class PostError(Exception): "Raised if something goes wrong when posting data to AS" pass class SessionError(Exception): "Raised when problems with the session exist" pass class ProtocolError(Exception): "Raised on general Protocol errors" pass def login(user, password, hashpw=False, client=('exa', '0.3.0'), post_url=None): """Authencitate with AS (The Handshake) @param user: The username @param password: md5-hash of the user-password @param hashpw: If True, then the md5-hash of the password is performed internally. If set to False (the default), then the module assumes the passed value is already a valid md5-hash of the password. @param client: Client information (see http://www.audioscrobbler.net/development/protocol/ for more info) @type client: Tuple: (client-id, client-version)""" global LAST_HS, SESSION_ID, POST_URL, NOW_URL, HARD_FAILS, HS_DELAY, \ PROTOCOL_VERSION, __LOGIN __LOGIN['u'] = user __LOGIN['c'] = client if LAST_HS is not None: next_allowed_hs = LAST_HS + timedelta(seconds=HS_DELAY) if datetime.now() < next_allowed_hs: delta = next_allowed_hs - datetime.now() raise ProtocolError("""Please wait another %d seconds until next handshake (login) attempt.""" % delta.seconds) LAST_HS = datetime.now() tstamp = int(mktime(datetime.now().timetuple())) url = post_url or POST_URL if hashpw is True: __LOGIN['p'] = md5(password).hexdigest() else: __LOGIN['p'] = password token = md5( "%s%d" % (__LOGIN['p'], int(tstamp))).hexdigest() values = { 'hs': 'true', 'p' : PROTOCOL_VERSION, 'c': client[0], 'v': client[1], 'u': user, 't': tstamp, 'a': token } data = urllib.urlencode(values) req = urllib2.Request("%s?%s" % (url, data) ) response = urllib2.urlopen(req) result = response.read() lines = result.split('\n') if lines[0] == 'BADAUTH': raise AuthError('Bad username/password') elif lines[0] == 'BANNED': raise Exception('''This client-version was banned by Audioscrobbler. Please contact the author of this module!''') elif lines[0] == 'BADTIME': raise ValueError('''Your system time is out of sync with Audioscrobbler. Consider using an NTP-client to keep you system time in sync.''') elif lines[0].startswith('FAILED'): handle_hard_error() raise BackendError("Authencitation with AS failed. Reason: %s" % lines[0]) elif lines[0] == 'OK': # wooooooohooooooo. We made it! SESSION_ID = lines[1] NOW_URL = lines[2] POST_URL = lines[3] HARD_FAILS = 0 logger.info("Logged in successfully to AudioScrobbler (%s)" % url) else: # some hard error handle_hard_error() def handle_hard_error(): "Handles hard errors." global SESSION_ID, HARD_FAILS, HS_DELAY if HS_DELAY == 0: HS_DELAY = 60 elif HS_DELAY < 120*60: HS_DELAY *= 2 if HS_DELAY > 120*60: HS_DELAY = 120*60 HARD_FAILS += 1 if HARD_FAILS == 3: SESSION_ID = None def now_playing( artist, track, album="", length="", trackno="", mbid="", inner_call=False ): """Tells audioscrobbler what is currently running in your player. This won't affect the user-profile on last.fm. To do submissions, use the "submit" method @param artist: The artist name @param track: The track name @param album: The album name @param length: The song length in seconds @param trackno: The track number @param mbid: The MusicBrainz Track ID @return: True on success, False on failure""" global SESSION_ID, NOW_URL if SESSION_ID is None: raise AuthError("Please 'login()' first. (No session available)") if POST_URL is None: raise PostError("Unable to post data. Post URL was empty!") if length != "" and type(length) != type(1): raise TypeError("length should be of type int") if trackno != "" and type(trackno) != type(1): raise TypeError("trackno should be of type int") # Quote from AS Protocol 1.1, Submitting Songs: # Note that all the post variables noted here MUST be # supplied for each entry, even if they are blank. track = track or '' artist = artist or '' album = album or '' values = {'s': SESSION_ID, 'a': unicode(artist).encode('utf-8'), 't': unicode(track).encode('utf-8'), 'b': unicode(album).encode('utf-8'), 'l': length, 'n': trackno, 'm': mbid } data = urllib.urlencode(values) req = urllib2.Request(NOW_URL, data) response = urllib2.urlopen(req) result = response.read() if result.strip() == "OK": logger.info("Submitted \"Now Playing\" successfully to AudioScrobbler") return True elif result.strip() == "BADSESSION" : if inner_call is False: login(__LOGIN['u'], __LOGIN['p'], client=__LOGIN['c']) now_playing(artist, track, album, length, trackno, mbid, inner_call=True) else: raise SessionError('Invalid session') else: logger.warning("Error submitting \"Now Playing\"") return False def submit(artist, track, time=0, source='P', rating="", length="", album="", trackno="", mbid="", autoflush=False): """Append a song to the submission cache. Use 'flush()' to send the cache to AS. You can also set "autoflush" to True. From the Audioscrobbler protocol docs: --------------------------------------------------------------------------- The client should monitor the user's interaction with the music playing service to whatever extent the service allows. In order to qualify for submission all of the following criteria must be met: 1. The track must be submitted once it has finished playing. Whether it has finished playing naturally or has been manually stopped by the user is irrelevant. 2. The track must have been played for a duration of at least 240 seconds or half the track's total length, whichever comes first. Skipping or pausing the track is irrelevant as long as the appropriate amount has been played. 3. The total playback time for the track must be more than 30 seconds. Do not submit tracks shorter than this. 4. Unless the client has been specially configured, it should not attempt to interpret filename information to obtain metadata instead of tags (ID3, etc). @param artist: Artist name @param track: Track name @param time: Time the track *started* playing in the UTC timezone (see datetime.utcnow()). Example: int(time.mktime(datetime.utcnow())) @param source: Source of the track. One of: 'P': Chosen by the user 'R': Non-personalised broadcast (e.g. Shoutcast, BBC Radio 1) 'E': Personalised recommendation except Last.fm (e.g. Pandora, Launchcast) 'L': Last.fm (any mode). In this case, the 5-digit Last.fm recommendation key must be appended to this source ID to prove the validity of the submission (for example, "L1b48a"). 'U': Source unknown @param rating: The rating of the song. One of: 'L': Love (on any mode if the user has manually loved the track) 'B': Ban (only if source=L) 'S': Skip (only if source=L) '': Not applicable @param length: The song length in seconds @param album: The album name @param trackno:The track number @param mbid: MusicBrainz Track ID @param autoflush: Automatically flush the cache to AS? @return: True on success, False if something went wrong """ if None in (artist, track): raise Exception if not artist.strip() or not track.strip(): raise Exception global SUBMIT_CACHE, MAX_CACHE source = source.upper() rating = rating.upper() if source == 'L' and (rating == 'B' or rating == 'S'): raise ProtocolError("""You can only use rating 'B' or 'S' on source 'L'. See the docs!""") if source == 'P' and length == '': raise ProtocolError("""Song length must be specified when using 'P' as source!""") if type(time) != type(1): raise ValueError("""The time parameter must be of type int (unix timestamp). Instead it was %s""" % time) album = album or '' SUBMIT_CACHE.append( { 'a': unicode(artist).encode('utf-8'), 't': unicode(track).encode('utf-8'), 'i': time, 'o': source, 'r': rating, 'l': length, 'b': unicode(album).encode('utf-8'), 'n': trackno, 'm': mbid } ) if autoflush or len(SUBMIT_CACHE) >= MAX_CACHE: return flush() else: return True def flush(inner_call=False): """Sends the cached songs to AS. @param inner_call: Internally used variable. Don't touch!""" global SUBMIT_CACHE, __LOGIN, MAX_SUBMIT if POST_URL is None: raise ProtocolError('''Cannot submit without having a valid post-URL. Did you login?''') values = {} for i, item in enumerate(SUBMIT_CACHE[:MAX_SUBMIT]): for key in item: values[key + "[%d]" % i] = item[key] values['s'] = SESSION_ID data = urllib.urlencode(values) req = urllib2.Request(POST_URL, data) response = urllib2.urlopen(req) result = response.read() lines = result.split('\n') if lines[0] == "OK": SUBMIT_CACHE = SUBMIT_CACHE[MAX_SUBMIT:] logger.info("AudioScrobbler OK: %s" % data) return True elif lines[0] == "BADSESSION" : if inner_call is False: login(__LOGIN['u'], __LOGIN['p'], client=__LOGIN['c']) flush(inner_call=True) else: raise Warning("Infinite loop prevented") elif lines[0].startswith('FAILED'): handle_hard_error() raise BackendError("Submission to AS failed. Reason: %s" % lines[0]) else: # some hard error handle_hard_error() return False if __name__ == "__main__": login( 'user', 'password' ) submit( 'De/Vision', 'Scars', 1192374052, source='P', length=3*60+44 ) submit( 'Spineshank', 'Beginning of the End', 1192374052+(5*60), source='P', length=3*60+32 ) submit( 'Dry Cell', 'Body Crumbles', 1192374052+(10*60), source='P', length=3*60+3 ) print flush() dist/copy/plugins/PaxHeaders.26361/previewdevice0000644000175000017500000000013212233027261020266 xustar000000000000000030 mtime=1382821553.701046951 30 atime=1382821552.789046922 30 ctime=1382821553.701046951 exaile-3.3.2/plugins/previewdevice/0000755000000000000000000000000012233027261017304 5ustar00rootroot00000000000000dist/copy/plugins/previewdevice/PaxHeaders.26361/previewprefs.py0000644000175000017500000000012412233027260023436 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.569046947 exaile-3.3.2/plugins/previewdevice/previewprefs.py0000644000000000000000000001026612233027260022403 0ustar00rootroot00000000000000# Copyright (C) 2012 Dustin Spicuzza # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import gtk from xlgui.preferences import ( playback, widgets ) from xl.nls import gettext as _ import os name = _('Preview Device') basedir = os.path.dirname(os.path.realpath(__file__)) ui = os.path.join(basedir, 'previewprefs.ui') icon = gtk.STOCK_MEDIA_PLAY def __autoconfig(): ''' If the user hasn't used our plugin before, then try to autoconfig their audio settings to use a different audio device if possible.. TODO: It would be cool if we could notify the user that a new device was plugged in... ''' from xl import settings if settings.get_option('preview_device/audiosink', None) is not None: return sink = settings.get_option('player/audiosink', None) if sink is None: return settings.set_option( 'preview_device/audiosink', sink ) main_device = settings.get_option('player/audiosink_device', None) if main_device is None: return from xl.player import pipe devices = pipe.sink_enumerate_devices(sink) if devices is not None: # pick the first one that isn't the main device and isn't 'Auto' # -> if the main device is '', then it's auto. So... we actually # iterate backwards, assuming that the ordering matters for device,name in reversed(devices): if device != main_device and name != _('Auto'): settings.set_option( 'preview_device/audiosink_device', device ) break __autoconfig() class PreviewDeviceEnginePreference(playback.EnginePreference): name = 'preview_device/engine' class PreviewDeviceAudioSinkPreference(playback.AudioSinkPreference): name = 'preview_device/audiosink' class PreviewDeviceCustomAudioSinkPreference(playback.CustomAudioSinkPreference): name = 'preview_device/custom_sink_pipe' condition_preference_name = 'preview_device/audiosink' class PreviewDeviceSelectDeviceForSinkPreference(playback.SelectDeviceForSinkPreference): name = 'preview_device/audiosink_device' condition_preference_name = 'preview_device/audiosink' class PreviewDeviceUnifiedConditional(playback.UnifiedConditional): condition_preference_name = 'player/engine' class PreviewDeviceUserFadeTogglePreference(playback.UserFadeTogglePreference): name = 'preview_device/user_fade_enabled' condition_preference_name = 'preview_device/engine' class PreviewDeviceUserFadeDurationPreference(playback.UserFadeDurationPreference): name = 'preview_device/user_fade' condition_preference_name = 'preview_device/engine' class PreviewDeviceCrossFadingPreference(playback.CrossfadingPreference): default = False name = 'preview_device/crossfading' condition_preference_name = 'preview_device/engine' class PreviewDeviceCrossfadeDurationPreference(playback.CrossfadeDurationPreference): default = 1000 name = 'preview_device/crossfade_duration' condition_preference_name = 'preview_device/engine' dist/copy/plugins/previewdevice/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260022454 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.445046943 exaile-3.3.2/plugins/previewdevice/__init__.py0000644000000000000000000003154112233027260021420 0ustar00rootroot00000000000000# Copyright (C) 2012 Dustin Spicuzza # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import glib import gtk import gobject import os import time from xl import ( event, providers, player, settings, xdg ) from xl.nls import gettext as _ from xlgui import cover, guiutil, main from xlgui.widgets import info, menu, dialogs, playback import previewprefs PREVIEW_PLUGIN = None def get_preferences_pane(): return previewprefs def enable(exaile): '''Called on plugin enable''' if exaile.loading: event.add_callback(_enable, 'gui_loaded') else: _enable(None, exaile, None) def _enable(eventname, exaile, nothing): global PREVIEW_PLUGIN PREVIEW_PLUGIN = SecondaryOutputPlugin(exaile) def disable(exaile): '''Called on plugin disable''' global PREVIEW_PLUGIN if PREVIEW_PLUGIN is not None: PREVIEW_PLUGIN.disable_plugin(exaile) PREVIEW_PLUGIN = None class SecondaryOutputPlugin(object): '''Implements logic for plugin''' def __init__(self, exaile): self.exaile = exaile self.hooked = False self.resuming = False # # Initialize the player objects needed # self.player = player.get_player()('preview_device') self.queue = player.queue.PlayQueue( self.player, location=os.path.join(xdg.get_data_dir(), 'preview_device_queue.state'), name='Preview Device Queue') # # Initialize the GUI stuff # self._init_gui() # preserve state if settings.get_option('plugin/previewdevice/shown', True): self._init_gui_hooks() def disable_plugin(self, exaile): self._destroy_gui_hooks() self._destroy_gui() self.player.stop() self.player = None self.queue = None def _init_gui(self): self.pane = gtk.HPaned() # stolen from main self.info_area = info.TrackInfoPane(self.player) self.info_area.set_auto_update(True) self.info_area.set_padding(3, 3, 3, 3) self.info_area.hide_all() self.info_area.set_no_show_all(True) self.cover = cover.CoverWidget(self.info_area.cover_image, self.player) self.cover.hide_all() self.cover.set_no_show_all(True) volume_control = playback.VolumeControl(self.player) self.info_area.get_action_area().pack_start(volume_control) self.playpause_button = gtk.Button() self.playpause_button.set_relief(gtk.RELIEF_NONE) self._on_playback_end(None, None, None) self.playpause_button.connect('clicked', self._on_playpause_button_clicked) progress_bar = playback.SeekProgressBar(self.player, use_markers=False) play_toolbar = gtk.HBox() play_toolbar.pack_start(self.playpause_button, expand=False, fill=False) play_toolbar.pack_start(progress_bar) # stick our player controls into this box self.pane1_box = gtk.VBox() self.pane2_box = gtk.VBox() self.pane2_box.pack_start(self.info_area, expand=False, fill=False) self.pane2_box.pack_start(play_toolbar, expand=False, fill=False) self.pane.pack1(self.pane1_box, resize=True, shrink=True) self.pane.pack2(self.pane2_box, resize=True, shrink=True) # setup menus # add menu item to 'view' to display our playlist self.menu = menu.check_menu_item('preview_player', '', _('Preview Player'), \ lambda *e: self.hooked, self._on_view ) providers.register('menubar-view-menu', self.menu) self.preview_menuitem = menu.simple_menu_item('preview', [], _('Preview'), callback=self._on_preview, condition_fn=lambda n,p,c: c['selection-count'] != 0) # TODO: Setup on other context menus self.preview_provides = [ 'files-panel-context-menu', 'playlist-context-menu', 'collection-panel-context-menu' ] for provide in self.preview_provides: providers.register(provide, self.preview_menuitem) self._on_option_set('gui_option_set', settings, 'gui/show_info_area') self._on_option_set('gui_option_set', settings, 'gui/show_info_area_covers') event.add_callback(self._on_option_set, 'option_set') def _destroy_gui(self): event.remove_callback(self._on_option_set, 'option_set') for provide in self.preview_provides: providers.unregister(provide, self.preview_menuitem) providers.unregister('menubar-view-menu', self.menu) self.info_area.destroy() self.playpause_button.destroy() self.pane2_box.destroy() self.pane1_box.destroy() self.pane.destroy() def _setup_events(self, setup): setup(self._on_playback_resume, 'playback_player_resume', self.player) setup(self._on_playback_end, 'playback_player_end', self.player) setup(self._on_playback_error, 'playback_error', self.player) setup(self._on_playback_start, 'playback_track_start', self.player) setup(self._on_toggle_pause, 'playback_toggle_pause', self.player) def _init_gui_hooks(self): ''' Initializes any hooks into the main Exaile GUI Note that this is rather ugly, but currently exaile doesn't really have a better way to do this, and there isn't a better place to stick our gui objects. ''' if self.hooked: return # the info_area will be where we sit, and the info_area # will be duplicated for two sides # need to move the play_toolbar, and duplicate it # also once for each side info_area = main.mainwindow().info_area play_toolbar = main.mainwindow().builder.get_object('play_toolbar') parent = play_toolbar.get_parent() parent.remove(play_toolbar) parent = info_area.get_parent() parent.remove(info_area) parent.pack_start(self.pane, expand=False, fill=False) parent.reorder_child(self.pane, 0) # stick the main player controls into this box self.pane1_box.pack_start(info_area, expand=False, fill=False) self.pane1_box.pack_start(play_toolbar, expand=False, fill=False) # and do it self.pane.show_all() # add player events self._setup_events(event.add_callback) self.hooked = True settings.set_option('plugin/previewdevice/shown', True) def _destroy_gui_hooks(self): ''' Removes any hooks from the main Exaile GUI ''' if not self.hooked: return info_area = main.mainwindow().info_area play_toolbar = main.mainwindow().builder.get_object('play_toolbar') # detach main GUI elements parent = play_toolbar.get_parent() parent.remove(play_toolbar) parent = info_area.get_parent() parent.remove(info_area) # detach the element we added to hold them parent = self.pane.get_parent() parent.remove(self.pane) # reattach parent.pack_start(info_area, expand=False, fill=False) parent.reorder_child(info_area, 0) parent.pack_start(play_toolbar, expand=False, fill=False) # remove player events self._setup_events( event.remove_callback ) self.hooked = False settings.set_option('plugin/previewdevice/shown', False) # # Menu events # def _on_view(self, menu, name, parent, context): if self.hooked: self._destroy_gui_hooks() else: self._init_gui_hooks() def _on_preview(self, menu, display_name, playlist_view, context): self._init_gui_hooks() tracks = context['selected-tracks'] self.queue.play(tracks[0]) # # Various player events # def _on_playpause_button_clicked(self, *e): """ Called when the play button is clicked """ if self.player.is_paused() or self.player.is_playing(): self.player.toggle_pause() @guiutil.idle_add() def _on_option_set(self, name, object, option): """ Handles changes of settings """ if option == 'gui/show_info_area': self.info_area.set_no_show_all(False) if settings.get_option(option, True): self.info_area.show_all() else: self.info_area.hide_all() self.info_area.set_no_show_all(True) elif option == 'gui/show_info_area_covers': self.cover.set_no_show_all(False) if settings.get_option(option, True): self.cover.show_all() else: self.cover.hide_all() self.cover.set_no_show_all(True) def _on_playback_resume(self, type, player, data): self.resuming = True @guiutil.idle_add() def _on_playback_start(self, type, player, object): """ Called when playback starts Sets the currently playing track visible in the currently selected playlist if the user has chosen this setting """ if self.resuming: self.resuming = False return image = gtk.image_new_from_stock(gtk.STOCK_MEDIA_PAUSE, gtk.ICON_SIZE_BUTTON) self.playpause_button.set_image(image) self.playpause_button.set_tooltip_text( _('Pause Playback') ) @guiutil.idle_add() def _on_playback_end(self, type, player, object): """ Called when playback ends """ image = gtk.image_new_from_stock(gtk.STOCK_MEDIA_PLAY, gtk.ICON_SIZE_BUTTON) self.playpause_button.set_image(image) self.playpause_button.set_tooltip_text( _('Start Playback')) @guiutil.idle_add() def _on_playback_error(self, type, player, message): """ Called when there has been a playback error """ main.mainwindow().message.show_error( _('Playback error encountered!'), message) @guiutil.idle_add() def _on_toggle_pause(self, type, player, object): """ Called when the user clicks the play button after playback has already begun """ if player.is_paused(): image = gtk.image_new_from_stock(gtk.STOCK_MEDIA_PLAY, gtk.ICON_SIZE_BUTTON) tooltip = _('Continue Playback') else: image = gtk.image_new_from_stock(gtk.STOCK_MEDIA_PAUSE, gtk.ICON_SIZE_BUTTON) tooltip = _('Pause Playback') self.playpause_button.set_image(image) self.playpause_button.set_tooltip_text(tooltip) dist/copy/plugins/previewdevice/PaxHeaders.26361/previewprefs.ui0000644000175000017500000000012412233027260023423 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.701046951 exaile-3.3.2/plugins/previewdevice/previewprefs.ui0000644000000000000000000003025712233027260022372 0ustar00rootroot00000000000000 1000 10000 50 50 3000 10000 50 50 True 3 vertical 3 True True 0 1 Playback engine: 0 True model1 0 1 False False 1 False 0 Use fade transitions on user actions True True False True True False False 1 True True 0.89999997615814209 Fade duration (ms): False 3 0 True True 1 adjustment1 False 1 False 2 Use crossfading (EXPERIMENTAL) True True False True True False False 3 True True 0.89999997615814209 Crossfade duration (ms): False 3 0 True True 1 adjustment2 False 1 False 4 True True 0 1 Audio Sink: 0 True model2 0 1 False False 1 False 5 False True 0 1 Device: 0 True model3 0 1 False False 1 False 6 True 3 True 0 Custom sink pipeline: False 0 150 True True 1 False 7 normal Normal unified Unified (unstable) dist/copy/plugins/previewdevice/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260021740 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.421046942 exaile-3.3.2/plugins/previewdevice/PLUGININFO0000644000000000000000000000036312233027260020702 0ustar00rootroot00000000000000Version="0.1" Authors=['Dustin Spicuzza '] Name=_("Preview Device") Description=_("Allows playing audio over a secondary device (right click on playlist and select 'preview'). Useful for DJs.") Category=_("Output") dist/copy/plugins/PaxHeaders.26361/daapclient0000644000175000017500000000013212233027261017531 xustar000000000000000030 mtime=1382821553.697046951 30 atime=1382821552.789046922 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/daapclient/0000755000000000000000000000000012233027261016547 5ustar00rootroot00000000000000dist/copy/plugins/daapclient/PaxHeaders.26361/daapclientprefs.py0000644000175000017500000000012412233027260023324 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.473046944 exaile-3.3.2/plugins/daapclient/daapclientprefs.py0000644000000000000000000000065212233027260022267 0ustar00rootroot00000000000000from xlgui.preferences import widgets from xl.nls import gettext as _ import os name = _('DAAP Client') basedir = os.path.dirname(os.path.realpath(__file__)) ui = os.path.join(basedir, 'daapclient_prefs.ui') class Ipv6Preference(widgets.CheckPreference): default = False name = 'plugin/daapclient/ipv6' class HistoryPreference(widgets.CheckPreference): default = True name = 'plugin/daapclient/history' dist/copy/plugins/daapclient/PaxHeaders.26361/daap_data.py0000644000175000017500000000012412233027260022056 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.177046934 exaile-3.3.2/plugins/daapclient/daap_data.py0000644000000000000000000001474512233027260021031 0ustar00rootroot00000000000000__all__ = ['dmapCodeTypes', 'dmapDataTypes', 'dmapNames', 'dmapReverseDataTypes'] dmapCodeTypes = { #'f\x8dch': ('dmap.haschildcontainers', 'b'), 'abal': ('daap.browsealbumlisting', 'c'), 'abar': ('daap.browseartistlisting', 'c'), 'abcp': ('daap.browsecomposerlisting', 'c'), 'abgn': ('daap.browsegenrelisting', 'c'), 'abpl': ('daap.baseplaylist', 'b'), 'abro': ('daap.databasebrowse', 'c'), 'adbs': ('daap.databasesongs', 'c'), 'aeAI': ('com.apple.itunes.itms-artistid', 'i'), 'aeCI': ('com.apple.itunes.itms-composerid', 'i'), 'aeEN': ('com.apple.itunes.episode-num-str', 's'), 'aeES': ('com.apple.itunes.episode-sort', 'i'), 'aeFP': ('com.apple.itunes.req-fplay', 'b'), 'aeGU': ('com.apple.itunes.gapless-dur', 'l'), 'aeGD': ('com.apple.itunes.gapless-enc-dr', 'i'), 'aeGE': ('com.apple.itunes.gapless-enc-del', 'i'), 'aeGH': ('com.apple.itunes.gapless-heur', 'i'), 'aeGI': ('com.apple.itunes.itms-genreid', 'i'), 'aeGR': ('com.apple.itunes.gapless-resy', 'l'), 'aeHV': ('com.apple.itunes.has-video', 'b'), 'aeMK': ('com.apple.itunes.mediakind', 'b'), 'aeNN': ('com.apple.itunes.network-name', 's'), 'aeNV': ('com.apple.itunes.norm-volume', 'i'), 'aePC': ('com.apple.itunes.is-podcast', 'b'), 'aePI': ('com.apple.itunes.itms-playlistid', 'i'), 'aePP': ('com.apple.itunes.is-podcast-playlist', 'b'), 'aePS': ('com.apple.itunes.special-playlist', 'b'), 'aeSU': ('com.apple.itunes.season-num', 'i'), 'aeSF': ('com.apple.itunes.itms-storefrontid', 'i'), 'aeSI': ('com.apple.itunes.itms-songid', 'i'), 'aeSN': ('com.apple.itunes.series-name', 's'), 'aeSP': ('com.apple.itunes.smart-playlist', 'b'), 'aeSV': ('com.apple.itunes.music-sharing-version', 'i'), 'agrp': ('daap.songgrouping', 's'), 'aply': ('daap.databaseplaylists', 'c'), 'aprm': ('daap.playlistrepeatmode', 'b'), 'apro': ('daap.protocolversion', 'v'), 'apsm': ('daap.playlistshufflemode', 'b'), 'apso': ('daap.playlistsongs', 'c'), 'arif': ('daap.resolveinfo', 'c'), 'arsv': ('daap.resolve', 'c'), 'asaa': ('daap.songalbumartist', 's'), 'asal': ('daap.songalbum', 's'), 'asar': ('daap.songartist', 's'), 'asbk': ('daap.bookmarkable', 'b'), 'asbo': ('daap.songbookmark', 'i'), 'asbr': ('daap.songbitrate', 'h'), 'asbt': ('daap.songbeatsperminute', 'h'), 'ascd': ('daap.songcodectype', 'i'), 'ascm': ('daap.songcomment', 's'), 'ascn': ('daap.songcontentdescription', 's'), 'asco': ('daap.songcompilation', 'b'), 'ascp': ('daap.songcomposer', 's'), 'ascr': ('daap.songcontentrating', 'b'), 'ascs': ('daap.songcodecsubtype', 'i'), 'asct': ('daap.songcategory', 's'), 'asda': ('daap.songdateadded', 't'), 'asdb': ('daap.songdisabled', 'b'), 'asdc': ('daap.songdisccount', 'h'), 'asdk': ('daap.songdatakind', 'b'), 'asdm': ('daap.songdatemodified', 't'), 'asdn': ('daap.songdiscnumber', 'h'), 'asdp': ('daap.songdatepurchased', 't'), 'asdr': ('daap.songdatereleased', 't'), 'asdt': ('daap.songdescription', 's'), 'ased': ('daap.songextradata', 'h'), 'aseq': ('daap.songeqpreset', 's'), 'asfm': ('daap.songformat', 's'), 'asgn': ('daap.songgenre', 's'), 'asgp': ('daap.songgapless', 'b'), 'ashp': ('daap.songhasbeenplayed', 'b'), 'asky': ('daap.songkeywords', 's'), 'aslc': ('daap.songlongcontentdescription', 's'), 'asrv': ('daap.songrelativevolume', 'ub'), 'assu': ('daap.sortalbum', 's'), 'assa': ('daap.sortartist', 's'), 'assc': ('daap.sortcomposer', 's'), 'assl': ('daap.sortalbumartist', 's'), 'assn': ('daap.sortname', 's'), 'assp': ('daap.songstoptime', 'i'), 'assr': ('daap.songsamplerate', 'i'), 'asss': ('daap.sortseriesname', 's'), 'asst': ('daap.songstarttime', 'i'), 'assz': ('daap.songsize', 'i'), 'astc': ('daap.songtrackcount', 'h'), 'astm': ('daap.songtime', 'i'), 'astn': ('daap.songtracknumber', 'h'), 'asul': ('daap.songdataurl', 's'), 'asur': ('daap.songuserrating', 'b'), 'asyr': ('daap.songyear', 'h'), 'ated': ('daap.supportsextradata', 'h'), 'avdb': ('daap.serverdatabases', 'c'), 'mbcl': ('dmap.bag', 'c'), 'mccr': ('dmap.contentcodesresponse', 'c'), 'mcna': ('dmap.contentcodesname', 's'), 'mcnm': ('dmap.contentcodesnumber', 'i'), 'mcon': ('dmap.container', 'c'), 'mctc': ('dmap.containercount', 'i'), 'mcti': ('dmap.containeritemid', 'i'), 'mcty': ('dmap.contentcodestype', 'h'), 'mdcl': ('dmap.dictionary', 'c'), 'miid': ('dmap.itemid', 'i'), 'mikd': ('dmap.itemkind', 'b'), 'mimc': ('dmap.itemcount', 'i'), 'minm': ('dmap.itemname', 's'), 'mlcl': ('dmap.listing', 'c'), 'mlid': ('dmap.sessionid', 'i'), 'mlit': ('dmap.listingitem', 'c'), 'mlog': ('dmap.loginresponse', 'c'), 'mpco': ('dmap.parentcontainerid', 'i'), 'mper': ('dmap.persistentid', 'l'), 'mpro': ('dmap.protocolversion', 'v'), 'mrco': ('dmap.returnedcount', 'i'), 'msau': ('dmap.authenticationmethod', 'b'), 'msal': ('dmap.supportsautologout', 'b'), 'msas': ('dmap.authenticationschemes', 'i'), 'msbr': ('dmap.supportsbrowse', 'b'), 'msdc': ('dmap.databasescount', 'i'), 'msex': ('dmap.supportsextensions', 'b'), 'msix': ('dmap.supportsindex', 'b'), 'mslr': ('dmap.loginrequired', 'b'), 'mspi': ('dmap.supportspersistentids', 'b'), 'msqy': ('dmap.supportsquery', 'b'), 'msrs': ('dmap.supportsresolve', 'b'), 'msrv': ('dmap.serverinforesponse', 'c'), 'mstc': ('dmap.utctime', 't'), 'mstm': ('dmap.timeoutinterval', 'i'), 'msto': ('dmap.utcoffset', 'ui'), 'msts': ('dmap.statusstring', 's'), 'mstt': ('dmap.status', 'i'), 'msup': ('dmap.supportsupdate', 'b'), 'mtco': ('dmap.specifiedtotalcount', 'i'), 'mudl': ('dmap.deletedidlisting', 'c'), 'mupd': ('dmap.updateresponse', 'c'), 'musr': ('dmap.serverrevision', 'i'), 'muty': ('dmap.updatetype', 'b'), 'ppro': ('dpap.protocolversion', 'i'), 'pret': ('dpap.unknown', 'c'), } dmapDataTypes = { 1:'b', # byte 2:'ub', # unsigned byte 3:'h', # short 4:'uh', # unsigned short 5:'i', # integer 6:'ui', # unsigned integer 7:'l', # long 8:'ul', # unsigned long 9:'s', # string 10:'t', # timestamp 11:'v', # version 12:'c', # container } dmapNames = {} for k in dmapCodeTypes.keys(): dmapNames[dmapCodeTypes[k][0]] = k dmapReverseDataTypes = {} for k in dmapDataTypes.keys(): dmapReverseDataTypes[dmapDataTypes[k]] = k dist/copy/plugins/daapclient/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260021717 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.513046945 exaile-3.3.2/plugins/daapclient/__init__.py0000644000000000000000000006115312233027260020665 0ustar00rootroot00000000000000# Copyright (C) 2006-2007 Aren Olson # 2011 Brian Parma # # 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, 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 import os import gtk import dbus import dbus.exceptions import logging import time import threading import gobject import xlgui import pickle from gettext import gettext as _ from xlgui.panel.collection import CollectionPanel from xlgui import guiutil from xlgui.widgets import dialogs, menu, menuitems from daap import DAAPClient, DAAPError from xl import ( collection, event, trax, common, providers, settings, xdg ) logger = logging.getLogger(__name__) gobject.threads_init() _smi = menu.simple_menu_item _sep = menu.simple_separator # # Check For python-avahi, we can work without # avahi, but wont be able to discover shares. # try: import avahi AVAHI = True except ImportError: logger.warning('avahi not installed, can\'t auto-discover servers') AVAHI = False # detect authoriztion support in python-daap try: tmp = DAAPClient() tmp.connect("spam","eggs","sausage") #dummy login del tmp except TypeError: AUTH = False except: AUTH = True # Globals Warming MANAGER = None class AttrDict(dict): def __getattr__(self, name): return self[name] import functools # helper function to parse avahi info into a list of tuples (for dict()) parse = functools.partial(zip, ['interface', 'protocol', 'name', 'type', 'domain', 'host', 'aprotocol', 'address', 'port', 'txt', 'flags']) class DaapAvahiInterface(gobject.GObject): #derived from python-daap/examples """ Handles detection of DAAP shares via Avahi and manages the menu showing the shares. Fires a "connect" signal when a menu item is clicked. """ __gsignals__ = { 'connect' : ( gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, ( gobject.TYPE_PYOBJECT, ) ) } def new_service(self, interface, protocol, name, type, domain, flags): """ Called when a new share is found. """ x = self.server.ResolveService(interface, protocol, name, type, domain, avahi.PROTO_UNSPEC, dbus.UInt32(0)) x = AttrDict(parse(x)) logger.info("DAAP share found: '{0}' at ({1},{2})." .format(x.name, x.address, x.port)) # gstreamer can't handle link-local ipv6 if 'fe80' in x.address: return #Use all available info in key to avoid name conflicts. nstr = '%s%s%s%s%s' % (interface, protocol, name, type, domain) if nstr in self.services: return self.services[nstr] = x self.rebuild_share_menu_items() # self.new_share_menu_item(x) def remove_service(self, interface, protocol, name, type, domain, flags): """ Called when the connection to a share is lost. """ logger.info("DAAP share lost: %s." % name) nstr = '%s%s%s%s%s' % (interface, protocol, name, type, domain) if nstr in self.services: # self.remove_share_menu_item(name) del self.services[nstr] self.rebuild_share_menu_items() def new_share_menu_item(self, name, key): ''' This function is called to add a server to the connect menu. ''' # check if the menu exist and check if it's ipv4 or we are allowing # ipv6 print 'adding menu',name,key if self.menu: menu_item = _smi(name, ['sep'], name, callback=lambda *x: self.clicked(key)) self.menu.add_item(menu_item) def remove_share_menu_item(self, name): ''' This function is called to remove a server from the connect menu. ''' if self.menu: for item in self.menu._items: if item.name == name: self.menu.remove_item(item) break def clear_share_menu_items(self): ''' This function is used to clear all the menu items out of a menu. ''' if self.menu: for item in self.menu._items: if item.name == 'manual' or item.name == 'sep': continue self.menu.remove_item(item) def rebuild_share_menu_items(self): ''' This function fills the menu with known servers. ''' self.clear_share_menu_items() show_ipv6 = settings.get_option('plugin/daapclient/ipv6', False) items = {} for key,x in self.services.items(): name = '{0} ({1})'.format(x.name,x.host) if x.protocol == avahi.PROTO_INET6: if not show_ipv6: continue name += ' - ipv6' if name not in items: items[name] = (key,x) # this dedups based on name-host, replacing ipv4 with ipv6 # for key,x in self.services.items(): # name = '{0} ({1})'.format(x.name,x.host) # if x.protocol == avahi.PROTO_INET6 and show_ipv6: # if name in items: # # prefer ipv6 # if items[name][1].protocol == avahi.PROTO_INET: # items[name] = (key,x) # elif x.protocol == avahi.PROTO_INET: # if name not in items: # items[name] = (key,x) for name in items: self.new_share_menu_item(name, key=items[name][0]) def clicked(self, key): ''' This function is called in response to a menu_item click. Fire away. ''' x = self.services[key] gobject.idle_add(self.emit, "connect", (x.name, x.address, x.port, x)) def __init__(self, exaile, _menu): """ Sets up the avahi listener. """ gobject.GObject.__init__(self) self.services = {} self.menu = _menu self.bus = dbus.SystemBus() self.server = dbus.Interface(self.bus.get_object(avahi.DBUS_NAME, avahi.DBUS_PATH_SERVER), avahi.DBUS_INTERFACE_SERVER) self.stype = '_daap._tcp' self.domain = 'local' self.browser = dbus.Interface(self.bus.get_object(avahi.DBUS_NAME, self.server.ServiceBrowserNew(avahi.IF_UNSPEC, avahi.PROTO_UNSPEC, self.stype, self.domain, dbus.UInt32(0))), avahi.DBUS_INTERFACE_SERVICE_BROWSER) self.browser.connect_to_signal('ItemNew', self.new_service) self.browser.connect_to_signal('ItemRemove', self.remove_service) class DaapHistory(common.LimitedCache): def __init__(self, limit=5, location=None, menu=None, callback=None): common.LimitedCache.__init__(self, limit) if location is None: location = os.path.join(xdg.get_cache_dir(), 'daaphistory.dat') self.location = location self.menu = menu self.callback = callback self.load() def __setitem__(self, item, value): common.LimitedCache.__setitem__(self, item, value) # add new menu item if self.menu is not None and self.callback is not None: menu_item = _smi('hist'+item, ['sep'], item, callback=lambda *x: self.callback(None, value+(None,))) self.menu.add_item(menu_item) def load(self): with open(self.location, 'rb') as f: try: d = pickle.load(f) self.update(d) except (IOError, EOFError): # no file pass def save(self): with open(self.location, 'wb') as f: pickle.dump(self.cache, f, common.PICKLE_PROTOCOL) class DaapManager: ''' DaapManager is a class that manages DaapConnections, both manual and avahi-generated. ''' def __init__(self, exaile, _menu, avahi): ''' Init! Create manual menu item, and connect to avahi signal. ''' self.exaile = exaile self.avahi = avahi self.panels = {} hmenu = menu.Menu(None) def hmfactory(menu, parent, context): item = gtk.MenuItem(_('History')) item.set_submenu(hmenu) sens = settings.get_option('plugin/daapclient/history', True) item.set_sensitive(sens) return item _menu.add_item(_smi('manual', [], _('Manually...'), callback=self.manual_connect)) _menu.add_item(menu.MenuItem('history', hmfactory, ['manual'])) _menu.add_item(_sep('sep', ['history'])) if avahi is not None: avahi.connect("connect", self.connect_share) self.history = DaapHistory(5, menu=hmenu, callback=self.connect_share) def connect_share(self, obj, (name, address, port, svc)): ''' This function is called when a user wants to connec to a DAAP share. It creates a new panel for the share, and requests a track list. ''' conn = DaapConnection(name, address, port) conn.connect() library = DaapLibrary(conn) panel = NetworkPanel(self.exaile.gui.main.window, library, self) # cst = CollectionScanThread(None, panel.net_collection, panel) # cst.start() panel.refresh() # threaded xlgui.get_controller().add_panel(*panel.get_panel()) self.panels[name] = panel # history if settings.get_option('plugin/daapclient/history', True): self.history[name] = (name, address, port) self.history.save() def disconnect_share(self, name): ''' This function is called to disconnect a previously connected share. It calls the DAAP disconnect, and removes the panel. ''' panel = self.panels[name] # panel.library.daap_share.disconnect() panel.daap_share.disconnect() # panel.net_collection.remove_library(panel.library) xlgui.get_controller().remove_panel(panel.get_panel()[0]) del self.panels[name] def manual_connect(self, *args): ''' This function is called when the user selects the manual connection option from the menu. It requests a host/ip to connect to. ''' dialog = dialogs.TextEntryDialog( _("Enter IP address and port for share"), _("Enter IP address and port.")) resp = dialog.run() if resp == gtk.RESPONSE_OK: loc = dialog.get_value().strip() host = loc # the port will be anything after the last : p = host.rfind(":") # ipv6 literals should have a closing brace before the port b = host.rfind("]") if p > b: try: port = int(host[p+1:]) host = host[:p] except ValueError: logger.error('non-numeric port specified') return else: port = 3689 # if no port specified, use default DAAP port # if it's an ipv6 host with brackets, strip them if host and host[0] == '[' and host[-1] == ']': host = host[1:-1] nstr = 'custom%s%s' % (host, port) conn = DaapConnection(loc, host, port) self.connect_share(None, (loc, host, port, None)) def refresh_share(self, name): panel = self.panels[name] rev = panel.daap_share.session.revision # check for changes panel.daap_share.session.update() logger.debug('DAAP Server %s returned revision %d ( old: %d ) after' +' update request' % (name, panel.daap_share.session.revision, rev)) # if changes, refresh if rev != panel.daap_share.session.revision: logger.info('DAAP Server %s changed, refreshing... (revision %d)' % (name, panel.daap_share.session.revision)) panel.refresh() def close(self, remove=False): ''' This function disconnects active DaapConnections, and optionally removes the panels from the UI. ''' # disconnect active shares for panel in self.panels.values(): panel.daap_share.disconnect() # there's no point in doing this if we're just shutting down, only on # disable if remove: xlgui.get_controller().remove_panel(panel.get_panel()[0]) class DaapConnection(object): """ A connection to a DAAP share. """ def __init__(self, name, server, port): # if it's an ipv6 address if ':' in server and server[0] != '[': server = '['+server+']' self.all = [] self.session = None self.connected = False self.tracks = None self.server = server self.port = port self.name = name self.auth = False self.password = None def connect(self, password = None): """ Connect, login, and retrieve the track list. """ try: client = DAAPClient() if AUTH and password: client.connect(self.server, self.port, password) else: client.connect(self.server, self.port) self.session = client.login() self.connected = True # except DAAPError: except Exception, inst: logger.warning('failed to connect to ({0},{1})'.format( self.server, self.port)) logger.debug(traceback.format_exc()) self.auth = True self.connected = False raise def disconnect(self): """ Disconnect, clean up. """ try: self.session.logout() except: pass self.session = None self.tracks = None self.database = None self.all = [] self.connected = False def reload(self): """ Reload the tracks from the server """ self.tracks = None self.database = None self.all = [] self.get_database() t = time.time() self.convert_list() logger.debug('{0} tracks loaded in {1}s'.format(len(self.all), time.time()-t)) def get_database(self): """ Get a DAAP database and its track list. """ if self.session: self.database = self.session.library() self.get_tracks(1) def get_tracks(self, reset = False): """ Get the track list from a DAAP database """ if reset or self.tracks == None: if self.database is None: self.database = self.session.library() self.tracks = self.database.tracks() return self.tracks def convert_list(self): """ Converts the DAAP track database into Exaile Tracks. """ # Convert DAAPTrack's attributes to Tracks. eqiv = {'title':'minm','artist':'asar','album':'asal','tracknumber':'astn',} # 'genre':'asgn','enc':'asfm','bitrate':'asbr'} for tr in self.tracks: if tr is not None: #http://:/databases//items/.?session-id= uri = "http://%s:%s/databases/%s/items/%s.%s?session-id=%s" % \ (self.server, self.port, self.database.id, tr.id, tr.type, self.session.sessionid) # Don't scan tracks because gio is slow! temp = trax.Track(uri, scan=False) for field in eqiv.keys(): try: tag = u'%s'%tr.atom.getAtom(eqiv[field]) if tag != 'None': temp.set_tag_raw(field, [tag], notify_changed=False) except: if field is 'tracknumber': temp.set_tag_raw('tracknumber', [0], notify_changed=False) logger.debug(traceback.format_exc()) #TODO: convert year (asyr) here as well, what's the formula? try: temp.set_tag_raw("__length", tr.atom.getAtom('astm') / 1000, notify_changed=False) except: temp.set_tag_raw("__length", 0, notify_changed=False) self.all.append(temp) @common.threaded def get_track(self, track_id, filename): """ Save the track with track_id to filename """ for t in self.tracks: if t.id == track_id: try: t.save(filename) except CannotSendRequest: dialog = gtk.MessageDialog(APP.window, gtk.DIALOG_MODAL, gtk.MESSAGE_INFO, gtk.BUTTONS_OK, _("""This server does not support multiple connections. You must stop playback before downloading songs.""")) class DaapLibrary(collection.Library): ''' Library subclass for better management of collection?? Or something to do with devices or somesuch. Ask Aren. ''' def __init__(self, daap_share, col=None): # location = "http://%s:%s/databasese/%s/items/" % (daap_share.server, daap_share.port, daap_share.database.id) # Libraries need locations... location = "http://%s:%s/" % (daap_share.server, daap_share.port) collection.Library.__init__(self, location) self.daap_share = daap_share #self.collection = col def rescan(self, notify_interval=None): ''' Called when a library needs to refresh it's track list. ''' if self.collection is None: return True if self.scanning: return t = time.time() logger.info('Scanning library: %s' % self.daap_share.name) self.scanning = True db = self.collection # DAAP gives us all the tracks in one dump self.daap_share.reload() if self.daap_share.all: count = len(self.daap_share.all) else: count = 0 if count > 0: logger.info('Adding %d tracks from %s. (%f s)' % (count, self.daap_share.name, time.time()-t)) self.collection.add_tracks(self.daap_share.all) if notify_interval is not None: event.log_event('tracks_scanned', self, count) # track removal? self.scanning = False #return True # Needed to be overriden for who knows why (exceptions) def _count_files(self): count = 0 if self.daap_share: count = len(self.daap_share.all) return count class NetworkPanel(CollectionPanel): """ A panel that displays a collection of tracks from the DAAP share. """ def __init__(self, parent, library, mgr): """ Expects a parent gtk.Window, and a daap connection. """ self.name = library.daap_share.name self.daap_share = library.daap_share self.net_collection = collection.Collection(self.name) self.net_collection.add_library(library) CollectionPanel.__init__(self, parent, self.net_collection, self.name, _show_collection_empty_message=False) self.all = [] self.connect_id = None self.menu = menu.Menu(self) def get_tracks_func(*args): return self.tree.get_selected_tracks() self.menu.add_item(menuitems.AppendMenuItem('append', [], get_tracks_func)) self.menu.add_item(menuitems.EnqueueMenuItem('enqueue', ['append'], get_tracks_func)) self.menu.add_item(menuitems.PropertiesMenuItem('props', ['enqueue'], get_tracks_func)) self.menu.add_item(_sep('sep',['props'])) self.menu.add_item(_smi('refresh', ['sep'], _('Refresh Server List'), callback = lambda *x: mgr.refresh_share(self.name))) self.menu.add_item(_smi('disconnect', ['refresh'], _('Disconnect from Server'), callback = lambda *x: mgr.disconnect_share(self.name))) @common.threaded def refresh(self): ''' This is called to refresh the track list. ''' # Since we don't use a ProgressManager/Thingy, we have to call these w/out # a ScanThread self.net_collection.rescan_libraries() gobject.idle_add(self._refresh_tags_in_tree) def save_selected(self, widget=None, event=None): """ Save the selected tracks to disk. """ items = self.get_selected_items() dialog = gtk.FileChooserDialog(_("Select a Location for Saving"), APP.window, gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER, (gtk.STOCK_OPEN, gtk.RESPONSE_OK, gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL)) dialog.set_current_folder(APP.get_last_dir()) dialog.set_select_multiple(False) result = dialog.run() dialog.hide() if result == gtk.RESPONSE_OK: folder = dialog.get_current_folder() self.save_items(items, folder) @common.threaded def save_items(self, items, folder): for i in items: tnum = i.get_track() if tnum < 10: tnum = "0%s"%tnum else: tnum = str(tnum) filename = "%s%s%s - %s.%s"%(folder, os.sep, tnum, i.get_title(), i.type) i.connection.get_track(i.daapid, filename) # print "DAAP: saving track %s to %s."%(i.daapid, filename) def enable(exaile): ''' Plugin Enabled. ''' if exaile.loading: event.add_callback(__enb, 'gui_loaded') else: __enb(None, exaile, None) def __enb(eventname, exaile, wat): gobject.idle_add(_enable, exaile) def _enable(exaile): global MANAGER event.add_callback(on_settings_change, 'plugin_daapclient_option_set') menu_ = menu.Menu(None) providers.register('menubar-tools-menu', _sep('plugin-sep', ['track-properties'])) item = _smi('daap', ['plugin-sep'], _('Connect to DAAP...'), submenu=menu_) providers.register('menubar-tools-menu', item) if AVAHI: try: avahi_interface = DaapAvahiInterface(exaile, menu_) except RuntimeError: # no dbus? avahi_interface = None logger.warning('avahi interface could not be initialized (no dbus?)') except dbus.exceptions.DBusException, s: avahi_interface = None logger.error('Got DBUS error: %s' % s) logger.error('is avahi-daemon running?') else: avahi_interface = None logger.warn('AVAHI could not be imported, you will not see broadcast shares.') MANAGER = DaapManager(exaile, menu_, avahi_interface) def teardown(exaile): ''' Exaile Shutdown. ''' if MANAGER is not None: MANAGER.close() def disable(exaile): ''' Plugin Disabled. ''' # disconnect from active shares if MANAGER is not None: # MANAGER.clear() MANAGER.close(True) for item in providers.get('menubar-tools-menu'): if item.name == 'daap': providers.unregister('menubar-tools-menu', item) break event.remove_callback(__enb, 'gui_loaded') # settings stuff import daapclientprefs def get_preferences_pane(): return daapclientprefs def on_settings_change(event, setting, option): if option == 'plugin/daapclient/ipv6' and MANAGER is not None: MANAGER.avahi.rebuild_share_menu_items() # vi: et ts=4 sts=4 sw=4 dist/copy/plugins/daapclient/PaxHeaders.26361/daapclient_prefs.ui0000644000175000017500000000012412233027260023450 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.473046944 exaile-3.3.2/plugins/daapclient/daapclient_prefs.ui0000644000000000000000000000376312233027260022421 0ustar00rootroot00000000000000 False True False Show ipv6 servers (Experimental) True True False False 1 1 True False False 0 Remember recent DAAP servers True True False False True True False False 1 dist/copy/plugins/daapclient/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260021203 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/daapclient/PLUGININFO0000644000000000000000000000031112233027260020136 0ustar00rootroot00000000000000Version='0.9.3' Authors=['Brian Parma ','Aren Olson '] Name=_('DAAP Client') Description=_('Allows playing of DAAP music shares.') Category=_('Media Sources') dist/copy/plugins/daapclient/PaxHeaders.26361/daap.py0000644000175000017500000000012412233027260021065 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.473046944 exaile-3.3.2/plugins/daapclient/daap.py0000644000000000000000000005050112233027260020026 0ustar00rootroot00000000000000# daap.py # # DAAP classes and methods. # # original work (c) 2004, Davyd Madeley # # Later iTunes authentication work and object model # copyright 2005 Tom Insam # # Stripped clean + a few bug fixes, Erik Hetzner import struct, sys, httplib import logging from daap_data import * from cStringIO import StringIO __all__ = ['DAAPError', 'DAAPObject', 'do'] log = logging.getLogger('daap') def DAAPParseCodeTypes(treeroot): # the treeroot we are given should be a # dmap.contentcodesresponse if treeroot.codeName() != 'dmap.contentcodesresponse': raise DAAPError("DAAPParseCodeTypes: We cannot generate a dictionary from this tree.") return for object in treeroot.contains: # each item should be one of two things # a status code, or a dictionary if object.codeName() == 'dmap.status': pass elif object.codeName() == 'dmap.dictionary': code = None name = None dtype = None # a dictionary object should contain three items: # a 'dmap.contentcodesnumber' the 4 letter content code # a 'dmap.contentcodesname' the name of the code # a 'dmap.contentcodestype' the type of the code for info in object.contains: if info.codeName() == 'dmap.contentcodesnumber': code = info.value elif info.codeName() == 'dmap.contentcodesname': name = info.value elif info.codeName() == 'dmap.contentcodestype': try: dtype = dmapDataTypes[info.value] except: log.debug('DAAPParseCodeTypes: unknown data type %s for code %s, defaulting to s', info.value, name) dtype = 's' else: raise DAAPError('DAAPParseCodeTypes: unexpected code %s at level 2' % info.codeName()) if code == None or name == None or dtype == None: log.debug('DAAPParseCodeTypes: missing information, not adding entry') else: try: dtype = dmapFudgeDataTypes[name] except: pass #print("** %s %s %s", code, name, dtype) dmapCodeTypes[code] = (name, dtype) else: raise DAAPError('DAAPParseCodeTypes: unexpected code %s at level 1' % info.codeName()) class DAAPError(Exception): pass class DAAPObject(object): def __init__(self, code=None, value=None, **kwargs): if (code != None): if (len(code) == 4): self.code = code else: self.code = dmapNames[code] if self.code == None or not dmapCodeTypes.has_key(self.code): self.type = None else: self.type = dmapCodeTypes[self.code][1] self.value = value if self.type == 'c' and type(self.value) == list: self.contains = value if kwargs.has_key('parent'): kwargs['parent'].contains.append(self) def getAtom(self, code): """returns an atom of the given code by searching 'contains' recursively.""" if self.code == code: if self.type == 'c': return self return self.value # ok, it's not us. check our children if hasattr(self, 'contains'): for object in self.contains: value = object.getAtom(code) if value: return value return None def codeName(self): if self.code == None or not dmapCodeTypes.has_key(self.code): return None else: return dmapCodeTypes[self.code][0] def objectType(self): if self.code == None or not dmapCodeTypes.has_key(self.code): return None else: return dmapCodeTypes[self.code][1] def printTree(self, level = 0, out = sys.stdout): if hasattr(self, 'value'): out.write('\t' * level + '%s (%s)\t%s\t%s\n' % (self.codeName(), self.code, self.type, self.value)) else: out.write('\t' * level + '%s (%s)\t%s\t%s\n' % (self.codeName(), self.code, self.type, None)) if hasattr(self, 'contains'): for object in self.contains: object.printTree(level + 1) def encode(self): # generate DMAP tagged data format # step 1 - find out what type of object we are if self.type == 'c': # our object is a container, # this means we're going to have to # check contains[] value = '' for item in self.contains: # get the data stream from each of the sub elements if type(item) == str: #preencoded value += item else: value += item.encode() # get the length of the data length = len(value) # pack: 4 byte code, 4 byte length, length bytes of value data = struct.pack('!4sI%ss' % length, self.code, length, value) return data else: # we don't have to traverse anything # to calculate the length and such # we want to encode the contents of # value for our value value = self.value if type(value) == float: value = int(value) if self.type == 'v': value = value.split('.') value = struct.pack('!HH', int(value[0]), int(value[1])) packing = "4s" elif self.type == 'l': packing = 'q' elif self.type == 'ul': packing = 'Q' elif self.type == 'i': if (type(value) == str and len(value) <= 4): packing = '4s' else: packing = 'i' elif self.type == 'ui': packing = 'I' elif self.type == 'h': packing = 'h' elif self.type == 'uh': packing = 'H' elif self.type == 'b': packing = 'b' elif self.type == 'ub': packing = 'B' elif self.type == 't': packing = 'I' elif self.type == 's': if type(value) == unicode: value = value.encode('utf-8') packing = '%ss' % len(value) else: raise DAAPError('DAAPObject: encode: unknown code %s' % self.code) return # calculate the length of what we're packing length = struct.calcsize('!%s' % packing) # pack: 4 characters for the code, 4 bytes for the length, and 'length' bytes for the value data = struct.pack('!4sI%s' % (packing), self.code, length, value) return data def processData(self, str): # read 4 bytes for the code and 4 bytes for the length of the objects data data = str.read(8) if not data: return self.code, self.length = struct.unpack('!4sI', data) # now we need to find out what type of object it is if self.code == None or not dmapCodeTypes.has_key(self.code): self.type = None else: self.type = dmapCodeTypes[self.code][1] if self.type == 'c': start_pos = str.tell() self.contains = [] # the object is a container, we need to pass it # it's length amount of data for processessing eof = 0 while str.tell() < start_pos + self.length: object = DAAPObject() self.contains.append(object) object.processData(str) return # not a container, we're a single atom. Read it. code = str.read(self.length) if self.type == 'l': # the object is a long long number, self.value = struct.unpack('!q', code)[0] elif self.type == 'ul': # the object is an unsigned long long self.value = struct.unpack('!Q', code)[0] elif self.type == 'i': # the object is a number, self.value = struct.unpack('!i', code)[0] elif self.type == 'ui': # unsigned integer self.value = struct.unpack('!I', code)[0] elif self.type == 'h': # this is a short number, self.value = struct.unpack('!h', code)[0] elif self.type == 'uh': # unsigned short self.value = struct.unpack('!H', code)[0] elif self.type == 'b': # this is a byte long number self.value = struct.unpack('!b', code)[0] elif self.type == 'ub': # unsigned byte self.value = struct.unpack('!B', code)[0] elif self.type == 'v': # this is a version tag self.value = float("%s.%s" % struct.unpack('!HH', code)) elif self.type == 't': # this is a time string self.value = struct.unpack('!I', code)[0] elif self.type == 's': # the object is a string # we need to read length characters from the string try: self.value = unicode( struct.unpack('!%ss' % self.length, code)[0], 'utf-8') except UnicodeDecodeError: # oh, urgh self.value = unicode( struct.unpack('!%ss' % self.length, code)[0], 'latin-1') else: # we don't know what to do with this object # put it's raw data into value log.debug('DAAPObject: Unknown code %s for type %s, writing raw data', code, self.code) self.value = code do = DAAPObject class DAAPClient(object): def __init__(self): self.socket = None self.request_id = 0 # self._old_itunes = 0 def connect(self, hostname, port = 3689, password = None): if self.socket != None: raise DAAPError("DAAPClient: already connected.") # if ':' in hostname: # raise DAAPError('cannot connect to ipv6 addresses') # if it's an ipv6 address if ':' in hostname and hostname[0] != '[': hostname = '['+hostname+']' self.hostname = hostname self.port = port self.password = password # self.socket = httplib.HTTPConnection(hostname, port) self.socket = httplib.HTTPConnection(hostname+':'+str(port)) self.getContentCodes() # practically required self.getInfo() # to determine the remote server version def _get_response(self, r, params = {}, gzip = 1): """Makes a request, doing the right thing, returns the raw data""" if params: l = ['%s=%s' % (k, v) for k, v in params.iteritems()] r = '%s?%s' % (r, '&'.join(l)) log.debug('getting %s', r) headers = { 'Client-DAAP-Version': '3.0', 'Client-DAAP-Access-Index': '2', } if gzip: headers['Accept-encoding'] = 'gzip' if self.password: import base64 b64 = base64.encodestring( '%s:%s'%('user', self.password) )[:-1] headers['Authorization'] = 'Basic %s' % b64 # TODO - we should allow for different versions of itunes - there # are a few different hashing algos we could be using. I need some # older versions of iTunes to test against. if self.request_id > 0: headers[ 'Client-DAAP-Request-ID' ] = self.request_id # if (self._old_itunes): # headers[ 'Client-DAAP-Validation' ] = hash_v2(r, 2) # else: # headers[ 'Client-DAAP-Validation' ] = hash_v3(r, 2, self.request_id) # there are servers that don't allow >1 download from a single HTTP # session, or something. Reset the connection each time. Thanks to # Fernando Herrera for this one. self.socket.close() self.socket.connect() self.socket.request('GET', r, None, headers) response = self.socket.getresponse() return response; def request(self, r, params = {}, answers = 1): """Make a request to the DAAP server, with the passed params. This deals with all the cikiness like validation hashes, etc, etc""" # this returns an HTTP response object response = self._get_response(r, params) status = response.status content = response.read() # if we got gzipped data base, gunzip it. if response.getheader("Content-Encoding") == "gzip": log.debug("gunzipping data") old_len = len(content) compressedstream = StringIO( content ) import gzip gunzipper = gzip.GzipFile(fileobj=compressedstream) content = gunzipper.read() log.debug("expanded from %s bytes to %s bytes", old_len, len(content)) # close this, we're done with it response.close() if status == 401: raise DAAPError('DAAPClient: %s: auth required'%r) elif status == 403: raise DAAPError('DAAPClient: %s: Authentication failure'%r) elif status == 503: raise DAAPError('DAAPClient: %s: 503 - probably max connections to server'%r) elif status == 204: # no content, ie logout messages return None elif status != 200: raise DAAPError('DAAPClient: %s: Error %s making request'%(r, response.status)) return self.readResponse( content ) def readResponse(self, data): """Convert binary response from a request to a DAAPObject""" str = StringIO(data) object = DAAPObject() object.processData(str) return object def getContentCodes(self): # make the request for the content codes response = self.request('/content-codes') # now parse and add this information to the dictionary DAAPParseCodeTypes(response) def getInfo(self): response = self.request('/server-info') # detect the 'old' iTunes 4.2 servers, and set a flag, so we use # the real MD5 hash algo to verify requests. # version = response.getAtom("apro") or response.getAtom("ppro") # if int(version) == 2: # self._old_itunes = 1 # response.printTree() def login(self): response = self.request("/login") sessionid = response.getAtom("mlid") if sessionid == None: log.debug('DAAPClient: login unable to determine session ID') return log.debug("Logged in as session %s", sessionid) return DAAPSession(self, sessionid) class DAAPSession(object): def __init__(self, connection, sessionid): self.connection = connection self.sessionid = sessionid self.revision = 1 def request(self, r, params = {}, answers = 1): """Pass the request through to the connection, adding the session-id parameter.""" params['session-id'] = self.sessionid return self.connection.request(r, params, answers) def update(self): response = self.request("/update") self.revision = response.getAtom('musr') # return response def databases(self): response = self.request("/databases") db_list = response.getAtom("mlcl").contains return [DAAPDatabase(self, d) for d in db_list] def library(self): # there's only ever one db, and it's always the library... return self.databases()[0] def logout(self): response = self.request("/logout") log.debug('DAAPSession: expired session id %s', self.sessionid) # the atoms we want. Making this list smaller reduces memory footprint, # and speeds up reading large libraries. It also reduces the metainformation # available to the client. daap_atoms = "dmap.itemid,dmap.itemname,daap.songalbum,daap.songartist,daap.songformat,daap.songtime,daap.songsize,daap.songgenre,daap.songyear,daap.songtracknumber" class DAAPDatabase(object): def __init__(self, session, atom): self.session = session self.name = atom.getAtom("minm") self.id = atom.getAtom("miid") def tracks(self): """returns all the tracks in this database, as DAAPTrack objects""" response = self.session.request("/databases/%s/items"%self.id, { 'meta':daap_atoms }) #response.printTree() track_list = response.getAtom("mlcl").contains return [DAAPTrack(self, t) for t in track_list] def playlists(self): response = self.session.request("/databases/%s/containers"%self.id) db_list = response.getAtom("mlcl").contains return [DAAPPlaylist(self, d) for d in db_list] class DAAPPlaylist(object): def __init__(self, database, atom): self.database = database self.id = atom.getAtom("miid") self.name = atom.getAtom("minm") self.count = atom.getAtom("mimc") def tracks(self): """returns all the tracks in this playlist, as DAAPTrack objects""" response = self.database.session.request("/databases/%s/containers/%s/items"%(self.database.id,self.id), { 'meta':daap_atoms }) track_list = response.getAtom("mlcl").contains return [DAAPTrack(self.database, t) for t in track_list] class DAAPTrack(object): attrmap = {'name':'minm', 'artist':'asar', 'album':'asal', 'id':'miid', 'type':'asfm', 'time':'astm', 'size':'assz'} def __init__(self, database, atom): self.database = database self.atom = atom def __getattr__(self, name): if self.__dict__.has_key(name): return self.__dict__[name] elif DAAPTrack.attrmap.has_key(name): return self.atom.getAtom(DAAPTrack.attrmap[name]) raise AttributeError, name def request(self): """returns a 'response' object for the track's mp3 data. presumably you can strem from this or something""" # gotta bump this every track download self.database.session.connection.request_id += 1 # get the raw response object directly, not the parsed version return self.database.session.connection._get_response( "/databases/%s/items/%s.%s"%(self.database.id, self.id, self.type), { 'session-id':self.database.session.sessionid }, gzip = 0, ) def save(self, filename): """saves the file to 'filename' on the local machine""" log.debug("saving to '%s'", filename) mp3 = open(filename, "wb") r = self.request() # doing this all on one lump seems to explode a lot. TODO - what # is a good block size here? data = r.read(32 * 1024) while (data): mp3.write(data) data = r.read(32 * 1024) mp3.close() r.close() log.debug("Done") if __name__ == '__main__': def main(): connection = DAAPClient() # I'm new to this python thing. There's got to be a better idiom # for this. try: host = sys.argv[1] except IndexError: host = "localhost" try: port = sys.argv[2] except IndexError: port = 3689 logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(levelname)s %(message)s') try: # do everything in a big try, so we can disconnect at the end connection.connect( host, port ) # auth isn't supported yet. Just log in session = connection.login() library = session.library() log.debug("Library name is '%s'", repr(library.name)) tracks = library.tracks() # demo - save the first track to disk #print("Saving %s by %s to disk as 'track.mp3'"%(tracks[0].name, tracks[0].artist)) #tracks[0].save("track.mp3") if len(tracks) > 0 : tracks[0].atom.printTree() else: print 'No Tracks' session.update() print session.revision finally: # this here, so we logout even if there's an error somewhere, # or itunes will eventually refuse more connections. print "--------------" try: session.logout() except Exception: pass main() dist/copy/plugins/PaxHeaders.26361/minimode0000644000175000017500000000013212233027261017226 xustar000000000000000030 mtime=1382821553.565046947 30 atime=1382821552.789046922 30 ctime=1382821553.565046947 exaile-3.3.2/plugins/minimode/0000755000000000000000000000000012233027261016244 5ustar00rootroot00000000000000dist/copy/plugins/minimode/PaxHeaders.26361/icons0000644000175000017500000000013212233027261020341 xustar000000000000000030 mtime=1382821553.233046936 30 atime=1382821552.789046922 30 ctime=1382821553.233046936 exaile-3.3.2/plugins/minimode/icons/0000755000000000000000000000000012233027261017357 5ustar00rootroot00000000000000dist/copy/plugins/minimode/icons/PaxHeaders.26361/exaile-minimode22.png0000644000175000017500000000012412233027260024336 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.233046936 exaile-3.3.2/plugins/minimode/icons/exaile-minimode22.png0000644000000000000000000000130312233027260023273 0ustar00rootroot00000000000000PNG  IHDRĴl;sRGBbKGD pHYs  tIME4-oCIDAT8˵UMoQ=w`!,25&i?AƘ6?uE4,]LLLꢀ0o( 77y{yd1o@k4hƖ{@+6τ,!ĐIξ}:5;BHѓyRP=q07QEӺgQcc6UUADSE{{%u}Lmħg"Y%\jmۖfȘb1T+x>(BG*%(^/^xn]4 ӊKcGD لi8xχ_*XB(&"h(s s(tR\fa SsN H8x4U!$.$6_Rh3K8>j FTr5Oe΀߾{KX0 U A3J&xl,]u8A+<a) r㸵 SD˩y\5ɫ<<Ҫn<|%F< [E̢.aC  ct.IAڲ{lnz] 7+*gIENDB`dist/copy/plugins/minimode/icons/PaxHeaders.26361/exaile-minimode16.png0000644000175000017500000000012412233027260024341 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.233046936 exaile-3.3.2/plugins/minimode/icons/exaile-minimode16.png0000644000000000000000000000073212233027260023303 0ustar00rootroot00000000000000PNG  IHDRasRGBbKGD pHYs  tIME,9(o'ZIDAT8˝JAp-[QɚHHa`A| "XPMRD0im++,,4&U|6& ܙܙshs86 o+cX4YʊMMݮ60 θ*l(-[[>^PF4@Jm[ؖ}HJ2QގKT @妢VWfsCZd"]9&ɾqD,@b* °Xɪ3<<޳+XL$l2h&NXLtzD: HT)&OAniYTSiIENDB`dist/copy/plugins/minimode/icons/PaxHeaders.26361/exaile-minimode32.png0000644000175000017500000000012412233027260024337 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.233046936 exaile-3.3.2/plugins/minimode/icons/exaile-minimode32.png0000644000000000000000000000153612233027260023304 0ustar00rootroot00000000000000PNG  IHDR szzsRGBbKGD pHYs  tIME02IDATXOSAsŖ^c+ D 4Fi3Qq!!*+-W@ b_qAPl.m)4n8;o9ߙsg~7%`yk\L'%`IQMJ@7%'HPSmkJbL΅f" 159El-WĒ#%ԟ0|J3;;Lin @`5ϟhhl23)>Sِ;D"QŖOa·90O&{钒*Hgx;6*Ox7 ed@U E}YH"ح>gd@QUTU˅sUO/gNkm*CMN;tuvS}~A<ϧ&d*@OxRDBQFGX d ,w}k 1 蚎a 7bHYD]1 - kzǎVX_gp ssl̅^I(,Kl6@RYq M0Y.]܄k(bue91!%_8UUŽdм sypx_\egUR˱€"j5v3 H./,ӫX q};\|jjsCJOk&o~c&"R& 0 65CCIo~dlyPƻIENDB`dist/copy/plugins/minimode/icons/PaxHeaders.26361/exaile-minimode24.png0000644000175000017500000000012412233027260024340 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.233046936 exaile-3.3.2/plugins/minimode/icons/exaile-minimode24.png0000644000000000000000000000131012233027260023273 0ustar00rootroot00000000000000PNG  IHDRw=sRGBbKGD pHYs  tIME*&HIDATHUnP=c'q!&4UH?( h+@<"h,XАBB*6!MMkv$k$_{9 x#~;~s׵~cVGB‚z @̽H3OEBsq ( :u6~4XY AUUQ(%KXUC^׃$cmۈħg,-/"NvK ۶-e*KRh6#|x1hsPoWXDݡht H"o$8Uۼ y8딅D-`zf jlvL^\(Kܡ%4@E"!O LCU  f6fH.^o4{P1*'L=,82v X‚a\6rFY=`f:Js%KE0%_c0WcqZs6|.qsVy2*TUeMY:*՞ˆjEQ03dpAc4rq>ʅCBh 7ע^bQ3-dVIENDB`dist/copy/plugins/minimode/PaxHeaders.26361/controls.py0000644000175000017500000000012412233027260021520 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.517046945 exaile-3.3.2/plugins/minimode/controls.py0000644000000000000000000010510312233027260020460 0ustar00rootroot00000000000000# Copyright (C) 2009-2010 Mathias Brodala # # 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, 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 glib import gtk import logging import pango from xl import ( event, player, providers, settings ) from xl.formatter import ( Formatter, TrackFormatter, ProgressTextFormatter ) from xl.player.adapters import ( PlaybackAdapter, QueueAdapter ) from xl.nls import gettext as _ from xlgui.guiutil import gtk_widget_replace from xlgui.widgets.common import AttachedWindow from xlgui.widgets.info import TrackToolTip from xlgui.widgets.playback import SeekProgressBar from xlgui.widgets.playlist import ( PlaylistModel, PlaylistView ) from xlgui.widgets.rating import RatingWidget logger = logging.getLogger(__name__) def suppress(signal): """ Decorator which prevents the emission of a GObject signal """ def wrapper(function): def wrapped_function(self, *args, **kwargs): def on_event(sender, *args): sender.stop_emission(signal) return True handler_id = self.connect(signal, on_event) function(self, *args, **kwargs) self.disconnect(handler_id) return wrapped_function return wrapper class ControlBox(gtk.HBox, providers.ProviderHandler): """ A box for minimode controls which updates itself based on settings """ __gsignals__ = {'show': 'override'} def __init__(self): gtk.HBox.__init__(self) providers.ProviderHandler.__init__(self, 'minimode-controls') self.__dirty = True self.__controls = {} event.add_callback(self.on_option_set, 'plugin_minimode_option_set') def destroy(self): """ Cleanups """ for control in self.__controls.itervalues(): control.destroy() def __contains__(self, item): """ Allows for checking for control ids """ if item in self.__controls: return True return False def __getitem__(self, name): """ Returns the control specified by name """ return self.__controls[name] def __setitem__(self, name, control): """ Sets the control specified by name """ if name in self.__controls: self.remove(self.__controls[name]) del self.__controls[name] self.__controls[name] = control self.pack_start(control, False) control.show_all() def __delitem__(self, name): """ Destroys the control specified by name """ self.__controls[name].destroy() del self.__controls[name] def update(self): """ Updates the controls to display """ selected_controls = settings.get_option( 'plugin/minimode/selected_controls', ['previous', 'play_pause', 'next', 'playlist_button', 'progress_bar', 'restore']) added_controls = [c for c in selected_controls \ if c not in self] for name in added_controls: try: provider = self.get_provider(name)() except Exception: # Not found, initialization error, ... import traceback traceback.print_exc() logger.warning('Failed to add control provider "%s"' % name) selected_controls.remove(name) else: self[name] = provider removed_controls = [c.name for c in self \ if c.name not in selected_controls] for name in removed_controls: del self[name] for name in selected_controls: self.reorder_child(self[name], -1) def do_show(self): """ Updates the appearance if settings have been changed """ if self.__dirty: self.update() self.__dirty = False gtk.HBox.do_show(self) def on_provider_removed(self, provider): """ Removes controls on provider removal """ if provider.name in self: del self[provider.name] def on_option_set(self, event, settings, option): """ Flags changes """ if option == 'plugin/minimode/selected_controls': if self.props.visible: glib.idle_add(self.update) else: self.__dirty = True # Control definitions class BaseControl(object): """ Base control provider """ name = None title = None description = None fixed = False class ButtonControl(gtk.Button, BaseControl): """ Basic button control """ __gsignals__ = {'clicked': 'override'} def __init__(self): gtk.Button.__init__(self) BaseControl.__init__(self) self.set_image(gtk.Image()) self.set_relief(gtk.RELIEF_NONE) self.set_focus_on_click(False) def set_image_from_stock(self, stock_id): """ Sets the image to the specified stock id :param stock_id: """ self.props.image.set_from_stock(stock_id, gtk.ICON_SIZE_BUTTON) class PreviousButtonControl(ButtonControl): """ Button which allows for going to the previous track """ name = 'previous' title = _('Previous') description = _('Go to the previous track') def __init__(self): ButtonControl.__init__(self) self.set_image_from_stock(gtk.STOCK_MEDIA_PREVIOUS) self.set_tooltip_text(_('Previous track')) def do_clicked(self): """ Goes to the previous track """ player.QUEUE.prev() class NextButtonControl(ButtonControl): """ Button which allows for going to the next track """ name = 'next' title = _('Next') description = _('Go to the next track') def __init__(self): ButtonControl.__init__(self) self.set_image_from_stock(gtk.STOCK_MEDIA_NEXT) self.set_tooltip_text(_('Next track')) def do_clicked(self): """ Goes to the next track """ player.QUEUE.next() class PlayPauseButtonControl(ButtonControl, PlaybackAdapter): """ Button which allows for starting, pausing and resuming of playback """ name = 'play_pause' title = _('Play/Pause') description = _('Start, pause or resume the playback') def __init__(self): ButtonControl.__init__(self) PlaybackAdapter.__init__(self, player.PLAYER) self.update_state() def destroy(self): """ Cleanups """ PlaybackAdapter.destroy(self) ButtonControl.destroy(self) def update_state(self): """ Updates the appearance of this button """ stock_id = gtk.STOCK_MEDIA_PLAY tooltip_text = _('Start playback') if not player.PLAYER.is_stopped(): if player.PLAYER.is_paused(): tooltip_text = _('Continue playback') elif player.PLAYER.is_playing(): stock_id = gtk.STOCK_MEDIA_PAUSE tooltip_text = _('Pause playback') glib.idle_add(self.set_image_from_stock, stock_id) glib.idle_add(self.set_tooltip_text, tooltip_text) def do_clicked(self): """ Starts, pauses or resumes the playback """ if player.PLAYER.is_stopped(): player.QUEUE.play() else: player.PLAYER.toggle_pause() def on_playback_track_start(self, event, player, track): """ Updates state """ self.update_state() def on_playback_player_end(self, event, player, track): """ Updates state """ self.update_state() def on_playback_toggle_pause(self, event, player, track): """ Updates state """ self.update_state() class StopButtonControl(ButtonControl): """ Button which allows for stopping the playback and toggling the SPAT feature """ name = 'stop' title = _('Stop') description = _('Stop the playback') __gsignals__ = { 'motion-notify-event': 'override', 'leave-notify-event': 'override', 'focus-out-event': 'override', 'key-press-event': 'override', 'key-release-event': 'override' } def __init__(self): ButtonControl.__init__(self) self.set_image_from_stock(gtk.STOCK_MEDIA_STOP) self.set_tooltip_text(_('Stop playback')) self.add_events(gtk.gdk.LEAVE_NOTIFY_MASK | gtk.gdk.POINTER_MOTION_MASK | gtk.gdk.KEY_PRESS_MASK | gtk.gdk.KEY_RELEASE_MASK) self._queue_spat = False self._hovered = False def update_state(self): """ Updates the appearance of this button """ stock_id = gtk.STOCK_MEDIA_STOP tooltip_text = _('Stop playback') if self._queue_spat: stock_id = gtk.STOCK_STOP if player.QUEUE.current_playlist.spat_position > 0: tooltip_text = _('Continue playback after current track') else: tooltip_text = _('Stop playback after current track') self.set_image_from_stock(stock_id) self.set_tooltip_text(tooltip_text) def do_clicked(self): """ Stops the playback """ player.PLAYER.stop() def do_motion_notify_event(self, event): """ Indicates SPAT """ if event.state & gtk.gdk.SHIFT_MASK: self._queue_spat = True self.update_state() self._hovered = True def do_leave_notify_event(self, event): """ Returns to regular state """ if self._queue_spat and not self.is_focus(): self._queue_spat = False self.update_state() self._hovered = False ButtonControl.do_leave_notify_event(self, event) def do_focus_out_event(self, event): """ Returns to regular state """ if not self._hovered: self._queue_spat = False self.update_state() def do_key_press_event(self, event): """ Indicates SPAT """ if event.keyval in (gtk.keysyms.Shift_L, gtk.keysyms.Shift_R): self._queue_spat = True self.update_state() def do_key_release_event(self, event): """ Returns to regular state """ if event.keyval in (gtk.keysyms.Shift_L, gtk.keysyms.Shift_R): self._queue_spat = False self.update_state() class VolumeButtonControl(gtk.VolumeButton, BaseControl): """ Button which allows for changing the volume """ name = 'volume' title = _('Volume') description = _('Change the volume') __gsignals__ = {'value-changed': 'override'} def __init__(self): gtk.VolumeButton.__init__(self) BaseControl.__init__(self) adjustment = gtk.Adjustment(upper=1, step_incr=0.1, page_incr=0.2) self.set_adjustment(adjustment) # Slightly beautify the control buttons plus_button = self.get_plus_button() plus_button.set_image(gtk.image_new_from_stock( gtk.STOCK_ADD, gtk.ICON_SIZE_BUTTON)) plus_button.set_label('') minus_button = self.get_minus_button() minus_button.set_image(gtk.image_new_from_stock( gtk.STOCK_REMOVE, gtk.ICON_SIZE_BUTTON)) minus_button.set_label('') event.add_callback(self.on_option_set, 'player_option_set') self.on_option_set('player_option_set', settings, 'player/volume') def destroy(self): """ Cleanups """ event.remove_callback(self.on_option_set, 'player_option_set') ButtonControl.destroy(self) gtk.VolumeButton.destroy(self) def set_value(self, value): """ Override to take care of preventing signal handling and endless loops """ self.set_data('updating', True) gtk.VolumeButton.set_value(self, value) self.set_data('updating', False) def do_value_changed(self, value): """ Changes the volume except if done internally """ if not self.get_data('updating'): settings.set_option('player/volume', value) def on_option_set(self, event, settings, option): """ Reflects external volume changes """ if option == 'player/volume': glib.idle_add(self.set_value, float(settings.get_option(option))) class RestoreButtonControl(ButtonControl): """ Button which allows for restoring the main window """ name = 'restore' title = _('Restore') description = _('Restore the main window') fixed = True __gsignals__ = {'hierarchy-changed': 'override'} def __init__(self): ButtonControl.__init__(self) self.set_image_from_stock(gtk.STOCK_LEAVE_FULLSCREEN) self.set_tooltip_text(_('Restore main window')) def do_clicked(self): """ Restores the main window """ self.get_toplevel().set_active(False) def do_hierarchy_changed(self, previous_toplevel): """ Sets up accelerators """ accel_group = gtk.AccelGroup() try: self.get_toplevel().add_accel_group(accel_group) except AttributeError: pass else: key, modifier = gtk.accelerator_parse('M') self.add_accelerator('clicked', accel_group, key, modifier, gtk.ACCEL_VISIBLE) class RatingControl(RatingWidget, BaseControl): """ Control which allows for viewing and changing the rating of the current track """ name = 'rating' title = _('Rating') description = _('Select rating of the current track') def __init__(self): RatingWidget.__init__(self, player=player.PLAYER) BaseControl.__init__(self) def do_rating_changed(self, rating): """ Updates the rating of the currently playing track """ if player.PLAYER.current is not None: player.PLAYER.current.set_rating(rating) maximum = settings.get_option('rating/maximum', 5) event.log_event('rating_changed', self, rating / maximum * 100) class TrackSelectorControl(gtk.ComboBox, BaseControl, QueueAdapter): name = 'track_selector' title = _('Track selector') description = _('Simple track list selector') __gsignals__ = {'changed': 'override'} def __init__(self): gtk.ComboBox.__init__(self) BaseControl.__init__(self) QueueAdapter.__init__(self, player.QUEUE) self.formatter = TrackFormatter('') self.model = gtk.ListStore(object) self.set_model(self.model) self.synchronize() renderer = gtk.CellRendererText() self.pack_start(renderer, expand=True) self.set_cell_data_func(renderer, self.data_func) self.set_size_request(200, 0) event.add_callback(self.on_option_set, 'plugin_minimode_option_set') self.on_option_set('plugin_minimode_option_set', settings, 'plugin/minimode/track_title_format') def destroy(self): """ Cleanups """ QueueAdapter.destroy(self) gtk.ComboBox.destroy(self) def data_func(self, column, cell, model, iter): """ Updates track titles and highlights the current track if the popup is shown """ track = model.get_value(iter, 0) if track is None: return cell.props.text = self.formatter.format(track) active_iter = self.get_active_iter() if active_iter is not None: active_track = model.get_value(active_iter, 0) weight = pango.WEIGHT_NORMAL if self.props.popup_shown and track == active_track: weight = pango.WEIGHT_BOLD cell.props.weight = weight @suppress('changed') def synchronize(self): """ Synchronizes the model data with the current content of the queue """ self.set_model(None) self.model.clear() for i, track in enumerate(player.QUEUE.current_playlist): iter = self.model.append([track]) if track is player.QUEUE.current_playlist.current: # Not using iter since model is detached self.set_active(i) self.set_model(self.model) def do_changed(self): """ Starts playing the selected track. Should only be triggered by user action to prevent race conditions """ active_index = self.get_active() if active_index > -1: player.QUEUE.current_playlist.current_position = active_index player.QUEUE.play(player.QUEUE.current_playlist[active_index]) def add_tracks(self, tracks): """ Adds tracks to the internal storage """ if not tracks: return self.set_model(None) for position, track in tracks: self.model.insert(position, [track]) self.set_model(self.model) def remove_tracks(self, tracks): """ Removes tracks from the internal storage """ if not tracks: return self.set_model(None) tracks.reverse() for position, track in tracks: del self.model[position] self.set_model(self.model) def on_queue_current_playlist_changed(self, event, queue, playlist): """ Updates the list on queue changes """ self.synchronize() @suppress('changed') def on_queue_current_position_changed(self, event, playlist, positions): """ Updates the list on queue changes """ if positions[0] < 0: return glib.idle_add(self.set_active, positions[0]) def on_queue_tracks_added(self, event, queue, tracks): """ Updates the list on queue changes """ glib.idle_add(self.add_tracks, tracks) def on_queue_tracks_removed(self, event, queue, tracks): """ Updates the list on queue changes """ glib.idle_add(self.remove_tracks, tracks) def on_option_set(self, event, settings, option): """ Updates control upon setting change """ if option == 'plugin/minimode/track_title_format': glib.idle_add(self.formatter.set_property, 'format', settings.get_option(option, _('$tracknumber - $title')) ) class PlaylistButtonControl(gtk.ToggleButton, BaseControl, QueueAdapter): name = 'playlist_button' title = _('Playlist button') description = _('Access the current playlist') __gsignals__ = {'scroll-event': 'override'} def __init__(self): gtk.ToggleButton.__init__(self) BaseControl.__init__(self) QueueAdapter.__init__(self, player.QUEUE) self.set_focus_on_click(False) self.set_size_request(200, -1) box = gtk.HBox() self.arrow = gtk.Arrow(gtk.ARROW_RIGHT, gtk.SHADOW_OUT) box.pack_start(self.arrow, expand=False) self.label = gtk.Label('') self.label.props.ellipsize = pango.ELLIPSIZE_END box.pack_start(self.label) self.add(box) self.formatter = TrackFormatter( settings.get_option('plugin/minimode/track_title_format', '$tracknumber - $title')) self.view = PlaylistView(player.QUEUE.current_playlist, player.PLAYER) self.popup = AttachedWindow(self) self.popup.set_default_size( settings.get_option('plugin/minimode/' 'playlist_button_popup_width', 350), settings.get_option('plugin/minimode/' 'playlist_button_popup_height', 400) ) scrollwindow = gtk.ScrolledWindow() scrollwindow.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) scrollwindow.set_shadow_type(gtk.SHADOW_IN) scrollwindow.add(self.view) self.popup.add(scrollwindow) self.popup.connect('configure-event', self.on_popup_configure_event) accel_group = gtk.AccelGroup() key, modifier = gtk.accelerator_parse('J') accel_group.connect_group(key, modifier, gtk.ACCEL_VISIBLE, self.on_accelerator_activate) self.popup.add_accel_group(accel_group) self.tooltip = TrackToolTip(self, player.PLAYER) self.tooltip.set_auto_update(True) if player.PLAYER.current is not None: self.label.set_text(self.formatter.format(player.PLAYER.current)) self._drag_motion_timeout_id = None self._drag_leave_timeout_id = None self._toplevel_hide_id = None self._toplevel_window_state_event_id = None self.drag_dest_set(gtk.DEST_DEFAULT_ALL, self.view.targets, gtk.gdk.ACTION_COPY | gtk.gdk.ACTION_DEFAULT | gtk.gdk.ACTION_MOVE) self.connect('drag-motion', self.on_drag_motion) self.connect('drag-leave', self.on_drag_leave) self.connect('drag-data-received', self.on_drag_data_received) self.view.connect('drag-motion', self.on_drag_motion) self.view.connect('drag-leave', self.on_drag_leave) event.add_callback(self.on_track_tags_changed, 'track_tags_changed') event.add_callback(self.on_option_set, 'plugin_minimode_option_set') self.on_option_set('plugin_minimode_option_set', settings, 'plugin/minimode/track_title_format') def destroy(self): """ Cleanups """ self.tooltip.destroy() QueueAdapter.destroy(self) gtk.ToggleButton.destroy(self) def update_playlist(self, playlist): """ Updates the internally stored playlist """ columns = self.view.get_model().columns model = PlaylistModel(playlist, columns, player.PLAYER) self.view.set_model(model) def do_hierarchy_changed(self, previous_toplevel): """ Sets up automatic hiding on parent hide """ if self._toplevel_hide_id is not None: previous_toplevel.disconnect( self._toplevel_hide_id) previous_toplevel.disconnect( self._toplevel_window_state_event_id) toplevel = self.get_toplevel() if isinstance(toplevel, gtk.Window): self._toplevel_hide_id = toplevel.connect( 'hide', self.on_toplevel_hide) self._toplevel_window_state_event_id = toplevel.connect( 'window-state-event', self.on_toplevel_window_state_event) self.popup.set_transient_for(toplevel) def do_scroll_event(self, event): """ Changes the current track """ if event.direction == gtk.gdk.SCROLL_UP: self.view.playlist.prev() elif event.direction == gtk.gdk.SCROLL_DOWN: self.view.playlist.next() else: return position = self.view.playlist.current_position try: track = self.view.playlist[position] except IndexError: pass else: player.QUEUE.play(track) def do_toggled(self): """ Shows or hides the playlist """ if self.get_active(): self.arrow.props.arrow_type = gtk.ARROW_DOWN self.popup.show_all() else: self.popup.hide() self.arrow.props.arrow_type = gtk.ARROW_RIGHT def on_accelerator_activate(self, accel_group, acceleratable, keyval, modifier): """ Shows the current track """ self.view.scroll_to_cell(self.view.playlist.current_position) self.view.set_cursor(self.view.playlist.current_position) def on_drag_motion(self, widget, context, x, y, time): """ Prepares to show the playlist """ # Defer display of the playlist if self._drag_motion_timeout_id is None: self._drag_motion_timeout_id = glib.timeout_add( 500, lambda: self.set_active(True)) # Prevent hiding of the playlist if self._drag_leave_timeout_id is not None: glib.source_remove(self._drag_leave_timeout_id) self._drag_leave_timeout_id = None def on_drag_leave(self, widget, context, time): """ Prepares to hide the playlist """ # Enable display of the playlist on re-enter if self._drag_motion_timeout_id is not None: glib.source_remove(self._drag_motion_timeout_id) self._drag_motion_timeout_id = None if self._drag_leave_timeout_id is not None: glib.source_remove(self._drag_leave_timeout_id) # Defer hiding of the playlist self._drag_leave_timeout_id = glib.timeout_add( 500, lambda: self.set_active(False)) def on_drag_data_received(self, widget, context, x, y, selection, info, time): """ Handles dropped data """ # Enable display of the playlist on re-enter if self._drag_motion_timeout_id is not None: glib.source_remove(self._drag_motion_timeout_id) self._drag_motion_timeout_id = None # Enable hiding of the playlist on re-enter if self._drag_leave_timeout_id is not None: glib.source_remove(self._drag_leave_timeout_id) self._drag_leave_timeout_id = None self.view.emit('drag-data-received', context, x, y, selection, info, time) def on_toplevel_hide(self, widget): """ Hides the playlist """ self.set_active(False) def on_toplevel_window_state_event(self, widget, event): """ Hides the playlist """ self.set_active(False) def on_popup_configure_event(self, widget, event): """ Saves the window size after resizing """ width = settings.get_option('plugin/minimode/' 'playlist_button_popup_width', 350) height = settings.get_option('plugin/minimode/' 'playlist_button_popup_height', 400) if event.width != width: settings.set_option('plugin/minimode/' 'playlist_button_popup_width', event.width) if event.height != height: settings.set_option('plugin/minimode/' 'playlist_button_popup_height', event.height) def on_queue_current_playlist_changed(self, event, queue, playlist): """ Updates the list on queue changes """ glib.idle_add(self.update_playlist, playlist) def on_queue_current_position_changed(self, event, playlist, positions): """ Updates the list on queue changes """ try: track = playlist[positions[0]] except IndexError: text = '' else: text = self.formatter.format(track) glib.idle_add(self.label.set_text, text) def on_track_tags_changed(self, event, track, tag): """ Updates the button on tag changes """ playlist = self.view.playlist track_position = playlist.index(track) if track in playlist and track_position == playlist.current_position: glib.idle_add(self.label.set_text, self.formatter.format(track)) def on_option_set(self, event, settings, option): """ Updates control upon setting change """ if option == 'plugin/minimode/track_title_format': glib.idle_add(self.formatter.set_property, 'format', settings.get_option(option, _('$tracknumber - $title')) ) class ProgressButtonFormatter(Formatter): """ Formatter which allows both for display of tag data as well as progress information """ def __init__(self): Formatter.__init__(self, self.get_option_value()) self.track_formatter = TrackFormatter('') self.progress_formatter = ProgressTextFormatter( self.props.format, player.PLAYER) event.add_callback(self.on_option_set, 'plugin_minimode_option_set') def format(self, current_time=None, total_time=None): """ Returns a string suitable for progress buttons :param current_time: the current progress :type current_time: float :param total_time: the total length of a track :type total_time: float :returns: The formatted text :rtype: string """ text = self.progress_formatter.format() self.track_formatter.props.format = text text = self.track_formatter.format(player.PLAYER.current) return text def get_option_value(self): """ Retrieves the current user format """ return settings.get_option('plugin/minimode/progress_button_title_format', _('$title ($current_time / $total_time)')) def on_option_set(self, event, settings, option): """ Updates the internal format on setting change """ if option == 'gui/progress_bar_text_format': glib.idle_add(self.set_property, 'format', self.get_option_value() ) gtk.rc_parse_string(''' style "progress-button" { GtkToggleButton::default-border = {0, 0, 0, 0} GtkToggleButton::default-outside-border = {0, 0, 0, 0} GtkToggleButton::inner-border = {0, 0, 0, 0} } widget "*.progressbutton" style "progress-button" ''') class ProgressButtonControl(PlaylistButtonControl): name = 'progress_button' title = _('Progress button') description = _('Playback progress and access ' 'to the current playlist') # Required to make overrides work __gsignals__ = {} def __init__(self): PlaylistButtonControl.__init__(self) self.set_name('progressbutton') self.add_events(gtk.gdk.POINTER_MOTION_MASK) self.progressbar = SeekProgressBar(player.PLAYER) self.progressbar.set_size_request(-1, 1) self.progressbar.formatter = ProgressButtonFormatter() gtk_widget_replace(self.label, self.progressbar) self.label = self.progressbar if player.PLAYER.current is not None: self.progressbar.on_playback_track_start( 'playback_track_start', player.PLAYER, player.PLAYER.current ) self.tooltip = TrackToolTip(self, player.PLAYER) self.tooltip.set_auto_update(True) def destroy(self): """ Cleanups """ self.tooltip.destroy() PlaylistButtonControl.destroy(self) def do_button_press_event(self, event): """ Trigger normal toggle action or seek """ if event.button == 1: PlaylistButtonControl.do_button_press_event(self, event) elif event.button == 2: event.button = 1 x, y = self.translate_coordinates(self.progressbar, int(event.x), int(event.y)) event.x, event.y = float(x), float(y) self.progressbar.emit('button-press-event', event) def do_button_release_event(self, event): if event.button == 1: PlaylistButtonControl.do_button_release_event(self, event) elif event.button == 2: event.button = 1 x, y = self.translate_coordinates(self.progressbar, int(event.x), int(event.y)) event.x, event.y = float(x), float(y) self.progressbar.emit('button-release-event', event) def do_motion_notify_event(self, event): x, y = self.translate_coordinates(self.progressbar, int(event.x), int(event.y)) event.x, event.y = float(x), float(y) self.progressbar.emit('motion-notify-event', event) def do_leave_notify_event(self, event): x, y = self.translate_coordinates(self.progressbar, int(event.x), int(event.y)) event.x, event.y = float(x), float(y) self.progressbar.emit('leave-notify-event', event) class ProgressBarControl(gtk.Alignment, BaseControl): name = 'progress_bar' title = _('Progress bar') description = _('Playback progress and seeking') def __init__(self): gtk.Alignment.__init__(self) BaseControl.__init__(self) self.set_padding(3, 3, 0, 0) self.progressbar = SeekProgressBar(player.PLAYER) self.progressbar.set_size_request(200, -1) self.add(self.progressbar) if player.PLAYER.current is not None: self.progressbar.on_playback_track_start( 'playback_track_start', player.PLAYER, player.PLAYER.current ) if player.PLAYER.is_paused(): self.progressbar.on_playback_toggle_pause( 'playback_toggle_pause', player.PLAYER, player.PLAYER.current ) def destroy(self): """ Cleanups """ self.progressbar.destroy() gtk.Alignment.destroy(self) control_types = [ PreviousButtonControl, NextButtonControl, PlayPauseButtonControl, StopButtonControl, VolumeButtonControl, RestoreButtonControl, RatingControl, TrackSelectorControl, PlaylistButtonControl, ProgressButtonControl, ProgressBarControl, ] def register(): """ Registers all control providers """ for control_type in control_types: providers.register('minimode-controls', control_type) def unregister(): """ Unregisters all control providers """ for control_type in control_types: providers.unregister('minimode-controls', control_type) dist/copy/plugins/minimode/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260021414 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.445046943 exaile-3.3.2/plugins/minimode/__init__.py0000644000000000000000000002462512233027260020365 0ustar00rootroot00000000000000# Copyright (C) 2009-2010 Mathias Brodala # # 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, 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 cairo import gtk from xl import event, providers, settings from xl.nls import gettext as _ from xlgui.accelerators import Accelerator from xlgui.widgets import menu import controls import minimode_preferences MINIMODE = None def __migrate_fixed_controls(): """ Makes sure fixed controls are selected, mostly for migration from older versions """ option_name = 'plugin/minimode/selected_controls' if settings.MANAGER.has_option(option_name): selected_controls = settings.get_option(option_name) if not 'restore' in selected_controls: selected_controls += ['restore'] settings.set_option(option_name, selected_controls) def enable(exaile): """ Enables the mini mode plugin """ __migrate_fixed_controls() if exaile.loading: event.add_callback(_enable, 'gui_loaded') else: _enable(None, exaile, None) def _enable(event, exaile, nothing): """ Handles the deferred enable call """ global MINIMODE MINIMODE = MiniMode(exaile) def disable(exaile): """ Disables the mini mode plugin """ global MINIMODE MINIMODE.destroy() MINIMODE = None def get_preferences_pane(): return minimode_preferences class MiniMode(gtk.Window): """ Mini Mode main window """ __gsignals__ = {'show': 'override'} def __init__(self, exaile): """ Sets up the mini mode main window and options to access it """ gtk.Window.__init__(self) self.set_title('Exaile Mini Mode') self.set_resizable(False) self.exaile_window = exaile.gui.main.window controls.register() self.box = controls.ControlBox() self.box.set_spacing(3) alignment = gtk.Alignment(xscale=1, yscale=1) alignment.set_padding(0, 0, 3, 3) alignment.add(self.box) self.border_frame = gtk.Frame() self.border_frame.add(alignment) self.add(self.border_frame) self.menuitem = menu.simple_menu_item( 'minimode', ['clear-playlist'], _('Mini Mode'), 'exaile-minimode', self.on_menuitem_activate, accelerator='M') self.accelerator = Accelerator('M', self.on_menuitem_activate) providers.register('menubar-view-menu', self.menuitem) providers.register('mainwindow-accelerators', self.accelerator) mainbutton = gtk.Button(_('Mini Mode')) mainbutton.set_image(gtk.image_new_from_icon_name( 'exaile-minimode', gtk.ICON_SIZE_BUTTON)) mainbutton.connect('clicked', self.on_mainbutton_clicked) self.mainbutton_alignment = gtk.Alignment(xalign=1) self.mainbutton_alignment.add(mainbutton) action_area = exaile.gui.main.info_area.get_action_area() action_area.pack_start(self.mainbutton_alignment) action_area.reorder_child(self.mainbutton_alignment, 0) self.__active = False self.__dirty = True # XXX: Until defaults are implemented in xl.settings self.__defaults = { 'plugin/minimode/always_on_top': True, 'plugin/minimode/show_in_panel': False, 'plugin/minimode/on_all_desktops': True, 'plugin/minimode/display_window_decorations': True, 'plugin/minimode/window_decoration_type': 'full', 'plugin/minimode/use_alpha': False, 'plugin/minimode/transparency': 0.3, 'plugin/minimode/horizontal_position': 10, 'plugin/minimode/vertical_position': 10 } exaile.gui.main.connect('main-visible-toggle', self.on_main_visible_toggle) event.add_callback(self.on_option_set, 'plugin_minimode_option_set') self.on_option_set('plugin_minimode_option_set', settings, 'plugin/minimode/button_in_mainwindow') def destroy(self): """ Cleanups """ providers.unregister('mainwindow-accelerators', self.accelerator) providers.unregister('menubar-view-menu', self.menuitem) controls.unregister() self.mainbutton_alignment.get_parent().remove( self.mainbutton_alignment) self.set_active(False) self.box.destroy() gtk.Window.destroy(self) def set_active(self, active): """ Enables or disables the Mini Mode window """ if active == self.__active: return if active and not self.props.visible: self.exaile_window.hide() self.show_all() elif not active and self.props.visible: self.hide_all() self.exaile_window.show() self.__active = active def do_show(self): """ Updates the appearance if settings have been changed """ h = None v = None if self.__dirty: for option, default in self.__defaults.iteritems(): value = settings.get_option(option, default) if option == 'plugin/minimode/always_on_top': self.set_keep_above(value) elif option == 'plugin/minimode/show_in_panel': self.props.skip_taskbar_hint = not value elif option == 'plugin/minimode/on_all_desktops': if value: self.stick() else: self.unstick() elif option == 'plugin/minimode/display_window_decorations': if value: option = 'plugin/minimode/window_decoration_type' value = settings.get_option(option, self.__defaults[option]) if value == 'full': self.set_decorated(True) self.border_frame.set_shadow_type(gtk.SHADOW_NONE) elif value == 'simple': self.set_decorated(False) self.border_frame.set_shadow_type(gtk.SHADOW_OUT) else: self.set_decorated(False) self.border_frame.set_shadow_type(gtk.SHADOW_NONE) elif option == 'plugin/minimode/use_alpha': self.unrealize() self.set_app_paintable(value) self.emit('screen-changed', self.get_screen()) self.realize() elif option == 'plugin/minimode/horizontal_position': h = value elif option == 'plugin/minimode/vertical_position': v = value self.__dirty = False self.resize(*self.size_request()) self.queue_draw() gtk.Window.do_show(self) # GTK (or perhaps the theme?) likes to move the window to some # random default position while showing it... so do these at the # same time after show, otherwise it'll move on us x, y = self.get_position() if h is not None: x = h if v is not None: y = v self.move(x, y) def do_expose_event(self, event): """ Paints the window alpha transparency """ context = self.props.window.cairo_create() context.rectangle(*event.area) context.clip() background = self.style.bg[gtk.STATE_NORMAL] opacity = 1 - settings.get_option('plugin/minimode/transparency', 0.3) context.set_source_rgba( float(background.red) / 256**2, float(background.green) / 256**2, float(background.blue) / 256**2, opacity ) context.set_operator(cairo.OPERATOR_SOURCE) context.paint() gtk.Window.do_expose_event(self, event) def do_screen_changed(self, screen): """ Updates the colormap on screen change """ colormap = screen.get_rgba_colormap() or screen.get_rgb_colormap() self.set_colormap(colormap) self.chain(screen) def do_configure_event(self, event): """ Stores the window position upon window movement """ settings.set_option('plugin/minimode/horizontal_position', event.x) settings.set_option('plugin/minimode/vertical_position', event.y) def do_delete_event(self, event): """ Takes care of restoring Exaile's main window """ self.set_active(False) return True def on_menuitem_activate(self, menuitem, name, parent, context): """ Shows the Mini Mode window """ self.set_active(True) def on_mainbutton_clicked(self, button): """ Shows the Mini Mode window """ self.set_active(True) def on_main_visible_toggle(self, main): """ Handles visiblity toggles in Exaile's main window stead """ if self.__active: if self.props.visible: self.hide_all() else: self.show_all() return True return False def on_option_set(self, event, settings, option): """ Queues updates upon setting change """ self.__dirty = True if option == 'plugin/minimode/button_in_mainwindow': button_in_mainwindow = settings.get_option(option, False) if button_in_mainwindow: self.mainbutton_alignment.set_no_show_all(False) self.mainbutton_alignment.show_all() else: self.mainbutton_alignment.hide_all() self.mainbutton_alignment.set_no_show_all(True) # vim: et sts=4 sw=4 dist/copy/plugins/minimode/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260020700 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.097046932 exaile-3.3.2/plugins/minimode/PLUGININFO0000644000000000000000000000025312233027260017640 0ustar00rootroot00000000000000Version='1.2.2' Authors=['Mathias Brodala '] Name=_('Mini Mode') Description=_('Compact mode for Exaile with a configurable interface') Category=_('GUI') dist/copy/plugins/minimode/PaxHeaders.26361/minimode_preferences.py0000644000175000017500000000012412233027260024037 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.565046947 exaile-3.3.2/plugins/minimode/minimode_preferences.py0000644000000000000000000001020712233027260022777 0ustar00rootroot00000000000000# Copyright (C) 2009-2010 Mathias Brodala # # 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, 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 gtk import os.path from xl import ( event, providers, settings, xdg ) from xl.nls import gettext as _ from xlgui import icons from xlgui.preferences import widgets name = _('Mini Mode') basedir = os.path.dirname(os.path.realpath(__file__)) ui = os.path.join(basedir, "minimode_preferences.ui") icons.MANAGER.add_icon_name_from_directory('exaile-minimode', os.path.join(basedir, 'icons')) icon = 'exaile-minimode' class AlwaysOnTopPreference(widgets.CheckPreference): name = 'plugin/minimode/always_on_top' default = True class ShowInPanelPreference(widgets.CheckPreference): name = 'plugin/minimode/show_in_panel' default = False class OnAllDesktopsPreference(widgets.CheckPreference): name = 'plugin/minimode/on_all_desktops' default = True class ButtonInMainWindowPreference(widgets.CheckPreference): name = 'plugin/minimode/button_in_mainwindow' default = False class DisplayWindowDecorationsPreference(widgets.CheckPreference): name = 'plugin/minimode/display_window_decorations' default = True class WindowDecorationTypePreference(widgets.ComboPreference, widgets.CheckConditional): name = 'plugin/minimode/window_decoration_type' default = 'full' condition_preference_name = 'plugin/minimode/display_window_decorations' def __init__(self, preferences, widget): widgets.ComboPreference.__init__(self, preferences, widget) widgets.CheckConditional.__init__(self) class UseAlphaTransparencyPreference(widgets.CheckPreference): default = False name = 'plugin/minimode/use_alpha' class TransparencyPreference(widgets.ScalePreference, widgets.CheckConditional): default = 0.3 name = 'plugin/minimode/transparency' condition_preference_name = 'plugin/minimode/use_alpha' def __init__(self, preferences, widget): widgets.ScalePreference.__init__(self, preferences, widget) widgets.CheckConditional.__init__(self) class SelectedControlsPreference(widgets.SelectionListPreference): name = 'plugin/minimode/selected_controls' default = ['previous', 'play_pause', 'next', 'playlist_button', 'progress_bar', 'restore'] def __init__(self, preferences, widget): self.items = [self.Item(p.name, p.title, p.description, p.fixed) \ for p in providers.get('minimode-controls')] widgets.SelectionListPreference.__init__(self, preferences, widget) class TrackTitleFormatPreference(widgets.ComboEntryPreference): name = 'plugin/minimode/track_title_format' completion_items = { '$tracknumber': _('Track number'), '$title': _('Title'), '$artist': _('Artist'), '$composer': _('Composer'), '$album': _('Album'), '$__length': _('Length'), '$discnumber': _('Disc number'), '$__rating': _('Rating'), '$date': _('Date'), '$genre': _('Genre'), '$bitrate': _('Bitrate'), '$__loc': _('Location'), '$filename': _('Filename'), '$__playcount': _('Play count'), '$__last_played': _('Last played'), '$bpm': _('BPM'), } preset_items = [ # TRANSLATORS: Mini mode track selector title preset _('$tracknumber - $title'), # TRANSLATORS: Mini mode track selector title preset _('$title by $artist'), # TRANSLATORS: Mini mode track selector title preset _('$title ($__length)') ] default = _('$tracknumber - $title') dist/copy/plugins/minimode/PaxHeaders.26361/minimode_preferences.ui0000644000175000017500000000012412233027260024024 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.285046938 exaile-3.3.2/plugins/minimode/minimode_preferences.ui0000644000000000000000000004245512233027260022776 0ustar00rootroot00000000000000 True 3 vertical 6 True True True 6 6 6 6 True vertical 6 True True 0 True 6 True gtk-dialog-info 6 False False 0 True 0 The order of controls can be changed by simply dragging them up or down. (Or press Alt+Up/Down.) True 1 False 1 True True Controls False True 6 6 6 6 True vertical 6 True False False 0 True 6 True gtk-dialog-info 6 False False 0 True 0 Every tag can be used with <b>$tag</b> or <b>${tag}</b>. Internal tags like <b>$__length</b> need to be specified with two leading underscores. True True 1 False False 1 1 True True Track Title Format 1 False True 0 0 6 6 6 6 True 6 2 3 True Always on top True True False True GTK_EXPAND Show in tasklist True True False True 1 2 GTK_EXPAND Use alpha transparency: True True False True 4 5 GTK_EXPAND True True transparency_adjustment False 1 2 4 5 GTK_EXPAND Display window decorations: True True False True 3 4 GTK_EXPAND True model1 1 1 2 3 4 GTK_EXPAND Show on all desktops True True False True 2 3 GTK_EXPAND Show button in main window True True False True 5 6 GTK_EXPAND 2 True True Options 2 False 0 full Full simple Simple 1 0.10000000000000001 0.20000000000000001 dist/copy/plugins/PaxHeaders.26361/list.py0000644000175000017500000000012412233027260017027 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.265046937 exaile-3.3.2/plugins/list.py0000644000000000000000000000105312233027260015766 0ustar00rootroot00000000000000import os, sys # - good = works # - main = useful # - extra = not very useful # - bad = doesn't work EXTRA = ['helloworld'] BAD = ['shoutcast'] def scan(): all = set(f for f in os.listdir('.') if os.path.isdir(f)) bad = set(BAD) good = all - bad extra = set(EXTRA) main = good - extra return locals() plugins = scan() def parse(argv): if len(argv) == 1: return plugins['all'] return plugins[argv[1]] if __name__ == '__main__': names = list(parse(sys.argv)) names.sort() print(' '.join(names)) dist/copy/plugins/PaxHeaders.26361/shutdown0000644000175000017500000000013212233027261017300 xustar000000000000000030 mtime=1382821553.697046951 30 atime=1382821552.789046922 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/shutdown/0000755000000000000000000000000012233027261016316 5ustar00rootroot00000000000000dist/copy/plugins/shutdown/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260021466 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.513046945 exaile-3.3.2/plugins/shutdown/__init__.py0000644000000000000000000001225512233027260020433 0ustar00rootroot00000000000000# Copyright (C) 2010 Johannes Schwarz # # 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 1, 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 dbus import glib import gtk from xl import event, providers from xl.nls import gettext as _ from xlgui import icons from xlgui.widgets import dialogs, menu SHUTDOWN = None class Shutdown(): def __init__(self, exaile): self.exaile = exaile self.do_shutdown = False # add menuitem to tools menu providers.register('menubar-tools-menu', menu.simple_separator('plugin-sep', ['track-properties'])) item = menu.check_menu_item('shutdown', ['plugin-sep'], _('Shutdown after Playback'), # checked func # callback func lambda *x: self.do_shutdown, lambda w, n, p, c: self.on_toggled(w)) providers.register('menubar-tools-menu', item) self.countdown = None self.counter = 10 self.message = dialogs.MessageBar( parent=exaile.gui.builder.get_object('player_box'), buttons=gtk.BUTTONS_CLOSE) self.message.connect('response', self.on_response) def on_toggled(self, menuitem): """ Enables or disables defered shutdown """ if menuitem.get_active(): self.do_shutdown = True event.add_callback(self.on_playback_player_end, 'playback_player_end') self.message.show_info(_('Shutdown scheduled'), _('Computer will be shutdown at the end of playback.')) else: self.disable_shutdown() def disable_shutdown(self): self.do_shutdown = False event.remove_callback(self.on_playback_player_end, 'playback_player_end') # Stop possible countdown if self.countdown is not None: glib.source_remove(self.countdown) self.countdown = None # Prepare for a new run self.counter = 10 # Reset message button layout self.message.hide() self.message.clear_buttons() self.message.add_button(gtk.STOCK_CLOSE, gtk.RESPONSE_CLOSE) def on_playback_player_end(self, event, player, track): """ Tries to shutdown the computer """ self.message.set_message_type(gtk.MESSAGE_INFO) self.message.set_markup(_('Imminent Shutdown')) self.message.clear_buttons() self.message.add_button(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL) if self.countdown is not None: glib.source_remove(self.countdown) self.counter = 10 self.countdown = glib.timeout_add_seconds(1, self.on_timeout) def on_response(self, widget, response): """ Cancels shutdown if requested """ if response == gtk.RESPONSE_CANCEL: self.disable_shutdown() def on_timeout(self): """ Tries to shutdown the computer """ if self.counter > 0: self.message.set_secondary_text( _('The computer will be shut down in %d seconds.') % self.counter) self.message.show() self.counter -= 1; return True self.do_shutdown = False bus = dbus.SystemBus() try: proxy = bus.get_object('org.freedesktop.ConsoleKit', '/org/freedesktop/ConsoleKit/Manager') proxy.Stop(dbus_interface='org.freedesktop.ConsoleKit.Manager') except dbus.exceptions.DBusException: try: proxy = bus.get_object('org.freedesktop.Hal', '/org/freedesktop/Hal/devices/computer') proxy.Shutdown(dbus_interface='org.freedesktop.Hal.Device.SystemPowerManagement') except dbus.exceptions.DBusException: self.message.show_warning(_('Shutdown failed'), _('Computer could not be shutdown using D-Bus.')) def destroy(self): """ Cleans up """ if self.countdown is not None: glib.source_remove(self.countdown) event.remove_callback(self.on_playback_player_end, 'playback_player_end') for item in providers.get('menubar-tools-menu'): if item.name == 'shutdown': providers.unregister('menubar-tools-menu', item) break def enable(exaile): if (exaile.loading): event.add_callback(_enable, 'exaile_loaded') else: _enable(None, exaile, None) def _enable(eventname, exaile, nothing): global SHUTDOWN SHUTDOWN = Shutdown(exaile) def disable(exaile): global SHUTDOWN SHUTDOWN.destroy() dist/copy/plugins/shutdown/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260020752 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/shutdown/PLUGININFO0000644000000000000000000000031112233027260017705 0ustar00rootroot00000000000000Version='0.0.3' Authors=['Johannes Schwarz '] Name=_('Shutdown after Playback') Description=_('Allows for shutdown of the computer at the end of playback.') Category=_('Utility') dist/copy/plugins/PaxHeaders.26361/winmmkeys0000644000175000017500000000013212233027261017450 xustar000000000000000030 mtime=1382821553.157046934 30 atime=1382821552.789046922 30 ctime=1382821553.157046934 exaile-3.3.2/plugins/winmmkeys/0000755000000000000000000000000012233027261016466 5ustar00rootroot00000000000000dist/copy/plugins/winmmkeys/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260021636 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.157046934 exaile-3.3.2/plugins/winmmkeys/__init__.py0000644000000000000000000000324012233027260020575 0ustar00rootroot00000000000000# winmmkeys - Adds support for multimedia keys in Win32. # Copyright (C) 2007, 2010 Johannes Sasongko # # 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, see . key_map = None hook_manager = None def on_key_down(event): try: key_map[event.Key]() return False # Swallow key. except KeyError: return True def enable(exaile): if exaile.loading: import xl.event xl.event.add_callback(_enable, 'exaile_loaded', None, exaile) else: _enable(exaile) def _enable(exaile): global key_map, hook_manager from xl.player import PLAYER, QUEUE key_map = { 'Media_Prev_Track': QUEUE.prev, 'Media_Play_Pause': PLAYER.toggle_pause, 'Media_Stop': PLAYER.stop, 'Media_Next_Track': QUEUE.next, } import pyHook hook_manager = pyHook.HookManager() hook_manager.KeyDown = on_key_down hook_manager.HookKeyboard() def disable(exaile): global key_map, hook_manager if hook_manager: hook_manager.UnhookKeyboard() key_map = hook_manager = None # vi: et sts=4 sw=4 tw=80 dist/copy/plugins/winmmkeys/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260021122 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.097046932 exaile-3.3.2/plugins/winmmkeys/PLUGININFO0000644000000000000000000000044612233027260020066 0ustar00rootroot00000000000000Name=_('Multimedia keys for Windows') Version='1.1.0' Authors=['Johannes Sasongko '] Description=_('Adds support for multimedia keys (present on most new keyboards) when running Exaile in Microsoft Windows.\n\nRequires: pyHook ') Category=_('Hotkeys')dist/copy/plugins/PaxHeaders.26361/grouptagger0000644000175000017500000000013212233027261017753 xustar000000000000000030 mtime=1382821553.445046943 30 atime=1382821552.789046922 30 ctime=1382821553.445046943 exaile-3.3.2/plugins/grouptagger/0000755000000000000000000000000012233027261016771 5ustar00rootroot00000000000000dist/copy/plugins/grouptagger/PaxHeaders.26361/gt_widgets.py0000644000175000017500000000012412233027260022542 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.449046943 exaile-3.3.2/plugins/grouptagger/gt_widgets.py0000644000000000000000000007314212233027260021511 0ustar00rootroot00000000000000# Copyright (C) 2011 Dustin Spicuzza # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import gtk import gobject import pango import glib import re from xl import common from xl.nls import gettext as _ from xlgui import main from xlgui.widgets import dialogs, menu import gt_common # # GroupTaggerView signal 'changed' enum # group_change = common.enum( added=object(), deleted=object(), edited=object() ) # edited/toggled group category_change = common.enum( added=object(), deleted=object(), expanded=object(), # user expanded category display collapsed=object(), # user collapsed category display updated=object() ) # added group, changed name # default group category uncategorized = _('Uncategorized') class GTShowTracksMenuItem(menu.MenuItem): def __init__(self, name, after): menu.MenuItem.__init__(self, name, None, after) def factory(self, menu, parent, context): groups = context['groups'] if len(groups) == 0: display_name = _('Show tracks with selected') elif len(groups) == 1: display_name = _('Show tracks tagged with "%s"') % groups[0] else: display_name = _('Show tracks with all selected') menuitem = gtk.MenuItem(display_name) menuitem.connect('activate', lambda *e: gt_common.create_all_search_playlist( context['groups'], parent.exaile )) return menuitem class GroupTaggerContextMenu(menu.Menu): def __init__(self, tagger): menu.Menu.__init__(self, tagger) def get_context(self): return self._parent.get_context() class GroupTaggerView(gtk.TreeView): '''Treeview widget to display tag lists''' __gsignals__ = { 'category-changed': (gobject.SIGNAL_ACTION, gobject.TYPE_NONE, (gobject.TYPE_PYOBJECT, gobject.TYPE_STRING) ), 'category-edited': (gobject.SIGNAL_ACTION, gobject.TYPE_NONE, (gobject.TYPE_STRING, gobject.TYPE_STRING) ), 'group-changed': (gobject.SIGNAL_ACTION, gobject.TYPE_NONE, (gobject.TYPE_PYOBJECT, gobject.TYPE_STRING) ), 'group-edited': (gobject.SIGNAL_ACTION, gobject.TYPE_NONE, (gobject.TYPE_STRING, gobject.TYPE_STRING) ), } def __init__(self, exaile, model=None, editable=False): gtk.TreeView.__init__(self,None) self.exaile = exaile self.connect('notify::model', self.on_notify_model) self.set_model(model) self.set_enable_search( False ) self.get_selection().set_mode( gtk.SELECTION_MULTIPLE ) self._row_expanded_id = self.connect( 'row-expanded', self.on_row_expanded ) self._row_collapsed_id = self.connect( 'row-collapsed', self.on_row_collapsed ) if editable: self.set_reorderable(True) # Setup the first column, not shown by default cell = gtk.CellRendererToggle() cell.set_property( 'mode', gtk.CELL_RENDERER_MODE_ACTIVATABLE ) cell.set_activatable( True ) cell.connect( 'toggled', self.on_toggle) self.click_column = gtk.TreeViewColumn( None, cell, active=0, visible=2 ) # Setup the second column cell = gtk.CellRendererText() cell.set_property( 'editable', editable ) if editable: cell.connect( 'edited', self.on_edit ) self.text_column = cell self.append_column( gtk.TreeViewColumn( _('Group'), self.text_column, text=1, weight=3 ) ) # # Menu setup # self.menu = GroupTaggerContextMenu(self) smi = menu.simple_menu_item sep = menu.simple_separator self.connect( 'popup-menu', self.on_popup_menu ) self.connect( 'button-release-event', self.on_mouse_release ) if editable: item = smi( 'addgrp', [], _('Add new group'), \ callback=self.on_menu_add_group ) self.menu.add_item( item ) item = smi( 'delgrp', ['addgrp'], _('Delete group'), \ callback=self.on_menu_delete_group, \ condition_fn=lambda n,p,c: False if len(c['groups']) == 0 else True) self.menu.add_item( item ) self.menu.add_item( sep( 'sep1', ['delgrp'] ) ) item = smi( 'addcat', ['sep1'], _('Add new category'), \ callback=self.on_menu_add_category ) self.menu.add_item( item ) item = smi( 'remcat', ['addcat'], _('Remove category'), \ callback=self.on_menu_del_category, condition_fn=lambda n,p,c: False if len(c['categories']) == 0 else True) self.menu.add_item( item ) self.menu.add_item( sep( 'sep2', ['remcat'] ) ) self.menu.add_item( GTShowTracksMenuItem( 'sel', ['sep2'] ) ) item = smi( 'selcust', ['sel'], _('Show tracks with selected (custom)'), \ callback=lambda w,n,p,c: gt_common.create_custom_search_playlist( c['groups'], exaile ), condition_fn=lambda n,p,c: True if len(c['groups']) > 1 else False) self.menu.add_item( item ) # TODO: # - Create smart playlist from selected def set_font(self, font): self.text_column.set_property('font-desc', font) model = self.get_model() self.set_model(None) self.set_model(model) self.sync_expanded() self.queue_draw() def get_context(self): '''Returns context parameter required by menus''' context = common.LazyDict(self) context['selected-rows'] = lambda name, parent: parent.get_selection().get_selected_rows() context['groups'] = lambda name, parent: parent.get_selected_groups( context['selected-rows'] ) context['categories'] = lambda name, parent: parent.get_selected_categories( context['selected-rows'] ) return context def show_click_column(self): if len(self.get_columns()) == 1: self.insert_column( self.click_column, 0) def hide_click_column(self): if len(self.get_columns()) == 2: self.remove_column( self.click_column ) def on_notify_model(self, object, property_spec): model = self.get_model() if model: model.connect( 'row-changed', self.on_row_changed ) model.connect( 'row-deleted', self.on_row_deleted ) # TODO: what's the best way to disconnect when it's unset or changed? def on_edit( self, cell, path, new_text ): if new_text != "": model = self.get_model() old = model.change_name(path, new_text) if model.is_category(path): self.emit( 'category-edited', old, new_text ) else: self.emit( 'group-changed', group_change.edited, old ) def on_row_changed(self, model, path, iter): if self.get_model() and not model.is_category(path): category = model.get_category(path) if category is not None: self.emit( 'category-changed', category_change.updated, category ) self.expand_to_path(path) def on_row_collapsed( self, widget, iter, path ): self.emit( 'category-changed', category_change.collapsed, self.get_model().get_category(path) ) def on_row_deleted(self, model, path): if self.get_model() and not model.is_category(path): category = model.get_category(path) if category is not None: self.emit( 'category-changed', category_change.updated, category ) def on_row_expanded( self, widget, iter, path ): self.emit( 'category-changed', category_change.expanded, self.get_model().get_category(path) ) def on_toggle( self, cell, path ): self.get_model()[path][0] = not cell.get_active() self.emit( 'group-changed', group_change.edited, None ) def on_menu_add_group( self, widget, name, parent, context): # TODO: instead of dialog, just add a new thing, make it editable? input = dialogs.TextEntryDialog( _('New tag value?'), _('Enter new tag value')) if input.run() == gtk.RESPONSE_OK: group = input.get_value() if group != "": model, paths = context['selected-rows'] categories = context['categories'] if len(categories): category = categories[0] else: category = uncategorized if model.add_group( group, category, True ): self.emit( 'group-changed', group_change.added, group ) else: self.emit( 'group-changed', group_change.edited, None ) def on_menu_delete_group( self, widget, name, parent, context ): '''Menu says delete something''' model, paths = context['selected-rows'] groups = model.delete_selected_groups( paths ) for group in groups: self.emit( 'group-changed', group_change.deleted, group ) def on_menu_add_category(self, widget, name, parent, context): # TODO: instead of dialog, just add a new thing, make it editable? input = dialogs.TextEntryDialog( _('New Category?'), _('Enter new group category name')) if input.run() == gtk.RESPONSE_OK: category = input.get_value() if category != "": model, paths = context['selected-rows'] if model.add_category( category ): self.emit( 'category-changed', category_change.added, category ) def on_menu_del_category(self, widget, name, parent, context): model, paths = context['selected-rows'] categories = model.delete_selected_categories( paths ) for category, groups in categories.iteritems(): self.emit( 'category-changed', category_change.deleted, category ) for group in groups: self.emit( 'group-changed', group_change.deleted, group ) def get_selected_groups(self, selected_rows): model, rows = selected_rows return model.get_selected_groups( rows ) def get_selected_categories(self, selected_rows): model, rows = selected_rows return model.get_selected_categories( rows ) def on_mouse_release(self, widget, event): if event.button == 3: self.menu.popup(None, None, None, event.button, event.time) def on_popup_menu(self, widget): self.menu.popup(None, None, None, 0, 0) return True def sync_expanded(self): '''Syncs the expansion state stored in the model to the tree''' self.handler_block( self._row_expanded_id ) self.handler_block( self._row_collapsed_id ) for row in self.get_model(): if row[0]: self.expand_row(row.path, True) self.handler_unblock( self._row_expanded_id ) self.handler_unblock( self._row_collapsed_id ) gobject.type_register(GroupTaggerView) class GroupTaggerTreeStore(gtk.TreeStore, gtk.TreeDragSource, gtk.TreeDragDest): ''' The tree model for grouptagger Rows for categories: [expanded, category name, False] Rows for groups: [selected, group name, True] ''' def __init__(self): gtk.TreeStore.__init__( self, gobject.TYPE_BOOLEAN, \ gobject.TYPE_STRING, \ gobject.TYPE_BOOLEAN, \ gobject.TYPE_INT) self.set_sort_column_id( 1, gtk.SORT_ASCENDING ) def add_category(self, category): '''Returns True if added new category, False otherwise''' for row in self: if row[1] == category: return False self.append( None, [True, category, False, pango.WEIGHT_BOLD] ) return True def add_group(self, group, category=uncategorized, selected=True): '''Returns True if added new group, False otherwise''' for row in self: if row[1] == category: for chrow in row.iterchildren(): if chrow[1] == group: row[0] = selected return False self.append( row.iter, [selected, group, True, pango.WEIGHT_NORMAL] ) return True # add new category it = self.append( None, [True, category, False, pango.WEIGHT_BOLD] ) # add value to that category self.append( it, [selected, group, True, pango.WEIGHT_NORMAL] ) return True def change_name(self, path, name): old = self[path][1] self[path][1] = name return old def delete_selected_categories(self, paths): categories = {} iters = [self.get_iter(path) for path in paths if self[path].parent is None] for i in iters: if i is not None: groups = [] for ch in self[i].iterchildren(): groups.append( ch[1] ) categories[ self.get_value(i, 1) ] = groups self.remove(i) return categories def delete_selected_groups(self, paths): '''Deletes selected groups, returns a list of the removed groups''' groups = [] iters = [self.get_iter(path) for path in paths if self[path].parent is not None] for i in iters: if i is not None: groups.append( self.get_value(i, 1) ) self.remove(i) return groups def get_category(self, path): '''Given a path, return the category associated with that path''' if len(path) == 1: if len(self): return self[path][1] else: return self[(path[0],)][1] def get_category_groups(self, category): return [row[1] for row in self.iter_category(category)] def get_selected_groups(self, paths): '''rows is obtained from get_selection().get_rows()''' return [self[path][1] for path in paths if self[path].parent is not None] def get_selected_categories(self, paths): '''rows is obtained from get_selection().get_rows()''' return [self[path][1] for path in paths if self[path].parent is None] def is_category(self, path): return len(path) == 1 def iter_active(self): '''Iterate over all groups with the checkbox on''' for row in self.iter_group_rows(): if row[0] == True: yield row[1] def iter_category(self, category): '''Iterate over all rows of a category''' for row in self: if category == row[1]: for chrow in row.iterchildren(): yield chrow break def iter_group_rows(self): '''Iterate over all groups in the model, yields (selected, group, other)''' for row in self: for chrow in row.iterchildren(): yield chrow def iter_groups(self): '''Iterate over all groups in the model, yields each group''' for row in self.iter_group_rows(): yield row[1] #def has_group(self, group): # for row in self: # for chrow in row: # if row[1] == group: # return True # return False def load(self, group_categories): ''' input format: { category: [expanded, [(active, group), ... ]], ... } ''' for category, (expanded, groups) in group_categories.iteritems(): cat = self.append( None, [expanded, category, False, pango.WEIGHT_BOLD] ) for active, group in groups: self.append( cat, [active, group, True, pango.WEIGHT_NORMAL] ) # # DND interface # def do_row_draggable(self, path): '''Only groups are draggable''' return self[path].parent is not None def do_row_drop_possible(self, dest_path, selection_data): '''Can only drag to different categories''' model, src_path = selection_data.tree_get_row_drag_data() return len(dest_path) == 2 and src_path[0] != dest_path[0] gobject.type_register(GroupTaggerTreeStore) class GroupTaggerWidget(gtk.VBox): '''Melds the tag view with an 'add' button''' def __init__(self, exaile): gtk.VBox.__init__(self) self.title = gtk.Label() self.artist = gtk.Label() self.view = GroupTaggerView( exaile, GroupTaggerTreeStore(), editable=True ) self.store = self.view.get_model() self.tag_button = gtk.Button( _('Add Group') ) self.tag_button.connect( 'clicked', self.on_add_tag_click ) self.title.set_alignment(0,0.5) self.title.set_line_wrap(True) self.title.hide() self.artist.set_alignment(0,0.5) self.artist.set_line_wrap(True) self.artist.hide() scroll = gtk.ScrolledWindow() scroll.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) scroll.set_shadow_type(gtk.SHADOW_IN) scroll.add( self.view ) self.pack_start( self.title, expand=False ) self.pack_start( self.artist, expand=False ) self.pack_start( scroll, True, True ) self.pack_start( self.tag_button, expand=False ) def on_add_tag_click(self, widget): self.view.on_menu_add_group( self.view, None, None, self.view.get_context() ) def set_font(self, font): self.view.set_font(font) def set_title(self, title): '''Sets the title for this widget. Hides title if title is None''' if title is None: self.title.hide() else: self.title.set_markup('' + glib.markup_escape_text(title) + '') self.title.show() def set_artist(self, artist): '''Sets the author for this widget. Hides it if author is None''' if artist is None: self.artist.hide() else: self.artist.set_text('by ' + artist) self.artist.show() def set_track_info(self, track): '''Shortcut for set_title/set_artist''' if track is None: self.set_title( None ) self.set_artist( None ) else: self.set_title( track.get_tag_display( 'title' ) ) self.set_artist( track.get_tag_display( 'artist' ) ) def add_groups(self, groups): added = False self.view.freeze_child_notify() self.view.set_model( None ) for group in groups: added = self.store.add_group( group, uncategorized, selected=False ) or added self.view.set_model( self.store ) self.view.sync_expanded() if added: self.view.emit( 'category-changed', category_change.updated, uncategorized ) self.view.thaw_child_notify() def set_categories(self, groups, group_categories): ''' groups: iterable group_categories: dict: key is category, value is (visible, list of groups) ''' defaults = {} set_groups = set() # validate it for category, (visible, cgroups) in group_categories.iteritems(): dcgroups = [] for group in cgroups: if group not in set_groups: dcgroups.append( (group in groups, group) ) set_groups.add( group ) defaults[category] = (visible, dcgroups) groups = set(groups).difference( set_groups ) if len(groups): defaults[uncategorized] = (True, [(True, group) for group in groups]) self.view.freeze_child_notify() self.view.set_model( None ) self.store.clear() self.store.load( defaults ) self.view.set_model( self.store ) self.view.sync_expanded() self.view.thaw_child_notify() class GroupTaggerPanel(gtk.VBox): '''A panel that has all of the functionality in it''' def __init__(self, exaile): gtk.VBox.__init__(self) # add the tagger widget self.tagger = GroupTaggerWidget( exaile ) # add the widgets to this page self.pack_start( self.tagger, expand=True ) # exaile panel interface self._child = self class AllTagsListView(gtk.TreeView): def __init__(self, model=None): gtk.TreeView.__init__(self, model) self.get_selection().set_mode(gtk.SELECTION_MULTIPLE) # Setup the first column cell = gtk.CellRendererToggle() cell.set_property('mode', gtk.CELL_RENDERER_MODE_ACTIVATABLE) cell.set_activatable(True) cell.connect('toggled', self.on_toggle) self.append_column(gtk.TreeViewColumn(None, cell, active=0)) # Setup the second column self.append_column(gtk.TreeViewColumn(_('Group'), gtk.CellRendererText(), text=1)) self.connect('key_press_event', self.on_key_press) def on_key_press(self, widget, event): if event.keyval == gtk.keysyms.space: model, paths = self.get_selection().get_selected_rows() sel = False for path in paths: sel = model[path][0] or sel for path in paths: model[path][0] = not sel def on_toggle(self, cell, path): self.get_model()[path][0] = not cell.get_active() class AllTagsListStore(gtk.ListStore): def __init__(self): gtk.ListStore.__init__(self, gobject.TYPE_BOOLEAN, gobject.TYPE_STRING) self.set_sort_column_id(1, gtk.SORT_ASCENDING) def add_group(self, group): self.append((False, group)) def get_active_groups(self): return [row[1] for row in self if row[0] == True] class AllTagsDialog( gtk.Window ): def __init__(self, exaile, callback): gtk.Window.__init__(self) self.set_title(_('Get all tags from collection')) self.set_resizable(True) self.set_size_request( 150, 400 ) self.add(gtk.Frame()) vbox = gtk.VBox() self._callback = callback self.model = AllTagsListStore() self.view = AllTagsListView() scroll = gtk.ScrolledWindow() scroll.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) scroll.set_shadow_type(gtk.SHADOW_IN) scroll.add( self.view ) scroll.hide() vbox.pack_start(scroll, True, True) button = gtk.Button(_('Add selected to choices')) button.connect('clicked', self.on_add_selected_to_choices) vbox.pack_end(button, False, False) self.get_child().add(vbox) # get the collection groups groups = gt_common.get_all_collection_groups(exaile.collection) for group in groups: self.model.add_group(group) self.view.set_model(self.model) self.show_all() def on_add_selected_to_choices(self, widget): self._callback(self.model.get_active_groups()) class GroupTaggerQueryDialog(gtk.Dialog): ''' Dialog used to allow the user to select the behavior of the query used to filter out tracks that match a particular characteristic ''' def __init__(self, groups): gtk.Dialog.__init__(self, _('Show tracks with groups') ) # setup combo box selections self.group_model = gtk.ListStore(gobject.TYPE_STRING) groups_set = gt_common.get_groups_from_categories() groups_set |= set(groups) for group in groups_set: self.group_model.append( [group] ) self.combo_model = gtk.ListStore(gobject.TYPE_STRING) self.choices = [ _('Must have this tag [AND]'), _('May have this tag [OR]'), _('Must not have this tag [NOT]'), _('Ignored') ] for choice in self.choices: self.combo_model.append( [choice] ) # setup table self.table = gtk.Table(rows=len(groups)+1, columns=2) self.table.attach(gtk.Label(_('Group')), 0, 1, 0, 1, ypadding=5) self.table.attach(gtk.Label(_('Selected Tracks')), 1, 2, 0, 1, ypadding=5) # TODO: Scrolled window self.combos = [] # TODO: Add/remove groups to/from table for i,group in enumerate(sorted(groups)): # label gcombo = self._init_combo(self.group_model) gcombo.set_active(self._get_group_index(group)) self.table.attach(gcombo, 0, 1, i+1, i+2, xpadding=3) # combo combo = self._init_combo(self.combo_model) combo.set_active(0) self.table.attach(combo, 1, 2, i+1, i+2) self.combos.append( (gcombo, combo) ) self.vbox.pack_start(self.table) self.add_buttons(gtk.STOCK_OK, gtk.RESPONSE_OK, gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL) self.show_all() def _init_combo(self, model): combo = gtk.ComboBox(model) cell = gtk.CellRendererText() combo.pack_start(cell, True) combo.add_attribute(cell, 'text', 0) return combo def _get_group_index(self, group): for i, row in enumerate(self.group_model): if row[0] == group: return i return -1 def get_search_params(self): '''Returns (name, search_string) from user selections''' and_p = [[], ''] # groups, name, re_string or_p = [[], ''] not_p = [[], ''] first = True tagname = settings.get_option(gt_common.tagname_option, 'grouping') name = '%s: ' % (tagname.title()) # gather the data for gcombo, combo in self.combos: group = self.group_model[ gcombo.get_active() ][0] wsel = self.combo_model[ combo.get_active() ][0] if wsel == self.choices[0]: and_p[0].append( group ) elif wsel == self.choices[1]: or_p[0].append( group ) elif wsel == self.choices[2]: not_p[0].append( group ) # create the AND conditions if len(and_p[0]): name += ' and '.join( and_p[0] ) first = False and_p[1] = ' '.join( [ '%s~"\\b%s\\b"' % (tagname, re.escape( group.replace(' ','_') )) for group in and_p[0] ] ) # create the NOT conditions if len(not_p[0]): if first: name += ' and not '.join( not_p[0] ) else: name += ' and ' + ' and '.join( [ 'not ' + p for p in not_p[0]] ) first = False not_p[1] = ' ! %s~"%s"' % (tagname, '|'.join( [ '\\b' + re.escape( group.replace(' ','_') ) + '\\b' for group in not_p[0] ] )) # create the OR conditions if len(or_p[0]): if first: name += ' or '.join( or_p[0] ) elif len(or_p[0]) > 1: name += ' and (' + ' or '.join( or_p[0] ) + ')' else: name += ' and ' + ' or '.join( or_p[0] ) or_p[1] = ' %s~"%s"' % (tagname, '|'.join( [ '\\b' + re.escape( group.replace(' ','_') ) + '\\b' for group in or_p[0] ] )) regex = (and_p[1] + or_p[1] + not_p[1]).strip() return (name, regex) dist/copy/plugins/grouptagger/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260022141 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.445046943 exaile-3.3.2/plugins/grouptagger/__init__.py0000644000000000000000000002470412233027260021110 0ustar00rootroot00000000000000# Copyright (C) 2011 Dustin Spicuzza # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import glib import gtk import gobject import pango from xl import ( event, providers, player, settings ) from xl.nls import gettext as _ from xlgui import guiutil from xlgui.widgets import menu, dialogs import gt_prefs import gt_widgets from gt_common import * plugin = None def get_preferences_pane(): return gt_prefs def enable(exaile): '''Called on plugin enable''' if exaile.loading: event.add_callback(_enable, 'gui_loaded') else: _enable(None, exaile, None) def _enable(eventname, exaile, nothing): global plugin plugin = GroupTaggerPlugin(exaile) event.remove_callback(_enable, 'gui_loaded') def disable(exaile): '''Called on plugin disable''' global plugin if plugin is not None: plugin.disable_plugin(exaile) plugin = None class GroupTaggerPlugin(object): '''Implements logic for plugin''' def __init__(self, exaile): self.track = None self.tag_dialog = None migrate_settings() self.panel = gt_widgets.GroupTaggerPanel(exaile) self.panel.show_all() self.setup_panel_font(False) self.panel.tagger.view.connect( 'category-changed', self.on_category_change ) self.panel.tagger.view.connect( 'category-edited', self.on_category_edited ) self.panel.tagger.view.connect( 'group-changed', self.on_group_change ) # add to exaile's panel interface exaile.gui.panels['grouptagger'] = self.panel exaile.gui.add_panel( self.panel, _('GroupTagger') ) # ok, register for some events event.add_callback( self.on_playback_track_start, 'playback_track_start' ) event.add_callback( self.on_playlist_cursor_changed, 'playlist_cursor_changed' ) event.add_callback( self.on_plugin_options_set, 'plugin_grouptagger_option_set' ) # add our own submenu for functionality self.tools_submenu = menu.Menu( None, context_func=lambda p: exaile ) self.tools_submenu.add_item( menu.simple_menu_item( 'gt_get_tags', [], _('Get all tags from collection'), callback=self.on_get_tags_menu ) ) # group them together to make it not too long self.tools_menuitem = menu.simple_menu_item('grouptagger', ['plugin-sep'], _('GroupTagger'), submenu=self.tools_submenu ) providers.register( 'menubar-tools-menu', self.tools_menuitem ) # playlist context menu items self.selectall_menuitem = menu.simple_menu_item( 'gt_search_all', ['rating'], _('Show tracks with all tags'), callback=self.on_playlist_context_select_all_menu, callback_args=[exaile]) providers.register( 'playlist-context-menu', self.selectall_menuitem ) self.selectcustom_menuitem = menu.simple_menu_item( 'gt_search_custom', ['rating'], _('Show tracks with tags (custom)'), callback=self.on_playlist_context_select_custom_menu, callback_args=[exaile]) providers.register( 'playlist-context-menu', self.selectcustom_menuitem ) # trigger start event if exaile is currently playing something if player.PLAYER.is_playing(): self.set_display_track( player.PLAYER.current ) else: self.panel.tagger.set_categories( [], get_group_categories() ) def disable_plugin(self, exaile): '''Called when the plugin is disabled''' if self.tools_menuitem: providers.unregister( 'menubar-tools-menu', self.tools_menuitem) providers.unregister( 'playlist-context-menu', self.selectall_menuitem ) providers.unregister( 'playlist-context-menu', self.selectcustom_menuitem ) self.tools_menuitem = None self.selectall_menuitem = None self.selectcustom_menuitem = None if self.tag_dialog: self.tag_dialog.destroy() self.tag_dialog = None # de-register the exaile events event.remove_callback( self.on_playback_track_start, 'playback_track_start' ) event.remove_callback( self.on_playlist_cursor_changed, 'playlist_cursor_changed' ) event.remove_callback( self.on_plugin_options_set, 'plugin_grouptagger_option_set' ) exaile.gui.remove_panel( self.panel ) def setup_panel_font(self, always_set): font = settings.get_option('plugin/grouptagger/panel_font', None) if font is None: if not always_set: return font = gt_prefs._get_system_default_font() else: font = pango.FontDescription(font) self.panel.tagger.set_font(font) # # Menu callbacks # def on_get_tags_menu(self, widget, name, parent, exaile): if self.tag_dialog is None: self.tag_dialog = gt_widgets.AllTagsDialog(exaile, self.panel.tagger.add_groups) self.tag_dialog.connect('delete-event', self.on_get_tags_menu_window_deleted) self.tag_dialog.show_all() def on_get_tags_menu_window_deleted(self, *args): self.tag_dialog = None # # Exaile events # @guiutil.idle_add() def on_playback_track_start(self, type, player, track): '''Called when a new track starts''' self.set_display_track( track ) def on_playlist_context_select_all_menu( self, menu, display_name, playlist_view, context, exaile ): '''Called when 'Select tracks with same groups' is selected''' tracks = context['selected-tracks'] groups = set() for track in tracks: groups |= get_track_groups(track) if len(groups) > 0: create_all_search_playlist( groups, exaile ) else: dialogs.error( None, _('No categorization tags found in selected tracks')) def on_playlist_context_select_custom_menu( self, menu, display_name, playlist_view, context, exaile ): '''Called when 'select tracks with similar groups (custom)' is selected''' tracks = context['selected-tracks'] groups = set() for track in tracks: groups |= get_track_groups(track) if len(groups) > 0: create_custom_search_playlist( groups, exaile ) else: dialogs.error( None, _('No categorization tags found in selected tracks')) def on_playlist_cursor_changed( self, type, playlist_view, context ): '''Called when an item in a playlist is selected''' #TODO: Allow multiple tracks tracks = context['selected-tracks'] if len(tracks) == 1: self.set_display_track( tracks[0] ) def set_display_track(self, track, force_update=False): '''Updates the display with the tags/info for a particular track''' if self.track == track and not force_update: return self.track = track # get the groups as a set track_groups = get_track_groups( track ) # set them self.panel.tagger.view.show_click_column() self.panel.tagger.set_categories( track_groups, get_group_categories() ) self.panel.tagger.set_track_info( track ) # # Widget events # def on_category_change(self, view, action, category): '''Called when a category has something happen to it''' categories = get_group_categories() if action == gt_widgets.category_change.added: categories.setdefault(category, [True, []]) elif action == gt_widgets.category_change.deleted: del categories[category] elif action == gt_widgets.category_change.collapsed: categories[category][0] = False elif action == gt_widgets.category_change.expanded: categories[category][0] = True elif action == gt_widgets.category_change.updated: v = categories.setdefault(category, [True, []]) v[1] = view.get_model().get_category_groups(category) set_group_categories( categories ) def on_category_edited(self, view, old_category, new_category): '''Called when a category name is edited''' categories = get_group_categories() categories[new_category] = categories.pop(old_category) set_group_categories( categories ) def on_group_change(self, view, action, value): '''Called when a group is added/deleted/updated on the widget''' if self.track is not None: groups = view.get_model().iter_active() if not set_track_groups( self.track, groups ): self.set_display_track( self.track, force_update=True ) def on_plugin_options_set(self, evtype, settings, option): '''Handles option changes''' if option == 'plugin/grouptagger/panel_font': glib.idle_add( self.setup_panel_font, True ) elif option == tagname_option: if self.track is not None: glib.idle_add(self.set_display_track, self.track, True) dist/copy/plugins/grouptagger/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260021425 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.421046942 exaile-3.3.2/plugins/grouptagger/PLUGININFO0000644000000000000000000000033612233027260020367 0ustar00rootroot00000000000000Version='0.2' Authors=['Dustin Spicuzza '] Name=_('Group Tagger') Description=_('Facilitates categorizing your music by managing the grouping/category tag in audio files') Category=_('Tagging') dist/copy/plugins/grouptagger/PaxHeaders.26361/gt_prefs.py0000644000175000017500000000012412233027260022213 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.445046943 exaile-3.3.2/plugins/grouptagger/gt_prefs.py0000644000000000000000000000274312233027260021161 0ustar00rootroot00000000000000# 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 1, 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 xlgui.preferences import widgets from xl import xdg from xl.nls import gettext as _ import os import gtk name = _('GroupTagger') basedir = os.path.dirname(os.path.realpath(__file__)) ui = os.path.join(basedir, 'gt_prefs.ui') def _get_system_default_font(): return gtk.widget_get_default_style().font_desc.to_string() class GTPanelFontPreference(widgets.FontButtonPreference): default = _get_system_default_font() name = 'plugin/grouptagger/panel_font' class GTPanelFontResetButtonPreference(widgets.FontResetButtonPreference): default = _get_system_default_font() name = 'plugin/grouptagger/reset_button' condition_preference_name = 'plugin/grouptagger/panel_font' class GTGroupingTagName(widgets.ComboPreference): default = 'grouping' name = 'plugin/grouptagger/tagname' dist/copy/plugins/grouptagger/PaxHeaders.26361/gt_common.py0000644000175000017500000000012412233027260022364 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.445046943 exaile-3.3.2/plugins/grouptagger/gt_common.py0000644000000000000000000001236112233027260021327 0ustar00rootroot00000000000000# Copyright (C) 2011 Dustin Spicuzza # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. # # Grouping field utility functions # import gtk import gobject import re from xl import ( event, playlist, providers, player, settings ) from xl.nls import gettext as _ from xl.trax import search from xlgui import guiutil, main from xlgui.widgets import menu, dialogs import gt_widgets group_categories_option = 'plugin/grouptagger/group_categories' migrated_option = 'plugin/grouptagger/0.2_migration' tagname_option = 'plugin/grouptagger/tagname' def migrate_settings(): '''Automatically migrate group tagger 0.1 settings to 0.2''' if settings.get_option( migrated_option, False ): default_groups = settings.get_option( 'plugin/grouptagger/default_groups', None ) if default_groups is not None: group_categories = { _('Uncategorized'): [True, default_groups] } set_group_categories( group_categories ) #settings.remove_option( 'plugin/grouptagger/default_groups' ) settings.set_option( migrated_option, True ) def get_track_groups(track): ''' Returns a set() of groups present in this track ''' grouping = track.get_tag_raw(settings.get_option(tagname_option, 'grouping'), True) if grouping is not None: return set([ group.replace('_', ' ') for group in grouping.split()]) return set() def set_track_groups(track, groups): ''' Given an array of groups, sets them on a track Returns true if successful, false if there was an error ''' grouping = ' '.join( sorted( [ '_'.join( group.split() ) for group in groups ] ) ) track.set_tag_raw(settings.get_option(tagname_option, 'grouping'), grouping ) if not track.write_tags(): dialogs.error( None, "Error writing tags to %s" % gobject.markup_escape_text(track.get_loc_for_io()) ) return False return True def get_group_categories(): ''' Returns a dictionary that contains a mapping of default groups to categories. Structure: { category: [expanded, [group, ... ]], ... } ''' return settings.get_option( group_categories_option, dict() ) def get_groups_from_categories(): groups = set() categories = get_group_categories() for category, (expanded, cgroups) in categories.iteritems(): for group in cgroups: groups.add( group ) return groups def set_group_categories(group_categories): ''' Set the mapping of default groups to categories ''' settings.set_option( group_categories_option, group_categories ) def get_all_collection_groups( collection ): ''' For a given collection of tracks, return all groups used within that collection ''' groups = set() for track in collection: groups |= get_track_groups(track) return groups def _create_search_playlist( name, search_string, exaile ): '''Create a playlist based on a search string''' tracks = [ x.track for x in search.search_tracks_from_string( exaile.collection, search_string ) ] # create the playlist pl = playlist.Playlist( name, tracks ) main.get_playlist_notebook().create_tab_from_playlist( pl ) def create_all_search_playlist( groups, exaile ): '''Create a playlist of tracks that have all groups selected''' tagname = settings.get_option(tagname_option, 'grouping') name = '%s: %s' % (tagname.title(), ' and '.join(groups)) search_string = ' '.join( [ '%s~"\\b%s\\b"' % (tagname, re.escape(group.replace(' ','_'))) for group in groups ] ) _create_search_playlist( name, search_string, exaile ) def create_custom_search_playlist( groups, exaile ): '''Create a playlist based on groups, and user input in a shiny dialog''' dialog = gt_widgets.GroupTaggerQueryDialog( groups ) if dialog.run() == gtk.RESPONSE_OK: name, search_string = dialog.get_search_params() _create_search_playlist( name, search_string, exaile ) dialog.destroy() dist/copy/plugins/grouptagger/PaxHeaders.26361/gt_prefs.ui0000644000175000017500000000012412233027260022200 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.445046943 exaile-3.3.2/plugins/grouptagger/gt_prefs.ui0000644000000000000000000001326212233027260021144 0ustar00rootroot00000000000000 grouping comment encodedby composer conductor lyrics False True False 6 True False 6 True False 0 Group/categories font: False True 0 True True True False True 1 True True True True Reset to the system font True False gtk-revert-to-saved False True 2 False True 0 True False True False Categorization tag name False False 0 True False 'grouping' and 'comment' are probably the best supported choices. Other choices may only work with certain file formats. liststore1 0 0 False False 1 False False 1 dist/copy/plugins/PaxHeaders.26361/equalizer0000644000175000017500000000013212233027261017426 xustar000000000000000030 mtime=1382821553.697046951 30 atime=1382821552.789046922 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/equalizer/0000755000000000000000000000000012233027261016444 5ustar00rootroot00000000000000dist/copy/plugins/equalizer/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260021614 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.513046945 exaile-3.3.2/plugins/equalizer/__init__.py0000644000000000000000000003273212233027260020563 0ustar00rootroot00000000000000# Copyright (C) 2009-2010 Dave Aitken # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. # support python 2.5 from __future__ import with_statement from xl import providers, event, settings, xdg from xl.player.pipe import ElementBin from xlgui.widgets import menu from xl.nls import gettext as _ import gst, gtk, glib import os, string def enable(exaile): providers.register("postprocessing_element", GSTEqualizer) if exaile.loading: event.add_callback(_enable, 'gui_loaded') else: _enable(None, exaile, None) def _enable(event_type, exaile, nothing): """ Called when the player is loaded. """ global EQ_MAIN EQ_MAIN = EqualizerPlugin(exaile) def disable(exaile): providers.unregister("postprocessing_element", GSTEqualizer) global EQ_MAIN EQ_MAIN.disable() EQ_MAIN = None class GSTEqualizer(ElementBin): """ Equalizer GST class """ index = 99 name = "equalizer-10bands" def __init__(self, player): ElementBin.__init__(self, player, name=self.name) self.audioconvert = gst.element_factory_make("audioconvert") self.elements[40] = self.audioconvert self.preamp = gst.element_factory_make("volume") self.elements[50] = self.preamp self.eq10band = gst.element_factory_make("equalizer-10bands") self.elements[60] = self.eq10band self.setup_elements() event.add_callback(self._on_option_set, "plugin_equalizer_option_set") setts = ["band%s" for n in xrange(10)] + ["pre", "enabled"] for setting in setts: self._on_option_set("plugin_equalizer_option_set", None, "plugin/equalizer/%s"%setting) def _on_option_set(self, name, object, data): for band in range(10): if data == "plugin/equalizer/band%s"%band: if settings.get_option("plugin/equalizer/enabled") == True: self.eq10band.set_property("band%s"%band, settings.get_option("plugin/equalizer/band%s"%band)) else: self.eq10band.set_property("band%s"%band, 0.0) if data == "plugin/equalizer/pre": if settings.get_option("plugin/equalizer/enabled") == True: self.preamp.set_property("volume", self.dB_to_percent( settings.get_option("plugin/equalizer/pre"))) else: self.preamp.set_property("volume", 1.0) if data == "plugin/equalizer/enabled": if settings.get_option("plugin/equalizer/enabled") == True: self.preamp.set_property("volume", self.dB_to_percent( settings.get_option("plugin/equalizer/pre"))) for band in range(10): self.eq10band.set_property("band%s"%band, settings.get_option("plugin/equalizer/band%s"%band)) else: self.preamp.set_property("volume", 1.0) for band in range(10): self.eq10band.set_property("band%s"%band, 0.0) def dB_to_percent(self, dB): return 10**(dB / 10) class EqualizerPlugin: """ Equalizer plugin class """ def __init__(self, exaile): self.window = None # add menu item to tools menu self.MENU_ITEM = menu.simple_menu_item('equalizer', ['plugin-sep'], _('Equalizer'), callback=lambda *x: self.show_gui(exaile)) providers.register('menubar-tools-menu', self.MENU_ITEM) self.presets_path = os.path.join(xdg.get_config_dir(), 'eq-presets.dat') self.presets = gtk.ListStore(str, float, float, float, float, float, float, float, float, float, float, float) self.load_presets() self.check_default_settings() def check_default_settings(self): for band in range(10): if settings.get_option("plugin/equalizer/band%s"%band) == None: settings.set_option("plugin/equalizer/band%s"%band, 0.0) if settings.get_option("plugin/equalizer/pre") == None: settings.set_option("plugin/equalizer/pre", 0.0) if settings.get_option("plugin/equalizer/enabled") == None: settings.set_option("plugin/equalizer/enabled", True) def disable(self): if self.MENU_ITEM: providers.unregister('menubar-tools-menu', self.MENU_ITEM) self.MENU_ITEM = None if self.window: self.window.hide() self.window.destroy() def load_presets(self): """ Populate the GTK ListStore with presets """ def show_gui(self, exaile): """ Display main window. """ if self.window: self.window.present() return signals = { 'on_main-window_destroy':self.destroy_gui, 'on_chk-enabled_toggled':self.toggle_enabled, 'on_combo-presets_changed':self.preset_changed, 'on_add-preset_clicked':self.add_preset, 'on_remove-preset_clicked':self.remove_preset, 'on_pre_format_value':self.adjust_preamp, 'on_band0_format_value':self.adjust_band, 'on_band1_format_value':self.adjust_band, 'on_band2_format_value':self.adjust_band, 'on_band3_format_value':self.adjust_band, 'on_band4_format_value':self.adjust_band, 'on_band5_format_value':self.adjust_band, 'on_band6_format_value':self.adjust_band, 'on_band7_format_value':self.adjust_band, 'on_band8_format_value':self.adjust_band, 'on_band9_format_value':self.adjust_band } self.ui = gtk.Builder() self.ui.add_from_file( os.path.join( os.path.dirname( os.path.realpath(__file__)), 'equalizer.ui')) self.ui.connect_signals(signals) self.window = self.ui.get_object('main-window') #Setup bands/preamp from current equalizer settings for x in (0,1,2,3,4,5,6,7,8,9): self.ui.get_object('band%s' % x).set_value(self.get_band(x)) self.ui.get_object("pre").set_value(self.get_pre()) #Put the presets into the presets combobox combobox = self.ui.get_object("combo-presets") combobox.set_model(self.presets) combobox.set_text_column(0) combobox.set_active(0) self.ui.get_object('chk-enabled').set_active( settings.get_option("plugin/equalizer/enabled")) self.window.show_all() def destroy_gui(self, widget): self.window = None def get_band(self, x): """ Get the current value of band x """ return settings.get_option("plugin/equalizer/band%s"%x) def get_pre(self): """ Get the current value of pre-amp """ return settings.get_option("plugin/equalizer/pre") #Widget callbacks def adjust_band(self, widget, data): """ Adjust the specified band """ # Buildable.get_name clashes with Widget.get_name. See # https://bugzilla.gnome.org/show_bug.cgi?id=591085#c19 widget_name = gtk.Buildable.get_name(widget) band = widget_name[-1] if widget.get_value() != settings.get_option( "plugin/equalizer/band" + band): settings.set_option("plugin/equalizer/band" + band, widget.get_value()) self.ui.get_object("combo-presets").set_active(0) def adjust_preamp(self, widget, data): """ Adjust the preamp """ if widget.get_value() != settings.get_option("plugin/equalizer/pre"): settings.set_option("plugin/equalizer/pre", widget.get_value()) self.ui.get_object("combo-presets").set_active(0) def add_preset(self, widget): new_preset = [] new_preset.append(self.ui.get_object("combo-presets" ).get_child().get_text()) new_preset.append(settings.get_option("plugin/equalizer/pre")) for band in range(10): new_preset.append(settings.get_option( "plugin/equalizer/band%s"%band)) # print "EQPLUGIN: debug: ", new_preset self.presets.append(new_preset) self.save_presets() def remove_preset(self, widget): entry = self.ui.get_object("combo-presets").get_active() if entry > 1: self.presets.remove(self.presets.get_iter(entry)) self.ui.get_object("combo-presets").set_active(0) self.save_presets() def preset_changed(self, widget): d = widget.get_model() i = widget.get_active() #If an option other than "Custom" is chosen: if i > 0: settings.set_option("plugin/equalizer/pre", d.get_value( d.get_iter(i), 1)) self.ui.get_object("pre").set_value( d.get_value( d.get_iter(i), 1)) for band in range(10): settings.set_option("plugin/equalizer/band%s"%band, d.get_value( d.get_iter(i), band+2)) self.ui.get_object("band%s"%band).set_value( d.get_value( d.get_iter(i), band+2)) def toggle_enabled(self, widget): settings.set_option("plugin/equalizer/enabled", widget.get_active()) def save_presets(self): if os.path.exists(self.presets_path): os.remove(self.presets_path) with open(self.presets_path, 'w') as f: for row in self.presets: f.write(row[0] + '\n') s = "" for i in range(1, 12): s += str(row[i]) + " " s += "\n" f.write(s) def load_presets(self): if os.path.exists(self.presets_path): with open(self.presets_path, 'r') as f: line = f.readline() while (line != ""): preset = [] preset.append(line[:-1]) line = f.readline() vals = string.split(line, " ") for i in range(11): preset.append(float(vals[i])) self.presets.append(preset) line = f.readline() else: self.presets.append(["Custom", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]) self.presets.append(["Default", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]) self.presets.append(["Classical", 0, 0, 0, 0, 0, 0, 0, -7.2, -7.2, -7.2, -9.6]) self.presets.append(["Club", 0, 0, 0, 8, 5.6, 5.6, 5.6, 3.2, 0, 0, 0]) self.presets.append(["Dance", 0, 9.6, 7.2, 2.4, 0, 0, -5.6, -7.2, -7.2, 0, 0]) self.presets.append(["Full Bass", 0, -8, 9.6, 9.6, 5.6, 1.6, -4, -8, -10.4, -11.2, -11.2]) self.presets.append(["Full Bass and Treble", 0, 7.2, 5.6, 0, -7.2, -4.8, 1.6, 8, 11.2, 12, 12]) self.presets.append(["Full Treble", 0, -9.6, -9.6, -9.6, -4, 2.4, 11.2, 16, 16, 16, 16.8]) self.presets.append(["Laptop Speakers and Headphones", 0, 4.8, 11.2, 5.6, -3.2, -2.4, 1.6, 4.8, 9.6, 11.9, 11.9]) self.presets.append(["Large Hall", 0, 10.4, 10.4, 5.6, 5.6, 0, -4.8, -4.8, -4.8, 0, 0]) self.presets.append(["Live", 0, -4.8, 0, 4, 5.6, 5.6, 5.6, 4, 2.4, 2.4, 2.4]) self.presets.append(["Party", 0, 7.2, 7.2, 0, 0, 0, 0, 0, 0, 7.2, 7.2]) self.presets.append(["Pop", 0, -1.6, 4.8, 7.2, 8, 5.6, 0, -2.4, -2.4, -1.6, -1.6]) self.presets.append(["Reggae", 0, 0, 0, 0, -5.6, 0, 6.4, 6.4, 0, 0, 0]) self.presets.append(["Rock", 0, 8, 4.8, -5.6, -8, -3.2, 4, 8.8, 11.2, 11.2, 11.2]) self.presets.append(["Ska", 0, -2.4, -4.8, -4, 0, 4, 5.6, 8.8, 9.6, 11.2, 9.6]) self.presets.append(["Soft", 0, 4.8, 1.6, 0, -2.4, 0, 4, 8, 9.6, 11.2, 12]) self.presets.append(["Soft Rock", 0, 4, 4, 2.4, 0, -4, -5.6, -3.2, 0, 2.4, 8.8]) self.presets.append(["Techno", 0, 8, 5.6, 0, -5.6, -4.8, 0, 8, 9.6, 9.6, 8.8]) dist/copy/plugins/equalizer/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260021100 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/equalizer/PLUGININFO0000644000000000000000000000021612233027260020037 0ustar00rootroot00000000000000Version='0.0.4' Authors=['Dave Aitken '] Name=_('Equalizer') Description=_('A 10-band equalizer') Category=_('Effect') dist/copy/plugins/equalizer/PaxHeaders.26361/equalizer.ui0000644000175000017500000000012412233027260022043 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.189046935 exaile-3.3.2/plugins/equalizer/equalizer.ui0000644000000000000000000006552312233027260021016 0ustar00rootroot00000000000000 Equalizer center 480 260 utility True vertical True True 0 gtk-add True True True True False 1 gtk-remove True True True True False 2 False 5 0 True False 1 True True False 0 Enabled True True False True False 3 1 False 3 2 True True vertical True True vertical adj-pre True 0 True pre False 1 0 True vertical False 1 True vertical True 0.20999999344348907 +12 dB 90 False 0 True 0.31999999284744263 0 1 True 0.82999998331069946 -24 dB 90 False 2 2 True vertical False 3 True vertical True True vertical adj-band0 True 0 True 29 4 False 1 4 True vertical True True vertical adj-band1 True 0 True 59 4 False 1 5 True vertical True True vertical adj-band2 True 0 True 119 4 False 1 6 True vertical True True vertical adj-band3 True 0 True 237 4 False 1 7 True vertical True True vertical adj-band4 True 0 True 474 4 False 1 8 True vertical True True vertical adj-band5 True 0 True 947 4 False 1 9 True vertical True True vertical adj-band6 True 0 True 1.9K 4 False 1 10 True vertical True True vertical adj-band7 True 0 True 3.8K 4 False 1 11 True vertical True True vertical adj-band8 True 0 True 7.5K 4 False 1 12 True vertical True True vertical adj-band9 True 0 True 15K 3 False 1 13 5 3 -24 12 0.10000000000000001 10 0.001 -24 12 0.10000000000000001 10 0.001 -24 12 0.10000000000000001 10 -24 12 0.10000000000000001 10 -24 12 0.10000000000000001 10 -24 12 0.10000000000000001 10 -24 12 0.10000000000000001 10 -24 12 0.10000000000000001 10 -24 12 0.10000000000000001 10 -24 12 0.10000000000000001 10 -24 12 0.10000000000000001 10 dist/copy/plugins/PaxHeaders.26361/lastfmcovers0000644000175000017500000000013212233027261020135 xustar000000000000000030 mtime=1382821553.697046951 30 atime=1382821552.789046922 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/lastfmcovers/0000755000000000000000000000000012233027261017153 5ustar00rootroot00000000000000dist/copy/plugins/lastfmcovers/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260022323 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.509046945 exaile-3.3.2/plugins/lastfmcovers/__init__.py0000644000000000000000000000670512233027260021273 0ustar00rootroot00000000000000# Copyright (C) 2009-2010 Aren Olson, Johannes Schwarz # # 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, 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 contextlib import closing import gio from glib import GError import hashlib from urllib import quote_plus try: import xml.etree.cElementTree as ETree except: import xml.etree.ElementTree as ETree from xl import ( covers, event, providers ) # Last.fm API Key for Exaile # if you reuse this code in a different application, please # register your own key with last.fm API_KEY = '3599c79a97fd61ce518b75922688bc38' LASTFM = None def enable(exaile): if exaile.loading: event.add_callback(_enable, "exaile_loaded") else: _enable(None, exaile, None) def _enable(eventname, exaile, nothing): global LASTFM LASTFM = LastFMCoverSearch() providers.register('covers', LASTFM) def disable(exaile): providers.unregister('covers', LASTFM) class LastFMCoverSearch(covers.CoverSearchMethod): """ Searches Last.fm for covers """ name = 'lastfm' title = 'Last.fm' type = 'remote' # fetches remotely as opposed to locally url = 'http://ws.audioscrobbler.com/2.0/?method={type}.search&{type}={value}&api_key={api_key}' def find_covers(self, track, limit=-1): """ Searches last.fm for album covers """ # TODO: handle multi-valued fields better try: (artist, album, title) = track.get_tag_raw('artist')[0], \ track.get_tag_raw('album')[0], \ track.get_tag_raw('title')[0] except TypeError: return [] if not artist or not album or not title: return [] for type, value in (('album', album), ('track', title)): url = self.url.format( type=type, value=quote_plus(value.encode("utf-8")), api_key=API_KEY ) try: with closing(gio.DataInputStream(gio.File(url).read())) as stream: data = stream.read() except GError: continue try: xml = ETree.fromstring(data) except SyntaxError: continue for element in xml.getiterator(type): if (element.find('artist').text == artist.encode("utf-8")): for sub_element in element.findall('image'): if (sub_element.attrib['size'] == 'extralarge'): url = sub_element.text if url: return [url] return [] def get_cover_data(self, cover_url): try: with closing(gio.DataInputStream(gio.File(cover_url).read())) as stream: data = stream.read() except GError: return None return data dist/copy/plugins/lastfmcovers/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260021607 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/lastfmcovers/PLUGININFO0000644000000000000000000000030112233027260020541 0ustar00rootroot00000000000000Version='0.1.0' Authors=['Adam Olsen ', 'Johannes Schwarz '] Name=_('Last.fm Covers') Description=_('Searches Last.fm for covers') Category=_('Covers') dist/copy/plugins/PaxHeaders.26361/replaygain0000644000175000017500000000013212233027261017560 xustar000000000000000030 mtime=1382821553.697046951 30 atime=1382821552.789046922 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/replaygain/0000755000000000000000000000000012233027261016576 5ustar00rootroot00000000000000dist/copy/plugins/replaygain/PaxHeaders.26361/replaygainprefs.py0000644000175000017500000000012412233027260023402 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.569046947 exaile-3.3.2/plugins/replaygain/replaygainprefs.py0000644000000000000000000000356612233027260022354 0ustar00rootroot00000000000000# Copyright (C) 2009-2010 Aren Olson # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import os from xlgui.preferences import widgets from xl import xdg from xl.nls import gettext as _ name = _('ReplayGain') basedir = os.path.dirname(os.path.realpath(__file__)) ui = os.path.join(basedir, "replaygainprefs_pane.ui") class AlbumModePreference(widgets.CheckPreference): default = True name = 'replaygain/album-mode' class ClippingProtectionPreference(widgets.CheckPreference): default = True name = 'replaygain/clipping-protection' class PreAmpPreference(widgets.SpinPreference): default = 0 name = 'replaygain/pre-amp' class FallbackGainPreference(widgets.SpinPreference): default = 0 name = 'replaygain/fallback-gain' dist/copy/plugins/replaygain/PaxHeaders.26361/replaygainprefs_pane.ui0000644000175000017500000000012412233027260024372 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.317046939 exaile-3.3.2/plugins/replaygain/replaygainprefs_pane.ui0000644000000000000000000001413112233027260023332 0ustar00rootroot00000000000000 -60 60 1 10 0 -60 60 1 10 0 True 3 Prefer per-album correction True True False Prefer ReplayGain's per-album correction over per-track correction. True False 0 Use clipping protection True True False Protect against noise caused by over-amplification True False 1 True Additional amplification to apply to all files True Additional amplification (dB): False 2 0 True True adjustment1 False 1 False 2 True Fallback correction for files that lack ReplayGain information True 2 Fallback correction level (dB): False 2 0 True True adjustment2 False 1 False 3 True 5 dist/copy/plugins/replaygain/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260021746 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.509046945 exaile-3.3.2/plugins/replaygain/__init__.py0000644000000000000000000001042612233027260020711 0ustar00rootroot00000000000000# Copyright (C) 2009-2010 Aren Olson # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. from xl import providers, event, settings from xl.player.pipe import ElementBin import gst try: import replaygainprefs def get_preferences_pane(): return replaygainprefs except: # fail gracefully if we cant set up the UI pass NEEDED_ELEMS = ["rgvolume", "rglimiter"] def enable(exaile): for elem in NEEDED_ELEMS: if not gst.element_factory_find(elem): raise ImportError, "Needed gstreamer element %s missing."%elem providers.register("stream_element", ReplaygainVolume) providers.register("stream_element", ReplaygainLimiter) def disable(exaile): providers.unregister("stream_element", ReplaygainVolume) providers.unregister("stream_element", ReplaygainLimiter) class ReplaygainVolume(ElementBin): """ Handles replaygain volume adjustment and pre-amp. Placed at 20 in the pipeline, since most elements should do their processing after it. """ index = 20 name = "rgvolume" def __init__(self, player): ElementBin.__init__(self, player, name=self.name) self.audioconvert = gst.element_factory_make("audioconvert") self.elements[40] = self.audioconvert self.rgvol = gst.element_factory_make("rgvolume") self.elements[50] = self.rgvol self.setup_elements() event.add_callback(self._on_option_set, "replaygain_option_set") # load settings for x in ("album-mode", "pre-amp", "fallback-gain"): self._on_option_set("replaygain_option_set", None, "replaygain/%s"%x) def _on_option_set(self, name, object, data): if data == "replaygain/album-mode": self.rgvol.set_property("album-mode", settings.get_option("replaygain/album-mode", True)) elif data == "replaygain/pre-amp": self.rgvol.set_property("pre-amp", settings.get_option("replaygain/pre-amp", 0)) elif data == "replaygain/fallback-gain": self.rgvol.set_property("fallback-gain", settings.get_option("replaygain/fallback-gain", 0)) class ReplaygainLimiter(ElementBin): """ Implements clipping protection. Placed at 80 in the pipeline so that other elements can come before it if necessary. """ index = 80 name = "rglimiter" def __init__(self, player): ElementBin.__init__(self, player, name=self.name) self.rglimit = gst.element_factory_make("rglimiter") self.elements[50] = self.rglimit self.audioconvert = gst.element_factory_make("audioconvert") self.elements[60] = self.audioconvert self.setup_elements() event.add_callback(self._on_option_set, "replaygain_option_set") self._on_option_set("replaygain_option_set", None, "replaygain/clipping-protection") def _on_option_set(self, name, object, data): if data == "replaygain/clipping-protection": self.rglimit.set_property("enabled", settings.get_option("replaygain/clipping-protection", True)) dist/copy/plugins/replaygain/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260021232 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/replaygain/PLUGININFO0000644000000000000000000000022312233027260020167 0ustar00rootroot00000000000000Version='0.0.3' Authors=['Aren Olson '] Name=_('ReplayGain') Description=_('Enables ReplayGain support') Category=_('Effect') dist/copy/plugins/PaxHeaders.26361/abrepeat0000644000175000017500000000013212233027261017210 xustar000000000000000030 mtime=1382821553.513046945 30 atime=1382821552.789046922 30 ctime=1382821553.513046945 exaile-3.3.2/plugins/abrepeat/0000755000000000000000000000000012233027261016226 5ustar00rootroot00000000000000dist/copy/plugins/abrepeat/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260021376 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.513046945 exaile-3.3.2/plugins/abrepeat/__init__.py0000644000000000000000000001206712233027260020344 0ustar00rootroot00000000000000# Copyright (C) 2010 Mathias Brodala # # 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, 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 gtk from xl import event, player, providers from xl.nls import gettext as _ from xlgui.widgets import playback MENU_ITEM = None def enable(exaile): """ Enables the plugin """ global MENU_ITEM MENU_ITEM = RepeatSegmentMenuItem() providers.register('progressbar-context-menu', MENU_ITEM) def disable(exaile): """ Disables the plugin """ global MENU_ITEM MENU_ITEM.destroy() providers.unregister('progressbar-context-menu', MENU_ITEM) class RepeatSegmentMenuItem(playback.MoveMarkerMenuItem, providers.ProviderHandler): """ Menu item allowing for insertion of two markers to signify beginning and end of the segment to repeat """ def __init__(self): playback.MoveMarkerMenuItem.__init__(self, 'repeat-segment', [], _('Repeat Segment'), 'media-playlist-repeat') providers.ProviderHandler.__init__(self, 'playback-markers') self.beginning_marker = playback.Marker() self.beginning_marker.name = 'repeat-beginning' self.beginning_marker.props.anchor = gtk.ANCHOR_NORTH_WEST self.beginning_marker.props.label = _('Repeat Beginning') self.end_marker = playback.Marker() self.end_marker.name = 'repeat-end' self.end_marker.props.anchor = gtk.ANCHOR_NORTH_EAST self.end_marker.props.label = _('Repeat End') self.end_marker.connect('reached', self.on_end_marker_reached) event.add_callback(self.on_playback_track_end, 'playback_track_end') def destroy(self): """ Cleanups """ event.remove_callback(self.on_playback_track_end, 'playback_track_end') self.clear_markers() def factory(self, menu, parent, context): """ Generates the menu item """ item = playback.MoveMarkerMenuItem.factory(self, menu, parent, context) markers = (providers.get_provider('playback-markers', n) for n in ('repeat-beginning', 'repeat-end')) if player.PLAYER.current is None: item.set_sensitive(False) elif None not in markers: # Disable if the markers have already been set item.set_sensitive(False) return item def clear_markers(self): """ Removes both markers """ for name in ('repeat-beginning', 'repeat-end'): marker = providers.get_provider('playback-markers', name) if marker is not None: providers.unregister('playback-markers', marker) def on_activate(self, widget, parent, context): """ Inserts the beginning (A) marker """ self.beginning_marker.props.position = context['current-position'] providers.register('playback-markers', self.beginning_marker) context['current-marker'] = self.beginning_marker playback.MoveMarkerMenuItem.on_activate(self, widget, parent, context) def on_parent_button_press_event(self, widget, event): """ Finishes or cancels insertion of markers """ if event.button == 1: if self.move_finish(): if providers.get_provider('playback-markers', 'repeat-end') is None: position = event.x / widget.allocation.width self.end_marker.props.position = position providers.register('playback-markers', self.end_marker) self.move_begin(self.end_marker) return True elif event.button == 3: if self.move_cancel(): self.clear_markers() return True return False def on_end_marker_reached(self, marker): """ Seeks to the beginning marker """ player.PLAYER.set_progress(self.beginning_marker.props.position) def on_provider_removed(self, provider): """ Removes the opposite marker if one of the two markers is removed """ names = ('repeat-beginning', 'repeat-end') if provider.name in names: self.clear_markers() def on_playback_track_end(self, event_type, player, track): """ Removes both markers """ self.clear_markers() dist/copy/plugins/abrepeat/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260020662 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.097046932 exaile-3.3.2/plugins/abrepeat/PLUGININFO0000644000000000000000000000024412233027260017622 0ustar00rootroot00000000000000Version='0.0.1' Authors=['Mathias Brodala '] Name=_('A-B Repeat') Description=_('Continuously repeats a segment of a track.') Category=_('Effect') dist/copy/plugins/PaxHeaders.26361/lastfmlove0000644000175000017500000000013212233027261017601 xustar000000000000000030 mtime=1382821553.693046951 30 atime=1382821552.789046922 30 ctime=1382821553.693046951 exaile-3.3.2/plugins/lastfmlove/0000755000000000000000000000000012233027261016617 5ustar00rootroot00000000000000dist/copy/plugins/lastfmlove/PaxHeaders.26361/lastfmlove_preferences.ui0000644000175000017500000000012412233027260024752 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.693046951 exaile-3.3.2/plugins/lastfmlove/lastfmlove_preferences.ui0000644000000000000000000001720412233027260023716 0ustar00rootroot00000000000000 False True False 3 6 True False 2 2 6 6 True False 1 API key: GTK_FILL True False 1 Secret: 1 2 GTK_FILL True True 1 2 True True 1 2 1 2 False False 0 True True True False True False 6 True False 1 gtk-network 6 True True 0 True False 0 Request Access Permission True True 1 False False 1 True False 6 True False gtk-dialog-info 6 False False 0 True False 0 0 4 Go to <b><a href="http://www.last.fm/api/account">Your API Account</a></b> page to get an <b>API key</b> and <b>secret</b> and enter them here. After you have entered these, <b>request access permission</b> and confirm to complete the setup. True True True True 1 False False 2 dist/copy/plugins/lastfmlove/PaxHeaders.26361/icons0000644000175000017500000000013212233027260020713 xustar000000000000000030 mtime=1382821552.785046922 30 atime=1382821552.789046922 30 ctime=1382821552.785046922 exaile-3.3.2/plugins/lastfmlove/icons/0000755000000000000000000000000012233027260017731 5ustar00rootroot00000000000000dist/copy/plugins/lastfmlove/icons/PaxHeaders.26361/48x480000644000175000017500000000013212233027261021513 xustar000000000000000030 mtime=1382821553.317046939 30 atime=1382821552.789046922 30 ctime=1382821553.317046939 exaile-3.3.2/plugins/lastfmlove/icons/48x48/0000755000000000000000000000000012233027261020531 5ustar00rootroot00000000000000dist/copy/plugins/lastfmlove/icons/48x48/PaxHeaders.26361/love.png0000644000175000017500000000012412233027260023243 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.097046932 exaile-3.3.2/plugins/lastfmlove/icons/48x48/love.png0000644000000000000000000000514712233027260022212 0ustar00rootroot00000000000000PNG  IHDR00WsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org< IDATh[dEunݧ/sݙݹeY 7>h$&&\v D 1`""IL4 !,@|1lhL .˲\{=RЗag/@HJU:WQ"§9ObS/9/*S`,00M|RNt! !Kd|6W`6+ۊ-Bb1pX+Den,pmYA J1mseݺy~ @".)Lϱ_X*\<8 Ri JPLJ]9e3u @X87sKr%2½ErAS6[qԖ+wP/BlebW;yƌw&)_WJuFۯ׵_u|yRl!h]G &)CT& q{i}BKgFWHb ]lV ژ# gGS>:uJK[@ ^(ϊ,AOӷ{[) sX5/+eNJ˿t&!{]JXmVNs>h3 {`ee]d|Z,J Ius D?ՙN2گţүkZ/[h_2B\#DH飻^~BߝJɭ6\aC~n(ujt`0USĆŧ458]j•lSϯhJA`  &^j%!R)@`{#fjz XB5o4LexN% +wRn:Mu$3uaOTd%.$$ I$\@SQv%@$jl2-#,->Z & "e/E 0L0xM6wFii+ }S 8n PPavЕeTۈ+Z@T\h\{!L\<#KT)%DuoSBsaJ.j,KnoQ) yMa^*L͗FW:LX+KHm kwMS;Vg~P5W p삣TςH01)l{X@̎Lw{;DFymSqre>еrmR KLO·"ܳMk?|LxiB9@,OL,;E[! Anտl7Vx@7J)'hP gmW '~\J8$zP2?6mgBᖛDU/hkSS{D9;@$Ĭɏ-,g͓"FKK3 sI vCd0&جX߇ 5(l5عi]9qSYno/D iff%Cdd)Cܖ۽%6wvrfnt&/La"c꿡+(tujִC)=8q)I336 ^fCMfuwMn[;q t1I͇ثAQ)cC3o;$V<nwa~{𮃿(B*`n|Y#0 D@"^U{x yc߷ꝾZ㣵s{;AA $9sb<_1{Xo 8pp_m5nT&\g;F/hyo4|Px˭4rYF'Zp7O3[h:.VɒEx1"-Fg?k ذUY緂@|!w7YxY*/7{t#AH\ЄԱ=_zpx صfz13`H.uCQC}{i}YL5 ^5#'&·yq3gr@>"vG-u\"ݝ1Z R|Ǟ][Q\."¢f-9a>ůs-"J~4YoEHz -Bрo$.÷*S;5PpY8Fe 8QZ(ΎӀ Aܫ­h |#5C ^o~$d, ַw/xs?_O8>IIENDB`dist/copy/plugins/lastfmlove/icons/48x48/PaxHeaders.26361/send-receive.png0000644000175000017500000000012412233027260024647 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.317046939 exaile-3.3.2/plugins/lastfmlove/icons/48x48/send-receive.png0000644000000000000000000000341412233027260023611 0ustar00rootroot00000000000000PNG  IHDR00WsRGBbKGD pHYs B(xtIME t\IDAThXklT̽{]/1׏ҴD$HRjGRVtNӨ4 @I"Ei`Bc+G:ٝ}ss *Gk)q)(Dc>sk `)PgT֊ejIy$T&s>j׸ٟ]A 0ȮJ)BzLp`"${ mtRh fKK[h ʪ [ f,[]>Tm#0H  mVUX3nq+4ʒoϝHt>>܍ dUtSFBa|{+˪uOҫ/ IZzORo~Zwq= Ix2a=Rwk A\- Ck0f۹7͋ Yxqx'ϪKa Tdw#&R_uGW 0 +ӂڍ5R:֎U}m?h?щS|^3qٷ0cӷON8 W^ow`;V4=5w ]٢ه@`\<4޿[}7Sh_FX%@‰%OFG| pX T? ^O-/)(D:"]ђJYL8z8`hEy{WZPY鏭G;eպ= x!7/V_Զ[UvF qg{Uf#EKꝾpvx <@30ȁW4lوvE 9*A :xYsk㥮g`\Ŀ*kZ}o[dJXOʌ}hΞ-0u\*z.a g^:C#Y8j7u=;#㿈Jɜ"gEd,|Mw7m|a R|6' ޝAd,o|Ͷv8+BtdIۖC!!!ҁ5ӴO$2 u#\]2'H=aX*soe~.m"+L ̐ޛW[C@Ty3.5@$AY6iVf0/hW¶b23$ D`(d=flq 3lL3ޭ.b0C/"]gYT$&}TN`_sP!ؖf\el vϱ"A i's4悷,Ȃ,Ųӱ#IENDB`dist/copy/plugins/lastfmlove/icons/PaxHeaders.26361/16x160000644000175000017500000000013212233027261021501 xustar000000000000000030 mtime=1382821553.317046939 30 atime=1382821552.789046922 30 ctime=1382821553.317046939 exaile-3.3.2/plugins/lastfmlove/icons/16x16/0000755000000000000000000000000012233027261020517 5ustar00rootroot00000000000000dist/copy/plugins/lastfmlove/icons/16x16/PaxHeaders.26361/love.png0000644000175000017500000000012412233027260023231 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.097046932 exaile-3.3.2/plugins/lastfmlove/icons/16x16/love.png0000644000000000000000000000134612233027260022175 0ustar00rootroot00000000000000PNG  IHDRasBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<cIDAT8MHTQ;oGg4AP (H"!ZRIBAkӶ} HA Hh udtȯqf|3:wOAtq?!CAd/# a5.o@̌AÒi@4&SbnDD<"C#4 HAczW%l] A荋v ]*8f~,\^IX[_ V)g9g+ف7PLA=DY* A *kZڲmxX%іvX2H(ή"= vg y|{z3zEU S˰V+>>܎c@#Y0NGAMe`[τnh񹴇q z,hxM#hRɼvj?/wb azMy"kBz~"#Ƶ̓F:>6=W:6.sre>Gd(4 _kN/.a1 —pCMܬ ꍙYcV=̅Bf>1/WҶ IENDB`dist/copy/plugins/lastfmlove/icons/16x16/PaxHeaders.26361/lastfm.png0000644000175000017500000000012412233027260023552 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.265046937 exaile-3.3.2/plugins/lastfmlove/icons/16x16/lastfm.png0000644000000000000000000000142712233027260022516 0ustar00rootroot00000000000000PNG  IHDRasRGBbKGD pHYs B(xtIME:P.dIDAT8ˍMlUs evZa(@ X4,. !1nLLLLF $.0F7*K!&Ƅ)B+v,{u u}yϛ9A  ) 9G6(m㵾a {e[co ("+S&,RޥNP]Q!d wKb O!6;ŧ)) EBO2*N9܃|`7b >I꿱l{+}LMEscA7oHcVxNϠK&쮠q4>NiyϑLc/(b l946#| +hs Wl{+?=K=T?ģL6nq@?K29d |_C @Dh|{Un:9J]aͮT?y]v }5 ֓L7f`aW>v?3'Oܙb0--|#OsR"rx4Ns`-XDH9 > _@Cԡ#{:Fb)x7{:FCW~ZK= h]vsώ#s1}C8IENDB`dist/copy/plugins/lastfmlove/icons/16x16/PaxHeaders.26361/send-receive.png0000644000175000017500000000012412233027260024635 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.317046939 exaile-3.3.2/plugins/lastfmlove/icons/16x16/send-receive.png0000644000000000000000000000110112233027260023566 0ustar00rootroot00000000000000PNG  IHDRasBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<IDAT8MkQ;$()qׅ`v6ƒ VEWh@ XH*4 MAZpaBW#teh24ɼ. սp5eC sGg Pܼ."ϳXle_Jvs[XC[>O Io!CxXc|WX4r)p6Ln1|aiY&2s,&2s',mM#SwΆurA8%C% ?Bo.Z $$Q}K$oGT]GO_[3k)965R0e&- ’臏WTw.㕮N[p$pj5ըTwQV:"q6SVN]%;7<Uu?S2HL2x./#_`ma/h66!EIENDB`dist/copy/plugins/lastfmlove/icons/PaxHeaders.26361/32x320000644000175000017500000000013212233027261021475 xustar000000000000000030 mtime=1382821553.317046939 30 atime=1382821552.789046922 30 ctime=1382821553.317046939 exaile-3.3.2/plugins/lastfmlove/icons/32x32/0000755000000000000000000000000012233027261020513 5ustar00rootroot00000000000000dist/copy/plugins/lastfmlove/icons/32x32/PaxHeaders.26361/love.png0000644000175000017500000000012412233027260023225 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.097046932 exaile-3.3.2/plugins/lastfmlove/icons/32x32/love.png0000644000000000000000000000321612233027260022167 0ustar00rootroot00000000000000PNG  IHDR szzsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org< IDATX[lW3][8c҆ BLS *!/\KyQUM  HZ ^ڻ̜nM ttV{ΙsS"­ / <ԽŇ'V,d~Hd1)1xV<"pĴ6y +OlhՑB)e0x,fzn-=~$p9rkD~{Co+ѣxw9&>Gbr]\mr?_nlٝco;Tr')DNDRX// /-hF[ɾ>Ju3s 5Z]RUDg~EϽo@c5H}֘jH6FAQmޞ{kPmphZK~vԠb ]7&(˺?01/Rl)B3#Sv,e|\~-j2mz4XIFjbrсX!֫@xwߑXXjhd5"^&5.Zh.dI (b4Nc'픛խYzy`L[!ʹ T*ć`c?Tʞ1 ,0U45[1ܗ{nm~%5 àwK <CnѠ뽑1ST.en;m͑RtPKZk.VK#&818R@R6ְq:FqJ_*W4M5S_-Մ*fuz])<7bfUuQ8h=V7.l--wT"7wVWw)G'fǒ0&*DN ]鷜T v9u;-lK3@JoLWi})t%ۭҚk ̋Fxho0Mr6Pv:E=r^cU7yڹ=+u#frιTLK"=6Kם9=+"8hO+5ۡFbULտ!<>6Lj8==yݚO(5>x͔RHa⃊ -K,||*@u ykuDl ^阃ԧOXѭ8} !"q<1߆?9^۟@IENDB`dist/copy/plugins/lastfmlove/icons/32x32/PaxHeaders.26361/send-receive.png0000644000175000017500000000012412233027260024631 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.317046939 exaile-3.3.2/plugins/lastfmlove/icons/32x32/send-receive.png0000644000000000000000000000215212233027260023571 0ustar00rootroot00000000000000PNG  IHDR szzsRGBbKGD pHYs B(xtIME BcuIDATXŖoTU? i"mj]Q`1QnGX`B5!lML [&%BP*RŴt(o~{\̛2Nӛ}=% 7TuUL.wLf|L5}^wqEF` ո)bW0"d  :&2gM(qMt392Oeup8惖=qc܊V*{+^.g[QQRUDxht~"EObpq1.'n )H٣uAﱰ}n67<8upJ\ ٹ\_ﱰmföۣ`0 8=z'JO?ևmmh.#cS+MNf\8~퐺+go{ht:4ׇoYc]lՙ?FJ@-$ve3L0͇RnK"nii 2|_ExVv1[ٹu[):pk^BǗJ 8س$~=M<$깶g] DLmka:a!Ի+-Q"pKޗ?45x⋣$y{T*H^#lZ>LOXQW;NgG#J&HsCv-Og{: _ܺW`擧(L@1-$k&P(Ўi|yoHLLуlR,c2$Sփq*\-C`՘ 1(]TD$D$URIJ`T%DĬI"^݋uU1H/eA((&")WE fVUE&GG".""RDcQDDU(`c+ƥ[w8QNkl\ʾ+q&ep*LhǖrmU)y pKV&au>^= |C5IENDB`dist/copy/plugins/lastfmlove/icons/PaxHeaders.26361/22x220000644000175000017500000000013212233027261021473 xustar000000000000000030 mtime=1382821553.317046939 30 atime=1382821552.789046922 30 ctime=1382821553.317046939 exaile-3.3.2/plugins/lastfmlove/icons/22x22/0000755000000000000000000000000012233027261020511 5ustar00rootroot00000000000000dist/copy/plugins/lastfmlove/icons/22x22/PaxHeaders.26361/love.png0000644000175000017500000000012412233027260023223 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.097046932 exaile-3.3.2/plugins/lastfmlove/icons/22x22/love.png0000644000000000000000000000175312233027260022171 0ustar00rootroot00000000000000PNG  IHDRĴl;sBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<hIDAT8ՔKlUwiNֶi b5" Wh {+cb\Ѕ W0E%B$K~Tʟq*4kz::Ix5t=ĶaD;`4'hi=H`u#\-wrJ̼|x.wpoAk(n0PiĒ.h];y}Kˈ֠ rbΧ(^صN"zʥj]m!uJ S?U+. ؗ1vcvm,{yKXv[,kuD4~(< ޮb{zʍPqRbN)Wcku|VCOj8ܦ@?N>+cDMhw7)Y=XȦPЁgF֕;8ZhSw=JM)j$8+F*)sȭ6J)χpr?:ku%z٫Pد)62"R}hBG`ӎYJ'wҐ @V݇u&"[> ;O+.} N mց:Q΁Iw LBNXIENDB`dist/copy/plugins/lastfmlove/icons/22x22/PaxHeaders.26361/lastfm.png0000644000175000017500000000012412233027260023544 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.265046937 exaile-3.3.2/plugins/lastfmlove/icons/22x22/lastfm.png0000644000000000000000000000163212233027260022506 0ustar00rootroot00000000000000PNG  IHDRĴl;sRGBbKGD pHYs B(xtIME UMIDAT8˵_h[Uz4i6Zװn¬::_8dcsnJA1 WA"2QNMtJWRۭ*ҭV6ޛ4RF݁p>~|Z <)Ê"骑4*Kh<'OmJE%q)،pܪ0_ױ5kz4؃X֕#FGkB8.\x7T}D{+¹ ǥ@V/3iZϾAqśYG8WX[[1ˍC/(cO5 7;9 ̉4C,}1~vW?^y_'\w t:þbOM$"d}ݴ35ü FDM'M6Nd&ےړ~dO6NHM]UnMVL8("x4s_R X*Rˊd)2|RIENDB`dist/copy/plugins/lastfmlove/icons/22x22/PaxHeaders.26361/send-receive.png0000644000175000017500000000012412233027260024627 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.317046939 exaile-3.3.2/plugins/lastfmlove/icons/22x22/send-receive.png0000644000000000000000000000127712233027260023576 0ustar00rootroot00000000000000PNG  IHDRĴl;sRGBbKGD pHYs B(xtIME!!??IDAT8˵kAww)%j{ x?ЛM/ XPKO`^sHŃPh R?`zL'E[B!dݲi6-taxw33ygQնCO 9L&o=_kd[ꬣ,j9I||:bQx+p c+U~n}e8dR rfqˋG*]]Cjq2K)T9Icg^'"X$9cpoqUɶUǹ9IoD+j?уo:4c ͡jCΒNۛ˪F>\55c'٬/>U[+ :Ƅ Z*XZ٘؅~Fp5弚r^Ŵ hxw77qnfޡl{{&+WN^߈Jdr٬BDECD"⊈#"v+d g>V AOD<U`XF-]; ﶈ Ym+pnb݋:+V4+{`5a 7IQ@dIENDB`dist/copy/plugins/lastfmlove/PaxHeaders.26361/lastfmlove_preferences.py0000644000175000017500000000012412233027260024765 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.565046947 exaile-3.3.2/plugins/lastfmlove/lastfmlove_preferences.py0000644000000000000000000000700412233027260023726 0ustar00rootroot00000000000000# Copyright (C) 2011 Mathias Brodala # # 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, 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 glib import gtk import os.path import pylast from xl.nls import gettext as _ from xl import ( common, settings ) from xlgui import icons from xlgui.preferences import widgets from xlgui.widgets import dialogs name = _('Last.fm Loved Tracks') basedir = os.path.dirname(os.path.realpath(__file__)) ui = os.path.join(basedir, "lastfmlove_preferences.ui") icons.MANAGER.add_icon_name_from_directory('lastfm', os.path.join(basedir, 'icons')) icon = 'lastfm' class APIKeyPreference(widgets.Preference): name = 'plugin/lastfmlove/api_key' class APISecretPrefence(widgets.Preference): name = 'plugin/lastfmlove/api_secret' class RequestAccessPermissionButton(widgets.Button): name = 'plugin/lastfmlove/request_access_permission' def __init__(self, preferences, widget): """ Sets up the message """ widgets.Button.__init__(self, preferences, widget) self.message = dialogs.MessageBar( parent = preferences.builder.get_object('preferences_box'), buttons=gtk.BUTTONS_CLOSE ) self.errors = { pylast.STATUS_INVALID_API_KEY: _('The API key is invalid.') } @common.threaded def check_connection(self): """ Checks API key and secret for validity and opens the URI for access permission """ api_key = settings.get_option('plugin/lastfmlove/api_key', 'K') try: network = pylast.LastFMNetwork( api_key=api_key, api_secret=settings.get_option('plugin/lastfmlove/api_secret', 'S'), username=settings.get_option('plugin/ascrobbler/user', ''), password_hash=settings.get_option('plugin/ascrobbler/password', '') ) except pylast.WSError as e: glib.idle_add( self.message.show_error, self.errors[int(e.get_id())], _('Please make sure the entered data is correct.') ) else: application_launched = gtk.show_uri( gtk.gdk.screen_get_default(), 'http://www.last.fm/api/auth?api_key={0}'.format(api_key), gtk.gdk.CURRENT_TIME ) if not application_launched: url = 'http://www.last.fm/api/auth?api_key={0}'.format(api_key) glib.idle_add( self.message.show_warning, _('Could not start web browser'), _('Please copy the following URL and ' 'open it with your web browser:\n' '{url}').format(url=url) ) def on_clicked(self, button): """ Initiates the check for validity """ self.check_connection() dist/copy/plugins/lastfmlove/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260021767 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.513046945 exaile-3.3.2/plugins/lastfmlove/__init__.py0000644000000000000000000003003312233027260020726 0ustar00rootroot00000000000000# Copyright (C) 2011 Mathias Brodala # # 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, see . import gtk import logging import os.path from threading import ( Thread, Timer ) from xl import ( common, event, player, providers, settings ) from xl.nls import gettext as _ from xlgui import icons from xlgui.widgets.menu import MenuItem from xlgui.widgets.playlist_columns import ( Column, ColumnMenuItem ) import pylast import lastfmlove_preferences from cellrenderertoggleimage import CellRendererToggleImage LASTFMLOVER = None logger = logging.getLogger(__name__) basedir = os.path.dirname(os.path.realpath(__file__)) icons.MANAGER.add_icon_name_from_directory('love', os.path.join(basedir, 'icons')) icons.MANAGER.add_icon_name_from_directory('send-receive', os.path.join(basedir, 'icons')) # Monkey patch to add "unlove" to tracks # See: http://code.google.com/p/pylast/issues/detail?id=64 def unlove(self): """ Removes the track from the user's loved tracks. """ self._request('track.unlove') pylast.Track.unlove = unlove del unlove # Monkey patch to properly handle the limit for requests # See: http://code.google.com/p/pylast/issues/detail?id=63 def _collect_nodes(limit, sender, method_name, cacheable, params=None): """ Returns a sequqnce of dom.Node objects about as close to limit as possible """ if not params: params = sender._get_params() nodes = [] page = 1 end_of_pages = False while not end_of_pages and (not limit or (limit and len(nodes) < limit)): params["page"] = str(page) doc = sender._request(method_name, cacheable, params) main = doc.documentElement.childNodes[1] if main.hasAttribute("totalPages"): total_pages = pylast._number(main.getAttribute("totalPages")) elif main.hasAttribute("totalpages"): total_pages = pylast._number(main.getAttribute("totalpages")) else: raise Exception("No total pages attribute") for node in main.childNodes: if not node.nodeType == pylast.xml.dom.Node.TEXT_NODE and (not limit or len(nodes) < limit): nodes.append(node) if page >= total_pages: end_of_pages = True page += 1 return nodes pylast._collect_nodes = _collect_nodes del _collect_nodes def enable(exaile): """ Handles the deferred enable call """ global LASTFMLOVER LASTFMLOVER = LastFMLover() def disable(exaile): """ Disables the desktop cover plugin """ global LASTFMLOVER LASTFMLOVER.destroy() def get_preferences_pane(): return lastfmlove_preferences class LoveColumn(Column): name = 'loved' display = _('Loved') menu_title = _('Last.fm Loved') size = 50 renderer = CellRendererToggleImage datatype = bool dataproperty = 'active' def __init__(self, *args): Column.__init__(self, *args) self.model = None pixbuf = icons.MANAGER.pixbuf_from_icon_name('love', self.get_icon_height()) self.cellrenderer.props.pixbuf = pixbuf self.cellrenderer.connect('toggled', self.on_toggled) def data_func(self, column, cellrenderer, model, iter): """ Displays the loved state """ global LASTFMLOVER track = model.get_value(iter, 0) lastfm_track = pylast.Track( track.get_tag_display('artist'), track.get_tag_display('title'), LASTFMLOVER.network ) cellrenderer.props.active = lastfm_track in LASTFMLOVER.loved_tracks if LASTFMLOVER.network is None: cellrenderer.props.sensitive = False cellrenderer.props.render_prelit = False else: cellrenderer.props.sensitive = True cellrenderer.props.render_prelit = True self.model = model def on_toggled(self, cellrenderer, path): """ Loves or unloves the selected track """ global LASTFMLOVER if cellrenderer.props.sensitive and LASTFMLOVER.network is not None: track = self.model.get_value(self.model.get_iter(path), 0) LASTFMLOVER.toggle_loved(track) class LoveMenuItem(MenuItem): """ A menu item representing the loved state of a track and allowing for loving and unloving it """ def __init__(self, after, get_tracks_function=None): MenuItem.__init__(self, 'loved', None, after) self.get_tracks_function = get_tracks_function def factory(self, menu, parent, context): """ Sets up the menu item """ global LASTFMLOVER item = gtk.ImageMenuItem(_('Love This Track')) item.set_image(gtk.image_new_from_icon_name( 'love', gtk.ICON_SIZE_MENU)) if self.get_tracks_function is not None: tracks = self.get_tracks_function() trackslen = len(tracks) else: trackslen = context.get('selection-count', 0) if trackslen > 0: tracks = context.get('selected-tracks', []) if trackslen > 0 and LASTFMLOVER.network is not None: # We only care about the first track track = tracks[0] lastfm_track = pylast.Track( track.get_tag_display('artist'), track.get_tag_display('title'), LASTFMLOVER.network ) if lastfm_track in LASTFMLOVER.loved_tracks: item.set_label(_('Unlove This Track')) item.connect('activate', self.on_activate, track) else: item.set_sensitive(False) return item def on_activate(self, menuitem, track): """ Loves or unloves the selected track """ global LASTFMLOVER LASTFMLOVER.toggle_loved(track) class LastFMLover(object): """ Allows for retrieval and setting of loved tracks via Last.fm """ def __init__(self): """ Sets up the connection to Last.fm as well as the graphical interface """ self.network = None self.user = None self.loved_tracks = [] self.timer = None self.column_menu_item = ColumnMenuItem(column=LoveColumn, after=['__rating']) self.menu_item = LoveMenuItem(after=['rating']) def get_tracks_function(): """ Drop in replacement for menu item context to retrieve the currently playing track """ current_track = player.PLAYER.current if current_track is not None: return [current_track] return [] self.tray_menu_item = LoveMenuItem( after=['rating'], get_tracks_function=get_tracks_function ) self.setup_network() providers.register('playlist-columns', LoveColumn); providers.register('playlist-columns-menu', self.column_menu_item) providers.register('playlist-context-menu', self.menu_item) providers.register('tray-icon-context', self.tray_menu_item) event.add_callback(self.on_option_set, 'plugin_lastfmlove_option_set') def destroy(self): """ Cleanups """ event.remove_callback(self.on_option_set, 'plugin_lastfmlove_option_set') providers.unregister('tray-icon-context', self.tray_menu_item) providers.unregister('playlist-context-menu', self.menu_item) providers.unregister('playlist-columns-menu', self.column_menu_item) providers.unregister('playlist-columns', LoveColumn) if self.timer is not None and self.timer.is_alive(): self.timer.cancel() def setup_network(self): """ Tries to set up the network, retrieve the user and the initial list of loved tracks """ try: self.network = pylast.LastFMNetwork( api_key=settings.get_option('plugin/lastfmlove/api_key', 'K'), api_secret=settings.get_option('plugin/lastfmlove/api_secret', 'S'), username=settings.get_option('plugin/ascrobbler/user', ''), password_hash=settings.get_option('plugin/ascrobbler/password', '') ) self.user = self.network.get_user(self.network.username) except Exception as e: self.network = None self.user = None if self.timer is not None and self.timer.is_alive(): self.timer.cancel() logger.warning('Error while connecting to Last.fm network: {0}'.format(e)) else: thread = Thread(target=self.get_loved_tracks) thread.daemon = True thread.start() logger.info('Connection to Last.fm network successful') def restart_timer(self): """ Restarts the timer which starts the retrieval of tracks """ if self.timer is not None and self.timer.is_alive(): self.timer.cancel() self.timer = Timer( settings.get_option('plugin/lastfmlove/refresh_interval', 3600), self.get_loved_tracks ) self.timer.daemon = True self.timer.start() def get_loved_tracks(self): """ Updates the list of loved tracks """ logger.debug('Retrieving list of loved tracks...') try: tracks = self.user.get_loved_tracks(limit=None) # Unwrap pylast.Track from pylast.LovedTrack self.loved_tracks = [l.track for l in tracks] except Exception as e: logger.warning('Failed to retrieve list of loved tracks: {0}'.format(e)) self.restart_timer() def toggle_loved(self, track): """ Toggles the loved state of a track :param track: the track to love/unlove :type track: `xl.trax.Track` """ lastfm_track = pylast.Track( track.get_tag_display('artist'), track.get_tag_display('title'), LASTFMLOVER.network ) if lastfm_track in self.loved_tracks: self.unlove_track(lastfm_track) else: self.love_track(lastfm_track) @common.threaded def love_track(self, track): """ Loves a track :param track: the track to love :type track: `pylast.Track` """ try: track.love() except Exception as e: logger.warning('Error while loving track {0}: {1}'.format(track, e)) else: self.loved_tracks.append(track) logger.info('Loved track {0}'.format(track)) @common.threaded def unlove_track(self, track): """ Unloves a track :param track: the track to unlove :type track: `pylast.Track` """ try: track.unlove() except Exception as e: logger.warning('Error while unloving track {0}: {1}'.format(track, e)) else: self.loved_tracks.remove(track) logger.info('Unloved track {0}'.format(track)) def on_option_set(self, event, settings, option): """ Takes action upon setting changes """ if option in ('plugin/lastfmlove/api_key', 'plugin/lastfmlove/api_secret'): self.setup_network() elif option == 'plugin/lastfmlove/refresh_interval': self.restart_timer() dist/copy/plugins/lastfmlove/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260021253 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.097046932 exaile-3.3.2/plugins/lastfmlove/PLUGININFO0000644000000000000000000000052612233027260020216 0ustar00rootroot00000000000000Version='1.0.1' Authors=['Mathias Brodala '] Name=_('Last.fm Loved Tracks') Description=_('Shows which tracks have been loved and allows for loving tracks.\n\nMake sure to enter a valid API key and secret in the plugin preferences.\n\nDepends on the plugin "AudioScrobbler" for username and password.') Category=_('Tagging') dist/copy/plugins/lastfmlove/PaxHeaders.26361/pylast.py0000644000175000017500000000012412233027260021544 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.421046942 exaile-3.3.2/plugins/lastfmlove/pylast.py0000644000000000000000000036754212233027260020525 0ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # pylast - A Python interface to Last.fm (and other API compatible social networks) # # Copyright 2008-2010 Amr Hassan # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # http://code.google.com/p/pylast/ __version__ = '0.5' __author__ = 'Amr Hassan' __copyright__ = "Copyright (C) 2008-2010 Amr Hassan" __license__ = "apache2" __email__ = 'amr.hassan@gmail.com' import hashlib from xml.dom import minidom import xml.dom import time import shelve import tempfile import sys import collections import warnings def _deprecation_warning(message): warnings.warn(message, DeprecationWarning) if sys.version_info[0] == 3: from http.client import HTTPConnection import html.entities as htmlentitydefs from urllib.parse import splithost as url_split_host from urllib.parse import quote_plus as url_quote_plus unichr = chr elif sys.version_info[0] == 2: from httplib import HTTPConnection import htmlentitydefs from urllib import splithost as url_split_host from urllib import quote_plus as url_quote_plus STATUS_INVALID_SERVICE = 2 STATUS_INVALID_METHOD = 3 STATUS_AUTH_FAILED = 4 STATUS_INVALID_FORMAT = 5 STATUS_INVALID_PARAMS = 6 STATUS_INVALID_RESOURCE = 7 STATUS_TOKEN_ERROR = 8 STATUS_INVALID_SK = 9 STATUS_INVALID_API_KEY = 10 STATUS_OFFLINE = 11 STATUS_SUBSCRIBERS_ONLY = 12 STATUS_INVALID_SIGNATURE = 13 STATUS_TOKEN_UNAUTHORIZED = 14 STATUS_TOKEN_EXPIRED = 15 EVENT_ATTENDING = '0' EVENT_MAYBE_ATTENDING = '1' EVENT_NOT_ATTENDING = '2' PERIOD_OVERALL = 'overall' PERIOD_7DAYS = "7day" PERIOD_3MONTHS = '3month' PERIOD_6MONTHS = '6month' PERIOD_12MONTHS = '12month' DOMAIN_ENGLISH = 0 DOMAIN_GERMAN = 1 DOMAIN_SPANISH = 2 DOMAIN_FRENCH = 3 DOMAIN_ITALIAN = 4 DOMAIN_POLISH = 5 DOMAIN_PORTUGUESE = 6 DOMAIN_SWEDISH = 7 DOMAIN_TURKISH = 8 DOMAIN_RUSSIAN = 9 DOMAIN_JAPANESE = 10 DOMAIN_CHINESE = 11 COVER_SMALL = 0 COVER_MEDIUM = 1 COVER_LARGE = 2 COVER_EXTRA_LARGE = 3 COVER_MEGA = 4 IMAGES_ORDER_POPULARITY = "popularity" IMAGES_ORDER_DATE = "dateadded" USER_MALE = 'Male' USER_FEMALE = 'Female' SCROBBLE_SOURCE_USER = "P" SCROBBLE_SOURCE_NON_PERSONALIZED_BROADCAST = "R" SCROBBLE_SOURCE_PERSONALIZED_BROADCAST = "E" SCROBBLE_SOURCE_LASTFM = "L" SCROBBLE_SOURCE_UNKNOWN = "U" SCROBBLE_MODE_PLAYED = "" SCROBBLE_MODE_LOVED = "L" SCROBBLE_MODE_BANNED = "B" SCROBBLE_MODE_SKIPPED = "S" class _Network(object): """ A music social network website that is Last.fm or one exposing a Last.fm compatible API """ def __init__(self, name, homepage, ws_server, api_key, api_secret, session_key, submission_server, username, password_hash, domain_names, urls): """ name: the name of the network homepage: the homepage url ws_server: the url of the webservices server api_key: a provided API_KEY api_secret: a provided API_SECRET session_key: a generated session_key or None submission_server: the url of the server to which tracks are submitted (scrobbled) username: a username of a valid user password_hash: the output of pylast.md5(password) where password is the user's password domain_names: a dict mapping each DOMAIN_* value to a string domain name urls: a dict mapping types to urls if username and password_hash were provided and not session_key, session_key will be generated automatically when needed. Either a valid session_key or a combination of username and password_hash must be present for scrobbling. You should use a preconfigured network object through a get_*_network(...) method instead of creating an object of this class, unless you know what you're doing. """ self.name = name self.homepage = homepage self.ws_server = ws_server self.api_key = api_key self.api_secret = api_secret self.session_key = session_key self.submission_server = submission_server self.username = username self.password_hash = password_hash self.domain_names = domain_names self.urls = urls self.cache_backend = None self.proxy_enabled = False self.proxy = None self.last_call_time = 0 #generate a session_key if necessary if (self.api_key and self.api_secret) and not self.session_key and (self.username and self.password_hash): sk_gen = SessionKeyGenerator(self) self.session_key = sk_gen.get_session_key(self.username, self.password_hash) """def __repr__(self): attributes = ("name", "homepage", "ws_server", "api_key", "api_secret", "session_key", "submission_server", "username", "password_hash", "domain_names", "urls") text = "pylast._Network(%s)" args = [] for attr in attributes: args.append("=".join((attr, repr(getattr(self, attr))))) return text % ", ".join(args) """ def __str__(self): return "The %s Network" %self.name def get_artist(self, artist_name): """ Return an Artist object """ return Artist(artist_name, self) def get_track(self, artist, title): """ Return a Track object """ return Track(artist, title, self) def get_album(self, artist, title): """ Return an Album object """ return Album(artist, title, self) def get_authenticated_user(self): """ Returns the authenticated user """ return AuthenticatedUser(self) def get_country(self, country_name): """ Returns a country object """ return Country(country_name, self) def get_group(self, name): """ Returns a Group object """ return Group(name, self) def get_user(self, username): """ Returns a user object """ return User(username, self) def get_tag(self, name): """ Returns a tag object """ return Tag(name, self) def get_scrobbler(self, client_id, client_version): """ Returns a Scrobbler object used for submitting tracks to the server Quote from http://www.last.fm/api/submissions: ======== Client identifiers are used to provide a centrally managed database of the client versions, allowing clients to be banned if they are found to be behaving undesirably. The client ID is associated with a version number on the server, however these are only incremented if a client is banned and do not have to reflect the version of the actual client application. During development, clients which have not been allocated an identifier should use the identifier tst, with a version number of 1.0. Do not distribute code or client implementations which use this test identifier. Do not use the identifiers used by other clients. ========= To obtain a new client identifier please contact: * Last.fm: submissions@last.fm * # TODO: list others ...and provide us with the name of your client and its homepage address. """ _deprecation_warning("Use _Network.scrobble(...), _Network.scrobble_many(...), and Netowrk.update_now_playing(...) instead") return Scrobbler(self, client_id, client_version) def _get_language_domain(self, domain_language): """ Returns the mapped domain name of the network to a DOMAIN_* value """ if domain_language in self.domain_names: return self.domain_names[domain_language] def _get_url(self, domain, type): return "http://%s/%s" %(self._get_language_domain(domain), self.urls[type]) def _get_ws_auth(self): """ Returns a (API_KEY, API_SECRET, SESSION_KEY) tuple. """ return (self.api_key, self.api_secret, self.session_key) def _delay_call(self): """ Makes sure that web service calls are at least a second apart """ # delay time in seconds DELAY_TIME = 1.0 now = time.time() if (now - self.last_call_time) < DELAY_TIME: time.sleep(1) self.last_call_time = now def create_new_playlist(self, title, description): """ Creates a playlist for the authenticated user and returns it title: The title of the new playlist. description: The description of the new playlist. """ params = {} params['title'] = title params['description'] = description doc = _Request(self, 'playlist.create', params).execute(False) e_id = doc.getElementsByTagName("id")[0].firstChild.data user = doc.getElementsByTagName('playlists')[0].getAttribute('user') return Playlist(user, e_id, self) def get_top_tags(self, limit=None): """Returns a sequence of the most used tags as a sequence of TopItem objects.""" doc = _Request(self, "tag.getTopTags").execute(True) seq = [] for node in doc.getElementsByTagName("tag"): tag = Tag(_extract(node, "name"), self) weight = _number(_extract(node, "count")) seq.append(TopItem(tag, weight)) if limit: seq = seq[:limit] return seq def enable_proxy(self, host, port): """Enable a default web proxy""" self.proxy = [host, _number(port)] self.proxy_enabled = True def disable_proxy(self): """Disable using the web proxy""" self.proxy_enabled = False def is_proxy_enabled(self): """Returns True if a web proxy is enabled.""" return self.proxy_enabled def _get_proxy(self): """Returns proxy details.""" return self.proxy def enable_caching(self, file_path = None): """Enables caching request-wide for all cachable calls. In choosing the backend used for caching, it will try _SqliteCacheBackend first if the module sqlite3 is present. If not, it will fallback to _ShelfCacheBackend which uses shelve.Shelf objects. * file_path: A file path for the backend storage file. If None set, a temp file would probably be created, according the backend. """ if not file_path: file_path = tempfile.mktemp(prefix="pylast_tmp_") self.cache_backend = _ShelfCacheBackend(file_path) def disable_caching(self): """Disables all caching features.""" self.cache_backend = None def is_caching_enabled(self): """Returns True if caching is enabled.""" return not (self.cache_backend == None) def _get_cache_backend(self): return self.cache_backend def search_for_album(self, album_name): """Searches for an album by its name. Returns a AlbumSearch object. Use get_next_page() to retreive sequences of results.""" return AlbumSearch(album_name, self) def search_for_artist(self, artist_name): """Searches of an artist by its name. Returns a ArtistSearch object. Use get_next_page() to retreive sequences of results.""" return ArtistSearch(artist_name, self) def search_for_tag(self, tag_name): """Searches of a tag by its name. Returns a TagSearch object. Use get_next_page() to retreive sequences of results.""" return TagSearch(tag_name, self) def search_for_track(self, artist_name, track_name): """Searches of a track by its name and its artist. Set artist to an empty string if not available. Returns a TrackSearch object. Use get_next_page() to retreive sequences of results.""" return TrackSearch(artist_name, track_name, self) def search_for_venue(self, venue_name, country_name): """Searches of a venue by its name and its country. Set country_name to an empty string if not available. Returns a VenueSearch object. Use get_next_page() to retreive sequences of results.""" return VenueSearch(venue_name, country_name, self) def get_track_by_mbid(self, mbid): """Looks up a track by its MusicBrainz ID""" params = {"mbid": mbid} doc = _Request(self, "track.getInfo", params).execute(True) return Track(_extract(doc, "name", 1), _extract(doc, "name"), self) def get_artist_by_mbid(self, mbid): """Loooks up an artist by its MusicBrainz ID""" params = {"mbid": mbid} doc = _Request(self, "artist.getInfo", params).execute(True) return Artist(_extract(doc, "name"), self) def get_album_by_mbid(self, mbid): """Looks up an album by its MusicBrainz ID""" params = {"mbid": mbid} doc = _Request(self, "album.getInfo", params).execute(True) return Album(_extract(doc, "artist"), _extract(doc, "name"), self) def update_now_playing(self, artist, title, album = None, album_artist = None, duration = None, track_number = None, mbid = None, context = None): """ Used to notify Last.fm that a user has started listening to a track. Parameters: artist (Required) : The artist name title (Required) : The track title album (Optional) : The album name. album_artist (Optional) : The album artist - if this differs from the track artist. duration (Optional) : The length of the track in seconds. track_number (Optional) : The track number of the track on the album. mbid (Optional) : The MusicBrainz Track ID. context (Optional) : Sub-client version (not public, only enabled for certain API keys) """ params = {"track": title, "artist": artist} if album: params["album"] = album if album_artist: params["albumArtist"] = album_artist if context: params["context"] = context if track_number: params["trackNumber"] = track_number if mbid: params["mbid"] = mbid if duration: params["duration"] = duration _Request(self, "track.updateNowPlaying", params).execute() def scrobble(self, artist, title, timestamp, album = None, album_artist = None, track_number = None, duration = None, stream_id = None, context = None, mbid = None): """Used to add a track-play to a user's profile. Parameters: artist (Required) : The artist name. title (Required) : The track name. timestamp (Required) : The time the track started playing, in UNIX timestamp format (integer number of seconds since 00:00:00, January 1st 1970 UTC). This must be in the UTC time zone. album (Optional) : The album name. album_artist (Optional) : The album artist - if this differs from the track artist. context (Optional) : Sub-client version (not public, only enabled for certain API keys) stream_id (Optional) : The stream id for this track received from the radio.getPlaylist service. track_number (Optional) : The track number of the track on the album. mbid (Optional) : The MusicBrainz Track ID. duration (Optional) : The length of the track in seconds. """ return self.scrobble_many(({"artist": artist, "title": title, "timestamp": timestamp, "album": album, "album_artist": album_artist, "track_number": track_number, "duration": duration, "stream_id": stream_id, "context": context, "mbid": mbid},)) def scrobble_many(self, tracks): """ Used to scrobble a batch of tracks at once. The parameter tracks is a sequence of dicts per track containing the keyword arguments as if passed to the scrobble() method. """ tracks_to_scrobble = tracks[:50] if len(tracks) > 50: remaining_tracks = tracks[50:] else: remaining_tracks = None params = {} for i in range(len(tracks_to_scrobble)): params["artist[%d]" % i] = tracks_to_scrobble[i]["artist"] params["track[%d]" % i] = tracks_to_scrobble[i]["title"] additional_args = ("timestamp", "album", "album_artist", "context", "stream_id", "track_number", "mbid", "duration") args_map_to = {"album_artist": "albumArtist", "track_number": "trackNumber", "stream_id": "streamID"} # so friggin lazy for arg in additional_args: if arg in tracks_to_scrobble[i] and tracks_to_scrobble[i][arg]: if arg in args_map_to: maps_to = args_map_to[arg] else: maps_to = arg params["%s[%d]" %(maps_to, i)] = tracks_to_scrobble[i][arg] _Request(self, "track.scrobble", params).execute() if remaining_tracks: self.scrobble_many(remaining_tracks) class LastFMNetwork(_Network): """A Last.fm network object api_key: a provided API_KEY api_secret: a provided API_SECRET session_key: a generated session_key or None username: a username of a valid user password_hash: the output of pylast.md5(password) where password is the user's password if username and password_hash were provided and not session_key, session_key will be generated automatically when needed. Either a valid session_key or a combination of username and password_hash must be present for scrobbling. Most read-only webservices only require an api_key and an api_secret, see about obtaining them from: http://www.last.fm/api/account """ def __init__(self, api_key="", api_secret="", session_key="", username="", password_hash=""): _Network.__init__(self, name = "Last.fm", homepage = "http://last.fm", ws_server = ("ws.audioscrobbler.com", "/2.0/"), api_key = api_key, api_secret = api_secret, session_key = session_key, submission_server = "http://post.audioscrobbler.com:80/", username = username, password_hash = password_hash, domain_names = { DOMAIN_ENGLISH: 'www.last.fm', DOMAIN_GERMAN: 'www.lastfm.de', DOMAIN_SPANISH: 'www.lastfm.es', DOMAIN_FRENCH: 'www.lastfm.fr', DOMAIN_ITALIAN: 'www.lastfm.it', DOMAIN_POLISH: 'www.lastfm.pl', DOMAIN_PORTUGUESE: 'www.lastfm.com.br', DOMAIN_SWEDISH: 'www.lastfm.se', DOMAIN_TURKISH: 'www.lastfm.com.tr', DOMAIN_RUSSIAN: 'www.lastfm.ru', DOMAIN_JAPANESE: 'www.lastfm.jp', DOMAIN_CHINESE: 'cn.last.fm', }, urls = { "album": "music/%(artist)s/%(album)s", "artist": "music/%(artist)s", "event": "event/%(id)s", "country": "place/%(country_name)s", "playlist": "user/%(user)s/library/playlists/%(appendix)s", "tag": "tag/%(name)s", "track": "music/%(artist)s/_/%(title)s", "group": "group/%(name)s", "user": "user/%(name)s", } ) def __repr__(self): return "pylast.LastFMNetwork(%s)" %(", ".join(("'%s'" %self.api_key, "'%s'" %self.api_secret, "'%s'" %self.session_key, "'%s'" %self.username, "'%s'" %self.password_hash))) def __str__(self): return "LastFM Network" def get_lastfm_network(api_key="", api_secret="", session_key = "", username = "", password_hash = ""): """ Returns a preconfigured _Network object for Last.fm api_key: a provided API_KEY api_secret: a provided API_SECRET session_key: a generated session_key or None username: a username of a valid user password_hash: the output of pylast.md5(password) where password is the user's password if username and password_hash were provided and not session_key, session_key will be generated automatically when needed. Either a valid session_key or a combination of username and password_hash must be present for scrobbling. Most read-only webservices only require an api_key and an api_secret, see about obtaining them from: http://www.last.fm/api/account """ _deprecation_warning("Create a LastFMNetwork object instead") return LastFMNetwork(api_key, api_secret, session_key, username, password_hash) class LibreFMNetwork(_Network): """ A preconfigured _Network object for Libre.fm api_key: a provided API_KEY api_secret: a provided API_SECRET session_key: a generated session_key or None username: a username of a valid user password_hash: the output of pylast.md5(password) where password is the user's password if username and password_hash were provided and not session_key, session_key will be generated automatically when needed. """ def __init__(self, api_key="", api_secret="", session_key = "", username = "", password_hash = ""): _Network.__init__(self, name = "Libre.fm", homepage = "http://alpha.dev.libre.fm", ws_server = ("alpha.dev.libre.fm", "/2.0/"), api_key = api_key, api_secret = api_secret, session_key = session_key, submission_server = "http://turtle.libre.fm:80/", username = username, password_hash = password_hash, domain_names = { DOMAIN_ENGLISH: "alpha.dev.libre.fm", DOMAIN_GERMAN: "alpha.dev.libre.fm", DOMAIN_SPANISH: "alpha.dev.libre.fm", DOMAIN_FRENCH: "alpha.dev.libre.fm", DOMAIN_ITALIAN: "alpha.dev.libre.fm", DOMAIN_POLISH: "alpha.dev.libre.fm", DOMAIN_PORTUGUESE: "alpha.dev.libre.fm", DOMAIN_SWEDISH: "alpha.dev.libre.fm", DOMAIN_TURKISH: "alpha.dev.libre.fm", DOMAIN_RUSSIAN: "alpha.dev.libre.fm", DOMAIN_JAPANESE: "alpha.dev.libre.fm", DOMAIN_CHINESE: "alpha.dev.libre.fm", }, urls = { "album": "artist/%(artist)s/album/%(album)s", "artist": "artist/%(artist)s", "event": "event/%(id)s", "country": "place/%(country_name)s", "playlist": "user/%(user)s/library/playlists/%(appendix)s", "tag": "tag/%(name)s", "track": "music/%(artist)s/_/%(title)s", "group": "group/%(name)s", "user": "user/%(name)s", } ) def __repr__(self): return "pylast.LibreFMNetwork(%s)" %(", ".join(("'%s'" %self.api_key, "'%s'" %self.api_secret, "'%s'" %self.session_key, "'%s'" %self.username, "'%s'" %self.password_hash))) def __str__(self): return "Libre.fm Network" def get_librefm_network(api_key="", api_secret="", session_key = "", username = "", password_hash = ""): """ Returns a preconfigured _Network object for Libre.fm api_key: a provided API_KEY api_secret: a provided API_SECRET session_key: a generated session_key or None username: a username of a valid user password_hash: the output of pylast.md5(password) where password is the user's password if username and password_hash were provided and not session_key, session_key will be generated automatically when needed. """ _deprecation_warning("DeprecationWarning: Create a LibreFMNetwork object instead") return LibreFMNetwork(api_key, api_secret, session_key, username, password_hash) class _ShelfCacheBackend(object): """Used as a backend for caching cacheable requests.""" def __init__(self, file_path = None): self.shelf = shelve.open(file_path) def get_xml(self, key): return self.shelf[key] def set_xml(self, key, xml_string): self.shelf[key] = xml_string def has_key(self, key): return key in self.shelf.keys() class _Request(object): """Representing an abstract web service operation.""" def __init__(self, network, method_name, params = {}): self.network = network self.params = {} for key in params: self.params[key] = _unicode(params[key]) (self.api_key, self.api_secret, self.session_key) = network._get_ws_auth() self.params["api_key"] = self.api_key self.params["method"] = method_name if network.is_caching_enabled(): self.cache = network._get_cache_backend() if self.session_key: self.params["sk"] = self.session_key self.sign_it() def sign_it(self): """Sign this request.""" if not "api_sig" in self.params.keys(): self.params['api_sig'] = self._get_signature() def _get_signature(self): """Returns a 32-character hexadecimal md5 hash of the signature string.""" keys = list(self.params.keys()) keys.sort() string = "" for name in keys: string += name string += self.params[name] string += self.api_secret return md5(string) def _get_cache_key(self): """The cache key is a string of concatenated sorted names and values.""" keys = list(self.params.keys()) keys.sort() cache_key = str() for key in keys: if key != "api_sig" and key != "api_key" and key != "sk": cache_key += key + _string(self.params[key]) return hashlib.sha1(cache_key).hexdigest() def _get_cached_response(self): """Returns a file object of the cached response.""" if not self._is_cached(): response = self._download_response() self.cache.set_xml(self._get_cache_key(), response) return self.cache.get_xml(self._get_cache_key()) def _is_cached(self): """Returns True if the request is already in cache.""" return self.cache.has_key(self._get_cache_key()) def _download_response(self): """Returns a response body string from the server.""" # Delay the call if necessary #self.network._delay_call() # enable it if you want. data = [] for name in self.params.keys(): data.append('='.join((name, url_quote_plus(_string(self.params[name]))))) data = '&'.join(data) headers = { "Content-type": "application/x-www-form-urlencoded", 'Accept-Charset': 'utf-8', 'User-Agent': "pylast" + '/' + __version__ } (HOST_NAME, HOST_SUBDIR) = self.network.ws_server if self.network.is_proxy_enabled(): conn = HTTPConnection(host = self._get_proxy()[0], port = self._get_proxy()[1]) try: conn.request(method='POST', url="http://" + HOST_NAME + HOST_SUBDIR, body=data, headers=headers) except Exception as e: raise NetworkError(self.network, e) else: conn = HTTPConnection(host=HOST_NAME) try: conn.request(method='POST', url=HOST_SUBDIR, body=data, headers=headers) except Exception as e: raise NetworkError(self.network, e) try: response_text = _unicode(conn.getresponse().read()) except Exception as e: raise MalformedResponseError(self.network, e) self._check_response_for_errors(response_text) return response_text def execute(self, cacheable = False): """Returns the XML DOM response of the POST Request from the server""" if self.network.is_caching_enabled() and cacheable: response = self._get_cached_response() else: response = self._download_response() return minidom.parseString(_string(response)) def _check_response_for_errors(self, response): """Checks the response for errors and raises one if any exists.""" try: doc = minidom.parseString(_string(response)) except Exception as e: raise MalformedResponseError(self.network, e) e = doc.getElementsByTagName('lfm')[0] if e.getAttribute('status') != "ok": e = doc.getElementsByTagName('error')[0] status = e.getAttribute('code') details = e.firstChild.data.strip() raise WSError(self.network, status, details) class SessionKeyGenerator(object): """Methods of generating a session key: 1) Web Authentication: a. network = get_*_network(API_KEY, API_SECRET) b. sg = SessionKeyGenerator(network) c. url = sg.get_web_auth_url() d. Ask the user to open the url and authorize you, and wait for it. e. session_key = sg.get_web_auth_session_key(url) 2) Username and Password Authentication: a. network = get_*_network(API_KEY, API_SECRET) b. username = raw_input("Please enter your username: ") c. password_hash = pylast.md5(raw_input("Please enter your password: ") d. session_key = SessionKeyGenerator(network).get_session_key(username, password_hash) A session key's lifetime is infinie, unless the user provokes the rights of the given API Key. If you create a Network object with just a API_KEY and API_SECRET and a username and a password_hash, a SESSION_KEY will be automatically generated for that network and stored in it so you don't have to do this manually, unless you want to. """ def __init__(self, network): self.network = network self.web_auth_tokens = {} def _get_web_auth_token(self): """Retrieves a token from the network for web authentication. The token then has to be authorized from getAuthURL before creating session. """ request = _Request(self.network, 'auth.getToken') # default action is that a request is signed only when # a session key is provided. request.sign_it() doc = request.execute() e = doc.getElementsByTagName('token')[0] return e.firstChild.data def get_web_auth_url(self): """The user must open this page, and you first, then call get_web_auth_session_key(url) after that.""" token = self._get_web_auth_token() url = '%(homepage)s/api/auth/?api_key=%(api)s&token=%(token)s' % \ {"homepage": self.network.homepage, "api": self.network.api_key, "token": token} self.web_auth_tokens[url] = token return url def get_web_auth_session_key(self, url): """Retrieves the session key of a web authorization process by its url.""" if url in self.web_auth_tokens.keys(): token = self.web_auth_tokens[url] else: token = "" #that's gonna raise a WSError of an unauthorized token when the request is executed. request = _Request(self.network, 'auth.getSession', {'token': token}) # default action is that a request is signed only when # a session key is provided. request.sign_it() doc = request.execute() return doc.getElementsByTagName('key')[0].firstChild.data def get_session_key(self, username, password_hash): """Retrieve a session key with a username and a md5 hash of the user's password.""" params = {"username": username, "authToken": md5(username + password_hash)} request = _Request(self.network, "auth.getMobileSession", params) # default action is that a request is signed only when # a session key is provided. request.sign_it() doc = request.execute() return _extract(doc, "key") TopItem = collections.namedtuple("TopItem", ["item", "weight"]) SimilarItem = collections.namedtuple("SimilarItem", ["item", "match"]) LibraryItem = collections.namedtuple("LibraryItem", ["item", "playcount", "tagcount"]) PlayedTrack = collections.namedtuple("PlayedTrack", ["track", "playback_date", "timestamp"]) LovedTrack = collections.namedtuple("LovedTrack", ["track", "date", "timestamp"]) ImageSizes = collections.namedtuple("ImageSizes", ["original", "large", "largesquare", "medium", "small", "extralarge"]) Image = collections.namedtuple("Image", ["title", "url", "dateadded", "format", "owner", "sizes", "votes"]) Shout = collections.namedtuple("Shout", ["body", "author", "date"]) def _string_output(funct): def r(*args): return _string(funct(*args)) return r def _pad_list(given_list, desired_length, padding = None): """ Pads a list to be of the desired_length. """ while len(given_list) < desired_length: given_list.append(padding) return given_list class _BaseObject(object): """An abstract webservices object.""" network = None def __init__(self, network): self.network = network def _request(self, method_name, cacheable = False, params = None): if not params: params = self._get_params() return _Request(self.network, method_name, params).execute(cacheable) def _get_params(self): """Returns the most common set of parameters between all objects.""" return {} def __hash__(self): return hash(self.network) + \ hash(str(type(self)) + "".join(list(self._get_params().keys()) + list(self._get_params().values())).lower()) class _Taggable(object): """Common functions for classes with tags.""" def __init__(self, ws_prefix): self.ws_prefix = ws_prefix def add_tags(self, tags): """Adds one or several tags. * tags: A sequence of tag names or Tag objects. """ for tag in tags: self.add_tag(tag) def add_tag(self, tag): """Adds one tag. * tag: a tag name or a Tag object. """ if isinstance(tag, Tag): tag = tag.get_name() params = self._get_params() params['tags'] = tag self._request(self.ws_prefix + '.addTags', False, params) def remove_tag(self, tag): """Remove a user's tag from this object.""" if isinstance(tag, Tag): tag = tag.get_name() params = self._get_params() params['tag'] = tag self._request(self.ws_prefix + '.removeTag', False, params) def get_tags(self): """Returns a list of the tags set by the user to this object.""" # Uncacheable because it can be dynamically changed by the user. params = self._get_params() doc = self._request(self.ws_prefix + '.getTags', False, params) tag_names = _extract_all(doc, 'name') tags = [] for tag in tag_names: tags.append(Tag(tag, self.network)) return tags def remove_tags(self, tags): """Removes one or several tags from this object. * tags: a sequence of tag names or Tag objects. """ for tag in tags: self.remove_tag(tag) def clear_tags(self): """Clears all the user-set tags. """ self.remove_tags(*(self.get_tags())) def set_tags(self, tags): """Sets this object's tags to only those tags. * tags: a sequence of tag names or Tag objects. """ c_old_tags = [] old_tags = [] c_new_tags = [] new_tags = [] to_remove = [] to_add = [] tags_on_server = self.get_tags() for tag in tags_on_server: c_old_tags.append(tag.get_name().lower()) old_tags.append(tag.get_name()) for tag in tags: c_new_tags.append(tag.lower()) new_tags.append(tag) for i in range(0, len(old_tags)): if not c_old_tags[i] in c_new_tags: to_remove.append(old_tags[i]) for i in range(0, len(new_tags)): if not c_new_tags[i] in c_old_tags: to_add.append(new_tags[i]) self.remove_tags(to_remove) self.add_tags(to_add) def get_top_tags(self, limit=None): """Returns a list of the most frequently used Tags on this object.""" doc = self._request(self.ws_prefix + '.getTopTags', True) elements = doc.getElementsByTagName('tag') seq = [] for element in elements: tag_name = _extract(element, 'name') tagcount = _extract(element, 'count') seq.append(TopItem(Tag(tag_name, self.network), tagcount)) if limit: seq = seq[:limit] return seq class WSError(Exception): """Exception related to the Network web service""" def __init__(self, network, status, details): self.status = status self.details = details self.network = network @_string_output def __str__(self): return self.details def get_id(self): """Returns the exception ID, from one of the following: STATUS_INVALID_SERVICE = 2 STATUS_INVALID_METHOD = 3 STATUS_AUTH_FAILED = 4 STATUS_INVALID_FORMAT = 5 STATUS_INVALID_PARAMS = 6 STATUS_INVALID_RESOURCE = 7 STATUS_TOKEN_ERROR = 8 STATUS_INVALID_SK = 9 STATUS_INVALID_API_KEY = 10 STATUS_OFFLINE = 11 STATUS_SUBSCRIBERS_ONLY = 12 STATUS_TOKEN_UNAUTHORIZED = 14 STATUS_TOKEN_EXPIRED = 15 """ return self.status class MalformedResponseError(Exception): """Exception conveying a malformed response from Last.fm.""" def __init__(self, network, underlying_error): self.network = network self.underlying_error = underlying_error def __str__(self): return "Malformed response from Last.fm. Underlying error: %s" %str(self.underlying_error) class NetworkError(Exception): """Exception conveying a problem in sending a request to Last.fm""" def __init__(self, network, underlying_error): self.network = network self.underlying_error = underlying_error def __str__(self): return "NetworkError: %s" %str(self.underlying_error) class Album(_BaseObject, _Taggable): """An album.""" title = None artist = None def __init__(self, artist, title, network): """ Create an album instance. # Parameters: * artist: An artist name or an Artist object. * title: The album title. """ _BaseObject.__init__(self, network) _Taggable.__init__(self, 'album') if isinstance(artist, Artist): self.artist = artist else: self.artist = Artist(artist, self.network) self.title = title def __repr__(self): return "pylast.Album(%s, %s, %s)" %(repr(self.artist.name), repr(self.title), repr(self.network)) @_string_output def __str__(self): return _unicode("%s - %s") %(self.get_artist().get_name(), self.get_title()) def __eq__(self, other): return (self.get_title().lower() == other.get_title().lower()) and (self.get_artist().get_name().lower() == other.get_artist().get_name().lower()) def __ne__(self, other): return (self.get_title().lower() != other.get_title().lower()) or (self.get_artist().get_name().lower() != other.get_artist().get_name().lower()) def _get_params(self): return {'artist': self.get_artist().get_name(), 'album': self.get_title(), } def get_artist(self): """Returns the associated Artist object.""" return self.artist def get_title(self): """Returns the album title.""" return self.title def get_name(self): """Returns the album title (alias to Album.get_title).""" return self.get_title() def get_release_date(self): """Retruns the release date of the album.""" return _extract(self._request("album.getInfo", cacheable = True), "releasedate") def get_cover_image(self, size = COVER_EXTRA_LARGE): """ Returns a uri to the cover image size can be one of: COVER_EXTRA_LARGE COVER_LARGE COVER_MEDIUM COVER_SMALL """ return _extract_all(self._request("album.getInfo", cacheable = True), 'image')[size] def get_id(self): """Returns the ID""" return _extract(self._request("album.getInfo", cacheable = True), "id") def get_playcount(self): """Returns the number of plays on the network""" return _number(_extract(self._request("album.getInfo", cacheable = True), "playcount")) def get_listener_count(self): """Returns the number of liteners on the network""" return _number(_extract(self._request("album.getInfo", cacheable = True), "listeners")) def get_top_tags(self, limit=None): """Returns a list of the most-applied tags to this album.""" doc = self._request("album.getInfo", True) e = doc.getElementsByTagName("toptags")[0] seq = [] for name in _extract_all(e, "name"): seq.append(Tag(name, self.network)) if limit: seq = seq[:limit] return seq def get_tracks(self): """Returns the list of Tracks on this album.""" uri = 'lastfm://playlist/album/%s' %self.get_id() return XSPF(uri, self.network).get_tracks() def get_mbid(self): """Returns the MusicBrainz id of the album.""" return _extract(self._request("album.getInfo", cacheable = True), "mbid") def get_url(self, domain_name = DOMAIN_ENGLISH): """Returns the url of the album page on the network. # Parameters: * domain_name str: The network's language domain. Possible values: o DOMAIN_ENGLISH o DOMAIN_GERMAN o DOMAIN_SPANISH o DOMAIN_FRENCH o DOMAIN_ITALIAN o DOMAIN_POLISH o DOMAIN_PORTUGUESE o DOMAIN_SWEDISH o DOMAIN_TURKISH o DOMAIN_RUSSIAN o DOMAIN_JAPANESE o DOMAIN_CHINESE """ artist = _url_safe(self.get_artist().get_name()) album = _url_safe(self.get_title()) return self.network._get_url(domain_name, "album") %{'artist': artist, 'album': album} def get_wiki_published_date(self): """Returns the date of publishing this version of the wiki.""" doc = self._request("album.getInfo", True) if len(doc.getElementsByTagName("wiki")) == 0: return node = doc.getElementsByTagName("wiki")[0] return _extract(node, "published") def get_wiki_summary(self): """Returns the summary of the wiki.""" doc = self._request("album.getInfo", True) if len(doc.getElementsByTagName("wiki")) == 0: return node = doc.getElementsByTagName("wiki")[0] return _extract(node, "summary") def get_wiki_content(self): """Returns the content of the wiki.""" doc = self._request("album.getInfo", True) if len(doc.getElementsByTagName("wiki")) == 0: return node = doc.getElementsByTagName("wiki")[0] return _extract(node, "content") class Artist(_BaseObject, _Taggable): """An artist.""" name = None def __init__(self, name, network): """Create an artist object. # Parameters: * name str: The artist's name. """ _BaseObject.__init__(self, network) _Taggable.__init__(self, 'artist') self.name = name def __repr__(self): return "pylast.Artist(%s, %s)" %(repr(self.get_name()), repr(self.network)) @_string_output def __str__(self): return self.get_name() def __eq__(self, other): return self.get_name().lower() == other.get_name().lower() def __ne__(self, other): return self.get_name().lower() != other.get_name().lower() def _get_params(self): return {'artist': self.get_name()} def get_name(self, properly_capitalized=False): """Returns the name of the artist. If properly_capitalized was asserted then the name would be downloaded overwriting the given one.""" if properly_capitalized: self.name = _extract(self._request("artist.getInfo", True), "name") return self.name def get_cover_image(self, size = COVER_MEGA): """ Returns a uri to the cover image size can be one of: COVER_MEGA COVER_EXTRA_LARGE COVER_LARGE COVER_MEDIUM COVER_SMALL """ return _extract_all(self._request("artist.getInfo", True), "image")[size] def get_playcount(self): """Returns the number of plays on the network.""" return _number(_extract(self._request("artist.getInfo", True), "playcount")) def get_mbid(self): """Returns the MusicBrainz ID of this artist.""" doc = self._request("artist.getInfo", True) return _extract(doc, "mbid") def get_listener_count(self): """Returns the number of liteners on the network.""" if hasattr(self, "listener_count"): return self.listener_count else: self.listener_count = _number(_extract(self._request("artist.getInfo", True), "listeners")) return self.listener_count def is_streamable(self): """Returns True if the artist is streamable.""" return bool(_number(_extract(self._request("artist.getInfo", True), "streamable"))) def get_bio_published_date(self): """Returns the date on which the artist's biography was published.""" return _extract(self._request("artist.getInfo", True), "published") def get_bio_summary(self, language=None): """Returns the summary of the artist's biography.""" if language: params = self._get_params() params["lang"] = language else: params = None return _extract(self._request("artist.getInfo", True, params), "summary") def get_bio_content(self, language=None): """Returns the content of the artist's biography.""" if language: params = self._get_params() params["lang"] = language else: params = None return _extract(self._request("artist.getInfo", True, params), "content") def get_upcoming_events(self): """Returns a list of the upcoming Events for this artist.""" doc = self._request('artist.getEvents', True) ids = _extract_all(doc, 'id') events = [] for e_id in ids: events.append(Event(e_id, self.network)) return events def get_similar(self, limit = None): """Returns the similar artists on the network.""" params = self._get_params() if limit: params['limit'] = limit doc = self._request('artist.getSimilar', True, params) names = _extract_all(doc, "name") matches = _extract_all(doc, "match") artists = [] for i in range(0, len(names)): artists.append(SimilarItem(Artist(names[i], self.network), _number(matches[i]))) return artists def get_top_albums(self): """Retuns a list of the top albums.""" doc = self._request('artist.getTopAlbums', True) seq = [] for node in doc.getElementsByTagName("album"): name = _extract(node, "name") artist = _extract(node, "name", 1) playcount = _extract(node, "playcount") seq.append(TopItem(Album(artist, name, self.network), playcount)) return seq def get_top_tracks(self): """Returns a list of the most played Tracks by this artist.""" doc = self._request("artist.getTopTracks", True) seq = [] for track in doc.getElementsByTagName('track'): title = _extract(track, "name") artist = _extract(track, "name", 1) playcount = _number(_extract(track, "playcount")) seq.append( TopItem(Track(artist, title, self.network), playcount) ) return seq def get_top_fans(self, limit = None): """Returns a list of the Users who played this artist the most. # Parameters: * limit int: Max elements. """ doc = self._request('artist.getTopFans', True) seq = [] elements = doc.getElementsByTagName('user') for element in elements: if limit and len(seq) >= limit: break name = _extract(element, 'name') weight = _number(_extract(element, 'weight')) seq.append(TopItem(User(name, self.network), weight)) return seq def share(self, users, message = None): """Shares this artist (sends out recommendations). # Parameters: * users [User|str,]: A list that can contain usernames, emails, User objects, or all of them. * message str: A message to include in the recommendation message. """ #last.fm currently accepts a max of 10 recipient at a time while(len(users) > 10): section = users[0:9] users = users[9:] self.share(section, message) nusers = [] for user in users: if isinstance(user, User): nusers.append(user.get_name()) else: nusers.append(user) params = self._get_params() recipients = ','.join(nusers) params['recipient'] = recipients if message: params['message'] = message self._request('artist.share', False, params) def get_url(self, domain_name = DOMAIN_ENGLISH): """Returns the url of the artist page on the network. # Parameters: * domain_name: The network's language domain. Possible values: o DOMAIN_ENGLISH o DOMAIN_GERMAN o DOMAIN_SPANISH o DOMAIN_FRENCH o DOMAIN_ITALIAN o DOMAIN_POLISH o DOMAIN_PORTUGUESE o DOMAIN_SWEDISH o DOMAIN_TURKISH o DOMAIN_RUSSIAN o DOMAIN_JAPANESE o DOMAIN_CHINESE """ artist = _url_safe(self.get_name()) return self.network._get_url(domain_name, "artist") %{'artist': artist} def get_images(self, order=IMAGES_ORDER_POPULARITY, limit=None): """ Returns a sequence of Image objects if limit is None it will return all order can be IMAGES_ORDER_POPULARITY or IMAGES_ORDER_DATE. If limit==None, it will try to pull all the available data. """ images = [] params = self._get_params() params["order"] = order nodes = _collect_nodes(limit, self, "artist.getImages", True, params) for e in nodes: if _extract(e, "name"): user = User(_extract(e, "name"), self.network) else: user = None images.append(Image( _extract(e, "title"), _extract(e, "url"), _extract(e, "dateadded"), _extract(e, "format"), user, ImageSizes(*_extract_all(e, "size")), (_extract(e, "thumbsup"), _extract(e, "thumbsdown")) ) ) return images def get_shouts(self, limit=50): """ Returns a sequqence of Shout objects """ shouts = [] for node in _collect_nodes(limit, self, "artist.getShouts", False): shouts.append(Shout( _extract(node, "body"), User(_extract(node, "author"), self.network), _extract(node, "date") ) ) return shouts def shout(self, message): """ Post a shout """ params = self._get_params() params["message"] = message self._request("artist.Shout", False, params) class Event(_BaseObject): """An event.""" id = None def __init__(self, event_id, network): _BaseObject.__init__(self, network) self.id = event_id def __repr__(self): return "pylast.Event(%s, %s)" %(repr(self.id), repr(self.network)) @_string_output def __str__(self): return "Event #" + self.get_id() def __eq__(self, other): return self.get_id() == other.get_id() def __ne__(self, other): return self.get_id() != other.get_id() def _get_params(self): return {'event': self.get_id()} def attend(self, attending_status): """Sets the attending status. * attending_status: The attending status. Possible values: o EVENT_ATTENDING o EVENT_MAYBE_ATTENDING o EVENT_NOT_ATTENDING """ params = self._get_params() params['status'] = attending_status self._request('event.attend', False, params) def get_attendees(self): """ Get a list of attendees for an event """ doc = self._request("event.getAttendees", False) users = [] for name in _extract_all(doc, "name"): users.append(User(name, self.network)) return users def get_id(self): """Returns the id of the event on the network. """ return self.id def get_title(self): """Returns the title of the event. """ doc = self._request("event.getInfo", True) return _extract(doc, "title") def get_headliner(self): """Returns the headliner of the event. """ doc = self._request("event.getInfo", True) return Artist(_extract(doc, "headliner"), self.network) def get_artists(self): """Returns a list of the participating Artists. """ doc = self._request("event.getInfo", True) names = _extract_all(doc, "artist") artists = [] for name in names: artists.append(Artist(name, self.network)) return artists def get_venue(self): """Returns the venue where the event is held.""" doc = self._request("event.getInfo", True) v = doc.getElementsByTagName("venue")[0] venue_id = _number(_extract(v, "id")) return Venue(venue_id, self.network) def get_start_date(self): """Returns the date when the event starts.""" doc = self._request("event.getInfo", True) return _extract(doc, "startDate") def get_description(self): """Returns the description of the event. """ doc = self._request("event.getInfo", True) return _extract(doc, "description") def get_cover_image(self, size = COVER_MEGA): """ Returns a uri to the cover image size can be one of: COVER_MEGA COVER_EXTRA_LARGE COVER_LARGE COVER_MEDIUM COVER_SMALL """ doc = self._request("event.getInfo", True) return _extract_all(doc, "image")[size] def get_attendance_count(self): """Returns the number of attending people. """ doc = self._request("event.getInfo", True) return _number(_extract(doc, "attendance")) def get_review_count(self): """Returns the number of available reviews for this event. """ doc = self._request("event.getInfo", True) return _number(_extract(doc, "reviews")) def get_url(self, domain_name = DOMAIN_ENGLISH): """Returns the url of the event page on the network. * domain_name: The network's language domain. Possible values: o DOMAIN_ENGLISH o DOMAIN_GERMAN o DOMAIN_SPANISH o DOMAIN_FRENCH o DOMAIN_ITALIAN o DOMAIN_POLISH o DOMAIN_PORTUGUESE o DOMAIN_SWEDISH o DOMAIN_TURKISH o DOMAIN_RUSSIAN o DOMAIN_JAPANESE o DOMAIN_CHINESE """ return self.network._get_url(domain_name, "event") %{'id': self.get_id()} def share(self, users, message = None): """Shares this event (sends out recommendations). * users: A list that can contain usernames, emails, User objects, or all of them. * message: A message to include in the recommendation message. """ #last.fm currently accepts a max of 10 recipient at a time while(len(users) > 10): section = users[0:9] users = users[9:] self.share(section, message) nusers = [] for user in users: if isinstance(user, User): nusers.append(user.get_name()) else: nusers.append(user) params = self._get_params() recipients = ','.join(nusers) params['recipient'] = recipients if message: params['message'] = message self._request('event.share', False, params) def get_shouts(self, limit=50): """ Returns a sequqence of Shout objects """ shouts = [] for node in _collect_nodes(limit, self, "event.getShouts", False): shouts.append(Shout( _extract(node, "body"), User(_extract(node, "author"), self.network), _extract(node, "date") ) ) return shouts def shout(self, message): """ Post a shout """ params = self._get_params() params["message"] = message self._request("event.Shout", False, params) class Country(_BaseObject): """A country at Last.fm.""" name = None def __init__(self, name, network): _BaseObject.__init__(self, network) self.name = name def __repr__(self): return "pylast.Country(%s, %s)" %(repr(self.name), repr(self.network)) @_string_output def __str__(self): return self.get_name() def __eq__(self, other): return self.get_name().lower() == other.get_name().lower() def __ne__(self, other): return self.get_name() != other.get_name() def _get_params(self): return {'country': self.get_name()} def _get_name_from_code(self, alpha2code): # TODO: Have this function lookup the alpha-2 code and return the country name. return alpha2code def get_name(self): """Returns the country name. """ return self.name def get_top_artists(self): """Returns a sequence of the most played artists.""" doc = self._request('geo.getTopArtists', True) seq = [] for node in doc.getElementsByTagName("artist"): name = _extract(node, 'name') playcount = _extract(node, "playcount") seq.append(TopItem(Artist(name, self.network), playcount)) return seq def get_top_tracks(self): """Returns a sequence of the most played tracks""" doc = self._request("geo.getTopTracks", True) seq = [] for n in doc.getElementsByTagName('track'): title = _extract(n, 'name') artist = _extract(n, 'name', 1) playcount = _number(_extract(n, "playcount")) seq.append( TopItem(Track(artist, title, self.network), playcount)) return seq def get_url(self, domain_name = DOMAIN_ENGLISH): """Returns the url of the event page on the network. * domain_name: The network's language domain. Possible values: o DOMAIN_ENGLISH o DOMAIN_GERMAN o DOMAIN_SPANISH o DOMAIN_FRENCH o DOMAIN_ITALIAN o DOMAIN_POLISH o DOMAIN_PORTUGUESE o DOMAIN_SWEDISH o DOMAIN_TURKISH o DOMAIN_RUSSIAN o DOMAIN_JAPANESE o DOMAIN_CHINESE """ country_name = _url_safe(self.get_name()) return self.network._get_url(domain_name, "country") %{'country_name': country_name} class Library(_BaseObject): """A user's Last.fm library.""" user = None def __init__(self, user, network): _BaseObject.__init__(self, network) if isinstance(user, User): self.user = user else: self.user = User(user, self.network) self._albums_index = 0 self._artists_index = 0 self._tracks_index = 0 def __repr__(self): return "pylast.Library(%s, %s)" %(repr(self.user), repr(self.network)) @_string_output def __str__(self): return repr(self.get_user()) + "'s Library" def _get_params(self): return {'user': self.user.get_name()} def get_user(self): """Returns the user who owns this library.""" return self.user def add_album(self, album): """Add an album to this library.""" params = self._get_params() params["artist"] = album.get_artist.get_name() params["album"] = album.get_name() self._request("library.addAlbum", False, params) def add_artist(self, artist): """Add an artist to this library.""" params = self._get_params() params["artist"] = artist.get_name() self._request("library.addArtist", False, params) def add_track(self, track): """Add a track to this library.""" params = self._get_params() params["track"] = track.get_title() self._request("library.addTrack", False, params) def get_albums(self, artist=None, limit=50): """ Returns a sequence of Album objects If no artist is specified, it will return all, sorted by playcount descendingly. If limit==None it will return all (may take a while) """ params = self._get_params() if artist: params["artist"] = artist seq = [] for node in _collect_nodes(limit, self, "library.getAlbums", True, params): name = _extract(node, "name") artist = _extract(node, "name", 1) playcount = _number(_extract(node, "playcount")) tagcount = _number(_extract(node, "tagcount")) seq.append(LibraryItem(Album(artist, name, self.network), playcount, tagcount)) return seq def get_artists(self, limit=50): """ Returns a sequence of Album objects if limit==None it will return all (may take a while) """ seq = [] for node in _collect_nodes(limit, self, "library.getArtists", True): name = _extract(node, "name") playcount = _number(_extract(node, "playcount")) tagcount = _number(_extract(node, "tagcount")) seq.append(LibraryItem(Artist(name, self.network), playcount, tagcount)) return seq def get_tracks(self, artist=None, album=None, limit=50): """ Returns a sequence of Album objects If limit==None it will return all (may take a while) """ params = self._get_params() if artist: params["artist"] = artist if album: params["album"] = album seq = [] for node in _collect_nodes(limit, self, "library.getTracks", True, params): name = _extract(node, "name") artist = _extract(node, "name", 1) playcount = _number(_extract(node, "playcount")) tagcount = _number(_extract(node, "tagcount")) seq.append(LibraryItem(Track(artist, name, self.network), playcount, tagcount)) return seq class Playlist(_BaseObject): """A Last.fm user playlist.""" id = None user = None def __init__(self, user, id, network): _BaseObject.__init__(self, network) if isinstance(user, User): self.user = user else: self.user = User(user, self.network) self.id = id @_string_output def __str__(self): return repr(self.user) + "'s playlist # " + repr(self.id) def _get_info_node(self): """Returns the node from user.getPlaylists where this playlist's info is.""" doc = self._request("user.getPlaylists", True) for node in doc.getElementsByTagName("playlist"): if _extract(node, "id") == str(self.get_id()): return node def _get_params(self): return {'user': self.user.get_name(), 'playlistID': self.get_id()} def get_id(self): """Returns the playlist id.""" return self.id def get_user(self): """Returns the owner user of this playlist.""" return self.user def get_tracks(self): """Returns a list of the tracks on this user playlist.""" uri = _unicode('lastfm://playlist/%s') %self.get_id() return XSPF(uri, self.network).get_tracks() def add_track(self, track): """Adds a Track to this Playlist.""" params = self._get_params() params['artist'] = track.get_artist().get_name() params['track'] = track.get_title() self._request('playlist.addTrack', False, params) def get_title(self): """Returns the title of this playlist.""" return _extract(self._get_info_node(), "title") def get_creation_date(self): """Returns the creation date of this playlist.""" return _extract(self._get_info_node(), "date") def get_size(self): """Returns the number of tracks in this playlist.""" return _number(_extract(self._get_info_node(), "size")) def get_description(self): """Returns the description of this playlist.""" return _extract(self._get_info_node(), "description") def get_duration(self): """Returns the duration of this playlist in milliseconds.""" return _number(_extract(self._get_info_node(), "duration")) def is_streamable(self): """Returns True if the playlist is streamable. For a playlist to be streamable, it needs at least 45 tracks by 15 different artists.""" if _extract(self._get_info_node(), "streamable") == '1': return True else: return False def has_track(self, track): """Checks to see if track is already in the playlist. * track: Any Track object. """ return track in self.get_tracks() def get_cover_image(self, size = COVER_EXTRA_LARGE): """ Returns a uri to the cover image size can be one of: COVER_MEGA COVER_EXTRA_LARGE COVER_LARGE COVER_MEDIUM COVER_SMALL """ return _extract(self._get_info_node(), "image")[size] def get_url(self, domain_name = DOMAIN_ENGLISH): """Returns the url of the playlist on the network. * domain_name: The network's language domain. Possible values: o DOMAIN_ENGLISH o DOMAIN_GERMAN o DOMAIN_SPANISH o DOMAIN_FRENCH o DOMAIN_ITALIAN o DOMAIN_POLISH o DOMAIN_PORTUGUESE o DOMAIN_SWEDISH o DOMAIN_TURKISH o DOMAIN_RUSSIAN o DOMAIN_JAPANESE o DOMAIN_CHINESE """ english_url = _extract(self._get_info_node(), "url") appendix = english_url[english_url.rfind("/") + 1:] return self.network._get_url(domain_name, "playlist") %{'appendix': appendix, "user": self.get_user().get_name()} class Tag(_BaseObject): """A Last.fm object tag.""" # TODO: getWeeklyArtistChart (too lazy, i'll wait for when someone requests it) name = None def __init__(self, name, network): _BaseObject.__init__(self, network) self.name = name def __repr__(self): return "pylast.Tag(%s, %s)" %(repr(self.name), repr(self.network)) @_string_output def __str__(self): return self.get_name() def __eq__(self, other): return self.get_name().lower() == other.get_name().lower() def __ne__(self, other): return self.get_name().lower() != other.get_name().lower() def _get_params(self): return {'tag': self.get_name()} def get_name(self, properly_capitalized=False): """Returns the name of the tag. """ if properly_capitalized: self.name = _extract(self._request("tag.getInfo", True), "name") return self.name def get_similar(self): """Returns the tags similar to this one, ordered by similarity. """ doc = self._request('tag.getSimilar', True) seq = [] names = _extract_all(doc, 'name') for name in names: seq.append(Tag(name, self.network)) return seq def get_top_albums(self): """Retuns a list of the top albums.""" doc = self._request('tag.getTopAlbums', True) seq = [] for node in doc.getElementsByTagName("album"): name = _extract(node, "name") artist = _extract(node, "name", 1) playcount = _extract(node, "playcount") seq.append(TopItem(Album(artist, name, self.network), playcount)) return seq def get_top_tracks(self): """Returns a list of the most played Tracks by this artist.""" doc = self._request("tag.getTopTracks", True) seq = [] for track in doc.getElementsByTagName('track'): title = _extract(track, "name") artist = _extract(track, "name", 1) playcount = _number(_extract(track, "playcount")) seq.append( TopItem(Track(artist, title, self.network), playcount) ) return seq def get_top_artists(self): """Returns a sequence of the most played artists.""" doc = self._request('tag.getTopArtists', True) seq = [] for node in doc.getElementsByTagName("artist"): name = _extract(node, 'name') playcount = _extract(node, "playcount") seq.append(TopItem(Artist(name, self.network), playcount)) return seq def get_weekly_chart_dates(self): """Returns a list of From and To tuples for the available charts.""" doc = self._request("tag.getWeeklyChartList", True) seq = [] for node in doc.getElementsByTagName("chart"): seq.append( (node.getAttribute("from"), node.getAttribute("to")) ) return seq def get_weekly_artist_charts(self, from_date = None, to_date = None): """Returns the weekly artist charts for the week starting from the from_date value to the to_date value.""" params = self._get_params() if from_date and to_date: params["from"] = from_date params["to"] = to_date doc = self._request("tag.getWeeklyArtistChart", True, params) seq = [] for node in doc.getElementsByTagName("artist"): item = Artist(_extract(node, "name"), self.network) weight = _number(_extract(node, "weight")) seq.append(TopItem(item, weight)) return seq def get_url(self, domain_name = DOMAIN_ENGLISH): """Returns the url of the tag page on the network. * domain_name: The network's language domain. Possible values: o DOMAIN_ENGLISH o DOMAIN_GERMAN o DOMAIN_SPANISH o DOMAIN_FRENCH o DOMAIN_ITALIAN o DOMAIN_POLISH o DOMAIN_PORTUGUESE o DOMAIN_SWEDISH o DOMAIN_TURKISH o DOMAIN_RUSSIAN o DOMAIN_JAPANESE o DOMAIN_CHINESE """ name = _url_safe(self.get_name()) return self.network._get_url(domain_name, "tag") %{'name': name} class Track(_BaseObject, _Taggable): """A Last.fm track.""" artist = None title = None def __init__(self, artist, title, network): _BaseObject.__init__(self, network) _Taggable.__init__(self, 'track') if isinstance(artist, Artist): self.artist = artist else: self.artist = Artist(artist, self.network) self.title = title def __repr__(self): return "pylast.Track(%s, %s, %s)" %(repr(self.artist.name), repr(self.title), repr(self.network)) @_string_output def __str__(self): return self.get_artist().get_name() + ' - ' + self.get_title() def __eq__(self, other): return (self.get_title().lower() == other.get_title().lower()) and (self.get_artist().get_name().lower() == other.get_artist().get_name().lower()) def __ne__(self, other): return (self.get_title().lower() != other.get_title().lower()) or (self.get_artist().get_name().lower() != other.get_artist().get_name().lower()) def _get_params(self): return {'artist': self.get_artist().get_name(), 'track': self.get_title()} def get_artist(self): """Returns the associated Artist object.""" return self.artist def get_title(self, properly_capitalized=False): """Returns the track title.""" if properly_capitalized: self.title = _extract(self._request("track.getInfo", True), "name") return self.title def get_name(self, properly_capitalized=False): """Returns the track title (alias to Track.get_title).""" return self.get_title(properly_capitalized) def get_id(self): """Returns the track id on the network.""" doc = self._request("track.getInfo", True) return _extract(doc, "id") def get_duration(self): """Returns the track duration.""" doc = self._request("track.getInfo", True) return _number(_extract(doc, "duration")) def get_mbid(self): """Returns the MusicBrainz ID of this track.""" doc = self._request("track.getInfo", True) return _extract(doc, "mbid") def get_listener_count(self): """Returns the listener count.""" if hasattr(self, "listener_count"): return self.listener_count else: doc = self._request("track.getInfo", True) self.listener_count = _number(_extract(doc, "listeners")) return self.listener_count def get_playcount(self): """Returns the play count.""" doc = self._request("track.getInfo", True) return _number(_extract(doc, "playcount")) def is_streamable(self): """Returns True if the track is available at Last.fm.""" doc = self._request("track.getInfo", True) return _extract(doc, "streamable") == "1" def is_fulltrack_available(self): """Returns True if the fulltrack is available for streaming.""" doc = self._request("track.getInfo", True) return doc.getElementsByTagName("streamable")[0].getAttribute("fulltrack") == "1" def get_album(self): """Returns the album object of this track.""" doc = self._request("track.getInfo", True) albums = doc.getElementsByTagName("album") if len(albums) == 0: return node = doc.getElementsByTagName("album")[0] return Album(_extract(node, "artist"), _extract(node, "title"), self.network) def get_wiki_published_date(self): """Returns the date of publishing this version of the wiki.""" doc = self._request("track.getInfo", True) if len(doc.getElementsByTagName("wiki")) == 0: return node = doc.getElementsByTagName("wiki")[0] return _extract(node, "published") def get_wiki_summary(self): """Returns the summary of the wiki.""" doc = self._request("track.getInfo", True) if len(doc.getElementsByTagName("wiki")) == 0: return node = doc.getElementsByTagName("wiki")[0] return _extract(node, "summary") def get_wiki_content(self): """Returns the content of the wiki.""" doc = self._request("track.getInfo", True) if len(doc.getElementsByTagName("wiki")) == 0: return node = doc.getElementsByTagName("wiki")[0] return _extract(node, "content") def love(self): """Adds the track to the user's loved tracks. """ self._request('track.love') def ban(self): """Ban this track from ever playing on the radio. """ self._request('track.ban') def get_similar(self): """Returns similar tracks for this track on the network, based on listening data. """ doc = self._request('track.getSimilar', True) seq = [] for node in doc.getElementsByTagName("track"): title = _extract(node, 'name') artist = _extract(node, 'name', 1) match = _number(_extract(node, "match")) seq.append(SimilarItem(Track(artist, title, self.network), match)) return seq def get_top_fans(self, limit = None): """Returns a list of the Users who played this track.""" doc = self._request('track.getTopFans', True) seq = [] elements = doc.getElementsByTagName('user') for element in elements: if limit and len(seq) >= limit: break name = _extract(element, 'name') weight = _number(_extract(element, 'weight')) seq.append(TopItem(User(name, self.network), weight)) return seq def share(self, users, message = None): """Shares this track (sends out recommendations). * users: A list that can contain usernames, emails, User objects, or all of them. * message: A message to include in the recommendation message. """ #last.fm currently accepts a max of 10 recipient at a time while(len(users) > 10): section = users[0:9] users = users[9:] self.share(section, message) nusers = [] for user in users: if isinstance(user, User): nusers.append(user.get_name()) else: nusers.append(user) params = self._get_params() recipients = ','.join(nusers) params['recipient'] = recipients if message: params['message'] = message self._request('track.share', False, params) def get_url(self, domain_name = DOMAIN_ENGLISH): """Returns the url of the track page on the network. * domain_name: The network's language domain. Possible values: o DOMAIN_ENGLISH o DOMAIN_GERMAN o DOMAIN_SPANISH o DOMAIN_FRENCH o DOMAIN_ITALIAN o DOMAIN_POLISH o DOMAIN_PORTUGUESE o DOMAIN_SWEDISH o DOMAIN_TURKISH o DOMAIN_RUSSIAN o DOMAIN_JAPANESE o DOMAIN_CHINESE """ artist = _url_safe(self.get_artist().get_name()) title = _url_safe(self.get_title()) return self.network._get_url(domain_name, "track") %{'domain': self.network._get_language_domain(domain_name), 'artist': artist, 'title': title} def get_shouts(self, limit=50): """ Returns a sequqence of Shout objects """ shouts = [] for node in _collect_nodes(limit, self, "track.getShouts", False): shouts.append(Shout( _extract(node, "body"), User(_extract(node, "author"), self.network), _extract(node, "date") ) ) return shouts class Group(_BaseObject): """A Last.fm group.""" name = None def __init__(self, group_name, network): _BaseObject.__init__(self, network) self.name = group_name def __repr__(self): return "pylast.Group(%s, %s)" %(repr(self.name), repr(self.network)) @_string_output def __str__(self): return self.get_name() def __eq__(self, other): return self.get_name().lower() == other.get_name().lower() def __ne__(self, other): return self.get_name() != other.get_name() def _get_params(self): return {'group': self.get_name()} def get_name(self): """Returns the group name. """ return self.name def get_weekly_chart_dates(self): """Returns a list of From and To tuples for the available charts.""" doc = self._request("group.getWeeklyChartList", True) seq = [] for node in doc.getElementsByTagName("chart"): seq.append( (node.getAttribute("from"), node.getAttribute("to")) ) return seq def get_weekly_artist_charts(self, from_date = None, to_date = None): """Returns the weekly artist charts for the week starting from the from_date value to the to_date value.""" params = self._get_params() if from_date and to_date: params["from"] = from_date params["to"] = to_date doc = self._request("group.getWeeklyArtistChart", True, params) seq = [] for node in doc.getElementsByTagName("artist"): item = Artist(_extract(node, "name"), self.network) weight = _number(_extract(node, "playcount")) seq.append(TopItem(item, weight)) return seq def get_weekly_album_charts(self, from_date = None, to_date = None): """Returns the weekly album charts for the week starting from the from_date value to the to_date value.""" params = self._get_params() if from_date and to_date: params["from"] = from_date params["to"] = to_date doc = self._request("group.getWeeklyAlbumChart", True, params) seq = [] for node in doc.getElementsByTagName("album"): item = Album(_extract(node, "artist"), _extract(node, "name"), self.network) weight = _number(_extract(node, "playcount")) seq.append(TopItem(item, weight)) return seq def get_weekly_track_charts(self, from_date = None, to_date = None): """Returns the weekly track charts for the week starting from the from_date value to the to_date value.""" params = self._get_params() if from_date and to_date: params["from"] = from_date params["to"] = to_date doc = self._request("group.getWeeklyTrackChart", True, params) seq = [] for node in doc.getElementsByTagName("track"): item = Track(_extract(node, "artist"), _extract(node, "name"), self.network) weight = _number(_extract(node, "playcount")) seq.append(TopItem(item, weight)) return seq def get_url(self, domain_name = DOMAIN_ENGLISH): """Returns the url of the group page on the network. * domain_name: The network's language domain. Possible values: o DOMAIN_ENGLISH o DOMAIN_GERMAN o DOMAIN_SPANISH o DOMAIN_FRENCH o DOMAIN_ITALIAN o DOMAIN_POLISH o DOMAIN_PORTUGUESE o DOMAIN_SWEDISH o DOMAIN_TURKISH o DOMAIN_RUSSIAN o DOMAIN_JAPANESE o DOMAIN_CHINESE """ name = _url_safe(self.get_name()) return self.network._get_url(domain_name, "group") %{'name': name} def get_members(self, limit=50): """ Returns a sequence of User objects if limit==None it will return all """ nodes = _collect_nodes(limit, self, "group.getMembers", False) users = [] for node in nodes: users.append(User(_extract(node, "name"), self.network)) return users class XSPF(_BaseObject): "A Last.fm XSPF playlist.""" uri = None def __init__(self, uri, network): _BaseObject.__init__(self, network) self.uri = uri def _get_params(self): return {'playlistURL': self.get_uri()} @_string_output def __str__(self): return self.get_uri() def __eq__(self, other): return self.get_uri() == other.get_uri() def __ne__(self, other): return self.get_uri() != other.get_uri() def get_uri(self): """Returns the Last.fm playlist URI. """ return self.uri def get_tracks(self): """Returns the tracks on this playlist.""" doc = self._request('playlist.fetch', True) seq = [] for n in doc.getElementsByTagName('track'): title = _extract(n, 'title') artist = _extract(n, 'creator') seq.append(Track(artist, title, self.network)) return seq class User(_BaseObject): """A Last.fm user.""" name = None def __init__(self, user_name, network): _BaseObject.__init__(self, network) self.name = user_name self._past_events_index = 0 self._recommended_events_index = 0 self._recommended_artists_index = 0 def __repr__(self): return "pylast.User(%s, %s)" %(repr(self.name), repr(self.network)) @_string_output def __str__(self): return self.get_name() def __eq__(self, another): return self.get_name() == another.get_name() def __ne__(self, another): return self.get_name() != another.get_name() def _get_params(self): return {"user": self.get_name()} def get_name(self, properly_capitalized=False): """Returns the nuser name.""" if properly_capitalized: self.name = _extract(self._request("user.getInfo", True), "name") return self.name def get_upcoming_events(self): """Returns all the upcoming events for this user. """ doc = self._request('user.getEvents', True) ids = _extract_all(doc, 'id') events = [] for e_id in ids: events.append(Event(e_id, self.network)) return events def get_friends(self, limit = 50): """Returns a list of the user's friends. """ seq = [] for node in _collect_nodes(limit, self, "user.getFriends", False): seq.append(User(_extract(node, "name"), self.network)) return seq def get_loved_tracks(self, limit=50): """Returns this user's loved track as a sequence of LovedTrack objects in reverse order of their timestamp, all the way back to the first track. If limit==None, it will try to pull all the available data. This method uses caching. Enable caching only if you're pulling a large amount of data. Use extract_items() with the return of this function to get only a sequence of Track objects with no playback dates. """ params = self._get_params() if limit: params['limit'] = limit seq = [] for track in _collect_nodes(limit, self, "user.getLovedTracks", True, params): title = _extract(track, "name") artist = _extract(track, "name", 1) date = _extract(track, "date") timestamp = track.getElementsByTagName("date")[0].getAttribute("uts") seq.append(LovedTrack(Track(artist, title, self.network), date, timestamp)) return seq def get_neighbours(self, limit = 50): """Returns a list of the user's friends.""" params = self._get_params() if limit: params['limit'] = limit doc = self._request('user.getNeighbours', True, params) seq = [] names = _extract_all(doc, 'name') for name in names: seq.append(User(name, self.network)) return seq def get_past_events(self, limit=50): """ Returns a sequence of Event objects if limit==None it will return all """ seq = [] for n in _collect_nodes(limit, self, "user.getPastEvents", False): seq.append(Event(_extract(n, "id"), self.network)) return seq def get_playlists(self): """Returns a list of Playlists that this user owns.""" doc = self._request("user.getPlaylists", True) playlists = [] for playlist_id in _extract_all(doc, "id"): playlists.append(Playlist(self.get_name(), playlist_id, self.network)) return playlists def get_now_playing(self): """Returns the currently playing track, or None if nothing is playing. """ params = self._get_params() params['limit'] = '1' doc = self._request('user.getRecentTracks', False, params) e = doc.getElementsByTagName('track')[0] if not e.hasAttribute('nowplaying'): return None artist = _extract(e, 'artist') title = _extract(e, 'name') return Track(artist, title, self.network) def get_recent_tracks(self, limit = 10): """Returns this user's played track as a sequence of PlayedTrack objects in reverse order of their playtime, all the way back to the first track. If limit==None, it will try to pull all the available data. This method uses caching. Enable caching only if you're pulling a large amount of data. Use extract_items() with the return of this function to get only a sequence of Track objects with no playback dates. """ params = self._get_params() if limit: params['limit'] = limit seq = [] for track in _collect_nodes(limit, self, "user.getRecentTracks", True, params): if track.hasAttribute('nowplaying'): continue #to prevent the now playing track from sneaking in here title = _extract(track, "name") artist = _extract(track, "artist") date = _extract(track, "date") timestamp = track.getElementsByTagName("date")[0].getAttribute("uts") seq.append(PlayedTrack(Track(artist, title, self.network), date, timestamp)) return seq def get_id(self): """Returns the user id.""" doc = self._request("user.getInfo", True) return _extract(doc, "id") def get_language(self): """Returns the language code of the language used by the user.""" doc = self._request("user.getInfo", True) return _extract(doc, "lang") def get_country(self): """Returns the name of the country of the user.""" doc = self._request("user.getInfo", True) return Country(_extract(doc, "country"), self.network) def get_age(self): """Returns the user's age.""" doc = self._request("user.getInfo", True) return _number(_extract(doc, "age")) def get_gender(self): """Returns the user's gender. Either USER_MALE or USER_FEMALE.""" doc = self._request("user.getInfo", True) value = _extract(doc, "gender") if value == 'm': return USER_MALE elif value == 'f': return USER_FEMALE return None def is_subscriber(self): """Returns whether the user is a subscriber or not. True or False.""" doc = self._request("user.getInfo", True) return _extract(doc, "subscriber") == "1" def get_playcount(self): """Returns the user's playcount so far.""" doc = self._request("user.getInfo", True) return _number(_extract(doc, "playcount")) def get_top_albums(self, period = PERIOD_OVERALL): """Returns the top albums played by a user. * period: The period of time. Possible values: o PERIOD_OVERALL o PERIOD_7DAYS o PERIOD_3MONTHS o PERIOD_6MONTHS o PERIOD_12MONTHS """ params = self._get_params() params['period'] = period doc = self._request('user.getTopAlbums', True, params) seq = [] for album in doc.getElementsByTagName('album'): name = _extract(album, 'name') artist = _extract(album, 'name', 1) playcount = _extract(album, "playcount") seq.append(TopItem(Album(artist, name, self.network), playcount)) return seq def get_top_artists(self, period = PERIOD_OVERALL): """Returns the top artists played by a user. * period: The period of time. Possible values: o PERIOD_OVERALL o PERIOD_7DAYS o PERIOD_3MONTHS o PERIOD_6MONTHS o PERIOD_12MONTHS """ params = self._get_params() params['period'] = period doc = self._request('user.getTopArtists', True, params) seq = [] for node in doc.getElementsByTagName('artist'): name = _extract(node, 'name') playcount = _extract(node, "playcount") seq.append(TopItem(Artist(name, self.network), playcount)) return seq def get_top_tags(self, limit=None): """Returns a sequence of the top tags used by this user with their counts as TopItem objects. * limit: The limit of how many tags to return. """ doc = self._request("user.getTopTags", True) seq = [] for node in doc.getElementsByTagName("tag"): seq.append(TopItem(Tag(_extract(node, "name"), self.network), _extract(node, "count"))) if limit: seq = seq[:limit] return seq def get_top_tracks(self, period = PERIOD_OVERALL): """Returns the top tracks played by a user. * period: The period of time. Possible values: o PERIOD_OVERALL o PERIOD_7DAYS o PERIOD_3MONTHS o PERIOD_6MONTHS o PERIOD_12MONTHS """ params = self._get_params() params['period'] = period doc = self._request('user.getTopTracks', True, params) seq = [] for track in doc.getElementsByTagName('track'): name = _extract(track, 'name') artist = _extract(track, 'name', 1) playcount = _extract(track, "playcount") seq.append(TopItem(Track(artist, name, self.network), playcount)) return seq def get_weekly_chart_dates(self): """Returns a list of From and To tuples for the available charts.""" doc = self._request("user.getWeeklyChartList", True) seq = [] for node in doc.getElementsByTagName("chart"): seq.append( (node.getAttribute("from"), node.getAttribute("to")) ) return seq def get_weekly_artist_charts(self, from_date = None, to_date = None): """Returns the weekly artist charts for the week starting from the from_date value to the to_date value.""" params = self._get_params() if from_date and to_date: params["from"] = from_date params["to"] = to_date doc = self._request("user.getWeeklyArtistChart", True, params) seq = [] for node in doc.getElementsByTagName("artist"): item = Artist(_extract(node, "name"), self.network) weight = _number(_extract(node, "playcount")) seq.append(TopItem(item, weight)) return seq def get_weekly_album_charts(self, from_date = None, to_date = None): """Returns the weekly album charts for the week starting from the from_date value to the to_date value.""" params = self._get_params() if from_date and to_date: params["from"] = from_date params["to"] = to_date doc = self._request("user.getWeeklyAlbumChart", True, params) seq = [] for node in doc.getElementsByTagName("album"): item = Album(_extract(node, "artist"), _extract(node, "name"), self.network) weight = _number(_extract(node, "playcount")) seq.append(TopItem(item, weight)) return seq def get_weekly_track_charts(self, from_date = None, to_date = None): """Returns the weekly track charts for the week starting from the from_date value to the to_date value.""" params = self._get_params() if from_date and to_date: params["from"] = from_date params["to"] = to_date doc = self._request("user.getWeeklyTrackChart", True, params) seq = [] for node in doc.getElementsByTagName("track"): item = Track(_extract(node, "artist"), _extract(node, "name"), self.network) weight = _number(_extract(node, "playcount")) seq.append(TopItem(item, weight)) return seq def compare_with_user(self, user, shared_artists_limit = None): """Compare this user with another Last.fm user. Returns a sequence (tasteometer_score, (shared_artist1, shared_artist2, ...)) user: A User object or a username string/unicode object. """ if isinstance(user, User): user = user.get_name() params = self._get_params() if shared_artists_limit: params['limit'] = shared_artists_limit params['type1'] = 'user' params['type2'] = 'user' params['value1'] = self.get_name() params['value2'] = user doc = self._request('tasteometer.compare', False, params) score = _extract(doc, 'score') artists = doc.getElementsByTagName('artists')[0] shared_artists_names = _extract_all(artists, 'name') shared_artists_seq = [] for name in shared_artists_names: shared_artists_seq.append(Artist(name, self.network)) return (score, shared_artists_seq) def get_image(self): """Returns the user's avatar.""" doc = self._request("user.getInfo", True) return _extract(doc, "image") def get_url(self, domain_name = DOMAIN_ENGLISH): """Returns the url of the user page on the network. * domain_name: The network's language domain. Possible values: o DOMAIN_ENGLISH o DOMAIN_GERMAN o DOMAIN_SPANISH o DOMAIN_FRENCH o DOMAIN_ITALIAN o DOMAIN_POLISH o DOMAIN_PORTUGUESE o DOMAIN_SWEDISH o DOMAIN_TURKISH o DOMAIN_RUSSIAN o DOMAIN_JAPANESE o DOMAIN_CHINESE """ name = _url_safe(self.get_name()) return self.network._get_url(domain_name, "user") %{'name': name} def get_library(self): """Returns the associated Library object. """ return Library(self, self.network) def get_shouts(self, limit=50): """ Returns a sequqence of Shout objects """ shouts = [] for node in _collect_nodes(limit, self, "user.getShouts", False): shouts.append(Shout( _extract(node, "body"), User(_extract(node, "author"), self.network), _extract(node, "date") ) ) return shouts def shout(self, message): """ Post a shout """ params = self._get_params() params["message"] = message self._request("user.Shout", False, params) class AuthenticatedUser(User): def __init__(self, network): User.__init__(self, "", network); def _get_params(self): return {"user": self.get_name()} def get_name(self): """Returns the name of the authenticated user.""" doc = self._request("user.getInfo", True, {"user": ""}) # hack self.name = _extract(doc, "name") return self.name def get_recommended_events(self, limit=50): """ Returns a sequence of Event objects if limit==None it will return all """ seq = [] for node in _collect_nodes(limit, self, "user.getRecommendedEvents", False): seq.append(Event(_extract(node, "id"), self.network)) return seq def get_recommended_artists(self, limit=50): """ Returns a sequence of Event objects if limit==None it will return all """ seq = [] for node in _collect_nodes(limit, self, "user.getRecommendedArtists", False): seq.append(Artist(_extract(node, "name"), self.network)) return seq class _Search(_BaseObject): """An abstract class. Use one of its derivatives.""" def __init__(self, ws_prefix, search_terms, network): _BaseObject.__init__(self, network) self._ws_prefix = ws_prefix self.search_terms = search_terms self._last_page_index = 0 def _get_params(self): params = {} for key in self.search_terms.keys(): params[key] = self.search_terms[key] return params def get_total_result_count(self): """Returns the total count of all the results.""" doc = self._request(self._ws_prefix + ".search", True) return _extract(doc, "opensearch:totalResults") def _retreive_page(self, page_index): """Returns the node of matches to be processed""" params = self._get_params() params["page"] = str(page_index) doc = self._request(self._ws_prefix + ".search", True, params) return doc.getElementsByTagName(self._ws_prefix + "matches")[0] def _retrieve_next_page(self): self._last_page_index += 1 return self._retreive_page(self._last_page_index) class AlbumSearch(_Search): """Search for an album by name.""" def __init__(self, album_name, network): _Search.__init__(self, "album", {"album": album_name}, network) def get_next_page(self): """Returns the next page of results as a sequence of Album objects.""" master_node = self._retrieve_next_page() seq = [] for node in master_node.getElementsByTagName("album"): seq.append(Album(_extract(node, "artist"), _extract(node, "name"), self.network)) return seq class ArtistSearch(_Search): """Search for an artist by artist name.""" def __init__(self, artist_name, network): _Search.__init__(self, "artist", {"artist": artist_name}, network) def get_next_page(self): """Returns the next page of results as a sequence of Artist objects.""" master_node = self._retrieve_next_page() seq = [] for node in master_node.getElementsByTagName("artist"): artist = Artist(_extract(node, "name"), self.network) artist.listener_count = _number(_extract(node, "listeners")) seq.append(artist) return seq class TagSearch(_Search): """Search for a tag by tag name.""" def __init__(self, tag_name, network): _Search.__init__(self, "tag", {"tag": tag_name}, network) def get_next_page(self): """Returns the next page of results as a sequence of Tag objects.""" master_node = self._retrieve_next_page() seq = [] for node in master_node.getElementsByTagName("tag"): tag = Tag(_extract(node, "name"), self.network) tag.tag_count = _number(_extract(node, "count")) seq.append(tag) return seq class TrackSearch(_Search): """Search for a track by track title. If you don't wanna narrow the results down by specifying the artist name, set it to empty string.""" def __init__(self, artist_name, track_title, network): _Search.__init__(self, "track", {"track": track_title, "artist": artist_name}, network) def get_next_page(self): """Returns the next page of results as a sequence of Track objects.""" master_node = self._retrieve_next_page() seq = [] for node in master_node.getElementsByTagName("track"): track = Track(_extract(node, "artist"), _extract(node, "name"), self.network) track.listener_count = _number(_extract(node, "listeners")) seq.append(track) return seq class VenueSearch(_Search): """Search for a venue by its name. If you don't wanna narrow the results down by specifying a country, set it to empty string.""" def __init__(self, venue_name, country_name, network): _Search.__init__(self, "venue", {"venue": venue_name, "country": country_name}, network) def get_next_page(self): """Returns the next page of results as a sequence of Track objects.""" master_node = self._retrieve_next_page() seq = [] for node in master_node.getElementsByTagName("venue"): seq.append(Venue(_extract(node, "id"), self.network)) return seq class Venue(_BaseObject): """A venue where events are held.""" # TODO: waiting for a venue.getInfo web service to use. id = None def __init__(self, id, network): _BaseObject.__init__(self, network) self.id = _number(id) def __repr__(self): return "pylast.Venue(%s, %s)" %(repr(self.id), repr(self.network)) @_string_output def __str__(self): return "Venue #" + str(self.id) def __eq__(self, other): return self.get_id() == other.get_id() def _get_params(self): return {"venue": self.get_id()} def get_id(self): """Returns the id of the venue.""" return self.id def get_upcoming_events(self): """Returns the upcoming events in this venue.""" doc = self._request("venue.getEvents", True) seq = [] for node in doc.getElementsByTagName("event"): seq.append(Event(_extract(node, "id"), self.network)) return seq def get_past_events(self): """Returns the past events held in this venue.""" doc = self._request("venue.getEvents", True) seq = [] for node in doc.getElementsByTagName("event"): seq.append(Event(_extract(node, "id"), self.network)) return seq def md5(text): """Returns the md5 hash of a string.""" h = hashlib.md5() h.update(_unicode(text).encode("utf-8")) return h.hexdigest() def _unicode(text): if sys.version_info[0] == 3: if type(text) in (bytes, bytearray): return str(text, "utf-8") elif type(text) == str: return text else: return str(text) elif sys.version_info[0] ==2: if type(text) in (str,): return unicode(text, "utf-8") elif type(text) == unicode: return text else: return unicode(text) def _string(text): """For Python2 routines that can only process str type.""" if sys.version_info[0] == 3: if type(text) != str: return str(text) else: return text elif sys.version_info[0] == 2: if type(text) == str: return text if type(text) == int: return str(text) return text.encode("utf-8") def _collect_nodes(limit, sender, method_name, cacheable, params=None): """ Returns a sequqnce of dom.Node objects about as close to limit as possible """ if not params: params = sender._get_params() nodes = [] page = 1 end_of_pages = False while not end_of_pages and (not limit or (limit and len(nodes) < limit)): params["page"] = str(page) doc = sender._request(method_name, cacheable, params) main = doc.documentElement.childNodes[1] if main.hasAttribute("totalPages"): total_pages = _number(main.getAttribute("totalPages")) elif main.hasAttribute("totalpages"): total_pages = _number(main.getAttribute("totalpages")) else: raise Exception("No total pages attribute") for node in main.childNodes: if not node.nodeType == xml.dom.Node.TEXT_NODE and len(nodes) < limit: nodes.append(node) if page >= total_pages: end_of_pages = True page += 1 return nodes def _extract(node, name, index = 0): """Extracts a value from the xml string""" nodes = node.getElementsByTagName(name) if len(nodes): if nodes[index].firstChild: return _unescape_htmlentity(nodes[index].firstChild.data.strip()) else: return None def _extract_all(node, name, limit_count = None): """Extracts all the values from the xml string. returning a list.""" seq = [] for i in range(0, len(node.getElementsByTagName(name))): if len(seq) == limit_count: break seq.append(_extract(node, name, i)) return seq def _url_safe(text): """Does all kinds of tricks on a text to make it safe to use in a url.""" return url_quote_plus(url_quote_plus(_string(text))).lower() def _number(string): """ Extracts an int from a string. Returns a 0 if None or an empty string was passed """ if not string: return 0 elif string == "": return 0 else: try: return int(string) except ValueError: return float(string) def _unescape_htmlentity(string): #string = _unicode(string) mapping = htmlentitydefs.name2codepoint for key in mapping: string = string.replace("&%s;" %key, unichr(mapping[key])) return string def extract_items(topitems_or_libraryitems): """Extracts a sequence of items from a sequence of TopItem or LibraryItem objects.""" seq = [] for i in topitems_or_libraryitems: seq.append(i.item) return seq class ScrobblingError(Exception): def __init__(self, message): Exception.__init__(self) self.message = message @_string_output def __str__(self): return self.message class BannedClientError(ScrobblingError): def __init__(self): ScrobblingError.__init__(self, "This version of the client has been banned") class BadAuthenticationError(ScrobblingError): def __init__(self): ScrobblingError.__init__(self, "Bad authentication token") class BadTimeError(ScrobblingError): def __init__(self): ScrobblingError.__init__(self, "Time provided is not close enough to current time") class BadSessionError(ScrobblingError): def __init__(self): ScrobblingError.__init__(self, "Bad session id, consider re-handshaking") class _ScrobblerRequest(object): def __init__(self, url, params, network, type="POST"): for key in params: params[key] = str(params[key]) self.params = params self.type = type (self.hostname, self.subdir) = url_split_host(url[len("http:"):]) self.network = network def execute(self): """Returns a string response of this request.""" connection = HTTPConnection(self.hostname) data = [] for name in self.params.keys(): value = url_quote_plus(self.params[name]) data.append('='.join((name, value))) data = "&".join(data) headers = { "Content-type": "application/x-www-form-urlencoded", "Accept-Charset": "utf-8", "User-Agent": "pylast" + "/" + __version__, "HOST": self.hostname } if self.type == "GET": connection.request("GET", self.subdir + "?" + data, headers = headers) else: connection.request("POST", self.subdir, data, headers) response = _unicode(connection.getresponse().read()) self._check_response_for_errors(response) return response def _check_response_for_errors(self, response): """When passed a string response it checks for erros, raising any exceptions as necessary.""" lines = response.split("\n") status_line = lines[0] if status_line == "OK": return elif status_line == "BANNED": raise BannedClientError() elif status_line == "BADAUTH": raise BadAuthenticationError() elif status_line == "BADTIME": raise BadTimeError() elif status_line == "BADSESSION": raise BadSessionError() elif status_line.startswith("FAILED "): reason = status_line[status_line.find("FAILED ")+len("FAILED "):] raise ScrobblingError(reason) class Scrobbler(object): """A class for scrobbling tracks to Last.fm""" session_id = None nowplaying_url = None submissions_url = None def __init__(self, network, client_id, client_version): self.client_id = client_id self.client_version = client_version self.username = network.username self.password = network.password_hash self.network = network def _do_handshake(self): """Handshakes with the server""" timestamp = str(int(time.time())) if self.password and self.username: token = md5(self.password + timestamp) elif self.network.api_key and self.network.api_secret and self.network.session_key: if not self.username: self.username = self.network.get_authenticated_user().get_name() token = md5(self.network.api_secret + timestamp) params = {"hs": "true", "p": "1.2.1", "c": self.client_id, "v": self.client_version, "u": self.username, "t": timestamp, "a": token} if self.network.session_key and self.network.api_key: params["sk"] = self.network.session_key params["api_key"] = self.network.api_key server = self.network.submission_server response = _ScrobblerRequest(server, params, self.network, "GET").execute().split("\n") self.session_id = response[1] self.nowplaying_url = response[2] self.submissions_url = response[3] def _get_session_id(self, new = False): """Returns a handshake. If new is true, then it will be requested from the server even if one was cached.""" if not self.session_id or new: self._do_handshake() return self.session_id def report_now_playing(self, artist, title, album = "", duration = "", track_number = "", mbid = ""): _deprecation_warning("DeprecationWarning: Use Netowrk.update_now_playing(...) instead") params = {"s": self._get_session_id(), "a": artist, "t": title, "b": album, "l": duration, "n": track_number, "m": mbid} try: _ScrobblerRequest(self.nowplaying_url, params, self.network).execute() except BadSessionError: self._do_handshake() self.report_now_playing(artist, title, album, duration, track_number, mbid) def scrobble(self, artist, title, time_started, source, mode, duration, album="", track_number="", mbid=""): """Scrobble a track. parameters: artist: Artist name. title: Track title. time_started: UTC timestamp of when the track started playing. source: The source of the track SCROBBLE_SOURCE_USER: Chosen by the user (the most common value, unless you have a reason for choosing otherwise, use this). SCROBBLE_SOURCE_NON_PERSONALIZED_BROADCAST: Non-personalised broadcast (e.g. Shoutcast, BBC Radio 1). SCROBBLE_SOURCE_PERSONALIZED_BROADCAST: Personalised recommendation except Last.fm (e.g. Pandora, Launchcast). SCROBBLE_SOURCE_LASTFM: ast.fm (any mode). In this case, the 5-digit recommendation_key value must be set. SCROBBLE_SOURCE_UNKNOWN: Source unknown. mode: The submission mode SCROBBLE_MODE_PLAYED: The track was played. SCROBBLE_MODE_LOVED: The user manually loved the track (implies a listen) SCROBBLE_MODE_SKIPPED: The track was skipped (Only if source was Last.fm) SCROBBLE_MODE_BANNED: The track was banned (Only if source was Last.fm) duration: Track duration in seconds. album: The album name. track_number: The track number on the album. mbid: MusicBrainz ID. """ _deprecation_warning("DeprecationWarning: Use Network.scrobble(...) instead") params = {"s": self._get_session_id(), "a[0]": _string(artist), "t[0]": _string(title), "i[0]": str(time_started), "o[0]": source, "r[0]": mode, "l[0]": str(duration), "b[0]": _string(album), "n[0]": track_number, "m[0]": mbid} _ScrobblerRequest(self.submissions_url, params, self.network).execute() def scrobble_many(self, tracks): """ Scrobble several tracks at once. tracks: A sequence of a sequence of parameters for each trach. The order of parameters is the same as if passed to the scrobble() method. """ _deprecation_warning("DeprecationWarning: Use Network.scrobble_many(...) instead") remainder = [] if len(tracks) > 50: remainder = tracks[50:] tracks = tracks[:50] params = {"s": self._get_session_id()} i = 0 for t in tracks: _pad_list(t, 9, "") params["a[%s]" % str(i)] = _string(t[0]) params["t[%s]" % str(i)] = _string(t[1]) params["i[%s]" % str(i)] = str(t[2]) params["o[%s]" % str(i)] = t[3] params["r[%s]" % str(i)] = t[4] params["l[%s]" % str(i)] = str(t[5]) params["b[%s]" % str(i)] = _string(t[6]) params["n[%s]" % str(i)] = t[7] params["m[%s]" % str(i)] = t[8] i += 1 _ScrobblerRequest(self.submissions_url, params, self.network).execute() if remainder: self.scrobble_many(remainder) dist/copy/plugins/lastfmlove/PaxHeaders.26361/cellrenderertoggleimage.py0000644000175000017500000000012412233027260025103 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.165046934 exaile-3.3.2/plugins/lastfmlove/cellrenderertoggleimage.py0000644000000000000000000001434212233027260024047 0ustar00rootroot00000000000000#! /usr/bin/env python # -*- coding: utf-8 -*- import gobject, gtk class CellRendererToggleImage(gtk.CellRendererToggle): """ Renders a toggleable state as an image """ __gproperties__ = { 'icon-name': ( gobject.TYPE_STRING, 'icon name', 'The name of the themed icon to display. This ' 'property only has an effect if not overridden ' 'by "stock_id" or "pixbuf" properties.', '', gobject.PARAM_READWRITE ), 'pixbuf': ( gtk.gdk.Pixbuf, 'pixbuf', 'The pixbuf to render.', gobject.PARAM_READWRITE ), 'stock-id': ( gobject.TYPE_STRING, 'stock id', 'The stock ID of the stock icon to render.', '', gobject.PARAM_READWRITE ), 'stock-size': ( gobject.TYPE_UINT, 'stock size', 'The size of the rendered icon.', 0, 65535, gtk.ICON_SIZE_SMALL_TOOLBAR, gobject.PARAM_READWRITE ), 'render-prelit': ( gobject.TYPE_BOOLEAN, 'render prelit', 'Whether to render prelit states or not', True, gobject.PARAM_READWRITE ) } def __init__(self): gtk.CellRendererToggle.__init__(self) self.__icon_name = '' self.__pixbuf = None self.__insensitive_pixbuf = None self.__prelit_pixbuf = None self.__pixbuf_width = 0 self.__pixbuf_height = 0 self.__stock_id = '' self.__stock_size = gtk.ICON_SIZE_SMALL_TOOLBAR self.__render_prelit = True # Any widget is fine self.__render_widget = gtk.Button() self.__icon_theme = gtk.icon_theme_get_default() self.set_property('activatable', True) def do_get_property(self, property): """ Getter for custom properties """ if property.name == 'icon-name': return self.__icon_name elif property.name == 'pixbuf': return self.__pixbuf elif property.name == 'stock-id': return self.__stock_id elif property.name == 'stock-size': return self.__stock_size elif property.name == 'render-prelit': return self.__render_prelit else: raise AttributeError, 'unknown property %s' % property.name def do_set_property(self, property, value): """ Setter for custom properties """ if property.name == 'icon-name': self.__icon_name = value elif property.name == 'pixbuf': self.__pixbuf = value elif property.name == 'stock-id': self.__stock_id = value elif property.name == 'stock-size': self.__stock_size = value elif property.name == 'render-prelit': self.__render_prelit = value else: raise AttributeError, 'unknown property %s' % property.name self.__render_pixbufs() def __pixbuf_from_icon_name(self): """ Loads a pixbuf from an icon name """ try: return self.__icon_theme.load_icon( icon_name=self.__icon_name, size=self.__stock_size, flags=0 ) except gobject.GError: return None def __pixbuf_from_stock(self): """ Loads a pixbuf from a stock id """ return self.__render_widget.render_icon( self.__stock_id, self.__stock_size) def __render_pixbufs(self): """ Pre-renders all required pixbufs and caches them """ # Get pixbuf from raw, stock or name in that order if self.__pixbuf is None: pixbuf = self.__pixbuf_from_stock() if pixbuf is None: pixbuf = self.__pixbuf_from_icon_name() if pixbuf is None: return self.__pixbuf = pixbuf # Cache dimensions self.__pixbuf_height = self.__pixbuf.get_height() self.__pixbuf_width = self.__pixbuf.get_width() self.__insensitive_pixbuf = self.__pixbuf.copy() # Render insensitive state self.__pixbuf.saturate_and_pixelate( dest=self.__insensitive_pixbuf, saturation=1, pixelate=True ) if self.__render_prelit: self.__prelit_pixbuf = self.__pixbuf.copy() # Desaturate the active pixbuf self.__pixbuf.saturate_and_pixelate( dest=self.__prelit_pixbuf, saturation=0, pixelate=False ) # Restore the brightness after desaturation self.__prelit_pixbuf.saturate_and_pixelate( dest=self.__prelit_pixbuf, saturation=100, pixelate=False ) def do_render(self, window, widget, background_area, cell_area, expose_area, flags): """ Renders a custom toggle image """ # Ensure pixbufs are rendered if self.__pixbuf is None: self.__render_pixbufs() pixbuf = None prelit = flags & gtk.CELL_RENDERER_PRELIT # Either draw the sensitive or insensitive state if self.props.sensitive: # Either draw the regular or the prelight state if self.props.active: pixbuf = self.__pixbuf elif self.__render_prelit and prelit: pixbuf = self.__prelit_pixbuf elif self.props.active: pixbuf = self.__insensitive_pixbuf # Do nothing if we are inactive or not prelit if pixbuf is not None: area_x, area_y, area_width, area_height = cell_area # Make sure to properly align the pixbuf x = area_x + \ area_width * self.props.xalign - \ self.__pixbuf_width / 2 y = area_y + \ area_height * self.props.yalign - \ self.__pixbuf_height / 2 context = window.cairo_create() context.set_source_pixbuf(pixbuf, x, y) context.paint() dist/copy/plugins/PaxHeaders.26361/osd0000644000175000017500000000013212233027261016212 xustar000000000000000030 mtime=1382821553.565046947 30 atime=1382821552.789046922 30 ctime=1382821553.565046947 exaile-3.3.2/plugins/osd/0000755000000000000000000000000012233027261015230 5ustar00rootroot00000000000000dist/copy/plugins/osd/PaxHeaders.26361/osd_preferences.ui0000644000175000017500000000012412233027260021774 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.421046942 exaile-3.3.2/plugins/osd/osd_preferences.ui0000644000000000000000000003667512233027260020755 0ustar00rootroot00000000000000 50 1 2 1 100 1 2 False True False 3 6 True True True False 6 6 6 6 True False 6 100 True True 1 in True True False True 0 True False 6 True False gtk-dialog-info 6 False False 0 True True 0 Every tag can be used with <b>$tag</b> or <b>${tag}</b>. Internal tags like <b>$__length</b> need to be specified with two leading underscores. <a href="http://developer.gnome.org/pango/stable/PangoMarkupFormat.html">Pango Text Attribute Markup</a> is supported. True True word-char True True 1 False True 1 True True False Display Format False True False 6 6 6 6 True False 5 3 6 6 True False 0 Display duration: GTK_FILL GTK_FILL True False 0 Background: 1 2 GTK_FILL GTK_FILL False True True True False True #2e2e34343636 1 2 1 2 GTK_FILL GTK_FILL Show progress bar False True True False False 0 True 3 3 4 GTK_FILL GTK_FILL True False 0 seconds 2 3 GTK_FILL GTK_FILL True True True display_duration_adjustment 1 2 GTK_FILL GTK_FILL True False 0 Border radius: 2 3 GTK_FILL GTK_FILL True True border_radius_adjustment True 1 2 2 3 GTK_FILL GTK_FILL 1 True True False Appearance 1 False True True 0 dist/copy/plugins/osd/PaxHeaders.26361/osd_preferences.py0000644000175000017500000000012412233027260022007 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.565046947 exaile-3.3.2/plugins/osd/osd_preferences.py0000644000000000000000000000571012233027260020752 0ustar00rootroot00000000000000# Copyright (C) 2012 Mathias Brodala # # 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, 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 gtk.gdk import os from xl.main import exaile from xl.nls import gettext as _ from xlgui.preferences import widgets from alphacolor import ( AlphaColor, alphacolor_parse ) name = _('On Screen Display') basedir = os.path.dirname(os.path.realpath(__file__)) ui = os.path.join(basedir, "osd_preferences.ui") icon = 'gtk-info' def page_enter(preferences_dialog): """ Shows a preview of the OSD """ # XXX: Ugly but the only way to get the proper # instance, just plugins.osd.OSDWINDOW is always None OSDWINDOW = exaile().plugins.enabled_plugins['osd'].OSDWINDOW OSDWINDOW.props.autohide = False OSDWINDOW.show() def page_leave(preferences_dialog): """ Hides the OSD preview """ OSDWINDOW = exaile().plugins.enabled_plugins['osd'].OSDWINDOW OSDWINDOW.props.autohide = True OSDWINDOW.hide() class ShowProgressPreference(widgets.CheckPreference): name = 'plugin/osd/show_progress' default = True class DisplayDurationPreference(widgets.SpinPreference): name = 'plugin/osd/display_duration' default = 4 class BackgroundPreference(widgets.ColorButtonPreference): name = 'plugin/osd/background' default = '#333333cc' def __init__(self, preferences, widget): widgets.ColorButtonPreference.__init__(self, preferences, widget) self.widget.set_use_alpha(True) def _set_value(self): color = alphacolor_parse( self.preferences.settings.get_option(self.name, self.default)) self.widget.set_color(gtk.gdk.Color(color.red, color.green, color.blue)) self.widget.set_alpha(color.alpha) def _get_value(self): color = self.widget.get_color() color = AlphaColor( color.red, color.green, color.blue, self.widget.get_alpha() ) return str(color) class FormatPreference(widgets.TextViewPreference): name = 'plugin/osd/format' default = _('$title\n' 'by $artist\n' 'from $album') class BorderRadiusPreference(widgets.SpinPreference): name = 'plugin/osd/border_radius' default = 10 def _get_value(self): return self.widget.get_value_as_int() dist/copy/plugins/osd/PaxHeaders.26361/alphacolor.py0000644000175000017500000000012412233027260020765 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.513046945 exaile-3.3.2/plugins/osd/alphacolor.py0000644000000000000000000001220512233027260017725 0ustar00rootroot00000000000000# Copyright (C) 2012 Mathias Brodala # # 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, 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 gtk.gdk class AlphaColor(gtk.gdk.Color): """ Wrapper around :class:`gtk.gdk.Color` to incorporate an alpha value """ __gtype_name__ = 'Color' def __init__(self, *args, **kwargs): """ :param red: The red color component in the range 0-65535 :param green: The green color component in the range 0-65535 :param blue: The blue color component in the range 0-65535 :param alpha: The alpha intensity in the range 0-65535 :param pixel: The index of the color when allocated in its colormap :param spec: String containing color specification :returns: a new :class:`AlphaColor` object """ if len(args) == 1: if 'spec' not in kwargs: kwargs['spec'] = args[0] args = () if 'spec' in kwargs: # Error out early if there are other keyword # arguments or regular arguments specified if len(kwargs) > 1 or len(args) > 0: raise TypeError('Usage:\n' ' Color(red, green, blue, alpha, pixel) ' '[all are optional]\n' ' Color(spec) ' '[see color_parse_with_alpha()]') color = color_parse_with_alpha(kwargs.pop('spec')) args = (color.red, color.green, color.blue, color.alpha) # Create mapping of available parameters and arguments parameters = dict(zip(('red', 'green', 'blue', 'alpha', 'pixel'), args)) for parameter in parameters.iterkeys(): if parameter in kwargs: raise TypeError('Usage:\n' ' Color(red, green, blue, alpha, pixel) ' '[all are optional]\n' ' Color(spec) ' '[see color_parse_with_alpha()]') parameters.update(kwargs) kwargs = parameters args = () self.__alpha = kwargs.pop('alpha', 0) gtk.gdk.Color.__init__(self, *args, **kwargs) def __get_alpha(self): return self.__alpha def __set_alpha(self, value): self.__alpha = int(value) def __get_alpha_float(self): return self.alpha / 65535.0 def __set_alpha_float(self, value): self.alpha = min(max(0, value), 1) * 65535 alpha = property(__get_alpha, __set_alpha) alpha_float = property(__get_alpha_float, __set_alpha_float) def to_string(self): """ Returns a textual specification of color in the hexadecimal form #rrrrggggbbbbaaaa, where r, g, b and a are hex digits representing the red, green, blue and alpha components respectively. :rtype: string """ return '#%04x%04x%04x%04x' % (self.red, self.green, self.blue, self.alpha) def __eq__(self, other): if other is None: return False return (self.red == other.red and self.green == other.green and self.blue == other.blue and self.alpha == other.alpha) def __ne__(self, other): return not (self == other) def __repr__(self): return '%s(%s)' % (self.__class__.__name__, str(self)) def __str__(self): return self.to_string() def alphacolor_parse(spec): """ Parses the given color specification and its contained alpha value if any. Will always prefer evaluating the last digit as alpha. :param spec: a string containing a color specification :type spec: string :returns: alphacolor :rtype: :class:`AlphaColor` """ if not len(spec): raise ValueError('unable to parse colour specification') alpha = 0 if spec[0] == '#': if (len(spec) - 1) % 4 == 0: digits = len(spec) // 4 alpha_spec = spec[-digits:] spec = spec[:-digits] # Example 'f': 15 / float(16**1 - 1) = 1.0 # Example 'cc': 204 / float(16**2 - 1) = 0.8 fraction = int(alpha_spec, 16) / float(16**digits - 1) alpha = int(fraction * 65535) color = gtk.gdk.color_parse(spec) return AlphaColor( red=color.red, green=color.green, blue=color.blue, alpha=alpha ) dist/copy/plugins/osd/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260020400 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.445046943 exaile-3.3.2/plugins/osd/__init__.py0000644000000000000000000003031512233027260017342 0ustar00rootroot00000000000000# Copyright (C) 2012 Mathias Brodala # # 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, 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 __future__ import division import cairo from collections import namedtuple import glib import gobject import gtk import sys from math import pi from xl import ( event, player, settings ) from xl.nls import gettext as _ from xl.player.adapters import PlaybackAdapter from xlgui.widgets import info import migration from alphacolor import alphacolor_parse import osd_preferences OSDWINDOW = None def enable(exaile): """ Enables the on screen display plugin """ migration.migrate_settings() global OSDWINDOW OSDWINDOW = OSDWindow() def disable(exaile): """ Disables the on screen display plugin """ global OSDWINDOW OSDWINDOW.destroy() OSDWINDOW = None def get_preferences_pane(): return osd_preferences Point = namedtuple('Point', 'x y') class OSDWindow(gtk.Window, PlaybackAdapter): """ A popup window showing information of the currently playing track """ autohide = gobject.property( type=gobject.TYPE_BOOLEAN, nick='autohide', blurb='Whether to automatically hide the window after some time', default=True, flags=gobject.PARAM_READWRITE ) __gsignals__ = {} def __init__(self): """ Initializes the window """ gtk.Window.__init__(self, gtk.WINDOW_TOPLEVEL) # for whatever reason, calling set_opacity seems # to crash on Windows when using PyGTK that comes with # the GStreamer SDK. Since this plugin is enabled by # default, just don't fade in/out on windows # # https://bugs.freedesktop.org/show_bug.cgi?id=54682 self.use_fade = True if sys.platform == 'win32': self.use_fade = False self.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_NOTIFICATION) self.set_title('Exaile OSD') self.set_decorated(False) self.set_keep_above(True) self.set_skip_pager_hint(True) self.set_skip_taskbar_hint(True) self.set_resizable(True) self.set_app_paintable(True) self.stick() self.add_events(gtk.gdk.BUTTON_PRESS_MASK | gtk.gdk.BUTTON_RELEASE_MASK | gtk.gdk.POINTER_MOTION_MASK) # Cached option values self.__options = { 'background': None, 'display_duration': None, 'border_radius': None } self.info_area = info.TrackInfoPane(player.PLAYER) self.info_area.set_default_text('') self.info_area.set_auto_update(True) self.add(self.info_area) event.add_callback(self.on_track_tags_changed, 'track_tags_changed') event.add_callback(self.on_option_set, 'plugin_osd_option_set') # Trigger initial setup trough options for option in ('format', 'background', 'display_duration', 'show_progress', 'position', 'width', 'height', 'border_radius'): self.on_option_set('plugin_osd_option_set', settings, 'plugin/osd/{option}'.format(option=option)) # Trigger color map update self.emit('screen-changed', self.get_screen()) PlaybackAdapter.__init__(self, player.PLAYER) def destroy(self): """ Cleanups """ event.remove_callback(self.on_option_set, 'plugin_osd_option_set') event.remove_callback(self.on_track_tags_changed, 'track_tags_changed') gtk.Window.destroy(self) def hide(self): """ Starts fadeout of the window """ if not self.use_fade: gtk.Window.hide(self) return if self.get_data('fadeout-id') is None: self.set_data('fadeout-id', glib.timeout_add(50, self.__fade_out)) def show(self): """ Stops fadeout and immediately shows the window """ if self.use_fade: try: glib.source_remove(self.get_data('fadeout-id')) except: pass self.set_data('fadeout-id', None) self.set_opacity(1) gtk.Window.show_all(self) def __fade_out(self): """ Constantly decreases the opacity to fade out the window """ opacity = self.get_opacity() if opacity == 0: glib.source_remove(self.get_data('fadeout-id')) self.set_data('fadeout-id', None) gtk.Window.hide(self) return False self.set_opacity(opacity - 0.1) return True def do_notify(self, parameter): """ Triggers hiding if autohide is enabled """ if parameter.name == 'autohide': if self.props.autohide: self.hide() def do_expose_event(self, event): """ Draws the background of the window """ context = self.props.window.cairo_create() context.rectangle(event.area.x, event.area.y, event.area.width, event.area.height) context.clip() context.set_source_rgba( self.__options['background'].red_float, self.__options['background'].green_float, self.__options['background'].blue_float, self.__options['background'].alpha_float ) context.set_operator(cairo.OPERATOR_SOURCE) context.paint() gtk.Window.do_expose_event(self, event) def do_screen_changed(self, screen): """ Updates the used colormap """ colormap = screen.get_rgba_colormap() or \ screen.get_rgb_colormap() self.unrealize() self.set_colormap(colormap) self.realize() def do_size_allocate(self, allocation): """ Applies the non-rectangular shape """ width, height = allocation.width, allocation.height mask = gtk.gdk.Pixmap(None, width, height, 1) context = mask.cairo_create() context.set_source_rgb(0, 0, 0) context.set_operator(cairo.OPERATOR_CLEAR) context.paint() radius = self.__options['border_radius'] inner = gtk.gdk.Rectangle(radius, radius, width - radius, height - radius) context.set_source_rgb(1, 1, 1) context.set_operator(cairo.OPERATOR_SOURCE) # Top left corner context.arc(inner.x, inner.y, radius, 1.0 * pi, 1.5 * pi) # Top right corner context.arc(inner.width, inner.y, radius, 1.5 * pi, 2.0 * pi) # Bottom right corner context.arc(inner.width, inner.height, radius, 0.0 * pi, 0.5 * pi) # Bottom left corner context.arc(inner.x, inner.height, radius, 0.5 * pi, 1.0 * pi) context.fill() self.shape_combine_mask(mask, 0, 0) gtk.Window.do_size_allocate(self, allocation) def do_configure_event(self, e): """ Stores the window size """ width, height = self.get_size() settings.set_option('plugin/osd/width', width) settings.set_option('plugin/osd/height', height) gtk.Window.do_configure_event(self, e) def do_button_press_event(self, e): """ Starts the dragging process """ if e.button == 1: self.set_data('drag-origin', Point(e.x, e.y)) self.window.set_cursor(gtk.gdk.Cursor(gtk.gdk.FLEUR)) return True elif e.button == 3 and e.state & gtk.gdk.MOD1_MASK: self.begin_resize_drag(gtk.gdk.WINDOW_EDGE_SOUTH_EAST, 3, int(e.x_root), int(e.y_root), e.time) def do_button_release_event(self, e): """ Finishes the dragging process and saves the window position """ if e.button == 1: settings.set_option('plugin/osd/position', list(self.get_position())) self.set_data('drag-origin', None) self.window.set_cursor(gtk.gdk.Cursor(gtk.gdk.ARROW)) return True def do_motion_notify_event(self, e): """ Moves the window while dragging, makes sure the window is always visible upon mouse hover """ drag_origin = self.get_data('drag-origin') if drag_origin is not None: position = Point(e.x_root, e.y_root) self.move( int(position.x - drag_origin.x), int(position.y - drag_origin.y) ) try: glib.source_remove(self.get_data('hide-id')) except: pass self.show() def do_leave_notify_event(self, e): """ Hides the window upon mouse leave """ try: glib.source_remove(self.get_data('hide-id')) except: pass if self.props.autohide: self.set_data('hide-id', glib.timeout_add_seconds( self.__options['display_duration'], self.hide)) gtk.Window.do_leave_notify_event(self, e) def on_track_tags_changed(self, e, track, tag): if not tag.startswith('__') and track == player.PLAYER.current: self.on_playback_track_start(e, player.PLAYER, track) def on_playback_track_start(self, e, player, track): """ Shows the OSD upon track change """ glib.idle_add(self.show) try: glib.source_remove(self.get_data('hide-id')) except: pass if self.props.autohide: self.set_data('hide-id', glib.timeout_add_seconds( self.__options['display_duration'], self.hide)) def on_playback_toggle_pause(self, e, player, track): """ Shows the OSD after resuming playback """ if not player.is_playing(): return glib.idle_add(self.show) try: glib.source_remove(self.get_data('hide-id')) except: pass if self.props.autohide: self.set_data('hide-id', glib.timeout_add_seconds( self.__options['display_duration'], self.hide)) def on_playback_player_end(self, e, player, track): """ Hides the OSD upon playback end """ if self.props.autohide: self.set_data('hide-id', glib.timeout_add_seconds( self.__options['display_duration'], self.hide)) def on_option_set(self, event, settings, option): """ Updates appearance on setting change """ if option == 'plugin/osd/format': self.info_area.set_info_format(settings.get_option(option, _('$title\n' 'by $artist\n' 'from $album') )) if option == 'plugin/osd/background': self.__options['background'] = alphacolor_parse(settings.get_option(option, '#333333cc')) glib.idle_add(self.queue_draw) elif option == 'plugin/osd/display_duration': self.__options['display_duration'] = int(settings.get_option(option, 4)) elif option == 'plugin/osd/show_progress': self.info_area.set_display_progress(settings.get_option(option, True)) elif option == 'plugin/osd/position': position = Point._make(settings.get_option(option, [20, 20])) glib.idle_add(self.move, position.x, position.y) elif option == 'plugin/osd/border_radius': value = settings.get_option(option, 10) self.set_border_width(max(6, int(value / 2))) self.__options['border_radius'] = value self.emit('size-allocate', self.get_allocation()) dist/copy/plugins/osd/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260017664 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.421046942 exaile-3.3.2/plugins/osd/PLUGININFO0000644000000000000000000000031212233027260016620 0ustar00rootroot00000000000000Version='0.0.1' Authors=['Mathias Brodala '] Name=_('On Screen Display') Description=_('A popup window showing information of the currently playing track.') Category=_('Notifications') dist/copy/plugins/osd/PaxHeaders.26361/migration.py0000644000175000017500000000012412233027260020632 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.565046947 exaile-3.3.2/plugins/osd/migration.py0000644000000000000000000000557512233027260017606 0ustar00rootroot00000000000000# Copyright (C) 2012 Mathias Brodala # # 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, 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 gtk.gdk import color_parse from xl import settings from alphacolor import alphacolor_parse # Mapping from old to new setting names # Note that bg_color and opacity are not # migrated to allow for a new look and feel __settings_map = { 'h': ('height', lambda value: max(value, 110)), 'w': 'width', 'duration': ('display_duration', lambda value: int(value / 1000)), 'show_progress': 'show_progress' } # List of tags officially supported in the old OSD __tags_list = [ 'title', 'artist', 'album', '__length', 'tracknumber', '__bitrate', 'genre', 'year', '__rating' ] def migrate_settings(): """ Migrates the old "osd" settings to "plugin/osd" """ if not settings.MANAGER.has_section('osd') or \ settings.MANAGER.has_section('plugin/osd'): return for oldname, newname in __settings_map.iteritems(): value = settings.get_option('osd/%s' % oldname) if value is not None: if isinstance(newname, tuple): value = newname[1](value) newname = newname[0] settings.set_option('plugin/osd/%s' % newname, value) # Special handling for position position = [ settings.get_option('osd/x', 20), settings.get_option('osd/y', 20) ] settings.set_option('plugin/osd/position', position) # Special handling for format display_text = settings.get_option('osd/display_text') if display_text is not None: format = display_text # Be sure to not replace more than necessary for tag in __tags_list: format = format.replace('{%s}' % tag, '$%s' % tag) attributes = [] text_font = settings.get_option('osd/text_font') if text_font is not None: attributes += ['font_desc="%s"' % text_font] text_color = settings.get_option('osd/text_color') if text_color is not None: color = color_parse(text_color) attributes += ['foreground="%s"' % str(color)] if attributes: format = '%s' % (' '.join(attributes), format) settings.set_option('plugin/osd/format', format) dist/copy/plugins/PaxHeaders.26361/bookmarks0000644000175000017500000000013212233027261017415 xustar000000000000000030 mtime=1382821553.697046951 30 atime=1382821552.789046922 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/bookmarks/0000755000000000000000000000000012233027261016433 5ustar00rootroot00000000000000dist/copy/plugins/bookmarks/PaxHeaders.26361/bookmarksprefs.py0000644000175000017500000000012412233027260023074 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.513046945 exaile-3.3.2/plugins/bookmarks/bookmarksprefs.py0000644000000000000000000000211312233027260022031 0ustar00rootroot00000000000000# Copyright (C) 2009-2010 Abhishek Mukherjee # # 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 1, 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 from xlgui.preferences import widgets from xl import xdg from xl.nls import gettext as _ name = _('Bookmarks') basedir = os.path.dirname(os.path.realpath(__file__)) ui = os.path.join(basedir, "bookmarks_pane.ui") class UseCovers(widgets.CheckPreference): default = False name = 'plugin/bookmarks/use_covers' dist/copy/plugins/bookmarks/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260021603 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.153046933 exaile-3.3.2/plugins/bookmarks/__init__.py0000644000000000000000000002374212233027260020553 0ustar00rootroot00000000000000# Bookmark plugin for Exaile media player # Copyright (C) 2009-2011 Brian Parma # # 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 __future__ import with_statement import gio import glib import gtk import os import logging logger = logging.getLogger(__name__) from xl import ( covers, event, player, settings, trax, xdg, providers ) from xl.nls import gettext as _ from xlgui import guiutil, icons from xlgui.widgets import dialogs, menu import bookmarksprefs # We want to use json to write bookmarks to files, cuz it's prettier (and safer) # if we're on python 2.5 it's not available... try: import json def _try_read(data): # try reading using json, if it fails, try the old format try: return json.loads(data) except ValueError: return eval(data, {'__builtin__':None}) _write = lambda x: json.dumps(x, indent=2) _read = _try_read except ImportError: _write = str _read = lambda x: eval(x, {'__builtin__':None}) _smi = menu.simple_menu_item _sep = menu.simple_separator #TODO: to dict or not to dict. dict prevents duplicates, list of tuples preserves order (using tuples atm) # does order matter? def error(text): logger.error("%s: %s" % ('Bookmarks', text)) dialogs.error(None, exaile.gui.main, text) class Bookmarks: def __init__(self, exaile): self.bookmarks = [] # self.auto_db = {} self.exaile = exaile self.use_covers = settings.get_option('plugin/bookmarks/use_covers', False) self.counter = 0 # setup menus self.menu = menu.Menu(self) self.delete_menu = menu.Menu(self) # define factory-factory for sensitive-aware menuitems def factory_factory(display_name, icon_name, callback=None, submenu=None): def factory(menu_, parent, context): item = gtk.ImageMenuItem(display_name) image = gtk.image_new_from_icon_name(icon_name, size=gtk.ICON_SIZE_MENU) item.set_image(image) # insensitive if no bookmarks present if len(self.bookmarks) == 0: item.set_sensitive(False) else: if callback is not None: item.connect('activate', callback) if submenu is not None: item.set_submenu(submenu) return item return factory items = [] items.append(_smi('bookmark', [], _('Bookmark This Track'), 'bookmark-new', self.add_bookmark)) items.append(menu.MenuItem('delete', factory_factory(_('Delete Bookmark'), 'gtk-close', submenu=self.delete_menu), ['bookmark'])) items.append(menu.MenuItem('clear', factory_factory(_('Clear Bookmarks'), 'gtk-clear', callback=self.clear), ['delete'])) items.append(_sep('sep', ['clear'])) for item in items: self.menu.add_item(item) # TODO: automatic bookmarks, not yet possible # - needs a way to get the time a file is inturrupted at # set events - not functional yet #event.add_callback(self.on_start_track, 'playback_start') #event.add_callback(self.on_stop_track, 'playback_end') #playback_end, playback_pause, playback_resume, stop_track def do_bookmark(self, widget, data): """ This is called to resume a bookmark. """ key, pos = data exaile = self.exaile if not (key and pos): return # check if it's already playing track = player.PLAYER.current if track and track.get_loc_for_io() == key: player.PLAYER.unpause() player.PLAYER.seek(pos) return else: # play it using the QUEUE track = trax.Track(key) if track: # make sure we got one player.QUEUE.play(track) player.PLAYER.seek(pos) def add_bookmark(self, *args): """ Create bookmark for current track/position. """ # get currently playing track track = player.PLAYER.current if track is None: error('Need a playing track to Bookmark.') return pos = player.PLAYER.get_time() key = track.get_loc_for_io() self.bookmarks.append((key,pos)) self.display_bookmark(key, pos) def display_bookmark(self, key, pos): """ Create menu entrees for this bookmark. """ pix = None # add menu item try: item = trax.Track(key) title = item.get_tag_display('title') if self.use_covers: image = covers.MANAGER.get_cover(item, set_only=True) if image: try: pix = icons.MANAGER.pixbuf_from_data(image, size=(16,16)) except glib.GError: logger.warn('Could not load cover') pix = None # no cover else: pix = None except: import traceback, sys traceback.print_exc(file=sys.stdout) logger.debug('BM: Cannot open %s' % key) # delete offending key? return time = '%d:%02d' % (pos/60, pos%60) label = '%s @ %s' % ( title , time ) counter = self.counter # closure magic (workaround for factories not having access to item) # factory for new bookmarks def factory(menu_, parent, context): menu_item = gtk.ImageMenuItem(label) if pix: menu_item.set_image(gtk.image_new_from_pixbuf(pix)) if menu_ is self.menu: menu_item.connect('activate', self.do_bookmark, (key,pos)) else: menu_item.connect('activate', self.delete_bookmark, (counter,key,pos)) return menu_item item = menu.MenuItem('bookmark{0}'.format(self.counter), factory, ['sep']) self.menu.add_item(item) self.delete_menu.add_item(item) self.counter += 1 # save addition self.save_db() def clear(self, widget): """ Delete all bookmarks. """ # remove from menus for item in self.delete_menu._items: self.menu.remove_item(item) self.delete_menu.remove_item(item) self.bookmarks = [] self.save_db() def delete_bookmark(self, widget, targets): """ Delete a bookmark. """ #print targets counter, key, pos = targets if (key, pos) in self.bookmarks: self.bookmarks.remove((key,pos)) name = 'bookmark{0}'.format(counter) for item in self.delete_menu._items: if item.name == name: self.delete_menu.remove_item(item) self.menu.remove_item(item) break self.save_db() def load_db(self): """ Load previously saved bookmarks from a file. """ path = os.path.join(xdg.get_data_dirs()[0],'bookmarklist.dat') try: # Load Bookmark List from file. with open(path,'rb') as f: data = f.read() try: db = _read(data) for (key,pos) in db: self.bookmarks.append((key,pos)) self.display_bookmark(key, pos) logger.debug('loaded {0} bookmarks'.format(len(db))) except Exception, s: logger.error('BM: bad bookmark file: %s'%s) return None except IOError, (e,s): # File might not exist logger.error('BM: could not open file: %s'%s) def save_db(self): """ Save list of bookmarks to a file. """ # Save List path = os.path.join(xdg.get_data_dirs()[0],'bookmarklist.dat') with open(path,'wb') as f: f.write(_write(self.bookmarks)) logger.debug('saving {0} bookmarks'.format(len(self.bookmarks))) def __enb(eventname, exaile, nothing): glib.idle_add(_enable, exaile) def enable(exaile): """ Dummy initialization function, calls _enable when exaile is fully loaded. """ if exaile.loading: event.add_callback(__enb, 'gui_loaded') else: __enb(None, exaile, None) def _enable(exaile): """ Called when plugin is enabled. Set up the menus, create the bookmark class, and load any saved bookmarks. """ bm = Bookmarks(exaile) # add tools menu items providers.register('menubar-tools-menu', _sep('plugin-sep', ['track-properties'])) item = _smi('bookmarks', ['plugin-sep'], _('Bookmarks'), 'user-bookmarks', submenu=bm.menu) providers.register('menubar-tools-menu', item) bm.load_db() def disable(exaile): """ Called when the plugin is disabled. Destroy menu. """ for item in providers.get('menubar-tools-menu'): if item.name == 'bookmarks': providers.unregister('menubar-tools-menu', item) break # vi: et ts=4 sts=4 sw=4 def get_preferences_pane(): return bookmarksprefs dist/copy/plugins/bookmarks/PaxHeaders.26361/bookmarks_pane.ui0000644000175000017500000000012412233027260023024 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.165046934 exaile-3.3.2/plugins/bookmarks/bookmarks_pane.ui0000644000000000000000000000177312233027260021774 0ustar00rootroot00000000000000 True 3 Use covers in the bookmarks menu (takes effect on next start) True True False True False 0 dist/copy/plugins/bookmarks/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260021067 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/bookmarks/PLUGININFO0000644000000000000000000000032712233027260020031 0ustar00rootroot00000000000000Version='0.3.1' Authors=['Brian Parma , Steve Dodier '] Name=_('Bookmarks') Description=_('Allows saving/resuming bookmark positions in audio files.') Category=_('Utility') dist/copy/plugins/PaxHeaders.26361/history0000644000175000017500000000013212233027261017126 xustar000000000000000030 mtime=1382821553.561046947 30 atime=1382821552.789046922 30 ctime=1382821553.561046947 exaile-3.3.2/plugins/history/0000755000000000000000000000000012233027261016144 5ustar00rootroot00000000000000dist/copy/plugins/history/PaxHeaders.26361/history_preferences.ui0000644000175000017500000000012412233027260023624 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.473046944 exaile-3.3.2/plugins/history/history_preferences.ui0000644000000000000000000000563212233027260022572 0ustar00rootroot00000000000000 0 100000 1 20 0 True 3 vertical 6 Persist history after player exits True False True True False False 0 True True 0.89999997615814209 History length: False 3 0 True True adjustment1 1 False 1 False 1 dist/copy/plugins/history/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260021314 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.513046945 exaile-3.3.2/plugins/history/__init__.py0000644000000000000000000002324112233027260020256 0ustar00rootroot00000000000000# Copyright (C) 2011 Dustin Spicuzza # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import gtk import gobject import os import os.path import datetime from xl import ( event, player, providers, settings, xdg ) from xl.playlist import Playlist from xl.nls import gettext as _ import xlgui from xlgui import main from xlgui.widgets import menu, dialogs from xlgui.widgets.notebook import NotebookPage, NotebookTab from xlgui.widgets.playlist import PlaylistView import history_preferences plugin = None def get_preferences_pane(): return history_preferences def enable(exaile): '''Called on plugin enable''' if exaile.loading: event.add_callback(_enable, 'exaile_loaded') else: _enable(None, exaile, None) def _enable(eventname, exaile, nothing): global plugin plugin = HistoryPlugin(exaile) def disable(exaile): '''Called on plugin disable''' global plugin if plugin is not None: plugin.disable_plugin(exaile) plugin = None def teardown(exaile): '''Called on exaile quit''' global plugin if plugin is not None: plugin.teardown_plugin(exaile) class HistoryPlugin(object): '''Implements logic for plugin''' def __init__(self, exaile): self.exaile = exaile save_on_exit = settings.get_option('plugin/history/save_on_exit', history_preferences.save_on_exit_default) shown = settings.get_option('plugin/history/shown', False) # immutable playlist that stores everything we've played self.history_loc = os.path.join(xdg.get_data_dir(), 'history') self.history_playlist = HistoryPlaylist( player.PLAYER ) if save_on_exit: self.history_playlist.load_from_location( self.history_loc ) self.history_page = HistoryPlaylistPage( self.history_playlist, player.PLAYER ) self.history_tab = NotebookTab(main.get_playlist_notebook(), self.history_page ) # add menu item to 'view' to display our playlist self.menu = menu.check_menu_item( 'history', '', _('Playback history'), \ lambda *e: self.is_shown(), self.on_playback_history ) providers.register( 'menubar-view-menu', self.menu ) # add the history playlist to the primary notebook if save_on_exit and shown: self.show_history( True ) def teardown_plugin(self, exaile): '''Called when exaile is exiting''' if settings.get_option('plugin/history/save_on_exit', history_preferences.save_on_exit_default ): self.history_playlist.save_to_location( self.history_loc ) settings.set_option( 'plugin/history/shown', self.is_shown() ) else: settings.set_option( 'plugin/history/shown', False ) self.show_history(False) def disable_plugin(self, exaile): '''Called when the plugin is disabled''' if self.menu: providers.unregister( 'menubar-view-menu', self.menu ) self.menu = None self.show_history(False) if os.path.exists( self.history_loc ): dialog = gtk.MessageDialog( None, gtk.DIALOG_MODAL, gtk.MESSAGE_QUESTION, gtk.BUTTONS_YES_NO, _('Erase stored history?') ) if dialog.run() == gtk.RESPONSE_YES: try: os.unlink( self.history_loc ) except: pass dialog.destroy() def is_shown(self): return main.get_playlist_notebook().page_num( self.history_page ) != -1 def on_playback_history(self, menu, name, parent, context): self.show_history( not self.is_shown() ) def show_history(self, show): if show == self.is_shown(): return if show: pn = main.get_playlist_notebook() pn.add_tab( self.history_tab, self.history_page ) else: self.history_tab.close() class HistoryPlaylistPage( NotebookPage ): # add two buttons on the bottom: 'save to playlist', and # clear history. Use the dirty key to figure out if we # warn about clearing history.. menu_provider_name = 'history-tab-context-menu' reorderable = False def __init__(self, playlist, player): NotebookPage.__init__(self) self.playlist = playlist self.swindow = gtk.ScrolledWindow() self.swindow.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) self.pack_start(self.swindow, True, True) self.view = PlaylistView(self.playlist, player) self.swindow.add(self.view) hbox = gtk.HButtonBox() button = gtk.Button(stock=gtk.STOCK_CLEAR) button.connect( 'clicked', self.on_clear_history ) hbox.pack_start( button ) button = gtk.Button(stock=gtk.STOCK_SAVE) button.connect( 'clicked', self.on_save_history ) hbox.pack_start( button ) align = gtk.Alignment( 1.0, 0.0 ) align.add( hbox ) self.pack_start( align, False, False ) self.show_all() ## NotebookPage API ## def get_name(self): return _("History") ## End NotebookPage ## def on_clear_history( self, widget ): self.playlist._clear() def on_save_history( self, widget ): self.save_history() def save_history(self): if len(self.playlist) == 0: return name = 'History %s' % datetime.datetime.now().strftime("%Y-%m-%d %H:%M") playlists = xlgui.get_controller().panels['playlists'] playlists.add_new_playlist( self.playlist, name ) def __create_history_tab_context_menu(): smi = menu.simple_menu_item sep = menu.simple_separator items = [] items.append(smi('save', [], _("Save History"), 'gtk-save', lambda w, n, o, c: o.save_history())) items.append(smi('clear', ['save'], _("Clear History"), 'gtk-clear', lambda w, n, o, c: o.playlist._clear())) items.append(sep('tab-close-sep', ['clear'])) items.append(smi('tab-close', ['tab-close-sep'], None, 'gtk-close', lambda w, n, o, c: o.tab.close())) for item in items: providers.register( 'history-tab-context-menu', item ) __create_history_tab_context_menu() class HistoryPlaylist( Playlist ): def __init__(self, player): Playlist.__init__( self, _('History') ) # catch the history event.add_callback( self.__on_playback_track_start, 'playback_track_start', player ) if player.is_paused() or player.is_playing(): self.__on_playback_track_start( 'playback_track_start', player, player.current ) def __on_playback_track_start(self, event, player, track): '''Every time a track plays, add it to the playlist''' maxlen = int(settings.get_option( 'plugin/history/history_length', history_preferences.history_length_default )) if maxlen < 0: maxlen = 0 settings.set_option( 'plugin/history/history_length', 0 ) if len(self) >= maxlen-1: Playlist.__delitem__( self, slice(0, max(0, len(self)-(maxlen-1)), None) ) Playlist.__setitem__( self, slice(len(self),len(self),None), [track] ) def _clear(self): Playlist.__delitem__( self, slice(None, None, None) ) # # Suppress undesirable playlist functions, history playlist is immutable # def clear(self): pass def set_shuffle_mode(self, mode): pass def set_repeat_mode(self, mode): pass def set_dynamic_mode(self, mode): pass def randomize(self, positions=None): pass def sort(self, tags, reverse=False): pass def __setitem__(self, i, value): pass def __delitem__(self, i): pass def append(self, other): pass def extend(self, other): pass def pop(self, i=-1): pass dist/copy/plugins/history/PaxHeaders.26361/history_preferences.py0000644000175000017500000000012412233027260023637 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.561046947 exaile-3.3.2/plugins/history/history_preferences.py0000644000000000000000000000345012233027260022601 0ustar00rootroot00000000000000# Copyright (C) 2011 Dustin Spicuzza # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import gtk from xlgui.preferences import widgets from xl.nls import gettext as _ import os name = _('History') basedir = os.path.dirname(os.path.realpath(__file__)) ui = os.path.join(basedir, 'history_preferences.ui') icon = gtk.STOCK_GOTO_FIRST # defaults save_on_exit_default = False history_length_default = 1000 class SaveOnExitPreference(widgets.CheckPreference): default = save_on_exit_default name = 'plugin/history/save_on_exit' class HistoryLengthPreference(widgets.SpinPreference): default = history_length_default name = 'plugin/history/history_length' dist/copy/plugins/history/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260020600 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.097046932 exaile-3.3.2/plugins/history/PLUGININFO0000644000000000000000000000027712233027260017546 0ustar00rootroot00000000000000Version="0.1.2" Authors=['Dustin Spicuzza '] Name="History" Description="Keeps a history of tracks played, which can be saved to a playlist" Category=_('Utility')dist/copy/plugins/PaxHeaders.26361/droptrayicon0000644000175000017500000000013212233027261020142 xustar000000000000000030 mtime=1382821553.697046951 30 atime=1382821552.789046922 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/droptrayicon/0000755000000000000000000000000012233027261017160 5ustar00rootroot00000000000000dist/copy/plugins/droptrayicon/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260022330 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.513046945 exaile-3.3.2/plugins/droptrayicon/__init__.py0000644000000000000000000002732612233027260021302 0ustar00rootroot00000000000000# Copyright (C) 2009-2010 Mathias Brodala # # 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, 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 glib import gtk import os from egg.trayicon import TrayIcon as EggTrayIcon from xl import ( event, player, providers, settings ) from xl.nls import gettext as _ from xl.trax import Track, is_valid_track import xlgui from xlgui.guiutil import get_workarea_size from xlgui.playlist import PlaylistPage from xlgui.tray import BaseTrayIcon DROPTRAYICON = None def enable(exaile): """ Enables the drop trayicon plugin """ if exaile.loading: event.add_callback(_enable, 'gui_loaded') else: _enable(None, exaile, None) def _enable(event, exaile, nothing): """ Handles the deferred enable call """ global DROPTRAYICON DROPTRAYICON = DropTrayIcon(exaile) def disable(exaile): """ Disables the drop trayicon plugin """ global DROPTRAYICON DROPTRAYICON.destroy() DROPTRAYICON = None class DropTrayIcon(EggTrayIcon, BaseTrayIcon): """ Allows for drop operations on the tray icon """ def __init__(self, exaile): EggTrayIcon.__init__(self, 'Exaile Trayicon') self.image = gtk.image_new_from_icon_name( 'exaile', gtk.ICON_SIZE_MENU) self.eventbox = gtk.EventBox() self.eventbox.add(self.image) self.add(self.eventbox) builder = gtk.Builder() basedir = os.path.dirname(os.path.abspath(__file__)) builder.add_from_file(os.path.join(basedir, 'drop_target_window.ui')) self.exaile = exaile self.drop_target_window = builder.get_object('drop_target_window') self.play_target = builder.get_object('play_target') self.append_target = builder.get_object('append_target') self.new_playlist_target = builder.get_object('new_playlist_target') self.description_label = builder.get_object('description_label') self._drag_motion_id = None self._drag_leave_id = None BaseTrayIcon.__init__(self, self.exaile.gui.main) self.setup_drag_destinations() self.show_all() def destroy(self): """ Hides the tray icon """ EggTrayIcon.destroy(self) BaseTrayIcon.destroy(self) def setup_drag_destinations(self): """ Sets up drag destinations of various contained widgets """ widgets = [ self, self.play_target, self.append_target, self.new_playlist_target ] for widget in widgets: widget.drag_dest_set( gtk.DEST_DEFAULT_ALL, [("text/uri-list", 0, 0)], gtk.gdk.ACTION_COPY | gtk.gdk.ACTION_DEFAULT | gtk.gdk.ACTION_MOVE ) # Required to allow the window to be # integrated into the drag process self.drop_target_window.drag_dest_set( gtk.DEST_DEFAULT_MOTION, [("text/uri-list", 0, 0)], gtk.gdk.ACTION_COPY | gtk.gdk.ACTION_DEFAULT | gtk.gdk.ACTION_MOVE ) def connect_events(self): """ Connects various events with callbacks """ self.connect('size-allocate', self.on_size_allocate) self.connect('drag-motion', self.on_drag_motion) self.connect('drag-leave', self.on_drag_leave) self.connect('drag-data-received', self.on_drag_data_received) self.drop_target_window.connect('drag-motion', self.on_drag_motion) self.drop_target_window.connect('drag-leave', self.on_drag_leave) self.play_target.connect('drag-motion', self.on_drag_motion) self.play_target.connect('drag-data-received', self.on_drag_data_received) self.append_target.connect('drag-motion', self.on_drag_motion) self.append_target.connect('drag-data-received', self.on_drag_data_received) self.new_playlist_target.connect('drag-motion', self.on_drag_motion) self.new_playlist_target.connect('drag-data-received', self.on_drag_data_received) BaseTrayIcon.connect_events(self) def set_from_icon_name(self, icon_name): """ Updates the tray icon """ self.image.set_from_icon_name(icon_name, gtk.ICON_SIZE_MENU) def set_tooltip(self, tooltip_text): """ Updates the tray icon tooltip """ self.set_tooltip_text(tooltip_text) def set_visible(self, visible): """ Shows or hides the tray icon """ if visible: self.show_all() else: self.hide_all() def get_menu_position(self, menu, icon): """ Returns coordinates for the best menu position """ workarea_width, workarea_height = get_workarea_size() icon_x, icon_y, icon_width, icon_height = icon.get_allocation() icon_x, icon_y = icon.get_window().get_origin() menu_x, menu_y, menu_width, menu_height = menu.get_allocation() x = icon_x + icon_width y = icon_y + icon_height if workarea_width - icon_x < menu_width: # Tray icon on the right: insufficient space x -= menu_width if workarea_height - icon_y < menu_height: # Tray icon on the bottom: insufficient space y -= menu_height return (x, y, False) def update_drop_target_window_location(self): """ Makes sure the drop target is always fully visible """ workarea_width, workarea_height = get_workarea_size() icon_x, icon_y, icon_width, icon_height = self.get_allocation() icon_x, icon_y = self.get_window().get_origin() target_width, target_height = self.drop_target_window.size_request() # TODO: Align drop targets vertically if required # Tray icon on the left if icon_x < target_width / 2: # Insufficient space: leftmost x = icon_width # Tray icon on the right elif workarea_width - icon_x < target_width / 2: # Insufficient space: rightmost x = workarea_width - target_width # Tray icon in between else: x = icon_x + icon_width / 2 - target_width / 2 # Tray icon on the top if icon_y < target_height / 2: # Insufficient space: topmost y = icon_height # Tray icon on the bottom elif workarea_height - icon_y < target_height / 2: # Insufficient space: bottommost y = workarea_height - target_height # Tray icon in between else: y = icon_y + icon_height / 2 - target_height / 2 self.drop_target_window.move(x, y) def on_size_allocate(self, widget, allocation): """ Takes care of resizing the icon if necessary """ screen = widget.get_screen() settings = gtk.settings_get_for_screen(screen) icon_sizes = ( gtk.ICON_SIZE_MENU, # 1 gtk.ICON_SIZE_SMALL_TOOLBAR, # 2 gtk.ICON_SIZE_LARGE_TOOLBAR, # 3 gtk.ICON_SIZE_BUTTON, # 4 gtk.ICON_SIZE_DND, # 5 gtk.ICON_SIZE_DIALOG # 6 ) # Retrieve pixel dimensions of stock icon sizes sizes = [(gtk.icon_size_lookup_for_settings(settings, i)[0], i) for i in icon_sizes] # Only look at sizes lower than the current dimensions sizes = [(s, i) for s, i in sizes if s <= allocation.width] # Get the closest fit target_size = max(sizes)[1] # Avoid setting the same size over and over again if self.image.props.icon_size is not target_size.real: glib.idle_add(self.image.set_from_icon_name, self.image.props.icon_name, target_size) def on_drag_motion(self, widget, context, x, y, timestamp): """ Prepares to show the drop target """ description = _('Drop to Choose') if widget is self.play_target: description = _('Append and Play') if widget is self.append_target or widget is self: description = _('Append') if widget is self.new_playlist_target: description = _('New Playlist') self.description_label.set_text(description) # Defer display of drop target if self._drag_motion_id is None: self._drag_motion_id = glib.timeout_add(500, self.drag_motion_finish) # Prevent hiding of drop target if self._drag_leave_id is not None: glib.source_remove(self._drag_leave_id) self._drag_leave_id = None def drag_motion_finish(self): """ Shows the drop target """ self.update_drop_target_window_location() self.drop_target_window.show() def on_drag_leave(self, widget, context, timestamp): """ Prepares to hide the drop target """ # Enable display of drop target on re-enter if self._drag_motion_id is not None: glib.source_remove(self._drag_motion_id) self._drag_motion_id = None # Defer hiding of drop target if self._drag_leave_id is not None: glib.source_remove(self._drag_leave_id) self._drag_leave_id = glib.timeout_add(500, self.drag_leave_finish) def drag_leave_finish(self): """ Hides the drop target """ self.drop_target_window.hide() def on_drag_data_received(self, widget, context, x, y, selection, info, time): """ Handles dropped data """ # Enable display of drop target on re-enter if self._drag_motion_id is not None: glib.source_remove(self._drag_motion_id) self._drag_motion_id = None # Enable hiding of drop target on re-enter if self._drag_leave_id is not None: glib.source_remove(self._drag_leave_id) self._drag_leave_id = None self.drop_target_window.hide() uris = selection.get_uris() page = xlgui.main.get_selected_page() if widget is self.play_target: event.add_callback(self.on_playlist_tracks_added, 'playlist_tracks_added') if widget is self.new_playlist_target: playlist_notebook = xlgui.main.get_playlist_notebook() page = playlist_notebook.create_new_playlist().page if not isinstance(page, PlaylistPage): return page.view.emit('drag-data-received', context, x, y, selection, info, time) def on_playlist_tracks_added(self, event_name, playlist, tracks): """ Starts playing the newly added tracks """ if tracks: position, track = tracks[0] playlist.current_position = position player.QUEUE.play(track) event.remove_callback(self.on_playlist_tracks_added, 'playlist_tracks_added') dist/copy/plugins/droptrayicon/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260021614 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/droptrayicon/PLUGININFO0000644000000000000000000000032612233027260020555 0ustar00rootroot00000000000000Version='1.0.3' Authors=['Mathias Brodala '] Name=_('Drop Trayicon') Description=_('Provides an alternative trayicon which accepts dropped files.\n\nDepends: python-eggtrayicon') Category=_('GUI') dist/copy/plugins/droptrayicon/PaxHeaders.26361/drop_target_window.ui0000644000175000017500000000012412233027260024457 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.189046935 exaile-3.3.2/plugins/droptrayicon/drop_target_window.ui0000644000000000000000000001161412233027260023422 0ustar00rootroot00000000000000 popup False popup-menu False True 0 0 out True 12 12 12 12 True vertical 6 True 12 True True True True gtk-media-play 6 0 True True True True gtk-add 6 1 True True True True gtk-new 6 2 0 True Drop to Choose False 1 dist/copy/plugins/PaxHeaders.26361/ipconsole0000644000175000017500000000013212233027261017420 xustar000000000000000030 mtime=1382821553.697046951 30 atime=1382821552.789046922 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/ipconsole/0000755000000000000000000000000012233027261016436 5ustar00rootroot00000000000000dist/copy/plugins/ipconsole/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260021606 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.473046944 exaile-3.3.2/plugins/ipconsole/__init__.py0000644000000000000000000001637312233027260020560 0ustar00rootroot00000000000000# This plugin is adapted from the Python Console plugin and the IPython # cookbook at: # http://ipython.scipy.org/moin/Cookbook/EmbeddingInGTK # Copyright (C) 2009-2010 Brian Parma # Updated 2012 Brian Parma # # 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 sys import gtk import glib import ipconsoleprefs from xl import settings, providers from xlgui.widgets import menu try: # xl doesn't exist outside of exaile from xl.nls import gettext as _ from xl import event except: from gettext import gettext as _ print 'Running outside of Exaile...' import ipython_view as ip import pango import __builtin__, site FONT = "Luxi Mono 10" PLUGIN = None def get_preferences_pane(): return ipconsoleprefs class Quitter(object): """Simple class to handle exit, similar to Python 2.5's. This Quitter is used to circumvent IPython's circumvention of the builtin Quitter, since it prevents exaile form closing.""" def __init__(self,exit,name): self.exit = exit self.name = name def __repr__(self): return 'Type %s() to exit.' % self.name __str__ = __repr__ def __call__(self): self.exit() # Passed in exit function site.setquit() # Restore default builtins exit() # Call builtin class IPView(ip.IPythonView): '''Extend IPythonView to support closing with Ctrl+D''' def onKeyPressExtend(self, event): if ip.IPythonView.onKeyPressExtend(self, event): return True if event.string == '\x04': # ctrl+d self.destroy() class IPyConsole(gtk.Window): """ A gtk Window with an embedded IPython Console. """ def __init__(self, namespace): gtk.Window.__init__(self) self.set_title(_("IPython Console - Exaile")) self.set_size_request(750,550) self.set_resizable(True) sw = gtk.ScrolledWindow() sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) ipv = IPView() ipv.connect('destroy', lambda *x: self.destroy()) # so it's exposed in the shell self.ipv = ipv # change display to emulate dark gnome-terminal console_font = settings.get_option('plugin/ipconsole/font', FONT) text_color = settings.get_option('plugin/ipconsole/text_color', 'lavender') bg_color = settings.get_option('plugin/ipconsole/background_color', 'black') iptheme = settings.get_option('plugin/ipconsole/iptheme', 'Linux') ipv.modify_font(pango.FontDescription(console_font)) ipv.set_wrap_mode(gtk.WRAP_CHAR) ipv.modify_base(gtk.STATE_NORMAL, gtk.gdk.color_parse(bg_color)) ipv.modify_text(gtk.STATE_NORMAL, gtk.gdk.color_parse(text_color)) ipv.IP.magic_colors(iptheme) # IPython color scheme opacity = settings.get_option('plugin/ipconsole/opacity', 80.0) # add a little transparency :) if opacity < 100: self.set_opacity(float(opacity) / 100.0) ipv.updateNamespace(namespace) # expose exaile (passed in) ipv.updateNamespace({'self':self}) # Expose self to IPython # prevent exit and quit - freezes window? does bad things ipv.updateNamespace({'exit':None, 'quit':None}) # This is so when exaile calls exit(), IP doesn't prompt and prevent # it from closing try: __builtin__.exit = Quitter(ipv.IP.magic_Exit, 'exit') __builtin__.quit = Quitter(ipv.IP.magic_Exit, 'quit') except AttributeError: # newer versions of IP don't need this pass ipv.show() # make it scrollable sw.add(ipv) sw.show() self.add(sw) self.show() # don't destroy the window on delete, hide it self.connect('delete_event',lambda x,y:False) def _enable(exaile): """ Enable plugin. Create menu item. """ # add menuitem to tools menu item = menu.simple_menu_item('ipconsole', ['plugin-sep'], _('Show IPython Console'), callback=lambda *x: show_console(exaile)) providers.register('menubar-tools-menu', item) def on_option_set(event, settings, option): if option == 'plugin/ipconsole/opacity' and PLUGIN: value = settings.get_option(option, 80.0) value = float(value) / 100.0 PLUGIN.set_opacity(value) if option == 'plugin/ipconsole/font' and PLUGIN: value = settings.get_option(option, FONT) PLUGIN.ipv.modify_font(pango.FontDescription(value)) if option == 'plugin/ipconsole/text_color' and PLUGIN: value = settings.get_option(option, 'lavender') PLUGIN.ipv.modify_text(gtk.STATE_NORMAL, gtk.gdk.color_parse(value)) if option == 'plugin/ipconsole/background_color' and PLUGIN: value = settings.get_option(option, 'black') PLUGIN.ipv.modify_base(gtk.STATE_NORMAL, gtk.gdk.color_parse(value)) if option == 'plugin/ipconsole/iptheme' and PLUGIN: value = settings.get_option(option, 'Linux') PLUGIN.ipv.IP.magic_colors(value) def __enb(evt, exaile, nothing): glib.idle_add(_enable, exaile) event.add_callback(on_option_set, 'plugin_ipconsole_option_set') def enable(exaile): """ Called when plugin is enabled, or when exaile is loaded with the plugin on by default. Wait for exaile to fully load, then call _enable with idle priority. """ if exaile.loading: event.add_callback(__enb, "gui_loaded") else: __enb(None, exaile, None) def disable(exaile): """ Called when the plugin is disabled """ for item in providers.get('menubar-tools-menu'): if item.name == 'ipconsole': providers.unregister('menubar-tools-menu', item) break # if window is open, kill it if PLUGIN is not None: PLUGIN.destroy() def show_console(exaile): """ Display window when the menu item is clicked. """ global PLUGIN if PLUGIN is None: PLUGIN = IPyConsole({'exaile': exaile}) PLUGIN.connect('destroy', console_destroyed) PLUGIN.present() def console_destroyed(*args): """ Called when the window is closed. """ global PLUGIN PLUGIN = None if __name__ == '__main__': """ If run outside of exaile. """ con = IPyConsole({}) con.connect('destroy', gtk.main_quit) con.show() gtk.main() dist/copy/plugins/ipconsole/PaxHeaders.26361/ipconsoleprefs.py0000644000175000017500000000012412233027260023102 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.565046947 exaile-3.3.2/plugins/ipconsole/ipconsoleprefs.py0000644000000000000000000000302112233027260022036 0ustar00rootroot00000000000000# Copyright (C) 2012 Brian Parma # # 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 1, 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 xlgui.preferences import widgets from xl import xdg from xl.nls import gettext as _ import os name = _('IPython Console') basedir = os.path.dirname(os.path.realpath(__file__)) ui = os.path.join(basedir, 'ipconsole_prefs.ui') icon = 'utilities-terminal' class OpacityPreference(widgets.ScalePreference): default = 80.0 name = 'plugin/ipconsole/opacity' class FontPreference(widgets.FontButtonPreference): default = 'Monospace 10' name = 'plugin/ipconsole/font' class TextColor(widgets.ColorButtonPreference): default = 'lavender' name = 'plugin/ipconsole/text_color' class BgColor(widgets.ColorButtonPreference): default = 'black' name = 'plugin/ipconsole/background_color' class Theme(widgets.ComboPreference): default = 'Linux' name = 'plugin/ipconsole/iptheme' dist/copy/plugins/ipconsole/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260021072 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/ipconsole/PLUGININFO0000644000000000000000000000030612233027260020031 0ustar00rootroot00000000000000Version='0.5.1' Authors=['Brian Parma '] Name=_('IPython Console') Description=_('Provides an IPython console that can be used to manipulate Exaile.') Category=_('Development') dist/copy/plugins/ipconsole/PaxHeaders.26361/ipconsole_prefs.ui0000644000175000017500000000012412233027260023226 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.473046944 exaile-3.3.2/plugins/ipconsole/ipconsole_prefs.ui0000644000000000000000000002463112233027260022174 0ustar00rootroot00000000000000 110 80 1 10 10 Linux LightBG NoColor False True False True False 3 5 2 3 3 True False 0 Terminal opacity: True True adjustment1 False right 1 2 True False 0 Font: 1 2 GTK_FILL True False True True True False False False 0 True False True True 1 1 2 1 2 True False 0 Text Color: 2 3 True False 0 Background Color: 3 4 True False 0 0 0 True True True False #000000000000 1 2 2 3 True False 0 0 0 True True True False #000000000000 1 2 3 4 True False 0 IPython Color Theme: 4 5 True False 0 0 0 True False liststore1 0 0 1 2 4 5 False False 0 dist/copy/plugins/ipconsole/PaxHeaders.26361/ipython_view0000644000175000017500000000013212233027261022144 xustar000000000000000030 mtime=1382821553.473046944 30 atime=1382821552.789046922 30 ctime=1382821553.473046944 exaile-3.3.2/plugins/ipconsole/ipython_view/0000755000000000000000000000000012233027261021162 5ustar00rootroot00000000000000dist/copy/plugins/ipconsole/ipython_view/PaxHeaders.26361/ipython_view2.py0000644000175000017500000000012412233027260025401 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.473046944 exaile-3.3.2/plugins/ipconsole/ipython_view/ipython_view2.py0000644000000000000000000004524212233027260024350 0ustar00rootroot00000000000000#!/usr/bin/python ''' Provides IPython console widget. @author: Eitan Isaacson @organization: IBM Corporation @copyright: Copyright (c) 2007 IBM Corporation @license: BSD All rights reserved. This program and the accompanying materials are made available under the terms of the BSD which accompanies this distribution, and is available at U{http://www.opensource.org/licenses/bsd-license.php} Modified to work with gtk2.x - Brian Parma ''' #import gi #from gi.repository import Gtk as gtk #from gi.repository import Gdk as gdk #from gi.repository import GObject #from gi.repository import Pango import gtk from gtk import gdk import gobject import pango import re import sys import os from StringIO import StringIO try: import IPython except ImportError: IPython = None class IterableIPShell: ''' Create an IPython instance. Does not start a blocking event loop, instead allow single iterations. This allows embedding in GTK+ without blockage. @ivar IP: IPython instance. @type IP: IPython.iplib.InteractiveShell @ivar iter_more: Indicates if the line executed was a complete command, or we should wait for more. @type iter_more: integer @ivar history_level: The place in history where we currently are when pressing up/down. @type history_level: integer @ivar complete_sep: Seperation delimeters for completion function. @type complete_sep: _sre.SRE_Pattern ''' def __init__(self,argv=[],user_ns=None,user_global_ns=None, cin=None, cout=None,cerr=None, input_func=None): ''' @param argv: Command line options for IPython @type argv: list @param user_ns: User namespace. @type user_ns: dictionary @param user_global_ns: User global namespace. @type user_global_ns: dictionary. @param cin: Console standard input. @type cin: IO stream @param cout: Console standard output. @type cout: IO stream @param cerr: Console standard error. @type cerr: IO stream @param input_func: Replacement for builtin raw_input() @type input_func: function ''' io = IPython.utils.io if input_func: IPython.frontend.terminal.interactiveshell.raw_input_original = input_func if cin: io.stdin = io.IOStream(cin) if cout: io.stdout = io.IOStream(cout) if cerr: io.stderr = io.IOStream(cerr) # This is to get rid of the blockage that accurs during # IPython.Shell.InteractiveShell.user_setup() io.raw_input = lambda x: None os.environ['TERM'] = 'dumb' excepthook = sys.excepthook from IPython.config.loader import Config cfg = Config() cfg.InteractiveShell.colors = "Linux" # InteractiveShell's __init__ overwrites io.stdout,io.stderr with # sys.stdout, sys.stderr, this makes sure they are right old_stdout, old_stderr = sys.stdout, sys.stderr sys.stdout, sys.stderr = io.stdout.stream, io.stderr.stream # InteractiveShell inherits from SingletonConfigurable, so use instance() self.IP = IPython.frontend.terminal.embed.InteractiveShellEmbed.instance(config=cfg, user_ns=user_ns) sys.stdout, sys.stderr = old_stdout, old_stderr self.IP.system = lambda cmd: self.shell(self.IP.var_expand(cmd), header='IPython system call: ') # local_ns=user_ns) #global_ns=user_global_ns) #verbose=self.IP.rc.system_verbose) self.IP.raw_input = input_func sys.excepthook = excepthook self.iter_more = 0 self.history_level = 0 self.complete_sep = re.compile('[\s\{\}\[\]\(\)]') self.updateNamespace({'exit':lambda:None}) self.updateNamespace({'quit':lambda:None}) self.IP.readline_startup_hook(self.IP.pre_readline) # Workaround for updating namespace with sys.modules # #self.__update_namespace() # help() is blocking which hangs Gtk self.updateNamespace({'help':lambda *x:'help() command incompatible with gtk'}) def __update_namespace(self): ''' Update self.IP namespace for autocompletion with sys.modules ''' for k,v in sys.modules.items(): if not '.' in k: self.IP.user_ns.update({k:v}) def execute(self): ''' Executes the current line provided by the shell object. ''' self.history_level = 0 # this is needed because some functions in IPython use 'print' to print output # (like 'who') orig_stdout = sys.stdout sys.stdout = IPython.utils.io.stdout orig_stdin = sys.stdin sys.stdin = IPython.utils.io.stdin; self.prompt = self.generatePrompt(self.iter_more) self.IP.hooks.pre_prompt_hook() if self.iter_more: try: self.prompt = self.generatePrompt(True) except: self.IP.showtraceback() if self.IP.autoindent: self.IP.rl_do_indent = True try: line = self.IP.raw_input(self.prompt) except KeyboardInterrupt: self.IP.write('\nKeyboardInterrupt\n') self.IP.input_splitter.reset() except: self.IP.showtraceback() else: self.IP.input_splitter.push(line) self.iter_more = self.IP.input_splitter.push_accepts_more() self.prompt = self.generatePrompt(self.iter_more) if (self.IP.SyntaxTB.last_syntax_error and self.IP.autoedit_syntax): self.IP.edit_syntax_error() if not self.iter_more: source_raw = self.IP.input_splitter.source_raw_reset()[1] self.IP.run_cell(source_raw, store_history=True) else: # TODO: Auto-indent # pass sys.stdout = orig_stdout sys.stdin = orig_stdin def generatePrompt(self, is_continuation): ''' Generate prompt depending on is_continuation value @param is_continuation @type is_continuation: boolean @return: The prompt string representation @rtype: string ''' # Backwards compatibility with ipyton-0.11 # ver = IPython.__version__ if '0.11' in ver: prompt = self.IP.hooks.generate_prompt(is_continuation) else: if is_continuation: prompt = self.IP.prompt_manager.render('in2') else: prompt = self.IP.prompt_manager.render('in') return prompt def historyBack(self): ''' Provides one history command back. @return: The command string. @rtype: string ''' self.history_level -= 1 if not self._getHistory(): self.history_level +=1 return self._getHistory() def historyForward(self): ''' Provides one history command forward. @return: The command string. @rtype: string ''' if self.history_level < 0: self.history_level += 1 return self._getHistory() def _getHistory(self): ''' Get's the command string of the current history level. @return: Historic command string. @rtype: string ''' try: rv = self.IP.user_ns['In'][self.history_level].strip('\n') except IndexError: rv = '' return rv def updateNamespace(self, ns_dict): ''' Add the current dictionary to the shell namespace. @param ns_dict: A dictionary of symbol-values. @type ns_dict: dictionary ''' self.IP.user_ns.update(ns_dict) def complete(self, line): ''' Returns an auto completed line and/or posibilities for completion. @param line: Given line so far. @type line: string @return: Line completed as for as possible, and possible further completions. @rtype: tuple ''' split_line = self.complete_sep.split(line) if split_line[-1]: possibilities = self.IP.complete(split_line[-1]) else: completed = line possibilities = ['',[]] if possibilities: def _commonPrefix(str1, str2): ''' Reduction function. returns common prefix of two given strings. @param str1: First string. @type str1: string @param str2: Second string @type str2: string @return: Common prefix to both strings. @rtype: string ''' for i in range(len(str1)): if not str2.startswith(str1[:i+1]): return str1[:i] return str1 if possibilities[1]: common_prefix = reduce(_commonPrefix, possibilities[1]) or line[-1] completed = line[:-len(split_line[-1])]+common_prefix else: completed = line else: completed = line return completed, possibilities[1] def shell(self, cmd,verbose=0,debug=0,header=''): ''' Replacement method to allow shell commands without them blocking. @param cmd: Shell command to execute. @type cmd: string @param verbose: Verbosity @type verbose: integer @param debug: Debug level @type debug: integer @param header: Header to be printed before output @type header: string ''' stat = 0 if verbose or debug: print header+cmd # flush stdout so we don't mangle python's buffering if not debug: input, output = os.popen4(cmd) print output.read() output.close() input.close() class ConsoleView(gtk.TextView): ''' Specialized text view for console-like workflow. @cvar ANSI_COLORS: Mapping of terminal colors to X11 names. @type ANSI_COLORS: dictionary @ivar text_buffer: Widget's text buffer. @type text_buffer: gtk.TextBuffer @ivar color_pat: Regex of terminal color pattern @type color_pat: _sre.SRE_Pattern @ivar mark: Scroll mark for automatic scrolling on input. @type mark: gtk.TextMark @ivar line_start: Start of command line mark. @type line_start: gtk.TextMark ''' ANSI_COLORS = {'0;30': 'Black', '0;31': 'Red', '0;32': 'Green', '0;33': 'Brown', '0;34': 'Blue', '0;35': 'Purple', '0;36': 'Cyan', '0;37': 'LightGray', '1;30': 'DarkGray', '1;31': 'DarkRed', '1;32': 'SeaGreen', '1;33': 'Yellow', '1;34': 'LightBlue', '1;35': 'MediumPurple', '1;36': 'LightCyan', '1;37': 'White'} def __init__(self): ''' Initialize console view. ''' gtk.TextView.__init__(self) self.modify_font(pango.FontDescription('Mono')) self.set_cursor_visible(True) self.text_buffer = self.get_buffer() self.mark = self.text_buffer.create_mark('scroll_mark', self.text_buffer.get_end_iter(), False) for code in self.ANSI_COLORS: self.text_buffer.create_tag(code, foreground=self.ANSI_COLORS[code], weight=700) self.text_buffer.create_tag('0') self.text_buffer.create_tag('notouch', editable=False) self.color_pat = re.compile('\x01?\x1b\[(.*?)m\x02?') self.line_start = \ self.text_buffer.create_mark('line_start', self.text_buffer.get_end_iter(), True) self.connect('key-press-event', self.onKeyPress) def write(self, text, editable=False): gobject.idle_add(self._write, text, editable) def _write(self, text, editable=False): ''' Write given text to buffer. @param text: Text to append. @type text: string @param editable: If true, added text is editable. @type editable: boolean ''' segments = self.color_pat.split(text) segment = segments.pop(0) start_mark = self.text_buffer.create_mark(None, self.text_buffer.get_end_iter(), True) self.text_buffer.insert(self.text_buffer.get_end_iter(), segment) if segments: ansi_tags = self.color_pat.findall(text) for tag in ansi_tags: i = segments.index(tag) self.text_buffer.insert_with_tags_by_name(self.text_buffer.get_end_iter(), str(segments[i+1]), str(tag)) segments.pop(i) if not editable: self.text_buffer.apply_tag_by_name('notouch', self.text_buffer.get_iter_at_mark(start_mark), self.text_buffer.get_end_iter()) self.text_buffer.delete_mark(start_mark) self.scroll_mark_onscreen(self.mark) def showPrompt(self, prompt): gobject.idle_add(self._showPrompt, prompt) def _showPrompt(self, prompt): ''' Prints prompt at start of line. @param prompt: Prompt to print. @type prompt: string ''' self._write(prompt) self.text_buffer.move_mark(self.line_start, self.text_buffer.get_end_iter()) def changeLine(self, text): gobject.idle_add(self._changeLine, text) def _changeLine(self, text): ''' Replace currently entered command line with given text. @param text: Text to use as replacement. @type text: string ''' iter = self.text_buffer.get_iter_at_mark(self.line_start) iter.forward_to_line_end() self.text_buffer.delete(self.text_buffer.get_iter_at_mark(self.line_start), iter) self._write(text, True) def getCurrentLine(self): ''' Get text in current command line. @return: Text of current command line. @rtype: string ''' rv = self.text_buffer.get_slice( self.text_buffer.get_iter_at_mark(self.line_start), self.text_buffer.get_end_iter(), False) return rv def showReturned(self, text): gobject.idle_add(self._showReturned, text) def _showReturned(self, text): ''' Show returned text from last command and print new prompt. @param text: Text to show. @type text: string ''' iter = self.text_buffer.get_iter_at_mark(self.line_start) iter.forward_to_line_end() self.text_buffer.apply_tag_by_name( 'notouch', self.text_buffer.get_iter_at_mark(self.line_start), iter) self._write('\n'+text) if text: self._write('\n') self._write('\n') # add extra line, like normal IPython self._showPrompt(self.prompt) self.text_buffer.move_mark(self.line_start,self.text_buffer.get_end_iter()) self.text_buffer.place_cursor(self.text_buffer.get_end_iter()) def onKeyPress(self, widget, event): ''' Key press callback used for correcting behavior for console-like interfaces. For example 'home' should go to prompt, not to begining of line. @param widget: Widget that key press accored in. @type widget: gtk.Widget @param event: Event object @type event: gtk.gdk.Event @return: Return True if event should not trickle. @rtype: boolean ''' insert_mark = self.text_buffer.get_insert() insert_iter = self.text_buffer.get_iter_at_mark(insert_mark) selection_mark = self.text_buffer.get_selection_bound() selection_iter = self.text_buffer.get_iter_at_mark(selection_mark) start_iter = self.text_buffer.get_iter_at_mark(self.line_start) if event.keyval == gtk.keysyms.Home: if event.state & gdk.CONTROL_MASK or \ event.state & gdk.MOD1_MASK: pass elif event.state & gdk.SHIFT_MASK: self.text_buffer.move_mark(insert_mark, start_iter) return True else: self.text_buffer.place_cursor(start_iter) return True elif event.keyval == gtk.keysyms.Left: insert_iter.backward_cursor_position() if not insert_iter.editable(True): return True elif not event.string: pass elif start_iter.compare(insert_iter) <= 0 and \ start_iter.compare(selection_iter) <= 0: pass elif start_iter.compare(insert_iter) > 0 and \ start_iter.compare(selection_iter) > 0: self.text_buffer.place_cursor(start_iter) elif insert_iter.compare(selection_iter) < 0: self.text_buffer.move_mark(insert_mark, start_iter) elif insert_iter.compare(selection_iter) > 0: self.text_buffer.move_mark(selection_mark, start_iter) return self.onKeyPressExtend(event) def onKeyPressExtend(self, event): ''' For some reason we can't extend onKeyPress directly (bug #500900). ''' pass class IPythonView(ConsoleView, IterableIPShell): ''' Sub-class of both modified IPython shell and L{ConsoleView} this makes a GTK+ IPython console. ''' def __init__(self): ''' Initialize. Redirect I/O to console. ''' ConsoleView.__init__(self) self.cout = StringIO() IterableIPShell.__init__(self, cout=self.cout,cerr=self.cout, input_func=self.raw_input) # self.connect('key_press_event', self.keyPress) self.interrupt = False self.execute() self.prompt = self.generatePrompt(False) self.cout.truncate(0) self.showPrompt(self.prompt) def raw_input(self, prompt=''): ''' Custom raw_input() replacement. Get's current line from console buffer. @param prompt: Prompt to print. Here for compatability as replacement. @type prompt: string @return: The current command line text. @rtype: string ''' if self.interrupt: self.interrupt = False raise KeyboardInterrupt return self.getCurrentLine() def onKeyPressExtend(self, event): ''' Key press callback with plenty of shell goodness, like history, autocompletions, etc. @param widget: Widget that key press occured in. @type widget: gtk.Widget @param event: Event object. @type event: gtk.gdk.Event @return: True if event should not trickle. @rtype: boolean ''' if event.state & gdk.CONTROL_MASK and event.keyval == 99: self.interrupt = True self._processLine() return True elif event.keyval == gtk.keysyms.Return: self._processLine() return True elif event.keyval == gtk.keysyms.Up: self.changeLine(self.historyBack()) return True elif event.keyval == gtk.keysyms.Down: self.changeLine(self.historyForward()) return True elif event.keyval == gtk.keysyms.Tab: if not self.getCurrentLine().strip(): return False completed, possibilities = self.complete(self.getCurrentLine()) if len(possibilities) > 1: slice = self.getCurrentLine() self.write('\n') for symbol in possibilities: self.write(symbol+'\n') self.showPrompt(self.prompt) self.changeLine(completed or slice) return True def _processLine(self): ''' Process current command line. ''' self.history_pos = 0 self.execute() rv = self.cout.getvalue() if rv: rv = rv.strip('\n') self.showReturned(rv) self.cout.truncate(0) if __name__ == "__main__": window = gtk.Window() window.set_default_size(640, 320) window.connect('delete-event', lambda x, y: gtk.main_quit()) window.add(IPythonView()) window.show_all() gtk.main() dist/copy/plugins/ipconsole/ipython_view/PaxHeaders.26361/ipython_view.py0000644000175000017500000000012412233027260025317 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.473046944 exaile-3.3.2/plugins/ipconsole/ipython_view/ipython_view.py0000644000000000000000000002671312233027260024270 0ustar00rootroot00000000000000""" Backend to the console plugin. @author: Eitan Isaacson @organization: IBM Corporation @copyright: Copyright (c) 2007 IBM Corporation @license: BSD All rights reserved. This program and the accompanying materials are made available under the terms of the BSD which accompanies this distribution, and is available at U{http://www.opensource.org/licenses/bsd-license.php} """ # this file is a modified version of source code from the Accerciser project # http://live.gnome.org/accerciser # this file was modified yet again to fix the 'Home' bug - Brian Parma import gtk import re import sys import os import pango from StringIO import StringIO try: import IPython except Exception,e: raise ImportError, "Error importing IPython (%s)" % str(e) #ansi_colors = {'0;30': 'Black', # '0;31': 'Red', # '0;32': 'Green', # '0;33': 'Brown', # '0;34': 'Blue', # '0;35': 'Purple', # '0;36': 'Cyan', # '0;37': 'LightGray', # '1;30': 'DarkGray', # '1;31': 'DarkRed', # '1;32': 'SeaGreen', # '1;33': 'Yellow', # '1;34': 'LightBlue', # '1;35': 'MediumPurple', # '1;36': 'LightCyan', # '1;37': 'White'} # Tango Colors (from gnome-terminal) ansi_colors = {'0;30': '#2e2e34343636', '0;31': '#cccc00000000', '0;32': '#4e4e9a9a0606', '0;33': '#c4c4a0a00000', '0;34': '#34346565a4a4', '0;35': '#757550507b7b', '0;36': '#060698989a9a', '0;37': '#d3d3d7d7cfcf', '1;30': '#555557575353', '1;31': '#efef29292929', '1;32': '#8a8ae2e23434', '1;33': '#fcfce9e94f4f', '1;34': '#72729f9fcfcf', '1;35': '#adad7f7fa8a8', '1;36': '#3434e2e2e2e2', '1;37': '#eeeeeeeeecec'} class IterableIPShell: def __init__(self,argv=None,user_ns=None,user_global_ns=None, cin=None, cout=None,cerr=None, input_func=None): if input_func: IPython.iplib.raw_input_original = input_func if cin: IPython.Shell.Term.cin = cin if cout: IPython.Shell.Term.cout = cout if cerr: IPython.Shell.Term.cerr = cerr if argv is None: argv=[] # This is to get rid of the blockage that occurs during # IPython.Shell.InteractiveShell.user_setup() IPython.iplib.raw_input = lambda x: None # not used? #self.term = IPython.genutils.IOTerm(cin=cin, cout=cout, cerr=cerr) os.environ['TERM'] = 'dumb' excepthook = sys.excepthook self.IP = IPython.Shell.make_IPython(argv,user_ns=user_ns, user_global_ns=user_global_ns, embedded=True, shell_class=IPython.Shell.InteractiveShell) self.IP.system = lambda cmd: self.shell(self.IP.var_expand(cmd), header='IPython system call: ', verbose=self.IP.rc.system_verbose) sys.excepthook = excepthook self.iter_more = 0 self.history_level = 0 self.complete_sep = re.compile('[\s\{\}\[\]\(\)]') def execute(self): self.history_level = 0 orig_stdout = sys.stdout sys.stdout = IPython.Shell.Term.cout line = None try: line = self.IP.raw_input(None, self.iter_more) if self.IP.autoindent: self.IP.readline_startup_hook(None) except KeyboardInterrupt: self.IP.write('\nKeyboardInterrupt\n') self.IP.resetbuffer() # keep cache in sync with the prompt counter: self.IP.outputcache.prompt_count -= 1 if self.IP.autoindent: self.IP.indent_current_nsp = 0 self.iter_more = 0 except: self.IP.showtraceback() else: self.iter_more = self.IP.push(line) if (self.IP.SyntaxTB.last_syntax_error and self.IP.rc.autoedit_syntax): self.IP.edit_syntax_error() if self.iter_more: self.prompt = str(self.IP.outputcache.prompt2).strip() if self.IP.autoindent: self.IP.readline_startup_hook(self.IP.pre_readline) else: self.prompt = str(self.IP.outputcache.prompt1).strip() sys.stdout = orig_stdout def historyBack(self): self.history_level -= 1 return self._getHistory() def historyForward(self): self.history_level += 1 return self._getHistory() def _getHistory(self): try: rv = self.IP.user_ns['In'][self.history_level].strip('\n') except IndexError: self.history_level = 0 rv = '' return rv def updateNamespace(self, ns_dict): self.IP.user_ns.update(ns_dict) def complete(self, line): split_line = self.complete_sep.split(line) possibilities = self.IP.complete(split_line[-1]) if possibilities: common_prefix = reduce(self._commonPrefix, possibilities) completed = line[:-len(split_line[-1])]+common_prefix else: completed = line return completed, possibilities def _commonPrefix(self, str1, str2): for i in range(len(str1)): if not str2.startswith(str1[:i+1]): return str1[:i] return str1 def shell(self, cmd,verbose=0,debug=0,header=''): print 'Shell' stat = 0 if verbose or debug: print header+cmd # flush stdout so we don't mangle python's buffering if not debug: input, output = os.popen4(cmd) print output.read() output.close() input.close() class ConsoleView(gtk.TextView): def __init__(self): gtk.TextView.__init__(self) self.modify_font(pango.FontDescription('Mono')) self.set_cursor_visible(True) self.text_buffer = self.get_buffer() self.mark = self.text_buffer.create_mark('scroll_mark', self.text_buffer.get_end_iter(), False) for code in ansi_colors: self.text_buffer.create_tag(code, foreground=ansi_colors[code], weight=700) self.text_buffer.create_tag('0') self.text_buffer.create_tag('notouch', editable=False) self.color_pat = re.compile('\x01?\x1b\[(.*?)m\x02?') self.line_start = \ self.text_buffer.create_mark('line_start', self.text_buffer.get_end_iter(), True ) self.connect('key-press-event', self._onKeypress) self.last_cursor_pos = 0 def write(self, text, editable=False): segments = self.color_pat.split(text) segment = segments.pop(0) start_mark = self.text_buffer.create_mark(None, self.text_buffer.get_end_iter(), True) self.text_buffer.insert(self.text_buffer.get_end_iter(), segment) if segments: ansi_tags = self.color_pat.findall(text) for tag in ansi_tags: i = segments.index(tag) self.text_buffer.insert_with_tags_by_name(self.text_buffer.get_end_iter(), segments[i+1], tag) segments.pop(i) if not editable: self.text_buffer.apply_tag_by_name('notouch', self.text_buffer.get_iter_at_mark(start_mark), self.text_buffer.get_end_iter()) self.text_buffer.delete_mark(start_mark) self.scroll_mark_onscreen(self.mark) def showPrompt(self, prompt): self.write(prompt) self.text_buffer.move_mark(self.line_start,self.text_buffer.get_end_iter()) def changeLine(self, text): iter = self.text_buffer.get_iter_at_mark(self.line_start) iter.forward_to_line_end() self.text_buffer.delete(self.text_buffer.get_iter_at_mark(self.line_start), iter) self.write(text, True) def getCurrentLine(self): rv = self.text_buffer.get_slice(self.text_buffer.get_iter_at_mark(self.line_start), self.text_buffer.get_end_iter(), False) return rv def showReturned(self, text): iter = self.text_buffer.get_iter_at_mark(self.line_start) iter.forward_to_line_end() self.text_buffer.apply_tag_by_name('notouch', self.text_buffer.get_iter_at_mark(self.line_start), iter) self.write('\n'+text) if text: self.write('\n') self.showPrompt(self.prompt) self.text_buffer.move_mark(self.line_start,self.text_buffer.get_end_iter()) self.text_buffer.place_cursor(self.text_buffer.get_end_iter()) def _onKeypress(self, obj, event): keys = [gtk.keysyms.Delete,gtk.keysyms.Home,gtk.keysyms.BackSpace, gtk.keysyms.End] # catch these keys if (not event.string) and (not event.keyval in keys): return insert_mark = self.text_buffer.get_insert() insert_iter = self.text_buffer.get_iter_at_mark(insert_mark) selection_mark = self.text_buffer.get_selection_bound() selection_iter = self.text_buffer.get_iter_at_mark(selection_mark) start_iter = self.text_buffer.get_iter_at_mark(self.line_start) if event.keyval == gtk.keysyms.Home : self.text_buffer.place_cursor(start_iter) return True # stop other handlers if start_iter.compare(insert_iter) <= 0 and \ start_iter.compare(selection_iter) <= 0: return if event.keyval == gtk.keysyms.BackSpace: self.text_buffer.place_cursor(self.text_buffer.get_end_iter()) return elif start_iter.compare(insert_iter) > 0 and \ start_iter.compare(selection_iter) > 0: self.text_buffer.place_cursor(start_iter) elif insert_iter.compare(selection_iter) < 0: self.text_buffer.move_mark(insert_mark, start_iter) elif insert_iter.compare(selection_iter) > 0: self.text_buffer.move_mark(selection_mark, start_iter) class IPythonView(ConsoleView, IterableIPShell): def __init__(self): ConsoleView.__init__(self) self.cout = StringIO() IterableIPShell.__init__(self, cout=self.cout,cerr=self.cout, input_func=self.raw_input) self.connect('key_press_event', self.keyPress) self.execute() self.cout.truncate(0) self.showPrompt(self.prompt) self.interrupt = False def raw_input(self, prompt=''): if self.interrupt: self.interrupt = False raise KeyboardInterrupt return self.getCurrentLine() def keyPress(self, widget, event): if event.state & gtk.gdk.CONTROL_MASK and event.keyval == 99: self.interrupt = True self._processLine() return True elif event.keyval == gtk.keysyms.Return: self._processLine() return True elif event.keyval == gtk.keysyms.Up: self.changeLine(self.historyBack()) return True elif event.keyval == gtk.keysyms.Down: self.changeLine(self.historyForward()) return True elif event.keyval == gtk.keysyms.Tab: if not self.getCurrentLine().strip(): return False completed, possibilities = self.complete(self.getCurrentLine()) if len(possibilities) > 1: slice = self.getCurrentLine() self.write('\n') for symbol in possibilities: self.write(symbol+'\n') self.showPrompt(self.prompt) self.changeLine(completed or slice) return True def _processLine(self): self.history_pos = 0 self.execute() rv = self.cout.getvalue() if rv: rv = rv.strip('\n') self.showReturned(rv) self.cout.truncate(0) dist/copy/plugins/ipconsole/ipython_view/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260024332 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.473046944 exaile-3.3.2/plugins/ipconsole/ipython_view/__init__.py0000644000000000000000000000361412233027260023276 0ustar00rootroot00000000000000# Copyright (C) 2012 Brian Parma # # 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 logging logger = logging.getLogger(__name__) try: import IPython version = IPython.__version__ if version.startswith('0.10'): from ipython_view import IPythonView elif version.startswith('0.11') or \ version.startswith('0.12'): from ipython_view2 import IPythonView else: raise ImportError('unknown IPython version: {0}'.format(version)) except (ImportError, AttributeError): logger.error('could not find a compatible version of IPython', exc_info=True) if __name__ == '__main__': import gtk w = gtk.Window() w.set_title('Example IPythonView') sw = gtk.ScrolledWindow() sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) ipv = IPythonView() ipv.set_wrap_mode(gtk.WRAP_CHAR) ipv.modify_base(gtk.STATE_NORMAL, gtk.gdk.color_parse('black')) ipv.modify_text(gtk.STATE_NORMAL, gtk.gdk.color_parse('lavender')) ipv.IP.magic_colors('Linux') # IPython color scheme # ipv.IP.user_ns.clear() w.add(sw) sw.add(ipv) w.set_default_size(640,320) w.show_all() w.connect('delete-event',gtk.main_quit) gtk.main() dist/copy/plugins/ipconsole/ipython_view/PaxHeaders.26361/ipython_view2gi.py0000644000175000017500000000012412233027260025721 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.473046944 exaile-3.3.2/plugins/ipconsole/ipython_view/ipython_view2gi.py0000644000000000000000000004510512233027260024666 0ustar00rootroot00000000000000#!/usr/bin/python ''' Provides IPython console widget. @author: Eitan Isaacson @organization: IBM Corporation @copyright: Copyright (c) 2007 IBM Corporation @license: BSD All rights reserved. This program and the accompanying materials are made available under the terms of the BSD which accompanies this distribution, and is available at U{http://www.opensource.org/licenses/bsd-license.php} ''' import gi from gi.repository import Gtk as gtk from gi.repository import Gdk as gdk from gi.repository import GObject from gi.repository import Pango import re import sys import os from StringIO import StringIO try: import IPython except ImportError: IPython = None class IterableIPShell: ''' Create an IPython instance. Does not start a blocking event loop, instead allow single iterations. This allows embedding in GTK+ without blockage. @ivar IP: IPython instance. @type IP: IPython.iplib.InteractiveShell @ivar iter_more: Indicates if the line executed was a complete command, or we should wait for more. @type iter_more: integer @ivar history_level: The place in history where we currently are when pressing up/down. @type history_level: integer @ivar complete_sep: Seperation delimeters for completion function. @type complete_sep: _sre.SRE_Pattern ''' def __init__(self,argv=[],user_ns=None,user_global_ns=None, cin=None, cout=None,cerr=None, input_func=None): ''' @param argv: Command line options for IPython @type argv: list @param user_ns: User namespace. @type user_ns: dictionary @param user_global_ns: User global namespace. @type user_global_ns: dictionary. @param cin: Console standard input. @type cin: IO stream @param cout: Console standard output. @type cout: IO stream @param cerr: Console standard error. @type cerr: IO stream @param input_func: Replacement for builtin raw_input() @type input_func: function ''' io = IPython.utils.io if input_func: IPython.frontend.terminal.interactiveshell.raw_input_original = input_func if cin: io.stdin = io.IOStream(cin) if cout: io.stdout = io.IOStream(cout) if cerr: io.stderr = io.IOStream(cerr) # This is to get rid of the blockage that accurs during # IPython.Shell.InteractiveShell.user_setup() io.raw_input = lambda x: None os.environ['TERM'] = 'dumb' excepthook = sys.excepthook from IPython.config.loader import Config cfg = Config() cfg.InteractiveShell.colors = "Linux" # InteractiveShell's __init__ overwrites io.stdout,io.stderr with # sys.stdout, sys.stderr, this makes sure they are right old_stdout, old_stderr = sys.stdout, sys.stderr sys.stdout, sys.stderr = io.stdout.stream, io.stderr.stream # InteractiveShell inherits from SingletonConfigurable, so use instance() self.IP = IPython.frontend.terminal.embed.InteractiveShellEmbed.instance(config=cfg, user_ns=user_ns) sys.stdout, sys.stderr = old_stdout, old_stderr self.IP.system = lambda cmd: self.shell(self.IP.var_expand(cmd), header='IPython system call: ') # local_ns=user_ns) #global_ns=user_global_ns) #verbose=self.IP.rc.system_verbose) self.IP.raw_input = input_func sys.excepthook = excepthook self.iter_more = 0 self.history_level = 0 self.complete_sep = re.compile('[\s\{\}\[\]\(\)]') self.updateNamespace({'exit':lambda:None}) self.updateNamespace({'quit':lambda:None}) self.IP.readline_startup_hook(self.IP.pre_readline) # Workaround for updating namespace with sys.modules # #self.__update_namespace() # help() is blocking which hangs Gtk self.updateNamespace({'help':lambda *x:'help() command incompatible with gtk'}) def __update_namespace(self): ''' Update self.IP namespace for autocompletion with sys.modules ''' for k,v in sys.modules.items(): if not '.' in k: self.IP.user_ns.update({k:v}) def execute(self): ''' Executes the current line provided by the shell object. ''' self.history_level = 0 # this is needed because some functions in IPython use 'print' to print output # (like 'who') orig_stdout = sys.stdout sys.stdout = IPython.utils.io.stdout orig_stdin = sys.stdin sys.stdin = IPython.utils.io.stdin; self.prompt = self.generatePrompt(self.iter_more) self.IP.hooks.pre_prompt_hook() if self.iter_more: try: self.prompt = self.generatePrompt(True) except: self.IP.showtraceback() if self.IP.autoindent: self.IP.rl_do_indent = True try: line = self.IP.raw_input(self.prompt) except KeyboardInterrupt: self.IP.write('\nKeyboardInterrupt\n') self.IP.input_splitter.reset() except: self.IP.showtraceback() else: self.IP.input_splitter.push(line) self.iter_more = self.IP.input_splitter.push_accepts_more() self.prompt = self.generatePrompt(self.iter_more) if (self.IP.SyntaxTB.last_syntax_error and self.IP.autoedit_syntax): self.IP.edit_syntax_error() if not self.iter_more: source_raw = self.IP.input_splitter.source_raw_reset()[1] self.IP.run_cell(source_raw, store_history=True) else: # TODO: Auto-indent # pass sys.stdout = orig_stdout sys.stdin = orig_stdin def generatePrompt(self, is_continuation): ''' Generate prompt depending on is_continuation value @param is_continuation @type is_continuation: boolean @return: The prompt string representation @rtype: string ''' # Backwards compatibility with ipyton-0.11 # ver = IPython.__version__ if '0.11' in ver: prompt = self.IP.hooks.generate_prompt(is_continuation) else: if is_continuation: prompt = self.IP.prompt_manager.render('in2') else: prompt = self.IP.prompt_manager.render('in') return prompt def historyBack(self): ''' Provides one history command back. @return: The command string. @rtype: string ''' self.history_level -= 1 if not self._getHistory(): self.history_level +=1 return self._getHistory() def historyForward(self): ''' Provides one history command forward. @return: The command string. @rtype: string ''' if self.history_level < 0: self.history_level += 1 return self._getHistory() def _getHistory(self): ''' Get's the command string of the current history level. @return: Historic command string. @rtype: string ''' try: rv = self.IP.user_ns['In'][self.history_level].strip('\n') except IndexError: rv = '' return rv def updateNamespace(self, ns_dict): ''' Add the current dictionary to the shell namespace. @param ns_dict: A dictionary of symbol-values. @type ns_dict: dictionary ''' self.IP.user_ns.update(ns_dict) def complete(self, line): ''' Returns an auto completed line and/or posibilities for completion. @param line: Given line so far. @type line: string @return: Line completed as for as possible, and possible further completions. @rtype: tuple ''' split_line = self.complete_sep.split(line) if split_line[-1]: possibilities = self.IP.complete(split_line[-1]) else: completed = line possibilities = ['',[]] if possibilities: def _commonPrefix(str1, str2): ''' Reduction function. returns common prefix of two given strings. @param str1: First string. @type str1: string @param str2: Second string @type str2: string @return: Common prefix to both strings. @rtype: string ''' for i in range(len(str1)): if not str2.startswith(str1[:i+1]): return str1[:i] return str1 if possibilities[1]: common_prefix = reduce(_commonPrefix, possibilities[1]) or line[-1] completed = line[:-len(split_line[-1])]+common_prefix else: completed = line else: completed = line return completed, possibilities[1] def shell(self, cmd,verbose=0,debug=0,header=''): ''' Replacement method to allow shell commands without them blocking. @param cmd: Shell command to execute. @type cmd: string @param verbose: Verbosity @type verbose: integer @param debug: Debug level @type debug: integer @param header: Header to be printed before output @type header: string ''' stat = 0 if verbose or debug: print header+cmd # flush stdout so we don't mangle python's buffering if not debug: input, output = os.popen4(cmd) print output.read() output.close() input.close() class ConsoleView(gtk.TextView): ''' Specialized text view for console-like workflow. @cvar ANSI_COLORS: Mapping of terminal colors to X11 names. @type ANSI_COLORS: dictionary @ivar text_buffer: Widget's text buffer. @type text_buffer: gtk.TextBuffer @ivar color_pat: Regex of terminal color pattern @type color_pat: _sre.SRE_Pattern @ivar mark: Scroll mark for automatic scrolling on input. @type mark: gtk.TextMark @ivar line_start: Start of command line mark. @type line_start: gtk.TextMark ''' ANSI_COLORS = {'0;30': 'Black', '0;31': 'Red', '0;32': 'Green', '0;33': 'Brown', '0;34': 'Blue', '0;35': 'Purple', '0;36': 'Cyan', '0;37': 'LightGray', '1;30': 'DarkGray', '1;31': 'DarkRed', '1;32': 'SeaGreen', '1;33': 'Yellow', '1;34': 'LightBlue', '1;35': 'MediumPurple', '1;36': 'LightCyan', '1;37': 'White'} def __init__(self): ''' Initialize console view. ''' gtk.TextView.__init__(self) self.modify_font(Pango.FontDescription('Mono')) self.set_cursor_visible(True) self.text_buffer = self.get_buffer() self.mark = self.text_buffer.create_mark('scroll_mark', self.text_buffer.get_end_iter(), False) for code in self.ANSI_COLORS: self.text_buffer.create_tag(code, foreground=self.ANSI_COLORS[code], weight=700) self.text_buffer.create_tag('0') self.text_buffer.create_tag('notouch', editable=False) self.color_pat = re.compile('\x01?\x1b\[(.*?)m\x02?') self.line_start = \ self.text_buffer.create_mark('line_start', self.text_buffer.get_end_iter(), True) self.connect('key-press-event', self.onKeyPress) def write(self, text, editable=False): GObject.idle_add(self._write, text, editable) def _write(self, text, editable=False): ''' Write given text to buffer. @param text: Text to append. @type text: string @param editable: If true, added text is editable. @type editable: boolean ''' segments = self.color_pat.split(text) segment = segments.pop(0) start_mark = self.text_buffer.create_mark(None, self.text_buffer.get_end_iter(), True) self.text_buffer.insert(self.text_buffer.get_end_iter(), segment) if segments: ansi_tags = self.color_pat.findall(text) for tag in ansi_tags: i = segments.index(tag) self.text_buffer.insert_with_tags_by_name(self.text_buffer.get_end_iter(), segments[i+1], tag) segments.pop(i) if not editable: self.text_buffer.apply_tag_by_name('notouch', self.text_buffer.get_iter_at_mark(start_mark), self.text_buffer.get_end_iter()) self.text_buffer.delete_mark(start_mark) self.scroll_mark_onscreen(self.mark) def showPrompt(self, prompt): GObject.idle_add(self._showPrompt, prompt) def _showPrompt(self, prompt): ''' Prints prompt at start of line. @param prompt: Prompt to print. @type prompt: string ''' self._write(prompt) self.text_buffer.move_mark(self.line_start, self.text_buffer.get_end_iter()) def changeLine(self, text): GObject.idle_add(self._changeLine, text) def _changeLine(self, text): ''' Replace currently entered command line with given text. @param text: Text to use as replacement. @type text: string ''' iter = self.text_buffer.get_iter_at_mark(self.line_start) iter.forward_to_line_end() self.text_buffer.delete(self.text_buffer.get_iter_at_mark(self.line_start), iter) self._write(text, True) def getCurrentLine(self): ''' Get text in current command line. @return: Text of current command line. @rtype: string ''' rv = self.text_buffer.get_slice( self.text_buffer.get_iter_at_mark(self.line_start), self.text_buffer.get_end_iter(), False) return rv def showReturned(self, text): GObject.idle_add(self._showReturned, text) def _showReturned(self, text): ''' Show returned text from last command and print new prompt. @param text: Text to show. @type text: string ''' iter = self.text_buffer.get_iter_at_mark(self.line_start) iter.forward_to_line_end() self.text_buffer.apply_tag_by_name( 'notouch', self.text_buffer.get_iter_at_mark(self.line_start), iter) self._write('\n'+text) if text: self._write('\n') self._write('\n') # add extra line, like normal IPython self._showPrompt(self.prompt) self.text_buffer.move_mark(self.line_start,self.text_buffer.get_end_iter()) self.text_buffer.place_cursor(self.text_buffer.get_end_iter()) def onKeyPress(self, widget, event): ''' Key press callback used for correcting behavior for console-like interfaces. For example 'home' should go to prompt, not to begining of line. @param widget: Widget that key press accored in. @type widget: gtk.Widget @param event: Event object @type event: gtk.gdk.Event @return: Return True if event should not trickle. @rtype: boolean ''' insert_mark = self.text_buffer.get_insert() insert_iter = self.text_buffer.get_iter_at_mark(insert_mark) selection_mark = self.text_buffer.get_selection_bound() selection_iter = self.text_buffer.get_iter_at_mark(selection_mark) start_iter = self.text_buffer.get_iter_at_mark(self.line_start) if event.keyval == gdk.KEY_Home: if event.state & gdk.ModifierType.CONTROL_MASK or \ event.state & gdk.ModifierType.MOD1_MASK: pass elif event.state & gdk.ModifierType.SHIFT_MASK: self.text_buffer.move_mark(insert_mark, start_iter) return True else: self.text_buffer.place_cursor(start_iter) return True elif event.keyval == gdk.KEY_Left: insert_iter.backward_cursor_position() if not insert_iter.editable(True): return True elif not event.string: pass elif start_iter.compare(insert_iter) <= 0 and \ start_iter.compare(selection_iter) <= 0: pass elif start_iter.compare(insert_iter) > 0 and \ start_iter.compare(selection_iter) > 0: self.text_buffer.place_cursor(start_iter) elif insert_iter.compare(selection_iter) < 0: self.text_buffer.move_mark(insert_mark, start_iter) elif insert_iter.compare(selection_iter) > 0: self.text_buffer.move_mark(selection_mark, start_iter) return self.onKeyPressExtend(event) def onKeyPressExtend(self, event): ''' For some reason we can't extend onKeyPress directly (bug #500900). ''' pass class IPythonView(ConsoleView, IterableIPShell): ''' Sub-class of both modified IPython shell and L{ConsoleView} this makes a GTK+ IPython console. ''' def __init__(self): ''' Initialize. Redirect I/O to console. ''' ConsoleView.__init__(self) self.cout = StringIO() IterableIPShell.__init__(self, cout=self.cout,cerr=self.cout, input_func=self.raw_input) # self.connect('key_press_event', self.keyPress) self.interrupt = False self.execute() self.prompt = self.generatePrompt(False) self.cout.truncate(0) self.showPrompt(self.prompt) def raw_input(self, prompt=''): ''' Custom raw_input() replacement. Get's current line from console buffer. @param prompt: Prompt to print. Here for compatability as replacement. @type prompt: string @return: The current command line text. @rtype: string ''' if self.interrupt: self.interrupt = False raise KeyboardInterrupt return self.getCurrentLine() def onKeyPressExtend(self, event): ''' Key press callback with plenty of shell goodness, like history, autocompletions, etc. @param widget: Widget that key press occured in. @type widget: gtk.Widget @param event: Event object. @type event: gtk.gdk.Event @return: True if event should not trickle. @rtype: boolean ''' if event.state & gdk.ModifierType.CONTROL_MASK and event.keyval == 99: self.interrupt = True self._processLine() return True elif event.keyval == gdk.KEY_Return: self._processLine() return True elif event.keyval == gdk.KEY_Up: self.changeLine(self.historyBack()) return True elif event.keyval == gdk.KEY_Down: self.changeLine(self.historyForward()) return True elif event.keyval == gdk.KEY_Tab: if not self.getCurrentLine().strip(): return False completed, possibilities = self.complete(self.getCurrentLine()) if len(possibilities) > 1: slice = self.getCurrentLine() self.write('\n') for symbol in possibilities: self.write(symbol+'\n') self.showPrompt(self.prompt) self.changeLine(completed or slice) return True def _processLine(self): ''' Process current command line. ''' self.history_pos = 0 self.execute() rv = self.cout.getvalue() if rv: rv = rv.strip('\n') self.showReturned(rv) self.cout.truncate(0) if __name__ == "__main__": window = gtk.Window() window.set_default_size(640, 320) window.connect('delete-event', lambda x, y: gtk.main_quit()) window.add(IPythonView()) window.show_all() gtk.main() dist/copy/plugins/PaxHeaders.26361/shoutcast0000644000175000017500000000013212233027261017442 xustar000000000000000030 mtime=1382821553.697046951 30 atime=1382821552.789046922 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/shoutcast/0000755000000000000000000000000012233027261016460 5ustar00rootroot00000000000000dist/copy/plugins/shoutcast/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260021630 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.093046932 exaile-3.3.2/plugins/shoutcast/__init__.py0000644000000000000000000002364412233027260020601 0ustar00rootroot00000000000000 import glib import gtk import httplib import logging logger = logging.getLogger(__name__) import os import re import socket import urllib from urllib2 import urlparse from xl import common, event, main, playlist, xdg from xl.radio import * from xl.nls import gettext as _ from xlgui import guiutil from xlgui.widgets import dialogs try: import StringIO except ImportError: import cStringIO as StringIO STATION = None def enable(exaile): if exaile.loading: event.add_callback(_enable, "exaile_loaded") else: _enable(None, exaile, None) def _enable(devicename, exaile, nothing): global STATION STATION = ShoutcastRadioStation() exaile.radio.add_station(STATION) def disable(exaile): global STATION exaile.radio.remove_station(STATION) STATION = None def set_status(message, timeout=0): from xlgui.panel import radio radio.set_status(message, timeout) class ShoutcastRadioStation(RadioStation): """ Shoutcast Radio Simple usage: >>> manager = RadioManager() >>> manager.add_station(ShoutcastRadioStation()) >>> stations = manager.search('shoutcast', 'ravetrax') >>> tracks = stations[0].get_playlist().get_tracks() >>> len(tracks) > 0 True >>> """ name = 'shoutcast' def __init__(self): """ Initializes the shoutcast radio station """ self.user_agent = 'Exaile Shoutcast Plugin/%s +http://www.exaile.org' % \ main.exaile().plugins.get_plugin_info('shoutcast')['Version'] self.genre_url = 'http://www.shoutcast.com/sbin/newxml.phtml' self.cat_url = 'http://www.shoutcast.com/sbin/newxml.phtml?genre=%(genre)s' self.playlist_url = 'http://www.shoutcast.com/sbin/tunein-station.pls?id=%(id)s' self.search_url = 'http://www.shoutcast.com/sbin/newxml.phtml?search=%(kw)s' self.cache_file = os.path.join(xdg.get_cache_dir(), 'shoutcast.cache') self.data = None self._load_cache() self.subs = {} self.playlists = {} logger.debug(self.user_agent) def _load_cache(self): """ Loads shoutcast data from cache """ if os.path.isfile(self.cache_file): self.data = open(self.cache_file).read() items = re.findall(r'', self.data) # if there are no cached items, the cache isn't valid anyway, so # don't use it if not items: self.data = None def _save_cache(self): """ Saves cache data """ h = open(self.cache_file, 'w') h.write(self.data) h.close() def get_lists(self, no_cache=False): """ Returns the rlists for shoutcast """ from xlgui.panel import radio if no_cache or not self.data: set_status(_('Contacting Shoutcast server...')) hostinfo = urlparse.urlparse(self.genre_url) try: c = httplib.HTTPConnection(hostinfo.netloc, timeout=20) except TypeError: # python 2.5 doesnt have timeout= c = httplib.HTTPConnection(hostinfo.netloc) try: c.request('GET', hostinfo.path, headers={'User-Agent': self.user_agent}) response = c.getresponse() except (socket.timeout, socket.error): raise radio.RadioException( _('Error connecting to Shoutcast server.')) if response.status != 200: raise radio.RadioException( _('Error connecting to Shoutcast server.')) data = response.read() set_status('') self.data = data self._save_cache() else: data = self.data items = re.findall(r'', data) rlists = [] repl = {'&' : '&', '<' : '<', '>' : '>'} for item in items: for k, v in repl.items(): item = item.replace(k, v) rlist = RadioList(item, station=self) rlist.get_items = lambda no_cache, name=item: \ self._get_subrlists(name=name, no_cache=no_cache) rlists.append(rlist) sort_list = [(item.name, item) for item in rlists] sort_list.sort() rlists = [item[1] for item in sort_list] self.rlists = rlists return rlists def _get_subrlists(self, name, no_cache=False): """ Gets the subrlists for a rlist """ from xlgui.panel import radio if name in self.subs and not no_cache: return self.subs[name] url = self.cat_url % {'genre': name} set_status(_('Contacting Shoutcast server...')) hostinfo = urlparse.urlparse(url) try: c = httplib.HTTPConnection(hostinfo.netloc, timeout=20) except TypeError: # python 2.5 doesnt have timeout= c = httplib.HTTPConnection(hostinfo.netloc) try: c.request('GET', "%s?%s" % (hostinfo.path, hostinfo.query), headers={'User-Agent': self.user_agent}) response = c.getresponse() except (socket.timeout, socket.error): raise radio.RadioException( _('Error connecting to Shoutcast server.')) if response.status != 200: raise radio.RadioException( _('Error connecting to Shoutcast server.')) data = response.read() set_status('') rlists = [] items = re.findall(r'> 4 data = 0 if ctrl & CDROM_DATA_TRACK: data = 1 self.raw_tracks.append( (track, m, s, f, (m*60+s) * 75 + f, data) ) def get_raw_info(self): return self.raw_tracks[:] def get_track_lengths(self): offset = self.raw_tracks[0][4] lengths = [] for track in self.raw_tracks[1:]: lengths.append((track[4]-offset)/75) offset = track[4] return lengths class CDPlaylist(playlist.Playlist): def __init__(self, name=_("Audio Disc"), device=None): playlist.Playlist.__init__(self, name=name) if not device: self.device = "/dev/cdrom" else: self.device = device self.open_disc() def open_disc(self): toc = CDTocParser(self.device) lengths = toc.get_track_lengths() songs = {} for count, length in enumerate(lengths): count += 1 song = trax.Track("cdda://%d/#%s" % (count, self.device)) song.set_tag_raw('title', "Track %d" % count) song.set_tag_raw('tracknumber', str(count)) song.set_tag_raw('__length', length) songs[song.get_loc_for_io()] = song # FIXME: this can probably be cleaner sort_tups = [ (int(s.get_tag_raw('tracknumber')[0]),s) \ for s in songs.values() ] sort_tups.sort() sorted = [ s[1] for s in sort_tups ] self.extend(sorted) if CDDB_AVAIL: self.get_cddb_info() @common.threaded def get_cddb_info(self): try: disc = DiscID.open(self.device) self.info = DiscID.disc_id(disc) status, info = CDDB.query(self.info) except IOError: return if status in (210, 211): info = info[0] status = 200 if status != 200: return (status, info) = CDDB.read(info['category'], info['disc_id']) title = info['DTITLE'].split(" / ") for i in range(self.info[1]): tr = self[i] tr.set_tag_raw('title', info['TTITLE' + `i`].decode('iso-8859-15', 'replace')) tr.set_tag_raw('album', title[1].decode('iso-8859-15', 'replace')) tr.set_tag_raw('artist', title[0].decode('iso-8859-15', 'replace')) tr.set_tag_raw('year', info['EXTD'].replace("YEAR: ", "")) tr.set_tag_raw('genre', info['DGENRE']) self._set_name(title[1].decode('iso-8859-15', 'replace')) event.log_event('cddb_info_retrieved', self, True) class CDDevice(Device): """ represents a CD """ class_autoconnect = True def __init__(self, dev="/dev/cdrom"): Device.__init__(self, dev) self.name = _("Audio Disc") self.dev = dev def _get_panel_type(self): import imp try: _cdguipanel = imp.load_source("_cdguipanel", os.path.join(os.path.dirname(__file__), "_cdguipanel.py")) return _cdguipanel.CDPanel except: common.log_exception(log=logger, message="Could not import cd gui panel") return 'flatplaylist' panel_type = property(_get_panel_type) def connect(self): cdpl = CDPlaylist(device=self.dev) self.playlists.append(cdpl) self.connected = True def disconnect(self): self.playlists = [] self.connected = False class CDHandler(Handler): name = "cd" def is_type(self, device, capabilities): if "volume.disc" in capabilities: return True return False def get_udis(self, hal): udis = hal.hal.FindDeviceByCapability("volume.disc") return udis def device_from_udi(self, hal, udi): cd_obj = hal.bus.get_object("org.freedesktop.Hal", udi) cd = dbus.Interface(cd_obj, "org.freedesktop.Hal.Device") if not cd.GetProperty("volume.disc.has_audio"): return device = str(cd.GetProperty("block.device")) cddev = CDDevice(dev=device) return cddev # vim: et sts=4 sw=4 dist/copy/plugins/cd/PaxHeaders.26361/importer.py0000644000175000017500000000012412233027260020303 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.565046947 exaile-3.3.2/plugins/cd/importer.py0000644000000000000000000001006612233027260017246 0ustar00rootroot00000000000000# Copyright (C) 2009-2010 Aren Olson # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import copy import os import threading from xl import ( common, formatter, settings, transcoder, trax ) class CDImporter(object): def __init__(self, tracks): self.tracks = [ t for t in tracks if t.get_loc_for_io().startswith("cdda") ] self.duration = float(sum( [ t.get_tag_raw('__length') for t in self.tracks ] )) self.transcoder = transcoder.Transcoder() self.formatter = formatter.TrackFormatter(settings.get_option("cd_import/outpath", "%s/$artist/$album/$tracknumber - $title" % os.getenv("HOME"))) self.current = None self.current_len = None self.progress = 0.0 self.running = False self.format = settings.get_option("cd_import/format", "Ogg Vorbis") self.quality = settings.get_option("cd_import/quality", -1) self.cont = None def do_import(self): self.running = True self.cont = threading.Event() self.transcoder.set_format(self.format) if self.quality != -1: self.transcoder.set_quality(self.quality) self.transcoder.end_cb = self._end_cb for tr in self.tracks: self.cont.clear() self.current = tr self.current_len = tr.get_tag_raw('__length') loc = tr.get_loc_for_io() trackno, device = loc[7:].split("/#") src = "cdparanoiasrc track=%s device=\"%s\""%(trackno, device) self.transcoder.set_raw_input(src) outloc = self.get_output_location(tr) self.transcoder.set_output(outloc) self.transcoder.start_transcode() self.cont.wait() if not self.running: break tr2 = trax.Track("file://"+outloc) for t in tr.list_tags(): if not t.startswith("__"): tr2.set_tag_raw(t, tr.get_tag_raw(t)) tr2.write_tags() try: incr = tr.get_tag_raw('__length') / self.duration self.progress += incr except: raise self.progress = 100.0 def _end_cb(self): self.cont.set() def get_output_location(self, track): path = self.formatter.format(track) directorypath = os.path.dirname(path) if not os.path.exists(directorypath): os.makedirs(directorypath) extension = transcoder.FORMATS[self.transcoder.dest_format]['extension'] return path + '.' + extension def stop(self): self.running = False self.transcoder.stop() def get_progress(self): if not self.current or not self.current_len: return self.progress incr = self.current_len / self.duration pos = self.transcoder.get_time()/float(self.current_len) return self.progress + pos*incr dist/copy/plugins/cd/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260017465 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/cd/PLUGININFO0000644000000000000000000000040512233027260016424 0ustar00rootroot00000000000000Version='0.1.1' Authors=['Aren Olson '] Name=_('CD Playback') Description=_('Adds support for playing audio CDs.\n\nRequires HAL to autodetect CDs\nRequires cddb-py (http://cddb-py.sourceforge.net/) to look up tags.') Category=_('Devices') dist/copy/plugins/cd/PaxHeaders.26361/cdprefs.py0000644000175000017500000000012412233027260020070 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.513046945 exaile-3.3.2/plugins/cd/cdprefs.py0000644000000000000000000001037312233027260017034 0ustar00rootroot00000000000000# Copyright (C) 2009-2010 Aren Olson # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. from __future__ import with_statement import gobject import gtk import os import warnings from xl import event, settings, transcoder from xl.nls import gettext as _ from xlgui.preferences import widgets name = _("CD") basedir = os.path.dirname(os.path.realpath(__file__)) ui = os.path.join(basedir, "cdprefs_pane.ui") FORMAT_WIDGET = None # TODO: allow setting cddb server? class OutputFormatPreference(widgets.ComboPreference): name = 'cd_import/format' class OutputQualityPreference(widgets.ComboPreference, widgets.Conditional): name = 'cd_import/quality' condition_preference_name = 'cd_import/format' def __init__(self, preferences, widget): widgets.ComboPreference.__init__(self, preferences, widget) widgets.Conditional.__init__(self) self.format = settings.get_option("cd_import/format", None) self.default = settings.get_option("cd_import/quality", None) def on_check_condition(self): """ Specifies the condition to meet :returns: Whether the condition is met or not :rtype: bool """ model = self.widget.get_model() format = self.condition_widget.get_active_text() formatinfo = transcoder.FORMATS[format] if self.format != format: self.format = format default = formatinfo['default'] if self.default != default: self.default = default # raw value default_title = formatinfo['kbs_steps'][ formatinfo['raw_steps'].index(self.default)] active_iter = self.widget.get_active_iter() if active_iter is not None: active_title = float(model.get_value(active_iter, 1)) else: active_title = default_title self.widget.set_model(None) model.clear() steps = zip(formatinfo['raw_steps'], formatinfo['kbs_steps']) for item, title in steps: iter = model.append([item, title]) self.widget.set_model(model) if active_title not in formatinfo['kbs_steps']: active_title = default_title index = formatinfo['kbs_steps'].index(active_title) self.widget.set_active(index) return True class OutputPathPreference(widgets.ComboEntryPreference): name = 'cd_import/outpath' completion_items = { '$tracknumber': _('Track number'), '$title': _('Title'), '$artist': _('Artist'), '$composer': _('Composer'), '$album': _('Album'), '$__length': _('Length'), '$discnumber': _('Disc number'), '$__rating': _('Rating'), '$date': _('Date'), '$genre': _('Genre'), '$bitrate': _('Bitrate'), '$__loc': _('Location'), '$filename': _('Filename'), '$__playcount': _('Play count'), '$__last_played': _('Last played'), '$bpm': _('BPM'), } preset_items = [ "%s/$artist/$album/$tracknumber - $title" % os.getenv("HOME") ] default = "%s/$artist/$album/$tracknumber - $title" % os.getenv("HOME") # vim: et sts=4 sw=4 dist/copy/plugins/cd/PaxHeaders.26361/cdprefs_pane.ui0000644000175000017500000000012412233027260021060 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.165046934 exaile-3.3.2/plugins/cd/cdprefs_pane.ui0000644000000000000000000001533412233027260020026 0ustar00rootroot00000000000000 Ogg Vorbis FLAC AAC MP3 (VBR) MP3 (CBR) WavPack True vertical True True Import format: False 0 True format_model 0 0 False 1 False 0 True True Import quality: False 0 True quality_model 1 False False 1 False 1 True True Import path: False 0 True 1 False 2 True 6 True gtk-dialog-info 6 False False 0 True 0 Every tag can be used with <b>$tag</b> or <b>${tag}</b>. Internal tags like <b>$__length</b> need to be specified with two leading underscores. True True 1 False False 3 dist/copy/plugins/PaxHeaders.26361/currentsong0000644000175000017500000000013212233027261017776 xustar000000000000000030 mtime=1382821553.513046945 30 atime=1382821552.789046922 30 ctime=1382821553.513046945 exaile-3.3.2/plugins/currentsong/0000755000000000000000000000000012233027261017014 5ustar00rootroot00000000000000dist/copy/plugins/currentsong/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260022164 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.513046945 exaile-3.3.2/plugins/currentsong/__init__.py0000644000000000000000000001060312233027260021124 0ustar00rootroot00000000000000# -*- coding: utf-8 -*- # 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, 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. # Code based on Ingelrest François' "im status" plugin import dbus from gettext import gettext as _ from xl import event, player import sys ############################################################################## class Pidgin : def __init__(self, dbusInterface) : """ Constructor """ self.purple = dbusInterface def listAccounts(self) : """ Purple merges all accounts, so we return a default one Each account is associated with: * A boolean -> True if the status of this account was changed on the previous track change """ return {'GenericAccount' : False} def setStatus(self, status, attr, value): # this doesn't actually work, for some reason the getter always return "" if self.purple.PurpleStatusGetAttrString(status, attr) != value: self.purple.PurpleStatusSetAttrString(status, attr, value) return True return False def setTune(self, artist, title, album) : """ Change the tune status Return True if the message is successfully updated """ current = self.purple.PurpleSavedstatusGetCurrent() accounts = self.purple.PurpleAccountsGetAll() for account in accounts: if self.purple.PurpleAccountIsConnected(account) != True: continue p = self.purple.PurpleAccountGetPresence(account) status = self.purple.PurplePresenceGetStatus(p, "tune") if status != 0: updated = False if len(title) + len(artist) + len(album) == 0: if self.purple.PurpleStatusIsActive(status): self.purple.PurpleStatusSetActive(status, False) else: self.purple.PurpleStatusSetActive(status, True) updated |= self.setStatus(status, "tune_title", title); updated |= self.setStatus(status, "tune_artist", artist); updated |= self.setStatus(status, "tune_album", album); if updated: active = self.purple.PurplePresenceGetActiveStatus(p) self.purple.PurplePrplChangeAccountStatus(account, active, status) return True ############################################################################## def on_begin_action(type, player, track): client.setTune( track.get_tag_display('artist'), track.get_tag_display('title'), track.get_tag_display('album') ) def on_stop_action(type, player, track): client.setTune("", "", "") def on_pause_action(type, player, track): if player.is_playing(): on_begin_action(type, player, track) else: on_stop_action(type, player, track) def enable(exaile): global client obj = dbus.SessionBus().get_object('im.pidgin.purple.PurpleService', '/im/pidgin/purple/PurpleObject') purple = dbus.Interface(obj, "im.pidgin.purple.PurpleInterface") client = Pidgin(purple) event.add_callback(on_stop_action, 'quit_application') event.add_callback(on_stop_action, 'playback_player_end', player.PLAYER) event.add_callback(on_begin_action, 'playback_track_start', player.PLAYER) event.add_callback(on_pause_action, 'playback_toggle_pause', player.PLAYER) def disable(exaile): event.remove_callback(on_stop_action, 'quit_application') event.remove_callback(on_stop_action, 'playback_player_end', player.PLAYER) event.remove_callback(on_begin_action, 'playback_track_start', player.PLAYER) event.remove_callback(on_pause_action, 'playback_toggle_pause', player.PLAYER) dist/copy/plugins/currentsong/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260021450 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.097046932 exaile-3.3.2/plugins/currentsong/PLUGININFO0000644000000000000000000000042112233027260020405 0ustar00rootroot00000000000000Version='0.0.3' Authors=['Aly Hirani ', 'Jorge Villaseñor '] Name=_('Hello World') Description=_('A simple plugin for testing the basic plugin system') Category=_('Development') dist/copy/plugins/PaxHeaders.26361/moodbar0000644000175000017500000000013212233027261017050 xustar000000000000000030 mtime=1382821553.697046951 30 atime=1382821552.789046922 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/moodbar/0000755000000000000000000000000012233027261016066 5ustar00rootroot00000000000000dist/copy/plugins/moodbar/PaxHeaders.26361/moodbarprefs.py0000644000175000017500000000012412233027260022162 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.285046938 exaile-3.3.2/plugins/moodbar/moodbarprefs.py0000644000000000000000000000455012233027260021126 0ustar00rootroot00000000000000# Moodbar - Replace standard progress bar with moodbar # Copyright (C) 2009-2010 Solyianov Michael # # 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 3, 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., 675 mass ave, cambridge, ma 02139, usa. import os from xlgui.preferences import widgets from xl import xdg from xl.nls import gettext as _ name = _('Moodbar') basedir = os.path.dirname(os.path.realpath(__file__)) ui = os.path.join(basedir, "moodbarprefs_pane.ui") class CursorPreference(widgets.CheckPreference): default = False name = 'plugin/moodbar/cursor' class DarknessPreference(widgets.ScalePreference, widgets.CheckConditional): default = 1 name = 'plugin/moodbar/darkness' condition_preference_name = 'plugin/moodbar/cursor' def __init__(self, preferences, widget): widgets.ScalePreference.__init__(self, preferences, widget) widgets.CheckConditional.__init__(self) class DefaultStylePreference(widgets.CheckPreference): default = False name = 'plugin/moodbar/defaultstyle' class FlatPreference(widgets.CheckPreference, widgets.CheckConditional): default = False name = 'plugin/moodbar/flat' condition_preference_name = 'plugin/moodbar/defaultstyle' def __init__(self, preferences, widget): widgets.CheckPreference.__init__(self, preferences, widget) widgets.CheckConditional.__init__(self) class ThemePreference(widgets.CheckPreference): default = False name = 'plugin/moodbar/theme' class ColorPreference(widgets.ColorButtonPreference, widgets.CheckConditional): default = '#AAAAAA' name = 'plugin/moodbar/color' condition_preference_name = 'plugin/moodbar/theme' def __init__(self, preferences, widget): widgets.ColorButtonPreference.__init__(self, preferences, widget) widgets.CheckConditional.__init__(self) dist/copy/plugins/moodbar/PaxHeaders.26361/moodbarprefs_pane.ui0000644000175000017500000000012412233027260023152 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.285046938 exaile-3.3.2/plugins/moodbar/moodbarprefs_pane.ui0000644000000000000000000002144212233027260022115 0ustar00rootroot00000000000000 5 10 0.10000000000000001 1 1 True 3 vertical Darken played section instead of using cursor True True False none True True False False 0 True 5 20 22 5 True vertical True True 0 Darkness level: False 0 True True adjustment1 right 1 0 False False 1 Use waveform style True True False True True False False 2 True 5 20 21 5 True vertical Show only waveform, not mood True True False True True 0 False False 3 Use color theme True True False True True False False 4 True 20 22 5 True True True 0 Base color: False 0 True True True none 1 Base color #c116ffff0000 False 1 False False 5 True 6 dist/copy/plugins/moodbar/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260021236 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.621046948 exaile-3.3.2/plugins/moodbar/__init__.py0000644000000000000000000005270612233027260020210 0ustar00rootroot00000000000000# Moodbar - Replace standard progress bar with moodbar # Copyright (C) 2009-2010 Solyianov Michael # # 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 3, 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., 675 mass ave, cambridge, ma 02139, usa. import moodbarprefs import cgi, gtk, glib, os, os.path, subprocess, colorsys import inspect from xl import common, event, player, settings, xdg from xl.nls import gettext as _ from xlgui.preferences import widgets import moodbarprefs import logging logger = logging.getLogger(__name__) ExaileModbar = None class ExModbar(object): #Setup and getting values------------------------------------------------ def __init__(self): self.moodbar='' self.buff='' self.brush=None self.modwidth=0 self.curpos=0 self.modTimer=None self.haveMod=False self.playingTrack='' self.seeking=False self.setuped=False self.runed=False self.pid=0 self.uptime=0 self.ivalue=0 self.qvalue=0 self.moodsDir=os.path.join(xdg.get_cache_dir(), "moods") if not os.path.exists(self.moodsDir): os.mkdir(self.moodsDir) def __inner_preference(klass): """functionality copy from notyfication""" def getter(self): return settings.get_option(klass.name, klass.default or None) def setter(self, val): settings.set_option(klass.name, val) return property(getter, setter) defaultstyle = __inner_preference(moodbarprefs.DefaultStylePreference) flat = __inner_preference(moodbarprefs.FlatPreference) theme = __inner_preference(moodbarprefs.ThemePreference) cursor = __inner_preference(moodbarprefs.CursorPreference) darkness = __inner_preference(moodbarprefs.DarknessPreference) color = __inner_preference(moodbarprefs.ColorPreference) def set_ex(self, ex): self.exaile=ex def get_size(self): progress_loc = self.mod.get_allocation() return progress_loc.width #Setup------------------------------------------------------------------- def changeBarToMod(self): place=self.pr.get_parent() self.mod = gtk.DrawingArea() self.mod.pangolayout = self.mod.create_pango_layout("") self.mod.set_size_request(-1, 24) place.remove(self.pr) place.add(self.mod) self.mod.realize() self.mod.show() def changeModToBar(self): if hasattr(self, 'mod'): place=self.mod.get_parent() place.remove(self.mod) place.add(self.pr) self.mod.destroy() def setupUi(self): self.setuped=True self.pr=self.exaile.gui.main.progress_bar self.changeBarToMod() self.mod.seeking=False self.mod.connect("expose-event", self.drawMod) self.mod.add_events(gtk.gdk.BUTTON_PRESS_MASK) self.mod.add_events(gtk.gdk.BUTTON_RELEASE_MASK) self.mod.add_events(gtk.gdk.POINTER_MOTION_MASK) self.mod.connect("button-press-event", self.modSeekBegin) self.mod.connect("button-release-event", self.modSeekEnd) self.mod.connect("motion-notify-event", self.modSeekMotionNotify) self.brush = self.mod.props.window.new_gc() track = player.PLAYER.current self.lookformod(track) def destroy(self): if self.modTimer: glib.source_remove(self.modTimer) #playing ---------------------------------------------------------------- def lookformod(self,track): if not track or not (track.is_local() or track.get_tag_raw('__length')): self.haveMod=False return self.playingTrack=str(track.get_loc_for_io()) self.playingTrack=self.playingTrack.replace("file://","") modLoc=self.moodsDir+'/'+ self.playingTrack.replace('/','-')+".mood" modLoc=modLoc.replace("'",'') needGen=False self.curpos=player.PLAYER.get_progress() if os.access(modLoc, 0): self.modwidth=0 if not self.readMod(modLoc): needGen=True self.updateplayerpos() else: needGen=True if needGen: self.pid = subprocess.Popen(['/usr/bin/moodbar', track.get_local_path(), '-o', modLoc]) self.haveMod=not needGen if self.modTimer: glib.source_remove(self.modTimer) self.modTimer = glib.timeout_add_seconds(1, self.updateMod) def play_start(self, type, player, track): self.lookformod(track) def play_end (self, type, player, track): if self.modTimer: glib.source_remove(self.modTimer) self.modTimer = None self.haveMod = False self.mod.queue_draw_area(0, 0, self.get_size(), 24) #update player's ui ----------------------------------------------------- def updateMod(self): self.updateplayerpos() if not self.haveMod: logger.debug(_('Searching for mood...')) modLoc=self.moodsDir+'/'+ self.playingTrack.replace('/','-')+".mood" modLoc=modLoc.replace("'",'') if self.readMod(modLoc): logger.debug(_("Mood found.")) self.haveMod=True self.modwidth=0 self.modTimer = glib.timeout_add_seconds(1, self.updateMod) def updateplayerpos(self): if self.modTimer: self.curpos=player.PLAYER.get_progress() self.mod.queue_draw_area(0, 0, self.get_size(), 24) #reading mod from file and update mood preview -------------------------- def readMod(self, moodLoc): retur=True self.moodbar='' try: if moodLoc=='': for i in range(3000): self.moodbar=self.moodbar+chr(255) return True else: f=open(moodLoc,'rb') for i in range(3000): r=f.read(1) if r=='': r=chr(0) retur=False self.moodbar=self.moodbar+r f.close() return retur except: logger.debug(_('Could not read moodbar.')) self.moodbar='' for i in range(3000): self.moodbar=self.moodbar+chr(0) return False def genBuff(self): width=self.get_size() self.modwidth=width darkmulti=(1-self.darkness/10) #logger.info(darkmulti) hh=[0.2,0.4,0.7,0.8,0.9,1,1,0.98,0.93,0.85,0.80,0.80,0.80, 0.85,0.93,0.98,1,1,0.9,0.8,0.7,0.6,0.4,0.2] #hh=[0.5,0.55,0.6,0.65,0.7,1,0.95,0.92,0.88,0.84,0.80,0.80, #0.80,0.84,0.88,0.92,0.95,1,0.7,0.65,0.6,0.55,0.5,0.45] #hh=[0.2,0.4,0.7,0.8,0.9,1,1,1,1,1,1,1,1,1,1,1,1,1,0.9,0.8, # 0.7,0.6,0.4,0.2] self.defaultstyle_old =self.defaultstyle self.theme_old=self.theme self.flat_old=self.flat self.color_old =self.color self.darkness_old =self.darkness self.cursor_old=self.cursor gc = self.brush self.bgcolor = self.mod.style.bg[gtk.STATE_NORMAL] redf=self.bgcolor.red/255 greenf=self.bgcolor.green/255 bluef=self.bgcolor.blue/255 colortheme=gtk.gdk.Color(self.color) c1,self.ivalue,self.qvalue=colorsys.rgb_to_yiq(float(colortheme.red)/256/256, float(colortheme.green)/256/256, float(colortheme.blue)/256/256) gc.foreground = self.bgcolor; gc.line_width=1 self.pixmap = gtk.gdk.Pixmap(self.mod.window, width, 24) self.pixmap2 = gtk.gdk.Pixmap(self.mod.window, width, 24) self.pixmap.draw_rectangle(gc, True, 0, 0, self.modwidth, 24) self.pixmap2.draw_rectangle(gc, True, 0, 0, self.modwidth, 24) if self.flat: if self.theme: flatcolor1r=float(colortheme.red)/256/256 flatcolor1g=float(colortheme.green)/256/256 flatcolor1b=float(colortheme.blue)/256/256 flatcolor2r=darkmulti*float(colortheme.red)/256/256 flatcolor2g=darkmulti*float(colortheme.green)/256/256 flatcolor2b=darkmulti*float(colortheme.blue)/256/256 else: flatcolor1r=flatcolor1g=flatcolor1b=0.5 flatcolor2r=flatcolor2g=flatcolor2b=0.5*darkmulti #render --------------------------------------------------------- for x in range(width): #reading color r=float(ord(self.moodbar[int(x*1000/width)*3]))/256 g=float(ord(self.moodbar[int(x*1000/width)*3+1]))/256 b=float(ord(self.moodbar[int(x*1000/width)*3+2]))/256 if (self.theme or self.defaultstyle): c1,c2,c3=colorsys.rgb_to_yiq(r, g, b) if (self.theme): c2=c2+self.ivalue if c2>1: c2=1 if c2<-1: c2=-1 c3=c3+self.qvalue if c3>1: c3=1 if c3<-1: c3=-1 if self.defaultstyle: r,g,b=colorsys.yiq_to_rgb(0.5,c2,c3) waluelength=int(c1*24) else: if self.theme: r,g,b=colorsys.yiq_to_rgb(c1,c2,c3) if not self.defaultstyle: buff='' for h in range(24): buff=buff+chr(int(r*255*hh[h]+redf*(1-hh[h])))+chr(int(g*255*hh[h]+greenf*(1-hh[h])))+chr(int(b*255*hh[h]+bluef*(1-hh[h]))) self.pixmap.draw_rgb_image(gc, x, 0, 1, 24, gtk.gdk.RGB_DITHER_NONE, buff, 3) if self.cursor: buff2='' for h in range(24*3): buff2=buff2+chr(int(ord(buff[h])*(darkmulti+(1-darkmulti)*(1-hh[int(h/3)])))) self.pixmap2.draw_rgb_image(gc, x, 0, 1, 24, gtk.gdk.RGB_DITHER_NONE, buff2, 3) else: if self.flat: gc.foreground = self.mod.get_colormap().alloc_color( int(flatcolor1r*0xFFFF), int(flatcolor1g*0xFFFF), int(flatcolor1b*0xFFFF) ) else: gc.foreground = self.mod.get_colormap().alloc_color( int(r*0xFFFF), int(g*0xFFFF), int(b*0xFFFF) ) self.pixmap.draw_line(gc, x, 13-waluelength, x, 12+waluelength) if self.cursor: if self.flat: gc.foreground = self.mod.get_colormap().alloc_color( int(flatcolor2r*0xFFFF), int(flatcolor2g*0xFFFF), int(flatcolor2b*0xFFFF) ) else: r,g,b=colorsys.yiq_to_rgb(0.5*darkmulti,c2,c3) gc.foreground = self.mod.get_colormap().alloc_color( int(r*0xFFFF), int(g*0xFFFF), int(b*0xFFFF) ) self.pixmap2.draw_line(gc, x, 13-waluelength, x, 12+waluelength) #if not self.defaultstyle: # self.pixmap2.draw_drawable(gc,self.pixmap, 0, 0, 0, 0, self.modwidth, 24) # gc.foreground = self.mod.get_colormap().alloc_color( # int(0xCCCC*darkmulti), int(0xCCCC*darkmulti), int(0xCCCC*darkmulti)) # gc.function=gtk.gdk.AND # self.pixmap2.draw_rectangle(gc, True, 0, 0, self.modwidth, 24) # gc.function=gtk.gdk.COPY return b #Drawing mood UI--------------------------------------------------------- def drawMod(self,this,area): darkmulti=(1-self.darkness/10) self.uptime+=1 gc = self.brush self.bgcolor = self.mod.style.bg[gtk.STATE_NORMAL] redf=self.bgcolor.red greenf=self.bgcolor.green bluef=self.bgcolor.blue #logger.info(greenf) this=self.mod gc.foreground = this.get_colormap().alloc_color( 0x0000, 0x0000, 0x0000 ) track = player.PLAYER.current if self.theme: flatcolor1r,flatcolor1g,flatcolor1b=colorsys.yiq_to_rgb(0.5,self.ivalue,self.qvalue) flatcolor2r,flatcolor2g,flatcolor2b=colorsys.yiq_to_rgb(0.5*darkmulti,self.ivalue,self.qvalue) else: flatcolor1r=flatcolor1g=flatcolor1b=0.5 flatcolor2r=flatcolor2g=flatcolor2b=0.5*darkmulti try: if not self.get_size()==self.modwidth: self.buff=self.genBuff() if (not self.defaultstyle==self.defaultstyle_old or not self.theme==self.theme_old or not self.flat==self.flat_old or not self.color==self.color_old or not self.darkness==self.darkness_old or not self.cursor==self.cursor_old): self.buff=self.genBuff() if (self.haveMod): this.props.window.draw_drawable(gc,self.pixmap, 0, 0, 0, 0, self.modwidth, 24) else: if not self.defaultstyle: for i in range(5): gc.foreground = this.get_colormap().alloc_color( int(flatcolor1r*0xFFFF*i/5+redf*((5-float(i))/5)), int(flatcolor1g*0xFFFF*i/5+greenf*((5-float(i))/5)), int(flatcolor1b*0xFFFF*i/5+bluef*((5-float(i))/5)) ) this.props.window.draw_rectangle(gc, True, 0, 0+i, self.modwidth, 24-i*2) if self.modTimer and track.is_local(): gc.foreground = this.get_colormap().alloc_color( int(flatcolor2r*0xFFFF), int(flatcolor2g*0xFFFF), int(flatcolor2b*0xFFFF) ) this.props.window.draw_rectangle(gc, True, (self.modwidth/10)*(self.uptime%10), 5, self.modwidth/10, 14) if self.defaultstyle: gc.foreground = this.get_colormap().alloc_color( int(flatcolor1r*0xFFFF), int(flatcolor1g*0xFFFF), int(flatcolor1b*0xFFFF) ) this.props.window.draw_rectangle(gc, True, 0,12, self.modwidth, 2) except: for i in range(5): gc.foreground = this.get_colormap().alloc_color( int(0xFFFF*i/5), 0x0000, 0x0000 ) this.props.window.draw_rectangle(gc, True, 0, 0+i, self.modwidth, 24-i*2) #if track and track.is_local(): #self.lookformod(track) return False track = player.PLAYER.current if not track or not (track.is_local() or \ track.get_tag_raw('__length')): return if self.modTimer: if self.cursor: if not self.haveMod: if not self.defaultstyle: for i in range(5): gc.foreground = this.get_colormap().alloc_color( int(flatcolor2r*0xFFFF*i/5+int(redf*((5-float(i))/5))), int(flatcolor2g*0xFFFF*i/5+int(greenf*((5-float(i))/5))), int(flatcolor2b*0xFFFF*i/5+int(bluef*((5-float(i))/5))) ) this.props.window.draw_rectangle(gc, True, 0, 0+i, int(self.curpos*self.modwidth), 24-i*2) else: gc.foreground = this.get_colormap().alloc_color( int(flatcolor2r*0xFFFF), int(flatcolor2g*0xFFFF), int(flatcolor2b*0xFFFF) ) this.props.window.draw_rectangle(gc, True, 0,12, int(self.curpos*self.modwidth), 2) else: this.props.window.draw_drawable(gc,self.pixmap2, 0, 0, 0, 0, int(self.curpos*self.modwidth), 24) else: gc.foreground = self.bgcolor; gc.line_width=2 this.props.window.draw_arc(gc, True, int(self.curpos*self.modwidth)-15, -5, 30, 30, 60*64, 60*64) gc.foreground = this.get_colormap().alloc_color( 0x0000, 0x0000, 0x0000 ) this.props.window.draw_line(gc, int(self.curpos*self.modwidth), 10, int(self.curpos*self.modwidth)-10, -5) this.props.window.draw_line(gc, int(self.curpos*self.modwidth), 10, int(self.curpos*self.modwidth)+10, -5) length = player.PLAYER.current.get_tag_raw('__length') seconds = player.PLAYER.get_time() remaining_seconds = length - seconds text = ("%d:%02d / %d:%02d" % ( seconds // 60, seconds % 60, remaining_seconds // 60, remaining_seconds % 60)) gc.foreground = this.get_colormap().alloc_color( 0x0000, 0x0000, 0x0000 ) this.pangolayout.set_text(text) this.props.window.draw_layout(gc, int(self.modwidth/2)-35, 4, this.pangolayout) this.props.window.draw_layout(gc, int(self.modwidth/2)-37, 2, this.pangolayout) this.props.window.draw_layout(gc, int(self.modwidth/2)-35, 2, this.pangolayout) this.props.window.draw_layout(gc, int(self.modwidth/2)-37, 4, this.pangolayout) gc.foreground = this.get_colormap().alloc_color( 0xFFFF, 0xFFFF, 0xFFFF ) this.props.window.draw_layout(gc, int(self.modwidth/2)-36, 3, this.pangolayout) #seeking----------------------------------------------------------------- def modSeekBegin(self,this,event): self.seeking = True def modSeekEnd(self,this,event): self.seeking = False track = player.PLAYER.current if not track or not (track.is_local() or \ track.get_tag_raw('__length')): return mouse_x, mouse_y = event.get_coords() progress_loc = self.get_size() value = mouse_x / progress_loc if value < 0: value = 0 if value > 1: value = 1 self.curpos=value length = track.get_tag_raw('__length') self.mod.queue_draw_area(0, 0, progress_loc, 24) #redrawMod(self) seconds = float(value * length) player.PLAYER.seek(seconds) def modSeekMotionNotify(self,this, event): if self.seeking: track = player.PLAYER.current if not track or not (track.is_local() or \ track.get_tag_raw('__length')): return mouse_x, mouse_y = event.get_coords() progress_loc = self.get_size() value = mouse_x / progress_loc if value < 0: value = 0 if value > 1: value = 1 self.curpos=value self.mod.queue_draw_area(0, 0, progress_loc, 24) #------------------------------------------------------------------------ def enable(exaile): global ExaileModbar ExaileModbar=ExModbar() ExaileModbar.set_ex(exaile) try: subprocess.call(['moodbar', '--help'], stdout=-1, stderr=-1) except OSError: raise NotImplementedError(_('Moodbar executable is not available.')) return False if exaile.loading: event.add_callback(_enable, 'exaile_loaded') else: _enable(None, exaile, None) def _enable(eventname, exaile, nothing): global ExaileModbar ExaileModbar.readMod('') ExaileModbar.setupUi() event.add_callback(ExaileModbar.play_start, 'playback_track_start', player.PLAYER) event.add_callback(ExaileModbar.play_end, 'playback_player_end', player.PLAYER) def disable(exaile): global ExaileModbar ExaileModbar.changeModToBar() event.remove_callback(ExaileModbar.play_start, 'playback_track_start', player.PLAYER) event.remove_callback(ExaileModbar.play_end, 'playback_player_end', player.PLAYER) ExaileModbar.destroy() ExaileModbar = None def get_preferences_pane(): return moodbarprefs #have errors from time to time: #python: ../../src/xcb_lock.c:77: _XGetXCBBuffer: Assertion `((int) ((xcb_req) - (dpy->request)) >= 0)' failed. #exaile.py: Fatal IO error 11 (Resource temporarily unavailable) on X server :0.0. #Xlib: sequence lost (0xe0000 > 0xd4add) in reply type 0x0! #python: ../../src/xcb_io.c:176: process_responses: Assertion `!(req && current_request && !(((long) (req->sequence) - (long) (current_request)) <= 0))' failed. #0.0.4 haven't errors dist/copy/plugins/moodbar/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260020522 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/moodbar/PLUGININFO0000644000000000000000000000027412233027260017465 0ustar00rootroot00000000000000Version='0.0.9' Authors=['Solyanov Michael '] Name=_('Moodbar') Description=_('Replaces the standard progress bar with a moodbar.\nDepends: moodbar') Category=_('GUI') dist/copy/plugins/PaxHeaders.26361/awn0000644000175000017500000000013212233027261016212 xustar000000000000000030 mtime=1382821553.697046951 30 atime=1382821552.789046922 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/awn/0000755000000000000000000000000012233027261015230 5ustar00rootroot00000000000000dist/copy/plugins/awn/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260020400 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.513046945 exaile-3.3.2/plugins/awn/__init__.py0000644000000000000000000001522312233027260017343 0ustar00rootroot00000000000000# Copyright (C) 2009-2010 Abhishek Mukherjee # # 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 1, 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 urlparse import urllib import logging import dbus import gtk import glib import os import tempfile from xl import covers, player import xl.event import xl.settings from xlgui import icons import awn_prefs log = logging.getLogger(__name__) class InvalidOverlayOption(Exception): def __init__(self, option): self.option = option def __str__(self): return 'Got %s, must be one of %s' % ( repr(self.option), str(awn_prefs.OverlayDisplay.map) ) class ExaileAwn(object): def __init__(self): bus = dbus.SessionBus() obj = bus.get_object("com.google.code.Awn", "/com/google/code/Awn") self.awn = dbus.Interface(obj, "com.google.code.Awn") self.exaile = None self.enabled = True self.timer_id = None self.temp_icon_path = None def enable_progress(self, type, player, object): assert self.timer_id is None glib.timeout_add_seconds(1, self.update_timer) def disable_progress(self, type, player, object, clear_menu=True): if self.timer_id is not None: glib.source_remove(self.timer_id) self.timer_id = None if clear_menu: self._set_timer(100) def toggle_pause_progress(self, type, player, object): if self.timer_id is not None: self.disable_progress(type, player, object, False) else: self.enable_progress(type, player, object) def __inner_preference(klass): """Function will make a property for a given subclass of Preference""" def getter(self): return xl.settings.get_option(klass.name, klass.default or None) def setter(self, val): xl.settings.set_option(klass.name, val) return property(getter, setter) overlay = __inner_preference(awn_prefs.OverlayDisplay) cover_display = __inner_preference(awn_prefs.CoverDisplay) def xid(self): if self.exaile is None: return None return self.exaile.gui.main.window.get_window().xid def unset_cover(self): self.awn.UnsetTaskIconByXid(self.xid()) def cleanup(self): self.unset_cover() def set_cover(self, *args, **kwargs): if self.exaile is None: return elif not hasattr(self.exaile, 'player'): log.debug("Player not loaded, ignoring set_cover call") return try: os.remove(self.temp_icon_path) except (TypeError, OSError): pass if player.PLAYER.current is None: log.debug("Player stopped, removing AWN cover") self.unset_cover() elif not self.cover_display: self.unset_cover() else: image_data = covers.MANAGER.get_cover(player.PLAYER.current, set_only=True, use_default=True) pixbuf = icons.MANAGER.pixbuf_from_data(image_data) descriptor, self.temp_icon_path = tempfile.mkstemp() pixbuf.save(self.temp_icon_path, 'png') self.awn.SetTaskIconByXid(self.xid(), self.temp_icon_path) def unset_timer(self): self._set_timer(100) def _set_timer(self, percent): if self.overlay == 'progress': self.awn.SetProgressByXid(self.xid(), percent) elif self.overlay == 'text': self.awn.SetProgressByXid(self.xid(), 100) if percent != 100 and percent != 0: self.awn.SetInfoByXid(self.xid(), "%d%%" % percent) else: self.awn.UnsetInfoByXid(self.xid()) elif self.overlay == 'none': self.awn.SetProgressByXid(self.xid(), 100) self.awn.UnsetInfoByXid(self.xid()) else: raise InvalidOverlayOption(self.overlay) def update_timer(self, *args, **kwargs): if self.exaile is None: return False if player.PLAYER is None: return False track = player.PLAYER.current # Not playing anything if track is None: return False # Streaming music if not track.is_local() and not track.get_tag_raw('__length'): self._set_timer(100) return False self._set_timer(int(player.PLAYER.get_progress() * 100)) return True def on_option_set(self, event, settings, option): if option == 'plugin/awn/cover_display': self.set_cover() elif option == 'plugin/awn/overlay': self.update_timer() EXAILE_AWN = None TRACK_CHANGE_CALLBACKS = ( 'playback_current_changed', 'playback_player_start', 'playback_track_end', 'player_loaded', ) def enable(exaile): global EXAILE_AWN if EXAILE_AWN is None: EXAILE_AWN = ExaileAwn() EXAILE_AWN.exaile = exaile for signal in TRACK_CHANGE_CALLBACKS: xl.event.add_callback(EXAILE_AWN.set_cover, signal, player.PLAYER) xl.event.add_callback(EXAILE_AWN.enable_progress, 'playback_player_start', player.PLAYER) xl.event.add_callback(EXAILE_AWN.disable_progress, 'playback_player_end', player.PLAYER) xl.event.add_callback(EXAILE_AWN.toggle_pause_progress, 'playback_toggle_pause', player.PLAYER) xl.event.add_callback(EXAILE_AWN.on_option_set, 'plugin_awn_option_set') EXAILE_AWN.set_cover() def disable(exaile): global EXAILE_AWN for signal in TRACK_CHANGE_CALLBACKS: xl.event.remove_callback(EXAILE_AWN.set_cover, signal) xl.event.remove_callback(EXAILE_AWN.enable_progress, 'playback_player_start', player.PLAYER) xl.event.remove_callback(EXAILE_AWN.disable_progress, 'playback_player_end', player.PLAYER) xl.event.remove_callback(EXAILE_AWN.toggle_pause_progress, 'playback_toggle_pause', player.PLAYER) EXAILE_AWN.unset_cover() EXAILE_AWN.unset_timer() EXAILE_AWN.exaile = None def get_preferences_pane(): return awn_prefs dist/copy/plugins/awn/PaxHeaders.26361/awn_prefs_pane.ui0000644000175000017500000000012412233027260021615 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.161046934 exaile-3.3.2/plugins/awn/awn_prefs_pane.ui0000644000000000000000000000620312233027260020556 0ustar00rootroot00000000000000 True vertical True True 0 Display overlay: 5 0 True overlay_liststore 0 1 1 False 5 0 Display covers True True False True False 5 1 progress Circle display text Text percentage none None dist/copy/plugins/awn/PaxHeaders.26361/awn_prefs.py0000644000175000017500000000012412233027260020625 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.513046945 exaile-3.3.2/plugins/awn/awn_prefs.py0000644000000000000000000000337212233027260017572 0ustar00rootroot00000000000000# Copyright (C) 2009-2010 Abhishek Mukherjee # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import os from xlgui.preferences import widgets from xl.nls import gettext as _ name = "AWN" basedir = os.path.dirname(os.path.realpath(__file__)) ui = os.path.join(basedir, "awn_prefs_pane.ui") class OverlayDisplay(widgets.ComboPreference): default = 'progress' name = 'plugin/awn/overlay' def __init__(self, prefs, widget): widgets.ComboPreference.__init__(self, prefs, widget) class CoverDisplay(widgets.CheckPreference): default = True name = 'plugin/awn/cover_display' dist/copy/plugins/awn/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260017664 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/awn/PLUGININFO0000644000000000000000000000026412233027260016626 0ustar00rootroot00000000000000Version='0.0.3' Authors=['Abhishek Mukherjee , Johannes Schwarz '] Name=_('Streamripper') Description=_('Allows you to record streams with streamripper.\nDepends: streamripper') Category=_('Output') dist/copy/plugins/streamripper/PaxHeaders.26361/streamripper.ui0000644000175000017500000000012412233027260023273 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.321046939 exaile-3.3.2/plugins/streamripper/streamripper.ui0000644000000000000000000001030612233027260022233 0ustar00rootroot00000000000000 True vertical True 4 2 True 0 5 Save location: True 0 5 Relay port: 1 2 True True select-folder 1 2 True True 1 2 1 2 Rip to single file True True False True 2 3 Delete incomplete files True True False True 3 4 False False 0 dist/copy/plugins/PaxHeaders.26361/jamendo0000644000175000017500000000013212233027261017042 xustar000000000000000030 mtime=1382821553.697046951 30 atime=1382821552.789046922 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/jamendo/0000755000000000000000000000000012233027261016060 5ustar00rootroot00000000000000dist/copy/plugins/jamendo/PaxHeaders.26361/jamapi.py0000644000175000017500000000012412233027260020732 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.565046947 exaile-3.3.2/plugins/jamendo/jamapi.py0000644000000000000000000001474012233027260017700 0ustar00rootroot00000000000000# Copyright (C) 2009-2010 Erin Drummond # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import simplejson as json import urllib import jamtree import threading #Gets a list of jamtree.Artist objects matching the specified criteria class get_artist_list(threading.Thread): def __init__(self, search_term, order_by, num_results, callback): threading.Thread.__init__(self) self.search_term = search_term self.order_by = order_by self.num_results = num_results self.callback = callback def run(self): url = "http://api.jamendo.com/get2/name+id/artist/json/?searchquery=%s&order=%s&n=%s" % (self.search_term, self.order_by, self.num_results) #print('get_artist_list: %s' % url) results = json.load(urllib.urlopen(url)) artists = [] for result in results: item = jamtree.Artist(result['id'], result['name'].strip()) artists.append(item) if artists == []: artists = None self.callback(artists) #Gets a list of jamtree.Album objects matching the specified criteria class get_album_list(threading.Thread): def __init__(self, search_term, order_by, num_results, callback): threading.Thread.__init__(self) self.search_term = search_term self.order_by = order_by self.num_results = num_results self.callback = callback def run(self): url = "http://api.jamendo.com/get2/name+id/album/json/?searchquery=%s&order=%s&n=%s" % (self.search_term, self.order_by, self.num_results) results = json.load(urllib.urlopen(url)) albums = [] for result in results: ar = jamtree.Album(result['id'], result['name'].strip()) albums.append(ar) if albums == []: albums = None self.callback(albums) #Gets a list of jamtree.Artist objects matching the specified criteria class get_artist_list_by_genre(threading.Thread): def __init__(self, search_term, order_by, num_results, callback): threading.Thread.__init__(self) self.search_term = search_term self.order_by = order_by self.num_results = num_results self.callback = callback def run(self): url = "http://api.jamendo.com/get2/name+id/artist/json/?tag_idstr=%s&order=%s&n=%s" % (self.search_term, self.order_by, self.num_results) results = json.load(urllib.urlopen(url)) artists = [] for result in results: item = jamtree.Artist(result['id'], result['name'].strip()) artists.append(item) if artists == []: artists = None self.callback(artists) #Gets a list of jamtree.Track objects matching the specified criteria class get_track_list(threading.Thread): def __init__(self, search_term, order_by, num_results, callback): threading.Thread.__init__(self) self.search_term = search_term self.order_by = order_by self.num_results = num_results self.callback = callback def run(self): url = "http://api.jamendo.com/get2/id+name+stream+album_id+album_name/track/json/?searchquery=%s&order=%s&n=%s&streamencoding=ogg2" % (self.search_term, self.order_by, self.num_results) #print('get_track_list: %s' % url) tracks = json.load(urllib.urlopen(url)) track_list = [] for track in tracks: item = jamtree.Track(track['id'], track['name'].strip(), track['stream']) item.album_name = track['album_name'] track_list.append(item) if track_list == []: track_list = None self.callback(track_list) #Gets a list of jamtree.Album objects for the specified jamtree.Artist class get_albums(threading.Thread): def __init__(self, artist, callback, add_to_playlist = False): threading.Thread.__init__(self) self._artist = artist self._callback = callback self._add_to_playlist = add_to_playlist def run(self): url = "http://api.jamendo.com/get2/id+name/album/json/?artist_id=%s" % self._artist.id #print('get_albums: %s' % url) albumresults = json.load(urllib.urlopen(url)) for albumresult in albumresults: item = jamtree.Album(albumresult['id'], albumresult['name'].strip()) self._artist.add_album(item) self._callback(self._artist, self._add_to_playlist) #Gets a list of jamtree.Track objects for the specified jamtree.Album class get_tracks(threading.Thread): def __init__(self, album, callback, add_to_playlist=False): threading.Thread.__init__(self) self._album = album self._callback = callback self._add_to_playlist = add_to_playlist def run(self): url = "http://api.jamendo.com/get2/id+name+stream/track/json/?album_id=%s&streamencoding=ogg2" % self._album.id #print('get_tracks: %s' % url) tracks = json.load(urllib.urlopen(url)) for track in tracks: item = jamtree.Track(track['id'], track['name'].strip(), track['stream']) self._album.add_track(item) self._callback(self._album, self._add_to_playlist) #Gets the URL for an album image based on a track id def get_album_image_url_from_track(track_id): url = "http://api.jamendo.com/get2/album_image/track/json/?id=%s&album_imagesize=400" % track_id imageurl = json.load(urllib.urlopen(url)) return "".join(imageurl) dist/copy/plugins/jamendo/PaxHeaders.26361/simplejson0000644000175000017500000000013212233027261021225 xustar000000000000000030 mtime=1382821553.329046939 30 atime=1382821552.789046922 30 ctime=1382821553.329046939 exaile-3.3.2/plugins/jamendo/simplejson/0000755000000000000000000000000012233027261020243 5ustar00rootroot00000000000000dist/copy/plugins/jamendo/simplejson/PaxHeaders.26361/tool.py0000644000175000017500000000012412233027260022631 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.329046939 exaile-3.3.2/plugins/jamendo/simplejson/tool.py0000644000000000000000000000160412233027260021572 0ustar00rootroot00000000000000r"""Command-line tool to validate and pretty-print JSON Usage:: $ echo '{"json":"obj"}' | python -m simplejson.tool { "json": "obj" } $ echo '{ 1.2:3.4}' | python -m simplejson.tool Expecting property name: line 1 column 2 (char 2) """ import sys import simplejson def main(): if len(sys.argv) == 1: infile = sys.stdin outfile = sys.stdout elif len(sys.argv) == 2: infile = open(sys.argv[1], 'rb') outfile = sys.stdout elif len(sys.argv) == 3: infile = open(sys.argv[1], 'rb') outfile = open(sys.argv[2], 'wb') else: raise SystemExit(sys.argv[0] + " [infile [outfile]]") try: obj = simplejson.load(infile) except ValueError, e: raise SystemExit(e) simplejson.dump(obj, outfile, sort_keys=True, indent=4) outfile.write('\n') if __name__ == '__main__': main() dist/copy/plugins/jamendo/simplejson/PaxHeaders.26361/tests0000644000175000017500000000013212233027261022367 xustar000000000000000030 mtime=1382821553.329046939 30 atime=1382821552.789046922 30 ctime=1382821553.329046939 exaile-3.3.2/plugins/jamendo/simplejson/tests/0000755000000000000000000000000012233027261021405 5ustar00rootroot00000000000000dist/copy/plugins/jamendo/simplejson/tests/PaxHeaders.26361/test_pass2.py0000644000175000017500000000012412233027260025105 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.321046939 exaile-3.3.2/plugins/jamendo/simplejson/tests/test_pass2.py0000644000000000000000000000060312233027260024044 0ustar00rootroot00000000000000from unittest import TestCase import simplejson as json # from http://json.org/JSON_checker/test/pass2.json JSON = r''' [[[[[[[[[[[[[[[[[[["Not too deep"]]]]]]]]]]]]]]]]]]] ''' class TestPass2(TestCase): def test_parse(self): # test in/out equivalence and parsing res = json.loads(JSON) out = json.dumps(res) self.assertEquals(res, json.loads(out)) dist/copy/plugins/jamendo/simplejson/tests/PaxHeaders.26361/test_encode_basestring_ascii.py0000644000175000017500000000012412233027260030703 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.321046939 exaile-3.3.2/plugins/jamendo/simplejson/tests/test_encode_basestring_ascii.py0000644000000000000000000000353012233027260027644 0ustar00rootroot00000000000000from unittest import TestCase import simplejson.encoder CASES = [ (u'/\\"\ucafe\ubabe\uab98\ufcde\ubcda\uef4a\x08\x0c\n\r\t`1~!@#$%^&*()_+-=[]{}|;:\',./<>?', '"/\\\\\\"\\ucafe\\ubabe\\uab98\\ufcde\\ubcda\\uef4a\\b\\f\\n\\r\\t`1~!@#$%^&*()_+-=[]{}|;:\',./<>?"'), (u'\u0123\u4567\u89ab\ucdef\uabcd\uef4a', '"\\u0123\\u4567\\u89ab\\ucdef\\uabcd\\uef4a"'), (u'controls', '"controls"'), (u'\x08\x0c\n\r\t', '"\\b\\f\\n\\r\\t"'), (u'{"object with 1 member":["array with 1 element"]}', '"{\\"object with 1 member\\":[\\"array with 1 element\\"]}"'), (u' s p a c e d ', '" s p a c e d "'), (u'\U0001d120', '"\\ud834\\udd20"'), (u'\u03b1\u03a9', '"\\u03b1\\u03a9"'), ('\xce\xb1\xce\xa9', '"\\u03b1\\u03a9"'), (u'\u03b1\u03a9', '"\\u03b1\\u03a9"'), ('\xce\xb1\xce\xa9', '"\\u03b1\\u03a9"'), (u'\u03b1\u03a9', '"\\u03b1\\u03a9"'), (u'\u03b1\u03a9', '"\\u03b1\\u03a9"'), (u"`1~!@#$%^&*()_+-={':[,]}|;.?", '"`1~!@#$%^&*()_+-={\':[,]}|;.?"'), (u'\x08\x0c\n\r\t', '"\\b\\f\\n\\r\\t"'), (u'\u0123\u4567\u89ab\ucdef\uabcd\uef4a', '"\\u0123\\u4567\\u89ab\\ucdef\\uabcd\\uef4a"'), ] class TestEncodeBaseStringAscii(TestCase): def test_py_encode_basestring_ascii(self): self._test_encode_basestring_ascii(simplejson.encoder.py_encode_basestring_ascii) def test_c_encode_basestring_ascii(self): if not simplejson.encoder.c_encode_basestring_ascii: return self._test_encode_basestring_ascii(simplejson.encoder.c_encode_basestring_ascii) def _test_encode_basestring_ascii(self, encode_basestring_ascii): fname = encode_basestring_ascii.__name__ for input_string, expect in CASES: result = encode_basestring_ascii(input_string) self.assertEquals(result, expect, '%r != %r for %s(%r)' % (result, expect, fname, input_string)) dist/copy/plugins/jamendo/simplejson/tests/PaxHeaders.26361/test_float.py0000644000175000017500000000012412233027260025162 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.321046939 exaile-3.3.2/plugins/jamendo/simplejson/tests/test_float.py0000644000000000000000000000100112233027260024112 0ustar00rootroot00000000000000import math from unittest import TestCase import simplejson as json class TestFloat(TestCase): def test_floats(self): for num in [1617161771.7650001, math.pi, math.pi**100, math.pi**-100, 3.1]: self.assertEquals(float(json.dumps(num)), num) self.assertEquals(json.loads(json.dumps(num)), num) def test_ints(self): for num in [1, 1L, 1<<32, 1<<64]: self.assertEquals(json.dumps(num), str(num)) self.assertEquals(int(json.dumps(num)), num) dist/copy/plugins/jamendo/simplejson/tests/PaxHeaders.26361/test_fail.py0000644000175000017500000000012412233027260024770 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.321046939 exaile-3.3.2/plugins/jamendo/simplejson/tests/test_fail.py0000644000000000000000000000552212233027260023734 0ustar00rootroot00000000000000from unittest import TestCase import simplejson as json # Fri Dec 30 18:57:26 2005 JSONDOCS = [ # http://json.org/JSON_checker/test/fail1.json '"A JSON payload should be an object or array, not a string."', # http://json.org/JSON_checker/test/fail2.json '["Unclosed array"', # http://json.org/JSON_checker/test/fail3.json '{unquoted_key: "keys must be quoted}', # http://json.org/JSON_checker/test/fail4.json '["extra comma",]', # http://json.org/JSON_checker/test/fail5.json '["double extra comma",,]', # http://json.org/JSON_checker/test/fail6.json '[ , "<-- missing value"]', # http://json.org/JSON_checker/test/fail7.json '["Comma after the close"],', # http://json.org/JSON_checker/test/fail8.json '["Extra close"]]', # http://json.org/JSON_checker/test/fail9.json '{"Extra comma": true,}', # http://json.org/JSON_checker/test/fail10.json '{"Extra value after close": true} "misplaced quoted value"', # http://json.org/JSON_checker/test/fail11.json '{"Illegal expression": 1 + 2}', # http://json.org/JSON_checker/test/fail12.json '{"Illegal invocation": alert()}', # http://json.org/JSON_checker/test/fail13.json '{"Numbers cannot have leading zeroes": 013}', # http://json.org/JSON_checker/test/fail14.json '{"Numbers cannot be hex": 0x14}', # http://json.org/JSON_checker/test/fail15.json '["Illegal backslash escape: \\x15"]', # http://json.org/JSON_checker/test/fail16.json '["Illegal backslash escape: \\\'"]', # http://json.org/JSON_checker/test/fail17.json '["Illegal backslash escape: \\017"]', # http://json.org/JSON_checker/test/fail18.json '[[[[[[[[[[[[[[[[[[[["Too deep"]]]]]]]]]]]]]]]]]]]]', # http://json.org/JSON_checker/test/fail19.json '{"Missing colon" null}', # http://json.org/JSON_checker/test/fail20.json '{"Double colon":: null}', # http://json.org/JSON_checker/test/fail21.json '{"Comma instead of colon", null}', # http://json.org/JSON_checker/test/fail22.json '["Colon instead of comma": false]', # http://json.org/JSON_checker/test/fail23.json '["Bad value", truth]', # http://json.org/JSON_checker/test/fail24.json "['single quote']", # http://code.google.com/p/simplejson/issues/detail?id=3 u'["A\u001FZ control characters in string"]', ] SKIPS = { 1: "why not have a string payload?", 18: "spec doesn't specify any nesting limitations", } class TestFail(TestCase): def test_failures(self): for idx, doc in enumerate(JSONDOCS): idx = idx + 1 if idx in SKIPS: json.loads(doc) continue try: json.loads(doc) except ValueError: pass else: self.fail("Expected failure for fail%d.json: %r" % (idx, doc)) dist/copy/plugins/jamendo/simplejson/tests/PaxHeaders.26361/test_indent.py0000644000175000017500000000012412233027260025336 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.321046939 exaile-3.3.2/plugins/jamendo/simplejson/tests/test_indent.py0000644000000000000000000000163012233027260024276 0ustar00rootroot00000000000000from unittest import TestCase import simplejson as json import textwrap class TestIndent(TestCase): def test_indent(self): h = [['blorpie'], ['whoops'], [], 'd-shtaeou', 'd-nthiouh', 'i-vhbjkhnth', {'nifty': 87}, {'field': 'yes', 'morefield': False} ] expect = textwrap.dedent("""\ [ [ "blorpie" ], [ "whoops" ], [], "d-shtaeou", "d-nthiouh", "i-vhbjkhnth", { "nifty": 87 }, { "field": "yes", "morefield": false } ]""") d1 = json.dumps(h) d2 = json.dumps(h, indent=2, sort_keys=True, separators=(',', ': ')) h1 = json.loads(d1) h2 = json.loads(d2) self.assertEquals(h1, h) self.assertEquals(h2, h) self.assertEquals(d2, expect) dist/copy/plugins/jamendo/simplejson/tests/PaxHeaders.26361/test_decode.py0000644000175000017500000000012412233027260025300 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.321046939 exaile-3.3.2/plugins/jamendo/simplejson/tests/test_decode.py0000644000000000000000000000151612233027260024243 0ustar00rootroot00000000000000import decimal from unittest import TestCase import simplejson as json class TestDecode(TestCase): def test_decimal(self): rval = json.loads('1.1', parse_float=decimal.Decimal) self.assert_(isinstance(rval, decimal.Decimal)) self.assertEquals(rval, decimal.Decimal('1.1')) def test_float(self): rval = json.loads('1', parse_int=float) self.assert_(isinstance(rval, float)) self.assertEquals(rval, 1.0) def test_decoder_optimizations(self): # Several optimizations were made that skip over calls to # the whitespace regex, so this test is designed to try and # exercise the uncommon cases. The array cases are already covered. rval = json.loads('{ "key" : "value" , "k":"v" }') self.assertEquals(rval, {"key":"value", "k":"v"}) dist/copy/plugins/jamendo/simplejson/tests/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260024555 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.157046934 exaile-3.3.2/plugins/jamendo/simplejson/tests/__init__.py0000644000000000000000000000117712233027260023523 0ustar00rootroot00000000000000import unittest import doctest def additional_tests(): import simplejson import simplejson.encoder import simplejson.decoder suite = unittest.TestSuite() for mod in (simplejson, simplejson.encoder, simplejson.decoder): suite.addTest(doctest.DocTestSuite(mod)) suite.addTest(doctest.DocFileSuite('../../index.rst')) return suite def main(): suite = additional_tests() runner = unittest.TextTestRunner() runner.run(suite) if __name__ == '__main__': import os import sys sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) main() dist/copy/plugins/jamendo/simplejson/tests/PaxHeaders.26361/test_dump.py0000644000175000017500000000012412233027260025022 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.321046939 exaile-3.3.2/plugins/jamendo/simplejson/tests/test_dump.py0000644000000000000000000000126512233027260023766 0ustar00rootroot00000000000000from unittest import TestCase from cStringIO import StringIO import simplejson as json class TestDump(TestCase): def test_dump(self): sio = StringIO() json.dump({}, sio) self.assertEquals(sio.getvalue(), '{}') def test_dumps(self): self.assertEquals(json.dumps({}), '{}') def test_encode_truefalse(self): self.assertEquals(json.dumps( {True: False, False: True}, sort_keys=True), '{"false": true, "true": false}') self.assertEquals(json.dumps( {2: 3.0, 4.0: 5L, False: 1, 6L: True, "7": 0}, sort_keys=True), '{"false": 1, "2": 3.0, "4.0": 5, "6": true, "7": 0}') dist/copy/plugins/jamendo/simplejson/tests/PaxHeaders.26361/test_pass1.py0000644000175000017500000000012412233027260025104 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.321046939 exaile-3.3.2/plugins/jamendo/simplejson/tests/test_pass1.py0000644000000000000000000000355712233027260024056 0ustar00rootroot00000000000000from unittest import TestCase import simplejson as json # from http://json.org/JSON_checker/test/pass1.json JSON = r''' [ "JSON Test Pattern pass1", {"object with 1 member":["array with 1 element"]}, {}, [], -42, true, false, null, { "integer": 1234567890, "real": -9876.543210, "e": 0.123456789e-12, "E": 1.234567890E+34, "": 23456789012E666, "zero": 0, "one": 1, "space": " ", "quote": "\"", "backslash": "\\", "controls": "\b\f\n\r\t", "slash": "/ & \/", "alpha": "abcdefghijklmnopqrstuvwyz", "ALPHA": "ABCDEFGHIJKLMNOPQRSTUVWYZ", "digit": "0123456789", "special": "`1~!@#$%^&*()_+-={':[,]}|;.?", "hex": "\u0123\u4567\u89AB\uCDEF\uabcd\uef4A", "true": true, "false": false, "null": null, "array":[ ], "object":{ }, "address": "50 St. James Street", "url": "http://www.JSON.org/", "comment": "// /* */": " ", " s p a c e d " :[1,2 , 3 , 4 , 5 , 6 ,7 ], "compact": [1,2,3,4,5,6,7], "jsontext": "{\"object with 1 member\":[\"array with 1 element\"]}", "quotes": "" \u0022 %22 0x22 034 "", "\/\\\"\uCAFE\uBABE\uAB98\uFCDE\ubcda\uef4A\b\f\n\r\t`1~!@#$%^&*()_+-=[]{}|;:',./<>?" : "A key can be any string" }, 0.5 ,98.6 , 99.44 , 1066 ,"rosebud"] ''' class TestPass1(TestCase): def test_parse(self): # test in/out equivalence and parsing res = json.loads(JSON) out = json.dumps(res) self.assertEquals(res, json.loads(out)) try: json.dumps(res, allow_nan=False) except ValueError: pass else: self.fail("23456789012E666 should be out of range") dist/copy/plugins/jamendo/simplejson/tests/PaxHeaders.26361/test_recursion.py0000644000175000017500000000012412233027260026066 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.321046939 exaile-3.3.2/plugins/jamendo/simplejson/tests/test_recursion.py0000644000000000000000000000322012233027260025023 0ustar00rootroot00000000000000from unittest import TestCase import simplejson as json class JSONTestObject: pass class RecursiveJSONEncoder(json.JSONEncoder): recurse = False def default(self, o): if o is JSONTestObject: if self.recurse: return [JSONTestObject] else: return 'JSONTestObject' return json.JSONEncoder.default(o) class TestRecursion(TestCase): def test_listrecursion(self): x = [] x.append(x) try: json.dumps(x) except ValueError: pass else: self.fail("didn't raise ValueError on list recursion") x = [] y = [x] x.append(y) try: json.dumps(x) except ValueError: pass else: self.fail("didn't raise ValueError on alternating list recursion") y = [] x = [y, y] # ensure that the marker is cleared json.dumps(x) def test_dictrecursion(self): x = {} x["test"] = x try: json.dumps(x) except ValueError: pass else: self.fail("didn't raise ValueError on dict recursion") x = {} y = {"a": x, "b": x} # ensure that the marker is cleared json.dumps(x) def test_defaultrecursion(self): enc = RecursiveJSONEncoder() self.assertEquals(enc.encode(JSONTestObject), '"JSONTestObject"') enc.recurse = True try: enc.encode(JSONTestObject) except ValueError: pass else: self.fail("didn't raise ValueError on default recursion") dist/copy/plugins/jamendo/simplejson/tests/PaxHeaders.26361/test_check_circular.py0000644000175000017500000000012412233027260027016 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.321046939 exaile-3.3.2/plugins/jamendo/simplejson/tests/test_check_circular.py0000644000000000000000000000162512233027260025762 0ustar00rootroot00000000000000from unittest import TestCase import simplejson as json def default_iterable(obj): return list(obj) class TestCheckCircular(TestCase): def test_circular_dict(self): dct = {} dct['a'] = dct self.assertRaises(ValueError, json.dumps, dct) def test_circular_list(self): lst = [] lst.append(lst) self.assertRaises(ValueError, json.dumps, lst) def test_circular_composite(self): dct2 = {} dct2['a'] = [] dct2['a'].append(dct2) self.assertRaises(ValueError, json.dumps, dct2) def test_circular_default(self): json.dumps([set()], default=default_iterable) self.assertRaises(TypeError, json.dumps, [set()]) def test_circular_off_default(self): json.dumps([set()], default=default_iterable, check_circular=False) self.assertRaises(TypeError, json.dumps, [set()], check_circular=False) dist/copy/plugins/jamendo/simplejson/tests/PaxHeaders.26361/test_separators.py0000644000175000017500000000012412233027260026240 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.329046939 exaile-3.3.2/plugins/jamendo/simplejson/tests/test_separators.py0000644000000000000000000000165612233027260025210 0ustar00rootroot00000000000000import textwrap from unittest import TestCase import simplejson as json class TestSeparators(TestCase): def test_separators(self): h = [['blorpie'], ['whoops'], [], 'd-shtaeou', 'd-nthiouh', 'i-vhbjkhnth', {'nifty': 87}, {'field': 'yes', 'morefield': False} ] expect = textwrap.dedent("""\ [ [ "blorpie" ] , [ "whoops" ] , [] , "d-shtaeou" , "d-nthiouh" , "i-vhbjkhnth" , { "nifty" : 87 } , { "field" : "yes" , "morefield" : false } ]""") d1 = json.dumps(h) d2 = json.dumps(h, indent=2, sort_keys=True, separators=(' ,', ' : ')) h1 = json.loads(d1) h2 = json.loads(d2) self.assertEquals(h1, h) self.assertEquals(h2, h) self.assertEquals(d2, expect) dist/copy/plugins/jamendo/simplejson/tests/PaxHeaders.26361/test_pass3.py0000644000175000017500000000012412233027260025106 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.321046939 exaile-3.3.2/plugins/jamendo/simplejson/tests/test_pass3.py0000644000000000000000000000074312233027260024052 0ustar00rootroot00000000000000from unittest import TestCase import simplejson as json # from http://json.org/JSON_checker/test/pass3.json JSON = r''' { "JSON Test Pattern pass3": { "The outermost value": "must be an object or array.", "In this test": "It is an object." } } ''' class TestPass3(TestCase): def test_parse(self): # test in/out equivalence and parsing res = json.loads(JSON) out = json.dumps(res) self.assertEquals(res, json.loads(out)) dist/copy/plugins/jamendo/simplejson/tests/PaxHeaders.26361/test_unicode.py0000644000175000017500000000012412233027260025503 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.329046939 exaile-3.3.2/plugins/jamendo/simplejson/tests/test_unicode.py0000644000000000000000000000442712233027260024452 0ustar00rootroot00000000000000from unittest import TestCase import simplejson as json class TestUnicode(TestCase): def test_encoding1(self): encoder = json.JSONEncoder(encoding='utf-8') u = u'\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}' s = u.encode('utf-8') ju = encoder.encode(u) js = encoder.encode(s) self.assertEquals(ju, js) def test_encoding2(self): u = u'\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}' s = u.encode('utf-8') ju = json.dumps(u, encoding='utf-8') js = json.dumps(s, encoding='utf-8') self.assertEquals(ju, js) def test_encoding3(self): u = u'\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}' j = json.dumps(u) self.assertEquals(j, '"\\u03b1\\u03a9"') def test_encoding4(self): u = u'\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}' j = json.dumps([u]) self.assertEquals(j, '["\\u03b1\\u03a9"]') def test_encoding5(self): u = u'\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}' j = json.dumps(u, ensure_ascii=False) self.assertEquals(j, u'"%s"' % (u,)) def test_encoding6(self): u = u'\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}' j = json.dumps([u], ensure_ascii=False) self.assertEquals(j, u'["%s"]' % (u,)) def test_big_unicode_encode(self): u = u'\U0001d120' self.assertEquals(json.dumps(u), '"\\ud834\\udd20"') self.assertEquals(json.dumps(u, ensure_ascii=False), u'"\U0001d120"') def test_big_unicode_decode(self): u = u'z\U0001d120x' self.assertEquals(json.loads('"' + u + '"'), u) self.assertEquals(json.loads('"z\\ud834\\udd20x"'), u) def test_unicode_decode(self): for i in range(0, 0xd7ff): u = unichr(i) s = '"\\u%04x"' % (i,) self.assertEquals(json.loads(s), u) def test_default_encoding(self): self.assertEquals(json.loads(u'{"a": "\xe9"}'.encode('utf-8')), {'a': u'\xe9'}) def test_unicode_preservation(self): self.assertEquals(type(json.loads(u'""')), unicode) self.assertEquals(type(json.loads(u'"a"')), unicode) self.assertEquals(type(json.loads(u'["a"]')[0]), unicode)dist/copy/plugins/jamendo/simplejson/tests/PaxHeaders.26361/test_scanstring.py0000644000175000017500000000012412233027260026230 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.321046939 exaile-3.3.2/plugins/jamendo/simplejson/tests/test_scanstring.py0000644000000000000000000000737312233027260025202 0ustar00rootroot00000000000000import sys import decimal from unittest import TestCase import simplejson as json import simplejson.decoder class TestScanString(TestCase): def test_py_scanstring(self): self._test_scanstring(simplejson.decoder.py_scanstring) def test_c_scanstring(self): if not simplejson.decoder.c_scanstring: return self._test_scanstring(simplejson.decoder.c_scanstring) def _test_scanstring(self, scanstring): self.assertEquals( scanstring('"z\\ud834\\udd20x"', 1, None, True), (u'z\U0001d120x', 16)) if sys.maxunicode == 65535: self.assertEquals( scanstring(u'"z\U0001d120x"', 1, None, True), (u'z\U0001d120x', 6)) else: self.assertEquals( scanstring(u'"z\U0001d120x"', 1, None, True), (u'z\U0001d120x', 5)) self.assertEquals( scanstring('"\\u007b"', 1, None, True), (u'{', 8)) self.assertEquals( scanstring('"A JSON payload should be an object or array, not a string."', 1, None, True), (u'A JSON payload should be an object or array, not a string.', 60)) self.assertEquals( scanstring('["Unclosed array"', 2, None, True), (u'Unclosed array', 17)) self.assertEquals( scanstring('["extra comma",]', 2, None, True), (u'extra comma', 14)) self.assertEquals( scanstring('["double extra comma",,]', 2, None, True), (u'double extra comma', 21)) self.assertEquals( scanstring('["Comma after the close"],', 2, None, True), (u'Comma after the close', 24)) self.assertEquals( scanstring('["Extra close"]]', 2, None, True), (u'Extra close', 14)) self.assertEquals( scanstring('{"Extra comma": true,}', 2, None, True), (u'Extra comma', 14)) self.assertEquals( scanstring('{"Extra value after close": true} "misplaced quoted value"', 2, None, True), (u'Extra value after close', 26)) self.assertEquals( scanstring('{"Illegal expression": 1 + 2}', 2, None, True), (u'Illegal expression', 21)) self.assertEquals( scanstring('{"Illegal invocation": alert()}', 2, None, True), (u'Illegal invocation', 21)) self.assertEquals( scanstring('{"Numbers cannot have leading zeroes": 013}', 2, None, True), (u'Numbers cannot have leading zeroes', 37)) self.assertEquals( scanstring('{"Numbers cannot be hex": 0x14}', 2, None, True), (u'Numbers cannot be hex', 24)) self.assertEquals( scanstring('[[[[[[[[[[[[[[[[[[[["Too deep"]]]]]]]]]]]]]]]]]]]]', 21, None, True), (u'Too deep', 30)) self.assertEquals( scanstring('{"Missing colon" null}', 2, None, True), (u'Missing colon', 16)) self.assertEquals( scanstring('{"Double colon":: null}', 2, None, True), (u'Double colon', 15)) self.assertEquals( scanstring('{"Comma instead of colon", null}', 2, None, True), (u'Comma instead of colon', 25)) self.assertEquals( scanstring('["Colon instead of comma": false]', 2, None, True), (u'Colon instead of comma', 25)) self.assertEquals( scanstring('["Bad value", truth]', 2, None, True), (u'Bad value', 12)) def test_issue3623(self): self.assertRaises(ValueError, json.decoder.scanstring, "xxx", 1, "xxx") self.assertRaises(UnicodeDecodeError, json.encoder.encode_basestring_ascii, "xx\xff") dist/copy/plugins/jamendo/simplejson/tests/PaxHeaders.26361/test_default.py0000644000175000017500000000012412233027260025501 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.321046939 exaile-3.3.2/plugins/jamendo/simplejson/tests/test_default.py0000644000000000000000000000033612233027260024443 0ustar00rootroot00000000000000from unittest import TestCase import simplejson as json class TestDefault(TestCase): def test_default(self): self.assertEquals( json.dumps(type, default=repr), json.dumps(repr(type))) dist/copy/plugins/jamendo/simplejson/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260023413 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.157046934 exaile-3.3.2/plugins/jamendo/simplejson/__init__.py0000644000000000000000000003025712233027260022362 0ustar00rootroot00000000000000r"""JSON (JavaScript Object Notation) is a subset of JavaScript syntax (ECMA-262 3rd edition) used as a lightweight data interchange format. :mod:`simplejson` exposes an API familiar to users of the standard library :mod:`marshal` and :mod:`pickle` modules. It is the externally maintained version of the :mod:`json` library contained in Python 2.6, but maintains compatibility with Python 2.4 and Python 2.5 and (currently) has significant performance advantages, even without using the optional C extension for speedups. Encoding basic Python object hierarchies:: >>> import simplejson as json >>> json.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}]) '["foo", {"bar": ["baz", null, 1.0, 2]}]' >>> print json.dumps("\"foo\bar") "\"foo\bar" >>> print json.dumps(u'\u1234') "\u1234" >>> print json.dumps('\\') "\\" >>> print json.dumps({"c": 0, "b": 0, "a": 0}, sort_keys=True) {"a": 0, "b": 0, "c": 0} >>> from StringIO import StringIO >>> io = StringIO() >>> json.dump(['streaming API'], io) >>> io.getvalue() '["streaming API"]' Compact encoding:: >>> import simplejson as json >>> json.dumps([1,2,3,{'4': 5, '6': 7}], separators=(',',':')) '[1,2,3,{"4":5,"6":7}]' Pretty printing:: >>> import simplejson as json >>> s = json.dumps({'4': 5, '6': 7}, sort_keys=True, indent=4) >>> print '\n'.join([l.rstrip() for l in s.splitlines()]) { "4": 5, "6": 7 } Decoding JSON:: >>> import simplejson as json >>> obj = [u'foo', {u'bar': [u'baz', None, 1.0, 2]}] >>> json.loads('["foo", {"bar":["baz", null, 1.0, 2]}]') == obj True >>> json.loads('"\\"foo\\bar"') == u'"foo\x08ar' True >>> from StringIO import StringIO >>> io = StringIO('["streaming API"]') >>> json.load(io)[0] == 'streaming API' True Specializing JSON object decoding:: >>> import simplejson as json >>> def as_complex(dct): ... if '__complex__' in dct: ... return complex(dct['real'], dct['imag']) ... return dct ... >>> json.loads('{"__complex__": true, "real": 1, "imag": 2}', ... object_hook=as_complex) (1+2j) >>> import decimal >>> json.loads('1.1', parse_float=decimal.Decimal) == decimal.Decimal('1.1') True Specializing JSON object encoding:: >>> import simplejson as json >>> def encode_complex(obj): ... if isinstance(obj, complex): ... return [obj.real, obj.imag] ... raise TypeError(repr(o) + " is not JSON serializable") ... >>> json.dumps(2 + 1j, default=encode_complex) '[2.0, 1.0]' >>> json.JSONEncoder(default=encode_complex).encode(2 + 1j) '[2.0, 1.0]' >>> ''.join(json.JSONEncoder(default=encode_complex).iterencode(2 + 1j)) '[2.0, 1.0]' Using simplejson.tool from the shell to validate and pretty-print:: $ echo '{"json":"obj"}' | python -m simplejson.tool { "json": "obj" } $ echo '{ 1.2:3.4}' | python -m simplejson.tool Expecting property name: line 1 column 2 (char 2) """ __version__ = '2.0.9' __all__ = [ 'dump', 'dumps', 'load', 'loads', 'JSONDecoder', 'JSONEncoder', ] __author__ = 'Bob Ippolito ' from decoder import JSONDecoder from encoder import JSONEncoder _default_encoder = JSONEncoder( skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, indent=None, separators=None, encoding='utf-8', default=None, ) def dump(obj, fp, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding='utf-8', default=None, **kw): """Serialize ``obj`` as a JSON formatted stream to ``fp`` (a ``.write()``-supporting file-like object). If ``skipkeys`` is true then ``dict`` keys that are not basic types (``str``, ``unicode``, ``int``, ``long``, ``float``, ``bool``, ``None``) will be skipped instead of raising a ``TypeError``. If ``ensure_ascii`` is false, then the some chunks written to ``fp`` may be ``unicode`` instances, subject to normal Python ``str`` to ``unicode`` coercion rules. Unless ``fp.write()`` explicitly understands ``unicode`` (as in ``codecs.getwriter()``) this is likely to cause an error. If ``check_circular`` is false, then the circular reference check for container types will be skipped and a circular reference will result in an ``OverflowError`` (or worse). If ``allow_nan`` is false, then it will be a ``ValueError`` to serialize out of range ``float`` values (``nan``, ``inf``, ``-inf``) in strict compliance of the JSON specification, instead of using the JavaScript equivalents (``NaN``, ``Infinity``, ``-Infinity``). If ``indent`` is a non-negative integer, then JSON array elements and object members will be pretty-printed with that indent level. An indent level of 0 will only insert newlines. ``None`` is the most compact representation. If ``separators`` is an ``(item_separator, dict_separator)`` tuple then it will be used instead of the default ``(', ', ': ')`` separators. ``(',', ':')`` is the most compact JSON representation. ``encoding`` is the character encoding for str instances, default is UTF-8. ``default(obj)`` is a function that should return a serializable version of obj or raise TypeError. The default simply raises TypeError. To use a custom ``JSONEncoder`` subclass (e.g. one that overrides the ``.default()`` method to serialize additional types), specify it with the ``cls`` kwarg. """ # cached encoder if (not skipkeys and ensure_ascii and check_circular and allow_nan and cls is None and indent is None and separators is None and encoding == 'utf-8' and default is None and not kw): iterable = _default_encoder.iterencode(obj) else: if cls is None: cls = JSONEncoder iterable = cls(skipkeys=skipkeys, ensure_ascii=ensure_ascii, check_circular=check_circular, allow_nan=allow_nan, indent=indent, separators=separators, encoding=encoding, default=default, **kw).iterencode(obj) # could accelerate with writelines in some versions of Python, at # a debuggability cost for chunk in iterable: fp.write(chunk) def dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding='utf-8', default=None, **kw): """Serialize ``obj`` to a JSON formatted ``str``. If ``skipkeys`` is false then ``dict`` keys that are not basic types (``str``, ``unicode``, ``int``, ``long``, ``float``, ``bool``, ``None``) will be skipped instead of raising a ``TypeError``. If ``ensure_ascii`` is false, then the return value will be a ``unicode`` instance subject to normal Python ``str`` to ``unicode`` coercion rules instead of being escaped to an ASCII ``str``. If ``check_circular`` is false, then the circular reference check for container types will be skipped and a circular reference will result in an ``OverflowError`` (or worse). If ``allow_nan`` is false, then it will be a ``ValueError`` to serialize out of range ``float`` values (``nan``, ``inf``, ``-inf``) in strict compliance of the JSON specification, instead of using the JavaScript equivalents (``NaN``, ``Infinity``, ``-Infinity``). If ``indent`` is a non-negative integer, then JSON array elements and object members will be pretty-printed with that indent level. An indent level of 0 will only insert newlines. ``None`` is the most compact representation. If ``separators`` is an ``(item_separator, dict_separator)`` tuple then it will be used instead of the default ``(', ', ': ')`` separators. ``(',', ':')`` is the most compact JSON representation. ``encoding`` is the character encoding for str instances, default is UTF-8. ``default(obj)`` is a function that should return a serializable version of obj or raise TypeError. The default simply raises TypeError. To use a custom ``JSONEncoder`` subclass (e.g. one that overrides the ``.default()`` method to serialize additional types), specify it with the ``cls`` kwarg. """ # cached encoder if (not skipkeys and ensure_ascii and check_circular and allow_nan and cls is None and indent is None and separators is None and encoding == 'utf-8' and default is None and not kw): return _default_encoder.encode(obj) if cls is None: cls = JSONEncoder return cls( skipkeys=skipkeys, ensure_ascii=ensure_ascii, check_circular=check_circular, allow_nan=allow_nan, indent=indent, separators=separators, encoding=encoding, default=default, **kw).encode(obj) _default_decoder = JSONDecoder(encoding=None, object_hook=None) def load(fp, encoding=None, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, **kw): """Deserialize ``fp`` (a ``.read()``-supporting file-like object containing a JSON document) to a Python object. If the contents of ``fp`` is encoded with an ASCII based encoding other than utf-8 (e.g. latin-1), then an appropriate ``encoding`` name must be specified. Encodings that are not ASCII based (such as UCS-2) are not allowed, and should be wrapped with ``codecs.getreader(fp)(encoding)``, or simply decoded to a ``unicode`` object and passed to ``loads()`` ``object_hook`` is an optional function that will be called with the result of any object literal decode (a ``dict``). The return value of ``object_hook`` will be used instead of the ``dict``. This feature can be used to implement custom decoders (e.g. JSON-RPC class hinting). To use a custom ``JSONDecoder`` subclass, specify it with the ``cls`` kwarg. """ return loads(fp.read(), encoding=encoding, cls=cls, object_hook=object_hook, parse_float=parse_float, parse_int=parse_int, parse_constant=parse_constant, **kw) def loads(s, encoding=None, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, **kw): """Deserialize ``s`` (a ``str`` or ``unicode`` instance containing a JSON document) to a Python object. If ``s`` is a ``str`` instance and is encoded with an ASCII based encoding other than utf-8 (e.g. latin-1) then an appropriate ``encoding`` name must be specified. Encodings that are not ASCII based (such as UCS-2) are not allowed and should be decoded to ``unicode`` first. ``object_hook`` is an optional function that will be called with the result of any object literal decode (a ``dict``). The return value of ``object_hook`` will be used instead of the ``dict``. This feature can be used to implement custom decoders (e.g. JSON-RPC class hinting). ``parse_float``, if specified, will be called with the string of every JSON float to be decoded. By default this is equivalent to float(num_str). This can be used to use another datatype or parser for JSON floats (e.g. decimal.Decimal). ``parse_int``, if specified, will be called with the string of every JSON int to be decoded. By default this is equivalent to int(num_str). This can be used to use another datatype or parser for JSON integers (e.g. float). ``parse_constant``, if specified, will be called with one of the following strings: -Infinity, Infinity, NaN, null, true, false. This can be used to raise an exception if invalid JSON numbers are encountered. To use a custom ``JSONDecoder`` subclass, specify it with the ``cls`` kwarg. """ if (cls is None and encoding is None and object_hook is None and parse_int is None and parse_float is None and parse_constant is None and not kw): return _default_decoder.decode(s) if cls is None: cls = JSONDecoder if object_hook is not None: kw['object_hook'] = object_hook if parse_float is not None: kw['parse_float'] = parse_float if parse_int is not None: kw['parse_int'] = parse_int if parse_constant is not None: kw['parse_constant'] = parse_constant return cls(encoding=encoding, **kw).decode(s) dist/copy/plugins/jamendo/simplejson/PaxHeaders.26361/decoder.py0000644000175000017500000000012412233027260023261 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.189046935 exaile-3.3.2/plugins/jamendo/simplejson/decoder.py0000644000000000000000000003016012233027260022221 0ustar00rootroot00000000000000"""Implementation of JSONDecoder """ import re import sys import struct from simplejson.scanner import make_scanner try: from simplejson._speedups import scanstring as c_scanstring except ImportError: c_scanstring = None __all__ = ['JSONDecoder'] FLAGS = re.VERBOSE | re.MULTILINE | re.DOTALL def _floatconstants(): _BYTES = '7FF80000000000007FF0000000000000'.decode('hex') if sys.byteorder != 'big': _BYTES = _BYTES[:8][::-1] + _BYTES[8:][::-1] nan, inf = struct.unpack('dd', _BYTES) return nan, inf, -inf NaN, PosInf, NegInf = _floatconstants() def linecol(doc, pos): lineno = doc.count('\n', 0, pos) + 1 if lineno == 1: colno = pos else: colno = pos - doc.rindex('\n', 0, pos) return lineno, colno def errmsg(msg, doc, pos, end=None): # Note that this function is called from _speedups lineno, colno = linecol(doc, pos) if end is None: #fmt = '{0}: line {1} column {2} (char {3})' #return fmt.format(msg, lineno, colno, pos) fmt = '%s: line %d column %d (char %d)' return fmt % (msg, lineno, colno, pos) endlineno, endcolno = linecol(doc, end) #fmt = '{0}: line {1} column {2} - line {3} column {4} (char {5} - {6})' #return fmt.format(msg, lineno, colno, endlineno, endcolno, pos, end) fmt = '%s: line %d column %d - line %d column %d (char %d - %d)' return fmt % (msg, lineno, colno, endlineno, endcolno, pos, end) _CONSTANTS = { '-Infinity': NegInf, 'Infinity': PosInf, 'NaN': NaN, } STRINGCHUNK = re.compile(r'(.*?)(["\\\x00-\x1f])', FLAGS) BACKSLASH = { '"': u'"', '\\': u'\\', '/': u'/', 'b': u'\b', 'f': u'\f', 'n': u'\n', 'r': u'\r', 't': u'\t', } DEFAULT_ENCODING = "utf-8" def py_scanstring(s, end, encoding=None, strict=True, _b=BACKSLASH, _m=STRINGCHUNK.match): """Scan the string s for a JSON string. End is the index of the character in s after the quote that started the JSON string. Unescapes all valid JSON string escape sequences and raises ValueError on attempt to decode an invalid string. If strict is False then literal control characters are allowed in the string. Returns a tuple of the decoded string and the index of the character in s after the end quote.""" if encoding is None: encoding = DEFAULT_ENCODING chunks = [] _append = chunks.append begin = end - 1 while 1: chunk = _m(s, end) if chunk is None: raise ValueError( errmsg("Unterminated string starting at", s, begin)) end = chunk.end() content, terminator = chunk.groups() # Content is contains zero or more unescaped string characters if content: if not isinstance(content, unicode): content = unicode(content, encoding) _append(content) # Terminator is the end of string, a literal control character, # or a backslash denoting that an escape sequence follows if terminator == '"': break elif terminator != '\\': if strict: msg = "Invalid control character %r at" % (terminator,) #msg = "Invalid control character {0!r} at".format(terminator) raise ValueError(errmsg(msg, s, end)) else: _append(terminator) continue try: esc = s[end] except IndexError: raise ValueError( errmsg("Unterminated string starting at", s, begin)) # If not a unicode escape sequence, must be in the lookup table if esc != 'u': try: char = _b[esc] except KeyError: msg = "Invalid \\escape: " + repr(esc) raise ValueError(errmsg(msg, s, end)) end += 1 else: # Unicode escape sequence esc = s[end + 1:end + 5] next_end = end + 5 if len(esc) != 4: msg = "Invalid \\uXXXX escape" raise ValueError(errmsg(msg, s, end)) uni = int(esc, 16) # Check for surrogate pair on UCS-4 systems if 0xd800 <= uni <= 0xdbff and sys.maxunicode > 65535: msg = "Invalid \\uXXXX\\uXXXX surrogate pair" if not s[end + 5:end + 7] == '\\u': raise ValueError(errmsg(msg, s, end)) esc2 = s[end + 7:end + 11] if len(esc2) != 4: raise ValueError(errmsg(msg, s, end)) uni2 = int(esc2, 16) uni = 0x10000 + (((uni - 0xd800) << 10) | (uni2 - 0xdc00)) next_end += 6 char = unichr(uni) end = next_end # Append the unescaped character _append(char) return u''.join(chunks), end # Use speedup if available scanstring = c_scanstring or py_scanstring WHITESPACE = re.compile(r'[ \t\n\r]*', FLAGS) WHITESPACE_STR = ' \t\n\r' def JSONObject((s, end), encoding, strict, scan_once, object_hook, _w=WHITESPACE.match, _ws=WHITESPACE_STR): pairs = {} # Use a slice to prevent IndexError from being raised, the following # check will raise a more specific ValueError if the string is empty nextchar = s[end:end + 1] # Normally we expect nextchar == '"' if nextchar != '"': if nextchar in _ws: end = _w(s, end).end() nextchar = s[end:end + 1] # Trivial empty object if nextchar == '}': return pairs, end + 1 elif nextchar != '"': raise ValueError(errmsg("Expecting property name", s, end)) end += 1 while True: key, end = scanstring(s, end, encoding, strict) # To skip some function call overhead we optimize the fast paths where # the JSON key separator is ": " or just ":". if s[end:end + 1] != ':': end = _w(s, end).end() if s[end:end + 1] != ':': raise ValueError(errmsg("Expecting : delimiter", s, end)) end += 1 try: if s[end] in _ws: end += 1 if s[end] in _ws: end = _w(s, end + 1).end() except IndexError: pass try: value, end = scan_once(s, end) except StopIteration: raise ValueError(errmsg("Expecting object", s, end)) pairs[key] = value try: nextchar = s[end] if nextchar in _ws: end = _w(s, end + 1).end() nextchar = s[end] except IndexError: nextchar = '' end += 1 if nextchar == '}': break elif nextchar != ',': raise ValueError(errmsg("Expecting , delimiter", s, end - 1)) try: nextchar = s[end] if nextchar in _ws: end += 1 nextchar = s[end] if nextchar in _ws: end = _w(s, end + 1).end() nextchar = s[end] except IndexError: nextchar = '' end += 1 if nextchar != '"': raise ValueError(errmsg("Expecting property name", s, end - 1)) if object_hook is not None: pairs = object_hook(pairs) return pairs, end def JSONArray((s, end), scan_once, _w=WHITESPACE.match, _ws=WHITESPACE_STR): values = [] nextchar = s[end:end + 1] if nextchar in _ws: end = _w(s, end + 1).end() nextchar = s[end:end + 1] # Look-ahead for trivial empty array if nextchar == ']': return values, end + 1 _append = values.append while True: try: value, end = scan_once(s, end) except StopIteration: raise ValueError(errmsg("Expecting object", s, end)) _append(value) nextchar = s[end:end + 1] if nextchar in _ws: end = _w(s, end + 1).end() nextchar = s[end:end + 1] end += 1 if nextchar == ']': break elif nextchar != ',': raise ValueError(errmsg("Expecting , delimiter", s, end)) try: if s[end] in _ws: end += 1 if s[end] in _ws: end = _w(s, end + 1).end() except IndexError: pass return values, end class JSONDecoder(object): """Simple JSON decoder Performs the following translations in decoding by default: +---------------+-------------------+ | JSON | Python | +===============+===================+ | object | dict | +---------------+-------------------+ | array | list | +---------------+-------------------+ | string | unicode | +---------------+-------------------+ | number (int) | int, long | +---------------+-------------------+ | number (real) | float | +---------------+-------------------+ | true | True | +---------------+-------------------+ | false | False | +---------------+-------------------+ | null | None | +---------------+-------------------+ It also understands ``NaN``, ``Infinity``, and ``-Infinity`` as their corresponding ``float`` values, which is outside the JSON spec. """ def __init__(self, encoding=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, strict=True): """``encoding`` determines the encoding used to interpret any ``str`` objects decoded by this instance (utf-8 by default). It has no effect when decoding ``unicode`` objects. Note that currently only encodings that are a superset of ASCII work, strings of other encodings should be passed in as ``unicode``. ``object_hook``, if specified, will be called with the result of every JSON object decoded and its return value will be used in place of the given ``dict``. This can be used to provide custom deserializations (e.g. to support JSON-RPC class hinting). ``parse_float``, if specified, will be called with the string of every JSON float to be decoded. By default this is equivalent to float(num_str). This can be used to use another datatype or parser for JSON floats (e.g. decimal.Decimal). ``parse_int``, if specified, will be called with the string of every JSON int to be decoded. By default this is equivalent to int(num_str). This can be used to use another datatype or parser for JSON integers (e.g. float). ``parse_constant``, if specified, will be called with one of the following strings: -Infinity, Infinity, NaN. This can be used to raise an exception if invalid JSON numbers are encountered. """ self.encoding = encoding self.object_hook = object_hook self.parse_float = parse_float or float self.parse_int = parse_int or int self.parse_constant = parse_constant or _CONSTANTS.__getitem__ self.strict = strict self.parse_object = JSONObject self.parse_array = JSONArray self.parse_string = scanstring self.scan_once = make_scanner(self) def decode(self, s, _w=WHITESPACE.match): """Return the Python representation of ``s`` (a ``str`` or ``unicode`` instance containing a JSON document) """ obj, end = self.raw_decode(s, idx=_w(s, 0).end()) end = _w(s, end).end() if end != len(s): raise ValueError(errmsg("Extra data", s, end, len(s))) return obj def raw_decode(self, s, idx=0): """Decode a JSON document from ``s`` (a ``str`` or ``unicode`` beginning with a JSON document) and return a 2-tuple of the Python representation and the index in ``s`` where the document ended. This can be used to decode a JSON document from a string that may have extraneous data at the end. """ try: obj, end = self.scan_once(s, idx) except StopIteration: raise ValueError("No JSON object could be decoded") return obj, end dist/copy/plugins/jamendo/simplejson/PaxHeaders.26361/encoder.py0000644000175000017500000000012412233027260023273 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.189046935 exaile-3.3.2/plugins/jamendo/simplejson/encoder.py0000644000000000000000000003724112233027260022242 0ustar00rootroot00000000000000"""Implementation of JSONEncoder """ import re try: from simplejson._speedups import encode_basestring_ascii as c_encode_basestring_ascii except ImportError: c_encode_basestring_ascii = None try: from simplejson._speedups import make_encoder as c_make_encoder except ImportError: c_make_encoder = None ESCAPE = re.compile(r'[\x00-\x1f\\"\b\f\n\r\t]') ESCAPE_ASCII = re.compile(r'([\\"]|[^\ -~])') HAS_UTF8 = re.compile(r'[\x80-\xff]') ESCAPE_DCT = { '\\': '\\\\', '"': '\\"', '\b': '\\b', '\f': '\\f', '\n': '\\n', '\r': '\\r', '\t': '\\t', } for i in range(0x20): #ESCAPE_DCT.setdefault(chr(i), '\\u{0:04x}'.format(i)) ESCAPE_DCT.setdefault(chr(i), '\\u%04x' % (i,)) # Assume this produces an infinity on all machines (probably not guaranteed) INFINITY = float('1e66666') FLOAT_REPR = repr def encode_basestring(s): """Return a JSON representation of a Python string """ def replace(match): return ESCAPE_DCT[match.group(0)] return '"' + ESCAPE.sub(replace, s) + '"' def py_encode_basestring_ascii(s): """Return an ASCII-only JSON representation of a Python string """ if isinstance(s, str) and HAS_UTF8.search(s) is not None: s = s.decode('utf-8') def replace(match): s = match.group(0) try: return ESCAPE_DCT[s] except KeyError: n = ord(s) if n < 0x10000: #return '\\u{0:04x}'.format(n) return '\\u%04x' % (n,) else: # surrogate pair n -= 0x10000 s1 = 0xd800 | ((n >> 10) & 0x3ff) s2 = 0xdc00 | (n & 0x3ff) #return '\\u{0:04x}\\u{1:04x}'.format(s1, s2) return '\\u%04x\\u%04x' % (s1, s2) return '"' + str(ESCAPE_ASCII.sub(replace, s)) + '"' encode_basestring_ascii = c_encode_basestring_ascii or py_encode_basestring_ascii class JSONEncoder(object): """Extensible JSON encoder for Python data structures. Supports the following objects and types by default: +-------------------+---------------+ | Python | JSON | +===================+===============+ | dict | object | +-------------------+---------------+ | list, tuple | array | +-------------------+---------------+ | str, unicode | string | +-------------------+---------------+ | int, long, float | number | +-------------------+---------------+ | True | true | +-------------------+---------------+ | False | false | +-------------------+---------------+ | None | null | +-------------------+---------------+ To extend this to recognize other objects, subclass and implement a ``.default()`` method with another method that returns a serializable object for ``o`` if possible, otherwise it should call the superclass implementation (to raise ``TypeError``). """ item_separator = ', ' key_separator = ': ' def __init__(self, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, sort_keys=False, indent=None, separators=None, encoding='utf-8', default=None): """Constructor for JSONEncoder, with sensible defaults. If skipkeys is false, then it is a TypeError to attempt encoding of keys that are not str, int, long, float or None. If skipkeys is True, such items are simply skipped. If ensure_ascii is true, the output is guaranteed to be str objects with all incoming unicode characters escaped. If ensure_ascii is false, the output will be unicode object. If check_circular is true, then lists, dicts, and custom encoded objects will be checked for circular references during encoding to prevent an infinite recursion (which would cause an OverflowError). Otherwise, no such check takes place. If allow_nan is true, then NaN, Infinity, and -Infinity will be encoded as such. This behavior is not JSON specification compliant, but is consistent with most JavaScript based encoders and decoders. Otherwise, it will be a ValueError to encode such floats. If sort_keys is true, then the output of dictionaries will be sorted by key; this is useful for regression tests to ensure that JSON serializations can be compared on a day-to-day basis. If indent is a non-negative integer, then JSON array elements and object members will be pretty-printed with that indent level. An indent level of 0 will only insert newlines. None is the most compact representation. If specified, separators should be a (item_separator, key_separator) tuple. The default is (', ', ': '). To get the most compact JSON representation you should specify (',', ':') to eliminate whitespace. If specified, default is a function that gets called for objects that can't otherwise be serialized. It should return a JSON encodable version of the object or raise a ``TypeError``. If encoding is not None, then all input strings will be transformed into unicode using that encoding prior to JSON-encoding. The default is UTF-8. """ self.skipkeys = skipkeys self.ensure_ascii = ensure_ascii self.check_circular = check_circular self.allow_nan = allow_nan self.sort_keys = sort_keys self.indent = indent if separators is not None: self.item_separator, self.key_separator = separators if default is not None: self.default = default self.encoding = encoding def default(self, o): """Implement this method in a subclass such that it returns a serializable object for ``o``, or calls the base implementation (to raise a ``TypeError``). For example, to support arbitrary iterators, you could implement default like this:: def default(self, o): try: iterable = iter(o) except TypeError: pass else: return list(iterable) return JSONEncoder.default(self, o) """ raise TypeError(repr(o) + " is not JSON serializable") def encode(self, o): """Return a JSON string representation of a Python data structure. >>> JSONEncoder().encode({"foo": ["bar", "baz"]}) '{"foo": ["bar", "baz"]}' """ # This is for extremely simple cases and benchmarks. if isinstance(o, basestring): if isinstance(o, str): _encoding = self.encoding if (_encoding is not None and not (_encoding == 'utf-8')): o = o.decode(_encoding) if self.ensure_ascii: return encode_basestring_ascii(o) else: return encode_basestring(o) # This doesn't pass the iterator directly to ''.join() because the # exceptions aren't as detailed. The list call should be roughly # equivalent to the PySequence_Fast that ''.join() would do. chunks = self.iterencode(o, _one_shot=True) if not isinstance(chunks, (list, tuple)): chunks = list(chunks) return ''.join(chunks) def iterencode(self, o, _one_shot=False): """Encode the given object and yield each string representation as available. For example:: for chunk in JSONEncoder().iterencode(bigobject): mysocket.write(chunk) """ if self.check_circular: markers = {} else: markers = None if self.ensure_ascii: _encoder = encode_basestring_ascii else: _encoder = encode_basestring if self.encoding != 'utf-8': def _encoder(o, _orig_encoder=_encoder, _encoding=self.encoding): if isinstance(o, str): o = o.decode(_encoding) return _orig_encoder(o) def floatstr(o, allow_nan=self.allow_nan, _repr=FLOAT_REPR, _inf=INFINITY, _neginf=-INFINITY): # Check for specials. Note that this type of test is processor- and/or # platform-specific, so do tests which don't depend on the internals. if o != o: text = 'NaN' elif o == _inf: text = 'Infinity' elif o == _neginf: text = '-Infinity' else: return _repr(o) if not allow_nan: raise ValueError( "Out of range float values are not JSON compliant: " + repr(o)) return text if _one_shot and c_make_encoder is not None and not self.indent and not self.sort_keys: _iterencode = c_make_encoder( markers, self.default, _encoder, self.indent, self.key_separator, self.item_separator, self.sort_keys, self.skipkeys, self.allow_nan) else: _iterencode = _make_iterencode( markers, self.default, _encoder, self.indent, floatstr, self.key_separator, self.item_separator, self.sort_keys, self.skipkeys, _one_shot) return _iterencode(o, 0) def _make_iterencode(markers, _default, _encoder, _indent, _floatstr, _key_separator, _item_separator, _sort_keys, _skipkeys, _one_shot, ## HACK: hand-optimized bytecode; turn globals into locals False=False, True=True, ValueError=ValueError, basestring=basestring, dict=dict, float=float, id=id, int=int, isinstance=isinstance, list=list, long=long, str=str, tuple=tuple, ): def _iterencode_list(lst, _current_indent_level): if not lst: yield '[]' return if markers is not None: markerid = id(lst) if markerid in markers: raise ValueError("Circular reference detected") markers[markerid] = lst buf = '[' if _indent is not None: _current_indent_level += 1 newline_indent = '\n' + (' ' * (_indent * _current_indent_level)) separator = _item_separator + newline_indent buf += newline_indent else: newline_indent = None separator = _item_separator first = True for value in lst: if first: first = False else: buf = separator if isinstance(value, basestring): yield buf + _encoder(value) elif value is None: yield buf + 'null' elif value is True: yield buf + 'true' elif value is False: yield buf + 'false' elif isinstance(value, (int, long)): yield buf + str(value) elif isinstance(value, float): yield buf + _floatstr(value) else: yield buf if isinstance(value, (list, tuple)): chunks = _iterencode_list(value, _current_indent_level) elif isinstance(value, dict): chunks = _iterencode_dict(value, _current_indent_level) else: chunks = _iterencode(value, _current_indent_level) for chunk in chunks: yield chunk if newline_indent is not None: _current_indent_level -= 1 yield '\n' + (' ' * (_indent * _current_indent_level)) yield ']' if markers is not None: del markers[markerid] def _iterencode_dict(dct, _current_indent_level): if not dct: yield '{}' return if markers is not None: markerid = id(dct) if markerid in markers: raise ValueError("Circular reference detected") markers[markerid] = dct yield '{' if _indent is not None: _current_indent_level += 1 newline_indent = '\n' + (' ' * (_indent * _current_indent_level)) item_separator = _item_separator + newline_indent yield newline_indent else: newline_indent = None item_separator = _item_separator first = True if _sort_keys: items = dct.items() items.sort(key=lambda kv: kv[0]) else: items = dct.iteritems() for key, value in items: if isinstance(key, basestring): pass # JavaScript is weakly typed for these, so it makes sense to # also allow them. Many encoders seem to do something like this. elif isinstance(key, float): key = _floatstr(key) elif key is True: key = 'true' elif key is False: key = 'false' elif key is None: key = 'null' elif isinstance(key, (int, long)): key = str(key) elif _skipkeys: continue else: raise TypeError("key " + repr(key) + " is not a string") if first: first = False else: yield item_separator yield _encoder(key) yield _key_separator if isinstance(value, basestring): yield _encoder(value) elif value is None: yield 'null' elif value is True: yield 'true' elif value is False: yield 'false' elif isinstance(value, (int, long)): yield str(value) elif isinstance(value, float): yield _floatstr(value) else: if isinstance(value, (list, tuple)): chunks = _iterencode_list(value, _current_indent_level) elif isinstance(value, dict): chunks = _iterencode_dict(value, _current_indent_level) else: chunks = _iterencode(value, _current_indent_level) for chunk in chunks: yield chunk if newline_indent is not None: _current_indent_level -= 1 yield '\n' + (' ' * (_indent * _current_indent_level)) yield '}' if markers is not None: del markers[markerid] def _iterencode(o, _current_indent_level): if isinstance(o, basestring): yield _encoder(o) elif o is None: yield 'null' elif o is True: yield 'true' elif o is False: yield 'false' elif isinstance(o, (int, long)): yield str(o) elif isinstance(o, float): yield _floatstr(o) elif isinstance(o, (list, tuple)): for chunk in _iterencode_list(o, _current_indent_level): yield chunk elif isinstance(o, dict): for chunk in _iterencode_dict(o, _current_indent_level): yield chunk else: if markers is not None: markerid = id(o) if markerid in markers: raise ValueError("Circular reference detected") markers[markerid] = o o = _default(o) for chunk in _iterencode(o, _current_indent_level): yield chunk if markers is not None: del markers[markerid] return _iterencode dist/copy/plugins/jamendo/simplejson/PaxHeaders.26361/scanner.py0000644000175000017500000000012412233027260023305 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.317046939 exaile-3.3.2/plugins/jamendo/simplejson/scanner.py0000644000000000000000000000426312233027260022252 0ustar00rootroot00000000000000"""JSON token scanner """ import re try: from simplejson._speedups import make_scanner as c_make_scanner except ImportError: c_make_scanner = None __all__ = ['make_scanner'] NUMBER_RE = re.compile( r'(-?(?:0|[1-9]\d*))(\.\d+)?([eE][-+]?\d+)?', (re.VERBOSE | re.MULTILINE | re.DOTALL)) def py_make_scanner(context): parse_object = context.parse_object parse_array = context.parse_array parse_string = context.parse_string match_number = NUMBER_RE.match encoding = context.encoding strict = context.strict parse_float = context.parse_float parse_int = context.parse_int parse_constant = context.parse_constant object_hook = context.object_hook def _scan_once(string, idx): try: nextchar = string[idx] except IndexError: raise StopIteration if nextchar == '"': return parse_string(string, idx + 1, encoding, strict) elif nextchar == '{': return parse_object((string, idx + 1), encoding, strict, _scan_once, object_hook) elif nextchar == '[': return parse_array((string, idx + 1), _scan_once) elif nextchar == 'n' and string[idx:idx + 4] == 'null': return None, idx + 4 elif nextchar == 't' and string[idx:idx + 4] == 'true': return True, idx + 4 elif nextchar == 'f' and string[idx:idx + 5] == 'false': return False, idx + 5 m = match_number(string, idx) if m is not None: integer, frac, exp = m.groups() if frac or exp: res = parse_float(integer + (frac or '') + (exp or '')) else: res = parse_int(integer) return res, m.end() elif nextchar == 'N' and string[idx:idx + 3] == 'NaN': return parse_constant('NaN'), idx + 3 elif nextchar == 'I' and string[idx:idx + 8] == 'Infinity': return parse_constant('Infinity'), idx + 8 elif nextchar == '-' and string[idx:idx + 9] == '-Infinity': return parse_constant('-Infinity'), idx + 9 else: raise StopIteration return _scan_once make_scanner = c_make_scanner or py_make_scanner dist/copy/plugins/jamendo/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260021230 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.513046945 exaile-3.3.2/plugins/jamendo/__init__.py0000644000000000000000000004144312233027260020176 0ustar00rootroot00000000000000# Copyright (C) 2009-2010 Erin Drummond # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import gobject import gtk import jamtree import jamapi import menu import os import urllib import hashlib from xl import ( event, settings, providers, trax as xltrack, xdg ) from xl.covers import CoverSearchMethod from xl.nls import gettext as _ from xlgui import ( icons, panel ) from xlgui.widgets.common import DragTreeView JAMENDO_NOTEBOOK_PAGE = None COVERS_METHOD = None def enable(exaile): if (exaile.loading): event.add_callback(_enable, 'exaile_loaded') else: _enable(None, exaile, None) def _enable(eventname, exaile, nothing): global JAMENDO_NOTEBOOK_PAGE, COVERS_METHOD JAMENDO_NOTEBOOK_PAGE = JamendoPanel(exaile.gui.main.window, exaile) exaile.gui.add_panel(*JAMENDO_NOTEBOOK_PAGE.get_panel()) COVERS_METHOD = JamendoCoverSearch() providers.register('covers', COVERS_METHOD) def disable(exaile): global JAMENDO_NOTEBOOK_PAGE, COVERS_METHOD exaile.gui.remove_panel(JAMENDO_NOTEBOOK_PAGE._child) providers.unregister('covers', COVERS_METHOD) class JamendoPanel(panel.Panel): __gsignals__ = { 'append-items': (gobject.SIGNAL_RUN_LAST, None, (object,)), 'download-items': (gobject.SIGNAL_RUN_LAST, None, (object,)), } ui_info = (os.path.dirname(__file__) + "/ui/jamendo_panel.ui", 'JamendoPanelWindow') def __init__(self, parent, exaile): panel.Panel.__init__(self, parent) self.parent = parent self.name = "Jamendo" self.exaile = exaile self.STATUS_READY = _("Ready") self.STATUS_SEARCHING = _("Searching Jamendo catalogue...") self.STATUS_RETRIEVING_DATA = _("Retrieving song data...") self.setup_widgets() #find out whats selected and add the tracks under it to the playlist def add_to_playlist(self): sel = self.get_selected_item() if isinstance(sel, jamtree.Artist): if not sel.expanded: self.expand_artist(sel, True) return for album in sel.albums: if not album.expanded: self.expand_album(album, True) return for album in sel.albums: track_list = [] for track in album.tracks: track_list.append(track) self.add_tracks_to_playlist(track_list) if isinstance(sel, jamtree.Album): if not sel.expanded: self.expand_album(sel, True) return track_list = [] for track in sel.tracks: track_list.append(track) self.add_tracks_to_playlist(track_list) if isinstance(sel, jamtree.Track): self.add_track_to_playlist(sel) #is called when the user wants to download something def download_selected(self): print('It would be really cool if this worked, unfortunately I still need to implement it.') #initialise the widgets def setup_widgets(self): #connect to the signals we listen for self.builder.connect_signals({ 'search_entry_activated' : self.on_search_entry_activated, 'search_entry_icon_release' : self.clear_search_terms, 'refresh_button_clicked' : self.on_search_entry_activated, 'search_combobox_changed' : self.on_search_combobox_changed, 'ordertype_combobox_changed' : self.on_ordertype_combobox_changed, 'orderdirection_combobox_changed' : self.on_orderdirection_combobox_changed, 'results_combobox_changed' : self.on_results_combobox_changed }) #set up the rightclick menu self.menu = menu.JamendoMenu() self.menu.connect('append-items', lambda *e: self.emit('append-items', self.add_to_playlist())) self.menu.connect('download-items', lambda *e: self.emit('download-items', self.download_selected())) #setup images window = gtk.Window() self.artist_image = gtk.gdk.pixbuf_new_from_file(xdg.get_data_path("images/16x16/artist.png")) self.album_image = window.render_icon(gtk.STOCK_CDROM, gtk.ICON_SIZE_SMALL_TOOLBAR) self.title_image = icons.MANAGER.pixbuf_from_icon_name( 'audio-x-generic', gtk.ICON_SIZE_SMALL_TOOLBAR) #setup search combobox self.search_combobox = self.builder.get_object('searchComboBox') self.search_combobox.set_active(settings.get_option('plugin/jamendo/searchtype', 0)) #get handle on search entrybox self.search_textentry = self.builder.get_object('searchEntry') self.search_textentry.set_text(settings.get_option('plugin/jamendo/searchterms', "")) #setup order_by comboboxes self.orderby_type_combobox = self.builder.get_object('orderTypeComboBox') self.orderby_type_combobox.set_active(settings.get_option('plugin/jamendo/ordertype', 0)) self.orderby_direction_combobox = self.builder.get_object('orderDirectionComboBox') self.orderby_direction_combobox.set_active(settings.get_option('plugin/jamendo/orderdirection', 0)) #setup num_results combobox self.numresults_spinbutton = self.builder.get_object('numResultsSpinButton') self.numresults_spinbutton.set_value(settings.get_option('plugin/jamendo/numresults', 10)) #setup status label self.status_label = self.builder.get_object('statusLabel') self.set_status(self.STATUS_READY) #setup results treeview self.treeview = DragTreeView(self) self.treeview.connect("row-expanded", self.row_expanded) self.treeview.set_headers_visible(False) container = self.builder.get_object('treeview_box') scroll = gtk.ScrolledWindow() scroll.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) scroll.add(self.treeview) scroll.set_shadow_type(gtk.SHADOW_IN) container.pack_start(scroll, True, True) container.show_all() selection = self.treeview.get_selection() selection.set_mode(gtk.SELECTION_SINGLE) pb = gtk.CellRendererPixbuf() cell = gtk.CellRendererText() col = gtk.TreeViewColumn('Text') col.pack_start(pb, False) col.pack_start(cell, True) col.set_attributes(pb, pixbuf=0) col.set_attributes(cell, text=1) self.treeview.append_column(col) self.model = gtk.TreeStore(gtk.gdk.Pixbuf, str, gobject.TYPE_PYOBJECT) self.treeview.set_model(self.model) def set_status(self, message): self.status_label.set_text(message) def on_search_combobox_changed(self, box, params=None): settings.set_option('plugin/jamendo/searchtype', box.get_active()) def on_ordertype_combobox_changed(self, box, params=None): settings.set_option('plugin/jamendo/ordertype', box.get_active()) def on_orderdirection_combobox_changed(self, box, params=None): settings.set_option('plugin/jamendo/orderdirection', box.get_active()) def on_results_combobox_changed(self, box, params=None): settings.set_option('plugin/jamendo/numresults', box.get_active()) #is called whenever the user expands a row in the TreeView def row_expanded(self, tree, iter, path): sel = self.get_selected_item() if not sel.expanded: #unexpand node, will get expanded once contents are loaded self.expand_node(sel, False) if isinstance(sel, jamtree.Artist): self.expand_artist(sel, False) if isinstance(sel, jamtree.Album): self.expand_album(sel, False) if isinstance(sel, jamtree.Track): self.add_track_to_playlist(sel) #Expand an artist node (fetch albums for that artist) #artist: The jamtree.Artist object you want to expand the node for #add_to_playlist: Whether or not add_to_playlist() should be called when done def expand_artist(self, artist, add_to_playlist = False): self.set_status(self.STATUS_RETRIEVING_DATA) artist.expanded = True jamapi_thread = jamapi.get_albums(artist, self.expand_artist_callback, add_to_playlist) jamapi_thread.start() #Callback function for when the jamapi thread started in expand_artist() completes #artist: The jamtree.Artist object that should have had its albums populated by the jamapi thread def expand_artist_callback(self, artist, add_to_playlist = False): self.remove_dummy(artist) for album in artist.albums: parent = self.model.append(artist.row_pointer, (self.album_image, album.name, album)) album.row_pointer = parent self.model.append(parent, (self.title_image, "", "")) if add_to_playlist: self.add_to_playlist(); self.expand_node(artist) self.set_status(self.STATUS_READY) #Expand an Album node (fetch tracks for album) #album: the Album object to get tracks for #add_to_playlist: Whether or not add_to_playlist() should be called when done def expand_album(self, album, add_to_playlist = False): self.set_status(self.STATUS_RETRIEVING_DATA) album.expanded = True jamapi_thread = jamapi.get_tracks(album, self.expand_album_callback, add_to_playlist) jamapi_thread.start() #Callback function for when the jamapi thread started in expand_album() completes #album: The jamtree.Album object that should have had its tracks populated by the jamapi thread def expand_album_callback(self, album, add_to_playlist = False): self.remove_dummy(album) for track in album.tracks: parent = self.model.append(album.row_pointer, (self.title_image, track.name, track)) track.row_pointer = parent if (add_to_playlist): self.add_to_playlist() self.expand_node(album) self.set_status(self.STATUS_READY) #removes the first child node of a node def remove_dummy(self, node): iter = node.row_pointer dummy = self.model.iter_children(iter) self.model.remove(dummy) #expands a TreeView node def expand_node(self, node, expand=True): iter = node.row_pointer path = self.model.get_path(iter) if expand: self.treeview.expand_row(path, False) else: self.treeview.collapse_row(path) # is called when a user doubleclicks an item in the TreeView def button_press(self, widget, event): if event.type == gtk.gdk._2BUTTON_PRESS: self.add_to_playlist() elif event.button == 3: self.menu.popup(event) #is called by the search thread when it completed def response_callback(self, collection): self.set_status(self.STATUS_READY) if collection is None: return for item in collection: #add item to treeview image = self.artist_image if isinstance(item, jamtree.Album): image = self.album_image if isinstance(item, jamtree.Track): image = self.title_image parent = self.model.append(None, (image, item.name, item)) item.row_pointer = parent if not isinstance(item, jamtree.Track): self.model.append(parent, (self.artist_image, "", "")) #retrieve and display search results def on_search_entry_activated(self, widget): self.set_status(self.STATUS_SEARCHING) #clear existing search self.model.clear() #get type of search iter = self.search_combobox.get_active_iter() search_type = self.search_combobox.get_model().get_value(iter, 0) iter = self.orderby_type_combobox.get_active_iter() orderby = self.orderby_type_combobox.get_model().get_value(iter, 0) iter = self.orderby_direction_combobox.get_active_iter() direction = self.orderby_direction_combobox.get_model().get_value(iter, 0) orderby += "_" + direction numresults = self.numresults_spinbutton.get_value_as_int() search_term = self.search_textentry.get_text() #save search term settings.set_option('plugin/jamendo/searchterms', search_term) results = None if search_type == 'artist': resultthread = jamapi.get_artist_list(search_term, orderby, numresults, self.response_callback) resultthread.start(); if search_type == 'album': resultthread = jamapi.get_album_list(search_term, orderby, numresults, self.response_callback) resultthread.start() if search_type == 'genre_tags': resultthread = jamapi.get_artist_list_by_genre(search_term, orderby, numresults, self.response_callback) resultthread.start() if search_type == 'track': resultthread = jamapi.get_track_list(search_term, orderby, numresults, self.response_callback) resultthread.start() # clear the search box and results def clear_search_terms(self, entry, icon_pos, event): entry.set_text('') # get the Object (Artist, Album, Track) associated with the currently # selected item in the TreeView def get_selected_item(self): iter = self.treeview.get_selection().get_selected()[1] return self.model.get_value(iter, 2) # get the path for the currently selected item in the TreeView def get_selected_item_path(self): iter = self.treeview.get_selection().get_selected()[1] return self.model.get_path(iter) #get the type of an object def typeof(self, something): return something.__class__ #add a track to the playlist based on its url. #track: a jamtree.Track object def add_track_to_playlist(self, track): self.add_tracks_to_playlist([track]) #add a bunch of tracks to the playlist at once #track_list: a python list of jamtree.Track objects def add_tracks_to_playlist(self, track_list): #convert list to list of xl.Track objects as opposed to jamtree.Track objects xltrack_list = [] for track in track_list: tr = xltrack.Track(track.url, scan=False) tr.set_tag_raw('title', track.name) tr.set_tag_raw('artist', track.artist_name) tr.set_tag_raw('album', track.album_name) xltrack_list.append(tr) self.exaile.gui.main.get_selected_page().playlist.extend(xltrack_list) #dragdrop stuff def drag_data_received(self, *e): print('in drag_data_recieved') pass def drag_data_delete(self, *e): print('in drag_data_delete') pass def drag_get_data(self, treeview, context, selection, target_id, etime): self.add_to_playlist() pass #The following is a custom CoverSearchMethod to retrieve covers from Jamendo #It is designed to only to get covers for streaming tracks from jamendo class JamendoCoverSearch(CoverSearchMethod): name = 'jamendo' use_cache = False # do this since the tracks dont stay on local. fixed = True fixed_priority = 5 # take precendence, since we know we are 'right' # for matching tracks. def find_covers(self, track, limit=-1): jamendo_url = track.get_loc_for_io() #http://stream10.jamendo.com/stream/61541/ogg2/02%20-%20PieRreF%20-%20Hologram.ogg?u=0&h=f2b227d38d split = jamendo_url.split('/') if len(split) > 5 and split[0] == 'http:' and \ split[2].endswith('.jamendo.com'): track_num = split[4] image_url = jamapi.get_album_image_url_from_track(track_num) if image_url: return [image_url] return [] def get_cover_data(self, url): h = urllib.urlopen(url) data = h.read() h.close() return data dist/copy/plugins/jamendo/PaxHeaders.26361/menu.py0000644000175000017500000000012412233027260020435 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.097046932 exaile-3.3.2/plugins/jamendo/menu.py0000644000000000000000000000140012233027260017370 0ustar00rootroot00000000000000import gobject import gtk from xlgui import oldmenu as xlmenu class JamendoMenu(xlmenu.GenericTrackMenu): __gsignals__ = { 'append-items': (gobject.SIGNAL_RUN_LAST, None, ()), 'download-items': (gobject.SIGNAL_RUN_LAST, None, ()), } def __init__(self): xlmenu.GenericTrackMenu.__init__(self); def _create_menu(self): self.append_item = self.append('Append to Current', lambda *e: self.on_append_items(), gtk.STOCK_ADD) self.download_item = self.append('Download to Library', lambda *e: self.on_download(), gtk.STOCK_SAVE) def on_append_items(self, selected=None): self.emit('append-items') def on_download(self, selected=None): self.emit('download-items') dist/copy/plugins/jamendo/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260020514 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/jamendo/PLUGININFO0000644000000000000000000000025512233027260017456 0ustar00rootroot00000000000000Version='0.0.4' Authors=['Erin Drummond '] Name=_('Jamendo') Description=_('Enables access to the Jamendo music catalogue.') Category=_('Media Sources') dist/copy/plugins/jamendo/PaxHeaders.26361/jamtree.py0000644000175000017500000000012412233027260021120 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.565046947 exaile-3.3.2/plugins/jamendo/jamtree.py0000644000000000000000000001004512233027260020060 0ustar00rootroot00000000000000# Copyright (C) 2009-2010 Erin Drummond # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. class TreeItem(object): def __init__(self, id, name, has_been_expanded=False): self._id = id self._name = name self._type = type self._has_been_expanded = has_been_expanded def __repr__(self): return self._name #Getter and Setter crap def get_id(self): return self._id def get_name(self): return self._name def get_has_been_expanded(self): return self._has_been_expanded def set_has_been_expanded(self, value): self._has_been_expanded = value #this is the location in the TreeStore so that child objects can be added to this object (row_pointer should be a TreeIter object) def get_row_pointer(self): return self._row_pointer def set_row_pointer(self, value): self._row_pointer = value id = property(get_id) name = property(get_name) expanded = property(get_has_been_expanded, set_has_been_expanded) row_pointer = property(get_row_pointer, set_row_pointer) class Artist(TreeItem): def __init__(self, id, name, has_been_expanded=False): TreeItem.__init__(self, id, name, has_been_expanded) self._albums = [] #add an album to this artist def add_album(self, album): if isinstance(album, Album): album.artist_name = self.name self._albums.append(album) def get_albums(self): return self._albums albums = property(get_albums) class Album(TreeItem): def __init__(self, id, name, has_been_expanded=False): TreeItem.__init__(self, id, name, has_been_expanded) self._tracks = [] self._artist_name = "Default" def add_track(self, track): if isinstance(track, Track): track.artist_name = self.artist_name track.album_name = self.name self._tracks.append(track) def get_tracks(self): return self._tracks def get_artist_name(self): return self._artist_name def set_artist_name(self, value): self._artist_name = value tracks = property(get_tracks) artist_name = property(get_artist_name, set_artist_name) class Track(TreeItem): def __init__(self, id, name, url): TreeItem.__init__(self, id, name) self._url = url self._artist_name = "http://jamendo.com" self._album = "http://jamendo.com" def get_url(self): return self._url def get_album_name(self): return self._album def set_album_name(self, value): self._album = value def get_artist_name(self): return self._artist_name def set_artist_name(self, value): self._artist_name = value url = property(get_url) #used for adding the track to the playlist initially artist_name = property(get_artist_name, set_artist_name) album_name = property(get_album_name, set_album_name) dist/copy/plugins/jamendo/PaxHeaders.26361/ui0000644000175000017500000000013212233027261017457 xustar000000000000000030 mtime=1382821553.257046937 30 atime=1382821552.789046922 30 ctime=1382821553.257046937 exaile-3.3.2/plugins/jamendo/ui/0000755000000000000000000000000012233027261016475 5ustar00rootroot00000000000000dist/copy/plugins/jamendo/ui/PaxHeaders.26361/jamendo_panel.ui0000644000175000017500000000012412233027260022667 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.257046937 exaile-3.3.2/plugins/jamendo/ui/jamendo_panel.ui0000644000000000000000000003405712233027260021640 0ustar00rootroot00000000000000 True 5 vertical True vertical 3 True True search_categories 1 0 34 34 True True True True gtk-refresh False False 1 0 True True gtk-clear 1 False False 0 True True True vertical True 3 True Order by: False 0 True order_types 1 1 3 0 True 3 True Order direction: False 0 60 True order_directions 1 end 1 1 True 3 True 1 0 True Results: right 0 True True num_results_adjustment 10 False 1 2 2 True Advanced False False 2 1 True 2 True True Ready False False 5 0 False False 2 3 desc Descending asc Ascending 10 10 100 5 10 releasedate Release date rating Rating ratingweek Rating this week ratingmonth Rating this month playlisted Number of playlist additions downloaded Number of downloads listened Number of listens starred Starred starreddate Date of starring artist Artist album Album genre_tags Genre/Tags track Track dist/copy/plugins/PaxHeaders.26361/lyricsfly0000644000175000017500000000013212233027261017445 xustar000000000000000030 mtime=1382821553.697046951 30 atime=1382821552.789046922 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/lyricsfly/0000755000000000000000000000000012233027261016463 5ustar00rootroot00000000000000dist/copy/plugins/lyricsfly/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260021633 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821552.989046928 exaile-3.3.2/plugins/lyricsfly/__init__.py0000644000000000000000000000674112233027260020603 0ustar00rootroot00000000000000try: import xml.etree.cElementTree as ETree except: import xml.etree.ElementTree as ETree import cgi import htmlentitydefs import re import urllib from xl.lyrics import ( LyricSearchMethod, LyricsNotFoundException ) from xl import providers ## Notice. Please request your own key from lyricswiki.com/api. ## DO NOT USE THIS KEY FOR YOUR OWN SOFTWARE. LYRICSFLY_KEY = "46102e76dde1a145b-exaile.org" def enable(exaile): """ Enables the lyric wiki plugin that fetches track lyrics from lyricwiki.org """ providers.register('lyrics', LyricsFly()) def disable(exaile): providers.unregister('lyrics', providers.get_provider('lyrics', 'lyricsfly')) def rep(m): """ LyricsFly api says to replace all foreign and special characters with just %. Yeah, doesn't make sense, but that's what it says """ return re.sub(r"[^a-zA-Z _-]", '%', m).replace('%%', '%') # really kinda surprised there isn't a standard lib implementation of # this. :/ def html_un_entity(text): """ lyricsfly returns lyrics with special characters encoded at html entities, this replaces the entities with their normal forms. """ splitted = text.split("&") res = [] for item in splitted: try: encoded, rest = item.split(";") except ValueError: # no ;, so its not encoded res.append("&" + item) continue if encoded[0] == "#" and encoded[1:].isdigit(): # raw codepoint encoding char = unichr(int(encoded[1:])) else: if not encoded.isalnum(): # all entity defs are alphanumeric res.append("&" + item) continue else: try: char = unichr(htmlentitydefs.name2codepoint[encoded]) except KeyError: # not a known entity res.append("&" + item) continue res.append(char + rest) return u"".join(res)[1:] # remove stray & at start class LyricsFly(LyricSearchMethod): name= "lyricsfly" display_name = "Lyrics Fly" def find_lyrics(self, track): try: artist = track.get_tag_raw("artist")[0] title = track.get_tag_raw("title")[0] except TypeError: raise LyricsNotFoundException search = "http://lyricsfly.com/api/api.php?i=%s&a=%s&t=%s" % ( LYRICSFLY_KEY, rep(artist), rep(title)) try: xml = urllib.urlopen(search).read() except IOError: raise LyricsNotFoundException # Lyrics fly uses xml so we must parse it try: (lyrics, url) = self.parse_xml(xml) except SyntaxError: #happens if it gives us something wierd, like a 403 raise LyricsNotFoundException return (lyrics, self.name, url) def parse_xml(self, xml): """ Parses the xml into the lyrics and the URL """ start = ETree.XML(xml) sg = start.find("sg") if sg: lyrics = sg.find("tx").text lyrics = lyrics.replace("\n", "") lyrics = lyrics.replace("[br]","\n") lyrics = html_un_entity(lyrics) cs = sg.find("cs").text id = sg.find("id").text url = "http://lyricsfly.com/search/view.php?%s&view=%s" % ( urllib.quote_plus(cs), urllib.quote_plus(id)) return (lyrics, url) else: raise LyricsNotFoundException dist/copy/plugins/lyricsfly/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260021117 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/lyricsfly/PLUGININFO0000644000000000000000000000024512233027260020060 0ustar00rootroot00000000000000Version='0.1.0' Authors=['Anthony Waters '] Name=_('Lyrics Fly') Description=_('Plugin to fetch lyrics from lyricsfly.com') Category=_('Lyrics') dist/copy/plugins/PaxHeaders.26361/massstorage0000644000175000017500000000013212233027261017755 xustar000000000000000030 mtime=1382821553.697046951 30 atime=1382821552.789046922 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/massstorage/0000755000000000000000000000000012233027261016773 5ustar00rootroot00000000000000dist/copy/plugins/massstorage/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260022143 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.509046945 exaile-3.3.2/plugins/massstorage/__init__.py0000644000000000000000000001200712233027260021103 0ustar00rootroot00000000000000# Copyright (C) 2009-2010 Aren Olson # # 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, 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. # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. from xl import providers, collection, common from xl.nls import gettext as _ from xl.hal import Handler from xl.devices import Device import dbus import logging, os logger = logging.getLogger(__name__) PROVIDER = None def enable(exaile): global PROVIDER PROVIDER = MassStorageHandler() providers.register("hal", PROVIDER) def disable(exaile): global PROVIDER providers.unregister("hal", PROVIDER) PROVIDER = None class MassStorageDevice(Device): def __init__(self, mountpoints, name=""): if len(mountpoints) == 0: raise ValueError, "Must specify at least one mount point" if not name: name = mountpoints[0].split(os.sep)[-1] Device.__init__(self, name) self._mountpoints = mountpoints self.mountpoints = [] def connect(self): self.mountpoints = [ str(x) for x in self._mountpoints if str(x) is not "" and os.path.exists(unicode(x)) ] if self.mountpoints == []: raise IOError, "Device is not mounted." for mountpoint in self.mountpoints: library = self.library_class(mountpoint) self.collection.add_library(library) self.transfer = collection.TransferQueue( self.collection.get_libraries()[0] ) self.connected = True # set this here so the UI can react def disconnect(self): self.collection = collection.Collection(name=self.name) self.mountpoints = [] self.transfer = None self.connected = False class HalMountpoint(object): """ Class to represent a mountpoint so we can delay HAL mountpoint resolution. """ def __init__(self, hal, udi): self.hal = hal self.udi = udi def __str__(self): udis = self.hal.hal.FindDeviceStringMatch("info.parent", self.udi) for u in udis: obj = self.hal.bus.get_object("org.freedesktop.Hal", u) dev = dbus.Interface(obj, "org.freedesktop.Hal.Device") if dev.GetProperty("volume.is_mounted") == True: return str(dev.GetProperty("volume.mount_point")) return "" class MassStorageHandler(Handler): name = "massstorage" def is_type(self, device, capabilities): if "portable_audio_player" in capabilities: try: if "storage" in device.GetProperty( "portable_audio_player.access_method.protocols"): return 10 except dbus.exceptions.DBusException,e: if not e.get_dbus_name() == "org.freedesktop.Hal.NoSuchProperty": common.log_exception(log=logger) return 0 def get_udis(self, hal): udis = hal.hal.FindDeviceByCapability("portable_audio_player") ret = [] for udi in udis: dev_obj = hal.bus.get_object("org.freedesktop.Hal", udi) device = dbus.Interface(dev_obj, "org.freedesktop.Hal.Device") if device.PropertyExists( "portable_audio_player.access_method.protocols") and \ "storage" in device.GetProperty( "portable_audio_player.access_method.protocols"): ret.append(udi) return ret def device_from_udi(self, hal, udi): mass_obj = hal.bus.get_object("org.freedesktop.Hal", udi) mass = dbus.Interface(mass_obj, "org.freedesktop.Hal.Device") if "storage" not in mass.GetProperty( "portable_audio_player.access_method.protocols"): return u = mass.GetProperty("portable_audio_player.storage_device") mountpoints = [HalMountpoint(hal, u)] name = mass.GetProperty("info.vendor") + " " + \ mass.GetProperty("info.product") massdev = MassStorageDevice(mountpoints, name) return massdev dist/copy/plugins/massstorage/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260021427 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/massstorage/PLUGININFO0000644000000000000000000000034512233027260020371 0ustar00rootroot00000000000000Version='0.0.2' Authors=['Aren Olson '] Name=_('USB Mass Storage Media Player Support') Description=_('Support for accessing portable media players using the USB Mass Storage protocol') Category=_('Devices') dist/copy/plugins/PaxHeaders.26361/ipod0000644000175000017500000000013212233027261016360 xustar000000000000000030 mtime=1382821553.697046951 30 atime=1382821552.793046922 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/ipod/0000755000000000000000000000000012233027261015376 5ustar00rootroot00000000000000dist/copy/plugins/ipod/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260020546 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.509046945 exaile-3.3.2/plugins/ipod/__init__.py0000644000000000000000000001306712233027260017515 0ustar00rootroot00000000000000# 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 3, 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. # Exaile plugin for iPod support, with autodetection import sys, time from xl import common from xl.devices import Device from xl.collection import Collection from xl.trax import Track, is_valid_track from xl import event, providers from xl.hal import Handler import gpod, gobject import dbus import logging logger = logging.getLogger(__name__) _MOUNT_TRIES = 5 # iPod device class class iPod(Device): class_autoconnect = True def __init__(self, volume): self.volume = volume self.name = self.volume.GetProperty("volume.label") if not self.name: # This ipod has not yet been given a name self.name = "Apple iPod Music Player" Device.__init__(self, self.name) self.db = None self._is_mounted = volume.GetProperty("volume.is_mounted") self.mountpoint = None self.collection = Collection("Master") if self._is_mounted: self.mountpoint = str(volume.GetProperty("volume.mount_point")) self.open_db() self.populate_collection() def open_db(self): if self.db: return else: self.db = gpod.Database(mountpoint=self.mountpoint) def populate_collection(self): for track in self.db.get_master(): track_path = self.mountpoint + track["ipod_path"].replace(":", "/") if is_valid_track(track_path): track_object = Track(track_path) if track_object: self.collection.add(track_object) def disconnect(self): """ Disconnect (or in this case 'unmount' the ipod) """ self.connected = False self.db = None @common.threaded def connect(self): """ Connect (or in this case 'mount' the ipod) """ count = 0 while count < _MOUNT_TRIES: is_mounted = self.volume.GetProperty("volume.is_mounted") if is_mounted: break logger.info("iPod not mounted yet, waiting 1 second...") time.sleep(1) count += 1 if not is_mounted: logger.info("Waited %d seconds for a valid mount and could not " "find one. Not autoconnecting iPod plugin." % _MOUNT_TRIES) return self.mountpoint = str(self.volume.GetProperty("volume.mount_point")) self.open_db() self.populate_collection() self.connected = True # iPod provider handled class iPodHandler(Handler): name="ipod" def __init__(self): Handler.__init__(self) self.bus = None def get_udis(self, hal): ret = [] # Based on the code from: https://bugs.launchpad.net/exaile/+bug/135915 self.bus = hal.bus # BAD dev_udi_list = hal.hal.FindDeviceStringMatch('info.category', 'portable_audio_player') for udi in dev_udi_list: udiObj = hal.bus.get_object('org.freedesktop.Hal', udi) udiInt = dbus.Interface(udiObj, 'org.freedesktop.Hal.Device') if udiInt.PropertyExists('info.product') and \ udiInt.GetProperty('info.product').lower() == 'ipod': volList = hal.hal.FindDeviceStringMatch('info.parent', udi) for volUdi in volList: volObj = hal.bus.get_object('org.freedesktop.Hal', volUdi) volInt = dbus.Interface(volObj, 'org.freedesktop.Hal.Device') # The first partition contains ipod firmware, which cannot # be mounted (unless there's only one partition, as # on this ipod nano) if len(volList) == 1 or \ (volInt.PropertyExists('volume.partition.number') and \ int(volInt.GetProperty('volume.partition.number')) != 1): ret.append(volUdi) return ret def is_type(self, device, capabilities): result = 0 parent_udi = device.GetProperty("info.parent") parent_proxy = self.bus.get_object("org.freedesktop.Hal", parent_udi) parent_iface = dbus.Interface(parent_proxy, 'org.freedesktop.Hal.Device') try: parent_protocols = parent_iface.GetProperty( "portable_audio_player.access_method.protocols") if "ipod" in parent_protocols: result = 10 except dbus.DBusException: result = 0 return result def device_from_udi(self, hal, udi): device_proxy = hal.bus.get_object("org.freedesktop.Hal", udi) device_iface = dbus.Interface(device_proxy, 'org.freedesktop.Hal.Device') return iPod(device_iface) ipod_provider = None def enable(exaile): global ipod_provider ipod_provider = iPodHandler() providers.register("hal", ipod_provider) def disable(exaile): global ipod_provider providers.unregister("hal", ipod_provider) ipod_provider = None dist/copy/plugins/ipod/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260020032 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/ipod/PLUGININFO0000644000000000000000000000034112233027260016770 0ustar00rootroot00000000000000Version='0.0.3' Authors=['Andrew Stormont '] Name=_('iPod Support') Description=_('A plugin for iPod support. Read-only for the moment, no transfer.\n\nDepends on python-gpod.') Category=_('Devices') dist/copy/plugins/PaxHeaders.26361/contextinfo0000644000175000017500000000013212233027261017765 xustar000000000000000030 mtime=1382821553.697046951 30 atime=1382821552.793046922 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/contextinfo/0000755000000000000000000000000012233027261017003 5ustar00rootroot00000000000000dist/copy/plugins/contextinfo/PaxHeaders.26361/inspector.py0000644000175000017500000000012412233027260022422 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.257046937 exaile-3.3.2/plugins/contextinfo/inspector.py0000644000000000000000000000606512233027260021371 0ustar00rootroot00000000000000# Copyright (C) 2008 Jan Alonzo # # 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 St, Fifth Floor, Boston, MA 02110-1301 USA import gtk import webkit class Inspector (gtk.Window): def __init__ (self, inspector): """initialize the WebInspector class""" gtk.Window.__init__(self) self.set_default_size(600, 480) self._web_inspector = inspector self._web_inspector.connect("inspect-web-view", self._inspect_web_view_cb) self._web_inspector.connect("show-window", self._show_window_cb) self._web_inspector.connect("attach-window", self._attach_window_cb) self._web_inspector.connect("detach-window", self._detach_window_cb) self._web_inspector.connect("close-window", self._close_window_cb) self._web_inspector.connect("finished", self._finished_cb) self.connect("delete-event", self._close_window_cb) def _inspect_web_view_cb (self, inspector, web_view): """Called when the 'inspect' menu item is activated""" scrolled_window = gtk.ScrolledWindow() scrolled_window.props.hscrollbar_policy = gtk.POLICY_AUTOMATIC scrolled_window.props.vscrollbar_policy = gtk.POLICY_AUTOMATIC webview = webkit.WebView() scrolled_window.add(webview) scrolled_window.show_all() self.add(scrolled_window) return webview def _show_window_cb (self, inspector): """Called when the inspector window should be displayed""" self.present() return True def _attach_window_cb (self, inspector): """Called when the inspector should displayed in the same window as the WebView being inspected """ print "attach" return False def _detach_window_cb (self, inspector): """Called when the inspector should appear in a separate window""" print "detach" return False def _close_window_cb (self, inspector, web_view): """Called when the inspector window should be closed""" print "close" self.hide() return True def _finished_cb (self, inspector): """Called when inspection is done""" print "finished" self._web_inspector = 0 self.destroy() return False dist/copy/plugins/contextinfo/PaxHeaders.26361/extended0000644000175000017500000000013212233027261021565 xustar000000000000000030 mtime=1382821553.321046939 30 atime=1382821552.797046922 30 ctime=1382821553.321046939 exaile-3.3.2/plugins/contextinfo/extended/0000755000000000000000000000000012233027261020603 5ustar00rootroot00000000000000dist/copy/plugins/contextinfo/extended/PaxHeaders.26361/images0000644000175000017500000000013212233027261023032 xustar000000000000000030 mtime=1382821553.265046937 30 atime=1382821552.797046922 30 ctime=1382821553.265046937 exaile-3.3.2/plugins/contextinfo/extended/images/0000755000000000000000000000000012233027261022050 5ustar00rootroot00000000000000dist/copy/plugins/contextinfo/extended/images/PaxHeaders.26361/light.png0000644000175000017500000000012412233027260024724 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.265046937 exaile-3.3.2/plugins/contextinfo/extended/images/light.png0000644000000000000000000001017412233027260023667 0ustar00rootroot00000000000000PNG  IHDRdsRGBbKGDC pHYs  tIME 5&ztEXtCommentCreated with GIMPWIDATxv6EI[|'$0.֍!ԽZ^" A]i/?ϟޗ_oǻ?jل[!KcXιq ќ+BA9Mp1|oV 4.*akqt[2"[!E0g?WlwͲXM8.-x<"GmnsnzH(f{ٙw #qjyt{ucʹg]]ST.rj9_G6gOhɔGo)_1NjF.c*#[sFmgvb>T^ޞ~c%kȼ>x``)UaYs XhTmM MWM2jG=IT%Eʖ2T_ʘYQ][gDrг@#QWPvŹLuF輆* :2tĵҿeccPyq-s3"bD{fQ7Pz#JJoMPTR6&\2M>x|553Rհ]ͬa٨2)po]l\cTWmH|fܢEnӒYϼ* akF`ȉҠ1$T Z!NvGaRm.+zFmwꑱdȹ L(6R](˹&3_l/c#v?7{^5K" M]^Av#aKFE SQxGŸMTVDΒ_NSJYS!eGsa'k՟䲓6 T\U8F4PbC)Migh-ݥկ{~]QQ}=Ln'P?"BڠFul)kyGuPFc8uʱTAFOۘ S=3Tw-1BsxrQn#KK.kODVc+xʼ7]Pcq[W#!EF2x%p.Fz5QQG^yS<.#S>719USQ c3q{uhyURQ6u"UbMQ$e9jt؂֟}?0q ֕ @TS+իv#s8T4#(BfxhyTȝ.p#^=F>T $KrP=յ؋h.]NsVid4x]^WS$_-P vl;YWPz5 PM!|D!@3䀕kvm?S G+d8N)Q9(6^EsAvjU2`;ņN㗹T;HԉqW:-C+Ȑ#s\U#g3SU(Vѫ>Rh$jx*C_8"kuTICLVnK?UfguwV%E#gޗ#:Kd7?QW%OGD&ވ"gGy<P[(42 ]IB2q ]QyF.*BYp\y.]##~:hJީ5PuS'O9FRa;Hn8n,<׸|3oQ6& #KՓ>p u2n{w-I\iT)dpꮺje ǨxFZ׊܈w(y 4:nnsFGn4JsDKhEuG:UOaͷC54OGMd ۓt{6wq)}\{8rȾ={fz '5՛:Oϧ▄:Za8r81hK9Vs>N:i-syɍ0)Bh"щFjM()׾Z[XzDHs~q:zH8ѽʖU+uWq+GP<ϣFW!kg)/6RxFK>/=#VgCʆ.#6p,u$IVIenlcMs8֔Il'87CIu>k'`-:o듼LF{`'kuR_}h,ɻno8mMXw` ?Nv 7iʠڸsHoH@/RIENDB`dist/copy/plugins/contextinfo/extended/images/PaxHeaders.26361/img-back60.png0000644000175000017500000000012412233027260025435 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.257046937 exaile-3.3.2/plugins/contextinfo/extended/images/img-back60.png0000644000000000000000000000064012233027260024375 0ustar00rootroot00000000000000PNG  IHDRBBTsRGBbKGD pHYs  tIME މtEXtCommentCreated with GIMPWIDATx۱ 0?ZtsVPC"mg)dt0{`@W39æBC^LJ !62!f@vX[?!B!B!B!B!B!B!B!B!BaB!B!B!N$'!փw 8[,ƾ5=p.r= }aTj4 %L?M(ˆ/REmO3  IENDB`dist/copy/plugins/contextinfo/extended/images/PaxHeaders.26361/bg-top.png0000644000175000017500000000012412233027260025005 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.165046934 exaile-3.3.2/plugins/contextinfo/extended/images/bg-top.png0000644000000000000000000000030712233027260023745 0ustar00rootroot00000000000000PNG  IHDR u4JsRGBbKGD pHYs  tIME3 wtEXtCommentCreated with GIMPW"IDAT]ġ 0)?jXEaЅt1S IENDB`dist/copy/plugins/contextinfo/extended/PaxHeaders.26361/tag.html0000644000175000017500000000012412233027260023303 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.321046939 exaile-3.3.2/plugins/contextinfo/extended/tag.html0000644000000000000000000000134112233027260022242 0ustar00rootroot00000000000000
%(top-artists-title)s
%(top-artists)s
%(similar-tags-title)s
%(similar-tags)s
%(tag-top-tracks-title)s
%(tag-top-tracks)s
%(tag-top-albums-title)s
%(tag-top-albums)s
dist/copy/plugins/contextinfo/extended/PaxHeaders.26361/artist.html0000644000175000017500000000012412233027260024036 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.161046934 exaile-3.3.2/plugins/contextinfo/extended/artist.html0000644000000000000000000000213112233027260022773 0ustar00rootroot00000000000000
%(artist)s
%(artist-img)s%(artist-info)s
%(artist-tags-title)s
%(artist-tags)s
%(similar-artists-title)s
%(similar-artists)s
%(top-tracks-title)s
%(top-tracks)s
%(albums-title)s
%(albums)s
%(compils-title)s
%(compils)s
dist/copy/plugins/contextinfo/extended/PaxHeaders.26361/default.html0000644000175000017500000000012412233027260024154 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.189046935 exaile-3.3.2/plugins/contextinfo/extended/default.html0000644000000000000000000000212012233027260023107 0ustar00rootroot00000000000000
%(lfm-top-artists-title)s
%(lfm-top-artists)s
%(lfm-last-played-title)s
%(lfm-last-played)s
%(lfm-top-tracks-title)s
%(lfm-top-tracks)s
%(lfm-top-albums-title)s
%(lfm-top-albums:3month:5)s
%(last-added-albums-title)s
%(last-added-albums)s
dist/copy/plugins/contextinfo/extended/PaxHeaders.26361/playing.html0000644000175000017500000000012412233027260024173 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.293046938 exaile-3.3.2/plugins/contextinfo/extended/playing.html0000644000000000000000000000240012233027260023127 0ustar00rootroot00000000000000
%(title)s
%(track-cover)s%(track-info)s
%(track-tags-title)s
%(track-tags)s
%(similar-artists-title)s
%(similar-artists)s
%(suggested-tracks-title)s
%(suggested-tracks)s
%(albums-title)s
%(albums)s
%(compils-title)s
%(compils)s
%(similar-tracks-title)s
%(similar-tracks)s
dist/copy/plugins/contextinfo/extended/PaxHeaders.26361/lyrics.html0000644000175000017500000000012412233027260024035 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.265046937 exaile-3.3.2/plugins/contextinfo/extended/lyrics.html0000644000000000000000000000044712233027260023002 0ustar00rootroot00000000000000
%(lyrics-title)s
%(lyrics)s
dist/copy/plugins/contextinfo/extended/PaxHeaders.26361/js0000644000175000017500000000013212233027261022201 xustar000000000000000030 mtime=1382821553.329046939 30 atime=1382821552.797046922 30 ctime=1382821553.329046939 exaile-3.3.2/plugins/contextinfo/extended/js/0000755000000000000000000000000012233027261021217 5ustar00rootroot00000000000000dist/copy/plugins/contextinfo/extended/js/PaxHeaders.26361/util.js0000644000175000017500000000012412233027260023571 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.329046939 exaile-3.3.2/plugins/contextinfo/extended/js/util.js0000644000000000000000000000657412233027260022545 0ustar00rootroot00000000000000function toggle(id){ elem = document.getElementById(id) if(elem.style.display=='') elem.style.display = 'none'; else elem.style.display = ''; return false; } function toggleElem(elem){ while(elem.style==undefined) elem = elem.nextSibling; if(elem.style.display=='') elem.style.display = 'none'; else elem.style.display = ''; return false; } function hideElem(elem){ while(elem.style==undefined) elem = elem.nextSibling; if(elem.style.display=='') elem.style.display = 'none'; return false; } function doToggleElem(elem){ var id = elem.id elem = elem.nextSibling while(elem.style==undefined) elem = elem.nextSibling; if(elem.style.display==''){ elem.style.display = 'none'; writeCookie(id, 'hide'); } else{ elem.style.display = ''; deleteCookie(id); } return false; } function makeTogglePanels(){ var panels = document.getElementsByClassName('panel'); for(var e=0;e 2) ? argv[2] : null; var path=(argc > 3) ? argv[3] : null; var domain=(argc > 4) ? argv[4] : null; var secure=(argc > 5) ? argv[5] : false; document.cookie=name+"="+escape(value)+ ((expires==null) ? "" : ("; expires="+expires.toGMTString()))+ ((path==null) ? "" : ("; path="+path))+ ((domain==null) ? "" : ("; domain="+domain))+ ((secure==true) ? "; secure" : ""); } function getCookieVal(offset) { var endstr=document.cookie.indexOf (";", offset); if (endstr==-1) endstr=document.cookie.length; return unescape(document.cookie.substring(offset, endstr)); } function readCookie(name) { var arg=name+"="; var alen=arg.length; var clen=document.cookie.length; var i=0; while (i1: self.prev_button.set_sensitive(True) self.next_button.set_sensitive(False) self.history = self.history[-self.history_length:] self.history_index = len(self.history)-1 self.load(page) def prev(self): self.history_index -= 1 self.load(self.history[self.history_index]) self.next_button.set_sensitive(True) if self.history_index == 0: self.prev_button.set_sensitive(False) def next(self): self.history_index +=1 self.load(self.history[self.history_index]) self.prev_button.set_sensitive(True) if len(self.history) == self.history_index+1: self.next_button.set_sensitive(False) def load(self, page): if self.currentpage != page: event.remove_callback(self.on_field_refresh, 'field_refresh', self.currentpage) event.remove_callback(self.on_page_loaded, 'loading_finished', self.currentpage) event.add_callback(self.on_field_refresh, 'field_refresh', page) event.add_callback(self.on_page_loaded, 'loading_finished', page) self.currentpage = page self.refresh_button.set_sensitive(False) self.refresh_button_image.set_from_animation(self.refresh_animation) self.loaded = False self.load_string(self.currentpage.get_html(), "text/html", "utf-8", "file://%s" % self.theme.path) def setup_dnd(self): self.targets = [("text/uri-list", 0, 0)] self.dragging = False self.connect('drag_begin', self.drag_begin) self.connect('drag_end', self.drag_end) self.connect('button_release_event', self.button_release) self.connect('button_press_event', self.button_press) self.connect('drag_data_get', self.drag_get_data) def button_press(self, widget, event): if event.button==3: if self.hover: ContextPopup(self).popup(event) return True else: return True def button_release(self, button, event): if event.button != 1 or self.dragging: self.dragging = False return True def drag_end(self, list, context): self.dragging = False self.drag_dest_set(gtk.DEST_DEFAULT_ALL, self.targets, gtk.gdk.ACTION_COPY|gtk.gdk.ACTION_MOVE) def drag_begin(self, w, context): if self.hover == None: self.drag_source_set_icon_stock(gtk.STOCK_CANCEL) return True self.dragging = True context.drag_abort(gtk.get_current_event_time()) selection = self.get_selected_tracks() if len(selection)>1: self.drag_source_set_icon_stock(gtk.STOCK_DND_MULTIPLE) elif len(selection)>0: self.drag_source_set_icon_stock(gtk.STOCK_DND) return False def get_selected_tracks(self): tmp = self.hover.split('://', 1)[1] if self.hover.split('://')[0]=='track': return [self.currentpage.tracks[int(self.hover.split('://', 1)[1])]] if self.hover.split('://')[0]=='artist': return [x.track for x in search.search_tracks_from_string( ex.exaile().collection, ('artist=="%s"' % tmp), keyword_tags=['album', 'tracknumber'])] if self.hover.split('://')[0]=='album': return [x.track for x in search.search_tracks_from_string( ex.exaile().collection, ('artist=="%s"' % tmp), keyword_tags=['tracknumber'])] if self.hover.split('://')[0]=='tag': return [x.track for x in search.search_tracks_from_string( ex.exaile().collection, ('genre=="%s"' % tmp), keyword_tags=['artist', 'album', 'tracknumber'])] return [] def drag_get_data(self, w, context, selection, target_id, etime): tracks = self.get_selected_tracks() for track in tracks: DragTreeView.dragged_data[track.get_loc_for_io()] = track urls = util.get_uris_from_tracks(tracks) selection.set_uris(urls) def connect_events(self): self.connect('navigation-requested', self._navigation_requested_cb) self.connect('load-finished', self._loading_stop_cb) self.connect("hovering-over-link", self._hover_link_cb) self.connect("populate-popup", self._populate_popup) def _loading_stop_cb(self, view, frame): if self.currentpage: self.currentpage.fill_async_fields() def _hover_link_cb(self, view, title, url): if not self.dragging: if url: self.hover = self.un_url(url) else: self.hover = None def un_url(self, url): return '/'.join(urllib.unquote(urlsplit).decode('idna') for urlsplit in url.split('/')) def on_append_items(self): """ Appends the selected tracks to the current playlist """ selected = self.get_selected_tracks() pl = xlgui.get_controller().main.get_selected_page() if pl: pl.playlist.add_tracks(selected) def _navigation_requested_cb(self, view, frame, networkRequest): link = self.un_url(networkRequest.get_uri()).split('://', 1) self.currentpage.link_clicked(link) if link[0] == 'track': self.on_append_items() return True elif link[0] == 'artist': self.push(ArtistPage(self.theme,link[1])) return True elif link[0] == 'tag': self.push(TagPage(self.theme, link[1])) elif link[0] == 'load': self.refresh_button.set_sensitive(False) self.refresh_button_image.set_from_animation(self.refresh_animation) self.currentpage.async_update_field(link[1]) return True elif link[0] == 'http': self.currentpage=None return False else: for page_provider in self.get_providers(): if page_provider.base == link[0]: self.push(page_provider(self.theme, link[1])) if link[0] in ('album', 'rate'): return True return False def _populate_popup(self, view, menu): type = self.hover.split('://')[0] if type == 'artist': showincolitem = gtk.MenuItem(label="Show in collection") menu.append(showincolitem) showincolitem.connect('activate', self._show_artist) menu.show_all() else: menu.show_all() def _show_artist(self, widget): ex.exaile().gui.panels['collection'].filter.set_text('artist=%s' % self.hover.split('://')[1]) ex.exaile().gui.panel_notebook.set_current_page(0) class ContextTheme(object): LOCAL_COLORS = None def __init__(self, name): self.name = name self.path = BASEDIR+name+os.path.sep self.parse_css() def get_ressource_path(self, ressource): return self.path+ressource def get_css(self): return self.css def parse_css(self): cssfile = open(self.path+'style.css') self.css = cssfile.read() if ContextTheme.LOCAL_COLORS == None: ContextTheme.LOCAL_COLORS = self.get_local_colors() self.css = self.css % ContextTheme.LOCAL_COLORS def to_hex_color(self, color): return '#%x%x%x' % (color.red*255/65535, color.green*255/65535, color.blue*255/65535) def get_local_colors(self): n = ex.exaile().gui.panel_notebook n.realize() style=n.get_style() l=[gtk.STATE_NORMAL,gtk.STATE_ACTIVE,gtk.STATE_PRELIGHT,gtk.STATE_SELECTED,gtk.STATE_INSENSITIVE] s=['normal', 'active', 'prelight', 'selected', 'insensitive'] colors = {} for t in ['base', 'text', 'fg', 'bg']: for i, j in zip(l, s): colors["%s-%s" % (t,j)] = self.to_hex_color(getattr(style, t)[i]) return colors def get_artist_tracks(artist): return [x.track for x in search.search_tracks_from_string( ex.exaile().collection, 'artist=="%s"'%artist.lower().replace('"', ''))] def album_in_collection(artist, album): return len([x.track for x in search.search_tracks_from_string( ex.exaile().collection, ('artist=="%s" album=="%s"' % (artist, album)))])>0 def tag_in_collection(tag): return len([x.track for x in search.search_tracks_from_string( ex.exaile().collection, ('genre=="%s"' % tag))])>0 def artist_in_collection(artist): return len([x.track for x in search.search_tracks_from_string( ex.exaile().collection, ('artist=="%s"' % artist))])>0 def track_in_collection(artist, title): tracks = [x.track for x in search.search_tracks_from_string( ex.exaile().collection, ('artist=="%s" title=="%s"' % (artist, title)))] if len(tracks)>0: return tracks[0] else: return None class ImageBuffer(object): def __init__(self): self.buffer = "" def write(self, str): self.buffer+=str def get_base64(self): return base64.b64encode(self.buffer) def get_image_data(data, size): imbuff = ImageBuffer() try: im = Image.open(StringIO(data)) except Exception: im = Image.open(xdg.get_data_path('images/nocover.png')) im = im.resize(size, Image.ANTIALIAS) im.save(imbuff, "PNG") return 'data:image/png;base64,%s' % imbuff.get_base64() def get_track_cover(track): return ex.exaile().covers.get_cover(track, set_only=True, use_default=True) def get_track_tag(track, tag, default): try: return track.get_tag_display(tag) except: return default def get_top_tracks(field, limit): tracks = [x.track for x in search.search_tracks_from_string( ex.exaile().collection, '! %s==__null__' % field)] tracks = util.sort_tracks([field], tracks, True) return tracks[:limit] def get_top_albums(field, limit): albums = [x.track for x in search.search_tracks_from_string( ex.exaile().collection, '! %s==__null__' % field)] albums = util.sort_tracks([field], albums, True) return albums[:limit] def get_top_artists(field, limit): artists = [x.artist for x in search.search_tracks_from_string( ex.exaile().collection, '! %s==__null__' % field)] artists = util.sort_tracks([field], artists, True) return artists[:limit] class ContextPage(object): def __init__(self, theme, base, template, async=[]): templatefile = open(theme.path+template) self.template = templatefile.read() self.theme = theme self.base = base self.async = async self.reinit() def reinit(self): self.html = None self.data = {} self.setup_icons() self.tracks = [] self.async = [field[0] for field in self.get_template_fields() if field[0] in self.async] self.fill_fields() def link_clicked(self, link): pass def setup_icons(self): self['artist-ico'] = self.get_img_tag(ContextPage.ARTIST_ICO_PATH, True) self['album-ico'] = self.get_img_tag(ContextPage.ALBUM_ICO_PATH, True) self['search-ico'] = self.get_img_tag(ContextPage.SEARCH_ICO_PATH, True) self['track-ico'] = self.get_img_tag(ContextPage.TRACK_ICO_PATH, True) def __getitem__(self, field): if not self.data.has_key(field): self.update_field(field) if not self.data.has_key(field): self.data[field] = '!!UNKNOWN_FIELD: %s!!' % field.replace('-', '_') return self.data[field] def __setitem__(self, field, value): self.data[field] = value def get_template_fields(self): string_field = re.compile('%\((.*?)\)s') fields = [] for m in string_field.finditer(self.template): fields.append(m.group(1).split(':')) return fields[1:] @common.threaded def async_update_field(self, field): field = field.split(':') self.update_field(field[0], *field[1:]) event.log_event('loading_finished', self, None) def update_field(self, name, *params): try: self[name] = getattr(self, '_'+name.replace('-', '_'))(*params) except: self[name] = '' if name in [f[0] for f in self.get_template_fields()]: event.log_event('field_refresh', self, (name, self[name])) def fill_fields(self): for field in self.get_template_fields(): if field[0] not in self.async: self.update_field(*field) @common.threaded def fill_async_fields(self): for field in self.get_template_fields(): if field[0] in self.async and field[0] not in self.data.keys(): self.update_field(*field) event.log_event('loading_finished', self, None) def format_template(self): temp = self.data.copy() reformat = {'style':self.theme.get_css().replace('%', '%%')} for field in self.get_template_fields(): name = field[0] reformat[':'.join(field)] = '%%(%s)s' % name if temp.has_key(name): temp[name] = '%s' % (name, temp[name]) else: temp[name] = '' % name self.html = (self.template % reformat % temp).encode('utf-8') def get_html(self): self.format_template() return self.html def get_img_tag(self, path, local): if local: path = 'file://%s' % path return '' % path def get_artist_href(self, artist): return 'artist://%s' % artist def get_artist_anchor(self, artist): if artist_in_collection(artist): css_class = 'col-artist-link' else: css_class = 'artist-link' return '%s' % (css_class, self.get_artist_href(artist), artist) def get_tag_href(self, tag): return "tag://%s" % tag def get_tag_anchor(self, tag): if tag_in_collection(tag): return '%s' % (self.get_tag_href(tag), tag) else: return '%s' % (self.get_tag_href(tag), tag) def get_album_href(self, album): return "album://%s" % album def get_album_anchor_from_artist_title(self, artist, album): href = self.get_album_href(album) if album_in_collection(artist, album): return '%s by %s' % (self.get_album_href(album), album, artist) else: return '%s by %s' % (self.get_album_href(album), album, artist) def get_rating_html(self, rating): html='' star = xdg.get_data_path("images", "star.png") bstar = xdg.get_data_path("images", "emptystar.png") maximum = settings.get_option("rating/maximum", 5) for i in range(rating): html+='' % (i+1, star) for i in range(maximum-rating): html+='' % (rating+i+1, bstar) return html def get_cds_html(self, tracks): list = [] html = '' cd = '' for tr in tracks: if get_track_tag(tr, 'album', 'unknown').lower() != cd.lower(): if cd != '': html+='
' html+='' cd=get_track_tag(tr, 'album', 'unknown') if cd== 'unknown': track_nbr = len([x.track for x in search.search_tracks_from_string( ex.exaile().collection, 'album==__null__')]) else: track_nbr = len([x.track for x in search.search_tracks_from_string( ex.exaile().collection, 'album=="%s"' % cd)]) cover = get_track_cover(tr) cover_data = get_image_data(cover, (60, 60)) html+='''\ \ \ \ ''' % \ (cd, cover_data, cd, cd, get_track_tag(tr, 'date', ''), track_nbr) anchor = self.get_track_anchor_from_track(tr, img=True) html+='''\ \ ''' % anchor html+='
%s
%s
%s tracks

%s
' return html def get_text_from_track(self, track): return '%s - %s' % (get_track_tag(track, 'artist', 'unknown'),get_track_tag(track, 'title', 'unknown')) def get_href_from_track(self, track): self.tracks.append(track) return 'track://%d' % int(len(self.tracks)-1) def get_track_anchor_from_track(self, track, img=True): css_class = '' try: if track == player.PLAYER.current: css_class = 'current' except: pass if img: img = self['track-ico']+' ' else: img = '' text = self.get_text_from_track(track) href = self.get_href_from_track(track) return "%s%s" % (css_class, href, img, text) def get_track_href_from_artist_title(self, artist, title): track = self.track_in_collection(artist, title) if track == None: return self.get_search_href(artist, title) else: return self.get_href_from_track(track) def get_track_anchor_from_artist_title(self, artist, title, img=True): track = self.track_in_collection(artist, title) if track == None: return self.get_search_anchor(artist, title) else: return self.get_track_anchor_from_track(track, img) def get_search_text(self, artist, title): return '%s - %s' % (artist, title) def get_search_href(self, artist, title): return 'search://%s//%s' % (artist, title) def get_search_anchor(self, artist, title, img=True): if img: img = self['search-ico']+' ' else: img = '' href = self.get_search_href(artist, title) text = self.get_search_text(artist, title) return "%s%s" % (href, img, text) def track_in_collection(self, artist, title): return track_in_collection(artist, title) def __setup_context_page(): '''Some of these icons may not exist''' ContextPage.TRACK_ICO_PATH = xdg.get_data_path('images/16x16/audio-x-generic.png') ContextPage.ARTIST_ICO_PATH = xdg.get_data_path("images/16x16/artist.png") ContextPage.SEARCH_ICO_PATH = None search_icon = gtk.icon_theme_get_default().lookup_icon(gtk.STOCK_FIND, gtk.ICON_SIZE_SMALL_TOOLBAR, gtk.ICON_LOOKUP_NO_SVG) if search_icon is not None: ContextPage.SEARCH_ICON_PATH = search_icon.get_filename() ContextPage.ALBUM_ICO_PATH = None album_icon = gtk.icon_theme_get_default().lookup_icon(gtk.STOCK_CDROM, gtk.ICON_SIZE_SMALL_TOOLBAR, gtk.ICON_LOOKUP_NO_SVG) if album_icon is not None: ContextPage.ALBUM_ICO_PATH = album_icon.get_filename() __setup_context_page() class DefaultPage(ContextPage): def __init__(self, theme, base='default://', template='default.html', async=[]): self.user = None try: self.username = settings.get_option('plugin/lastfm/user') self.password_hash = pylast.md5(settings.get_option('plugin/lastfm/password')) except: self.username = None self.password_hash = None ContextPage.__init__(self, theme, base, template, async+['last-played-tracks', 'last-played-artists', 'last-added-tracks', 'last-added-artists', 'most-played-tracks', 'most-played-artists', 'lfm-last-played', 'lfm-top-tracks', 'lfm-top-albums', 'lfm-top-artists']) def _last_played_tracks_title(self): return "Recently Played Tracks" def _last_played_tracks(self, limit=10): tracks = get_top_tracks('__last_played', int(limit)) return "
".join(self.get_track_anchor_from_track(track, img=True) for track in tracks) def _last_played_albums_title(self): return "Recently Played Albums" def _last_played_albums(self, limit=5): cds = get_top_albums('__last_played', int(limit)) if len(cds)>0: return self.get_cds_html([x.track for x in search.search_tracks_from_string( ex.exaile().collection, ('album=="%s"' % cd for cd in cds), ['album', 'tracknumber'])]) return '' def _last_played_artists_title(self): return "Recently Played Artists" def _last_played_artists(self, limit=10): artists = get_top_artists('__last_played', int(limit)) return ', '.join(self.get_artist_anchor(artist) for artist in artists) def _last_added_tracks_title(self): return "Last Added Tracks" def _last_added_tracks(self, limit=10): tracks = get_top_tracks('__date_added', int(limit)) return "
".join(self.get_track_anchor_from_track(track, img=True) for track in tracks) def _last_added_albums_title(self): return "Last Added Albums" def _last_added_albums(self, limit=3): cds = get_top_albums('__date_added', int(limit)) if len(cds)>0: return self.get_cds_html([x.track for x in search.search_tracks_from_string( ex.exaile().collection, ('album=="%s"' % cd for cd in cds), ['album', 'tracknumber'])]) return '' def _last_added_artists_title(self): return "Last Added Artists" def _last_added_artists(self, limit=10): artists = get_top_artists('__date_added', int(limit)) return ', '.join(self.get_artist_anchor(artist) for artist in artists) def _most_played_tracks_title(self): return "Most Played Tracks" def _most_played_tracks(self, limit=10): tracks = get_top_tracks('__playcount', int(limit)) return "
".join(self.get_track_anchor_from_track(track, img=True) for track in tracks) def _most_played_albums_title(self): return "Most Played Albums" def _most_played_albums(self, limit=5): cds = get_top_albums('__playcount', int(limit)) if len(cds)>0: return self.get_cds_html([x.track for x in search.search_tracks_from_string( ex.exaile().collection, ('album=="%s"' % cd for cd in cds), ['album', 'tracknumber'])]) return '' def _most_played_artists_title(self): return "Most Played Artists" def _most_played_artists(self, limit=10): artists = get_top_artists('__playcount', int(limit)) return ', '.join(self.get_artist_anchor(artist) for artist in artists) def get_lfm_user(self): if not self.user: self.user = pylast.User(self.username, self.password_hash, pylast.network) return self.user def _lfm_last_played_title(self): return "Last Scrobbled Tracks" def _lfm_last_played(self, limit=10): if get_lfm_user(): tracks = self.get_lfm_user().get_recent_tracks(int(limit)) return '
'.join(self.get_track_anchor_from_artist_title(tr.track.get_artist(), tr.track.get_title()) for tr in tracks) return "Enter your username in the settings" def _lfm_top_tracks_title(self): return "Your Top Tracks on Last.fm" def _lfm_top_tracks(self, period='overall', limit=15): if self.get_lfm_user(): tracks = self.get_lfm_user().get_top_tracks(period, int(limit)) return '
'.join(self.get_track_anchor_from_artist_title(tr.track.get_artist(), tr.track.get_title()) for tr in tracks) return "Enter your username in the settings" def _lfm_top_artists_title(self): return "Your Top Artists on Last.fm" def _lfm_top_artists(self, period='overall', limit=20): if self.get_lfm_user(): artists = self.get_lfm_user().get_top_artists(period,int(limit)) return ', '.join(self.get_artist_anchor(artist.item.get_name()) for artist in artists) return "Enter your username in the settings" def _lfm_top_albums_title(self): return "Your Top Albums on Last.fm" def _lfm_top_albums(self, period='overall', limit=10): if self.get_lfm_user(): cds = [album.get_item().get_title() for album in self.get_lfm_user().get_top_albums(period,int(limit))] tracks = [] if len(cds)>0: for cd in cds: tracks+= [x.track for x in search.search_tracks_from_string( ex.exaile().collection, ('album=="%s"' % cd), ['tracknumber'])] return self.get_cds_html(tracks) return "" return "Enter your username in the settings" class ArtistPage(DefaultPage): def __init__(self, theme, artist, base = 'artist://', template ='artist.html', async=[]): self.artist = artist self.lfm_artist = None DefaultPage.__init__(self, theme, base, template, async+['compils', 'albums', 'artist-info', 'artist-img', 'artist-tags', 'similar-artists', 'top-tracks']) def get_lfm_artist(self): if not self.lfm_artist: self.lfm_artist = pylast.Artist(self.artist, pylast.network) return self.lfm_artist def get_template_fields(self): fields = ContextPage.get_template_fields(self) for field in fields: if field[0] in ['albums', 'compils']: fields.remove(field) fields.insert(0, field) return fields def track_in_collection(self, artist, title): if artist == self['artist']: tracks = [x.track for x in search.search_tracks_from_string( ex.exaile().collection, ('artist=="%s" title=="%s"' % (artist, title)))] if len(tracks)>0: return tracks[0] else: return None else: return ContextPage.track_in_collection(self, artist, title) def get_text_from_track(self, track): if self['artist'] == get_track_tag(track, 'artist', ''): return track['title'][0] return ContextPage.get_text_from_track(self, track) def get_search_text(self, artist, title): if self['artist'] == artist: return title else: return ContextPage.get_search_text(self, artist, title) def _artist(self): return self.artist def _artist_img(self, size=pylast.COVER_LARGE): try: url = self.get_lfm_artist().get_cover_image(size) return '' % url except: return '' def _artist_info(self): if self.get_lfm_artist(): bio = self.get_lfm_artist().get_bio_summary() return self.LFMInfoParser(self, str(bio), self['artist']).data return '' def _top_tracks_title(self): return 'Top tracks by %s' % self['artist'] def _top_tracks(self, limit=10): if self.get_lfm_artist(): doc = self.get_lfm_artist().get_top_tracks(int(limit)) return '
'.join(self.get_track_anchor_from_artist_title(self['artist'], tr.get_item().get_title(), img=True) for tr in doc) return '' def _artist_tags_title(self): return "Tags for %s" % self['artist'] def _artist_tags(self, limit=10): if self.get_lfm_artist(): doc = self.get_lfm_artist().get_top_tags(int(limit)) return ', '.join(self.get_tag_anchor(tag.item) for tag in doc) return '' def _compils_title(self): return "Compilations with %s"%self['artist'] def _compils(self): compils = [x.track for x in search.search_tracks_from_string( ex.exaile().collection, '! %s==__null__' % self['artist'])] if len(compils)>0: return self.get_cds_html([x.track for x in search.search_tracks_from_string( ex.exaile().collection, ('album=="%s"' % compil for compil in compils), ['album', 'tracknumber'])]) return '' def _similar_artists_title(self): return "Artists related to %s" % self['artist'] def _similar_artists(self, limit=10): if self.get_lfm_artist(): sim_artists = self.get_lfm_artist().get_similar(int(limit)) return ', '.join(self.get_artist_anchor(sim_artist.item) for sim_artist in sim_artists) return '' def _albums_title(self): return "Albums by %s" % self['artist'] def _albums(self): if len(self.artist_tracks) == 0: return '' else: return self.get_cds_html(ex.exaile().collection.search('__compilation==__null__', tracks=self.artist_tracks, sort_fields=['album', 'tracknumber'])) class LFMInfoParser(HTMLParser.HTMLParser): def __init__(self, outer, data, artist): HTMLParser.HTMLParser.__init__(self) self.outer = outer self.artist = artist self.data = data self.feed(data) self.close() def handle_starttag(self, tag, attrs): global info dic = {} if tag=='a': for attr in attrs: dic[attr[0]] = attr[1] if dic.has_key('class') and dic.has_key('href'): if dic['class'] == 'bbcode_tag': self.data = self.data.replace('bbcode_tag', 'tag-link', 1) self.data = self.data.replace(dic['href'], self.outer.get_tag_href(dic['href'].split('/')[-1].replace('+', ' '))) elif dic['class'] == 'bbcode_album': album = dic['href'].split('/')[-1].replace('+', ' ') self.data = self.data.replace(dic['href'], self.outer.get_album_href(album)) elif dic['class'] == 'bbcode_track': title = dic['href'].split('/')[-1].replace('+', ' ') href = self.outer.get_track_href_from_artist_title(self.artist, title) if href.find('track://')>-1: self.data = self.data.replace('bbcode_track', 'track-link col', 1) else: self.data = self.data.replace('bbcode_track', 'search-link', 1) self.data = self.data.replace(dic['href'], href) elif dic['class'] == 'bbcode_artist': artist = dic['href'].split('/')[-1].replace('+', ' ') if artist_in_collection(artist): self.data = self.data.replace('bbcode_artist', 'artist-link col', 1) else: self.data = self.data.replace('bbcode_artist', 'artist-link', 1) self.data = self.data.replace(dic['href'], self.outer.get_artist_href(artist)) elif dic['class'] == 'bbcode_place': self.data = self.data.replace(dic['href'], "place://%s" % dic['href'].split('/')[-1].replace('+', ' ')) class TagPage(DefaultPage): def __init__(self, theme, tag, base='tag://', template='tag.html', async=[]): self.tag = tag self.lfm_tag = None DefaultPage.__init__(self, theme, base, template, async+['similar-tags', 'top-artists', 'tag-top-tracks', 'tag-top-albums']) def get_lfm_tag(self): if not self.lfm_tag: self.lfm_tag = pylast.Tag(self.tag, pylast.network) return self.lfm_tag def _tag(self): return self.tag def _similar_tags_title(self): return "Tags similar to %s" % self['tag'] def _similar_tags(self): if self.get_lfm_tag(): tags = self.get_lfm_tag().get_similar() return ', '.join(self.get_tag_anchor(tag) for tag in tags[:20]) return '' def _top_artists_title(self): return "Top %s artists" % self.tag def _top_artists(self): if self.get_lfm_tag(): artists = self.get_lfm_tag().get_top_artists() return ', '.join(self.get_artist_anchor(artist.item) for artist in artists[:20]) return '' def _tag_top_tracks_title(self): return "Top %s tracks" % self.tag def _tag_top_tracks(self): if self.get_lfm_tag(): tracks = self.get_lfm_tag().get_top_tracks() return '
'.join(self.get_track_anchor_from_artist_title(track.item.get_artist(), track.item.get_title()) for track in tracks[:15]) return '' def _tag_top_albums_title(self): return "Top %s albums" % self.tag def _tag_top_albums(self): if self.get_lfm_tag(): albums = self.get_lfm_tag().get_top_albums() return '
'.join("%s %s"%(self['album-ico'],self.get_album_anchor_from_artist_title(album.item.get_artist(), album.item.get_name())) for album in albums[:15]) return '' class PlayingPage(ArtistPage): def __init__(self, theme, track, base='playing://', template='playing.html', async=[]): self.track = track self.lfm_track = None ArtistPage.__init__(self, theme, get_track_tag(self.track, 'artist', 'unknown'),base, template, async+['track-tags', 'suggested-tracks', 'similar-tracks', 'lyrics']) event.add_callback(self.refresh_rating, 'rating_changed') def get_lfm_track(self): if not self.lfm_track: self.lfm_track = pylast.Track(get_track_tag(self.track, 'artist', 'unknown'), get_track_tag(self.track, 'title', 'unknown'), pylast.network) return self.lfm_track def link_clicked(self, link): if link[0] == 'rate': self.track.set_rating(int(link[1])) self.refresh_rating() for field in ['rating', 'track-info']: if field in self.get_template_fields(): event.log_event('field_refresh', self, (field, str(self[field]))) return True def _title(self): return get_track_tag(self.track, 'title', 'unknown') def _album(self): return get_track_tag(self.track, 'album', 'unknown') def _track_cover(self): cover = get_track_cover(self.track) cover_data = get_image_data(cover, (100, 100)) return "" % (self.get_album_href(self['album']), cover_data) def _playcount(self): try: self['playcount'] = self.track.get_tag_display('__playcount') if self['playcount'] == None: self['playcount'] = 0 except: self['playcount'] = 0 return self['playcount'] def refresh_rating(self, type=None, object=None, data=None): self.update_field('rating') self.update_field('track-info') def _rating(self): try: self['rating'] = self.track.get_rating() except: self['rating'] = 0 self['rating-html'] = self.get_rating_html(self['rating']) return self['rating'] def _rating_html(self): self._rating() return self['rating-html'] def _date(self): return get_track_tag(self.track, 'date', '') def _track_info(self): return "%s
%s
Track played %s times
%s
%s" % \ (self.get_artist_anchor(self['artist']),self['album'], self['playcount'], self['rating-html'], self['date']) def _track_tags_title(self): return "Tags for %s" % self['title'] def _track_tags(self, limit=10): if self.get_lfm_track(): tags = self.get_lfm_track().get_top_tags(limit) return ', '.join(self.get_tag_anchor(tag.item) for tag in tags) return '' def _suggested_tracks_title(self): return "Suggested tracks for %s" % self['title'] def _suggested_tracks(self): sim_tracks = ex.exaile().dynamic.find_similar_tracks(self.track, limit=10) return '
'.join(self.get_track_anchor_from_track(track, img=True) for track in sim_tracks) def _similar_tracks_title(self): return 'Tracks similar to %s' % self['title'] def _similar_tracks(self, limit=10): if self.get_lfm_track(): doc = self.get_lfm_track().get_similar(int(limit)) return '
'.join(self.get_track_anchor_from_artist_title(str(tr.get_artist()), str(tr.get_title()), img=True) for tr in doc) return '' def _lyrics_title(self): return "Lyrics of %s by %s" % (self['title'],self['artist']) def _lyrics(self): try: l = ex.exaile().lyrics.find_lyrics(self.track) l = "%s

from %s" % (l[0].replace('\n', '
'), l[1]) except: l='No lyrics found' return l class LyricsPage(PlayingPage): def __init__(self, theme, track, base='lyrics://', template='lyrics.html', async=[]): PlayingPage.__init__(self, theme, track, base, template, async) class ContextPanel(gobject.GObject): """ The contextual panel """ ui_info = (BASEDIR+'context.ui', 'ContextPanelWindow') def __init__(self, parent): self.init__(parent, _('Context')) cachedir = os.path.join(xdg.get_data_dirs()[0], 'context') if not os.path.isdir(cachedir): os.mkdir(cachedir) #TODO last.fm class pylast.network = pylast.get_lastfm_network(LFM_API_KEY) pylast.network.enable_caching(os.path.join(cachedir, 'lastfm.cache')) self.controller = parent self.theme = ContextTheme(settings.get_option('context/theme', 'classic')) self._browser = BrowserPage(self.builder, self.theme) self.setup_widgets() def init__(self, parent, name=None): """ Intializes the panel @param controller: the main gui controller """ gobject.GObject.__init__(self) self.name = name self.parent = parent self.builder = gtk.Builder() self.builder.add_from_file(self.ui_info[0]) self._child = None def setup_widgets(self): self._scrolled_window = gtk.ScrolledWindow() self._scrolled_window.props.hscrollbar_policy = gtk.POLICY_AUTOMATIC self._scrolled_window.props.vscrollbar_policy = gtk.POLICY_AUTOMATIC self._scrolled_window.add(self._browser) self._scrolled_window.show_all() frame = self.builder.get_object('ContextFrame') frame.add(self._scrolled_window) def get_panel(self): if not self._child: window = self.builder.get_object(self.ui_info[1]) self._child = window.get_child() window.remove(self._child) if not self.name: self.name = window.get_title() window.destroy() return (self._child, self.name) def get_preferences_pane(): return contextprefs def exaile_ready(object=None, a=None, b=None): global PANEL PANEL = ContextPanel(xlgui.get_controller().main) xlgui.get_controller().add_panel(*PANEL.get_panel()) event.remove_callback(exaile_ready, 'exaile_loaded') def enable(exaile): """ Adds 'Contextual' tab to side panel """ if not exaile.loading: exaile_ready() else: event.add_callback(exaile_ready, 'exaile_loaded') return True def disable(exaile): """ Removes tab """ global PANEL xlgui.get_controller().remove_panel(PANEL.get_panel()[0]) dist/copy/plugins/contextinfo/PaxHeaders.26361/classic0000644000175000017500000000013212233027261021406 xustar000000000000000030 mtime=1382821553.321046939 30 atime=1382821552.797046922 30 ctime=1382821553.321046939 exaile-3.3.2/plugins/contextinfo/classic/0000755000000000000000000000000012233027261020424 5ustar00rootroot00000000000000dist/copy/plugins/contextinfo/classic/PaxHeaders.26361/images0000644000175000017500000000013212233027261022653 xustar000000000000000030 mtime=1382821553.265046937 30 atime=1382821552.797046922 30 ctime=1382821553.265046937 exaile-3.3.2/plugins/contextinfo/classic/images/0000755000000000000000000000000012233027261021671 5ustar00rootroot00000000000000dist/copy/plugins/contextinfo/classic/images/PaxHeaders.26361/light.png0000644000175000017500000000012412233027260024545 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.265046937 exaile-3.3.2/plugins/contextinfo/classic/images/light.png0000644000000000000000000001017412233027260023510 0ustar00rootroot00000000000000PNG  IHDRdsRGBbKGDC pHYs  tIME 5&ztEXtCommentCreated with GIMPWIDATxv6EI[|'$0.֍!ԽZ^" A]i/?ϟޗ_oǻ?jل[!KcXιq ќ+BA9Mp1|oV 4.*akqt[2"[!E0g?WlwͲXM8.-x<"GmnsnzH(f{ٙw #qjyt{ucʹg]]ST.rj9_G6gOhɔGo)_1NjF.c*#[sFmgvb>T^ޞ~c%kȼ>x``)UaYs XhTmM MWM2jG=IT%Eʖ2T_ʘYQ][gDrг@#QWPvŹLuF輆* :2tĵҿeccPyq-s3"bD{fQ7Pz#JJoMPTR6&\2M>x|553Rհ]ͬa٨2)po]l\cTWmH|fܢEnӒYϼ* akF`ȉҠ1$T Z!NvGaRm.+zFmwꑱdȹ L(6R](˹&3_l/c#v?7{^5K" M]^Av#aKFE SQxGŸMTVDΒ_NSJYS!eGsa'k՟䲓6 T\U8F4PbC)Migh-ݥկ{~]QQ}=Ln'P?"BڠFul)kyGuPFc8uʱTAFOۘ S=3Tw-1BsxrQn#KK.kODVc+xʼ7]Pcq[W#!EF2x%p.Fz5QQG^yS<.#S>719USQ c3q{uhyURQ6u"UbMQ$e9jt؂֟}?0q ֕ @TS+իv#s8T4#(BfxhyTȝ.p#^=F>T $KrP=յ؋h.]NsVid4x]^WS$_-P vl;YWPz5 PM!|D!@3䀕kvm?S G+d8N)Q9(6^EsAvjU2`;ņN㗹T;HԉqW:-C+Ȑ#s\U#g3SU(Vѫ>Rh$jx*C_8"kuTICLVnK?UfguwV%E#gޗ#:Kd7?QW%OGD&ވ"gGy<P[(42 ]IB2q ]QyF.*BYp\y.]##~:hJީ5PuS'O9FRa;Hn8n,<׸|3oQ6& #KՓ>p u2n{w-I\iT)dpꮺje ǨxFZ׊܈w(y 4:nnsFGn4JsDKhEuG:UOaͷC54OGMd ۓt{6wq)}\{8rȾ={fz '5՛:Oϧ▄:Za8r81hK9Vs>N:i-syɍ0)Bh"щFjM()׾Z[XzDHs~q:zH8ѽʖU+uWq+GP<ϣFW!kg)/6RxFK>/=#VgCʆ.#6p,u$IVIenlcMs8֔Il'87CIu>k'`-:o듼LF{`'kuR_}h,ɻno8mMXw` ?Nv 7iʠڸsHoH@/RIENDB`dist/copy/plugins/contextinfo/classic/images/PaxHeaders.26361/img-back60.png0000644000175000017500000000012412233027260025256 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.257046937 exaile-3.3.2/plugins/contextinfo/classic/images/img-back60.png0000644000000000000000000000064012233027260024216 0ustar00rootroot00000000000000PNG  IHDRBBTsRGBbKGD pHYs  tIME މtEXtCommentCreated with GIMPWIDATx۱ 0?ZtsVPC"mg)dt0{`@W39æBC^LJ !62!f@vX[?!B!B!B!B!B!B!B!B!BaB!B!B!N$'!փw 8[,ƾ5=p.r= }aTj4 %L?M(ˆ/REmO3  IENDB`dist/copy/plugins/contextinfo/classic/images/PaxHeaders.26361/bg-top.png0000644000175000017500000000012412233027260024626 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.161046934 exaile-3.3.2/plugins/contextinfo/classic/images/bg-top.png0000644000000000000000000000030712233027260023566 0ustar00rootroot00000000000000PNG  IHDR u4JsRGBbKGD pHYs  tIME3 wtEXtCommentCreated with GIMPW"IDAT]ġ 0)?jXEaЅt1S IENDB`dist/copy/plugins/contextinfo/classic/PaxHeaders.26361/tag.html0000644000175000017500000000012412233027260023124 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.321046939 exaile-3.3.2/plugins/contextinfo/classic/tag.html0000644000000000000000000000134112233027260022063 0ustar00rootroot00000000000000
%(top-artists-title)s
%(top-artists)s
%(similar-tags-title)s
%(similar-tags)s
%(tag-top-tracks-title)s
%(tag-top-tracks)s
%(tag-top-albums-title)s
%(tag-top-albums)s
dist/copy/plugins/contextinfo/classic/PaxHeaders.26361/artist.html0000644000175000017500000000012412233027260023657 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.161046934 exaile-3.3.2/plugins/contextinfo/classic/artist.html0000644000000000000000000000213112233027260022614 0ustar00rootroot00000000000000
%(artist)s
%(artist-img)s%(artist-info)s
%(artist-tags-title)s
%(artist-tags)s
%(similar-artists-title)s
%(similar-artists)s
%(top-tracks-title)s
%(top-tracks)s
%(albums-title)s
%(albums)s
%(compils-title)s
%(compils)s
dist/copy/plugins/contextinfo/classic/PaxHeaders.26361/default.html0000644000175000017500000000012412233027260023775 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.189046935 exaile-3.3.2/plugins/contextinfo/classic/default.html0000644000000000000000000000115412233027260022736 0ustar00rootroot00000000000000
%(last-played-tracks-title)s
%(last-played-tracks:10)s
%(most-played-albums-title)s
%(most-played-albums:5)s
%(last-added-albums-title)s
%(last-added-albums:3)s
dist/copy/plugins/contextinfo/classic/PaxHeaders.26361/playing.html0000644000175000017500000000012412233027260024014 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.289046938 exaile-3.3.2/plugins/contextinfo/classic/playing.html0000644000000000000000000000214512233027260022756 0ustar00rootroot00000000000000
%(title)s
%(track-cover)s%(track-info)s
%(track-tags-title)s
%(track-tags)s
%(similar-artists-title)s
%(similar-artists)s
%(suggested-tracks-title)s
%(suggested-tracks)s
%(albums-title)s
%(albums)s
%(compils-title)s
%(compils)s
dist/copy/plugins/contextinfo/classic/PaxHeaders.26361/lyrics.html0000644000175000017500000000012412233027260023656 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.265046937 exaile-3.3.2/plugins/contextinfo/classic/lyrics.html0000644000000000000000000000044712233027260022623 0ustar00rootroot00000000000000
%(lyrics-title)s
%(lyrics)s
dist/copy/plugins/contextinfo/classic/PaxHeaders.26361/js0000644000175000017500000000013212233027261022022 xustar000000000000000030 mtime=1382821553.329046939 30 atime=1382821552.797046922 30 ctime=1382821553.329046939 exaile-3.3.2/plugins/contextinfo/classic/js/0000755000000000000000000000000012233027261021040 5ustar00rootroot00000000000000dist/copy/plugins/contextinfo/classic/js/PaxHeaders.26361/util.js0000644000175000017500000000012412233027260023412 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.329046939 exaile-3.3.2/plugins/contextinfo/classic/js/util.js0000644000000000000000000000657412233027260022366 0ustar00rootroot00000000000000function toggle(id){ elem = document.getElementById(id) if(elem.style.display=='') elem.style.display = 'none'; else elem.style.display = ''; return false; } function toggleElem(elem){ while(elem.style==undefined) elem = elem.nextSibling; if(elem.style.display=='') elem.style.display = 'none'; else elem.style.display = ''; return false; } function hideElem(elem){ while(elem.style==undefined) elem = elem.nextSibling; if(elem.style.display=='') elem.style.display = 'none'; return false; } function doToggleElem(elem){ var id = elem.id elem = elem.nextSibling while(elem.style==undefined) elem = elem.nextSibling; if(elem.style.display==''){ elem.style.display = 'none'; writeCookie(id, 'hide'); } else{ elem.style.display = ''; deleteCookie(id); } return false; } function makeTogglePanels(){ var panels = document.getElementsByClassName('panel'); for(var e=0;e 2) ? argv[2] : null; var path=(argc > 3) ? argv[3] : null; var domain=(argc > 4) ? argv[4] : null; var secure=(argc > 5) ? argv[5] : false; document.cookie=name+"="+escape(value)+ ((expires==null) ? "" : ("; expires="+expires.toGMTString()))+ ((path==null) ? "" : ("; path="+path))+ ((domain==null) ? "" : ("; domain="+domain))+ ((secure==true) ? "; secure" : ""); } function getCookieVal(offset) { var endstr=document.cookie.indexOf (";", offset); if (endstr==-1) endstr=document.cookie.length; return unescape(document.cookie.substring(offset, endstr)); } function readCookie(name) { var arg=name+"="; var alen=arg.length; var clen=document.cookie.length; var i=0; while (i'] Name=_('Contextual Info') Description=_('Show various informations about the track currently playing.\nDepends: libwebkit >= 1.0.1, python-webkit >= 1.1.2, python-imaging (a.k.a. PIL)') Category=_('Information') dist/copy/plugins/contextinfo/PaxHeaders.26361/context_pane.ui0000644000175000017500000000012412233027260023070 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.177046934 exaile-3.3.2/plugins/contextinfo/context_pane.ui0000644000000000000000000001142512233027260022033 0ustar00rootroot00000000000000 True cursor 3 vertical True 0.4699999988079071 Please enter your Last.fm authentication: False False 0 True 2 2 True True False 1 2 1 2 True True 1 2 True 0 6 Password: 1 2 GTK_FILL True 0 6 Username: GTK_FILL False False 4 1 True Sign up for Last.fm True True True none https://www.last.fm/join False False 0 False False 2 dist/copy/plugins/contextinfo/PaxHeaders.26361/pylast.py0000644000175000017500000000012412233027260021730 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.317046939 exaile-3.3.2/plugins/contextinfo/pylast.py0000644000000000000000000034362212233027260020702 0ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # pylast - A Python interface to Last.fm (and other API compatible social networks) # Copyright (C) 2008-2009 Amr Hassan # # 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 # USA # # http://code.google.com/p/pylast/ __version__ = '0.4' __author__ = 'Amr Hassan' __copyright__ = "Copyright (C) 2008-2009 Amr Hassan" __license__ = "gpl" __email__ = 'amr.hassan@gmail.com' import hashlib import httplib import urllib import threading from xml.dom import minidom import xml.dom import time import shelve import tempfile import sys import htmlentitydefs try: import collections except ImportError: pass STATUS_INVALID_SERVICE = 2 STATUS_INVALID_METHOD = 3 STATUS_AUTH_FAILED = 4 STATUS_INVALID_FORMAT = 5 STATUS_INVALID_PARAMS = 6 STATUS_INVALID_RESOURCE = 7 STATUS_TOKEN_ERROR = 8 STATUS_INVALID_SK = 9 STATUS_INVALID_API_KEY = 10 STATUS_OFFLINE = 11 STATUS_SUBSCRIBERS_ONLY = 12 STATUS_INVALID_SIGNATURE = 13 STATUS_TOKEN_UNAUTHORIZED = 14 STATUS_TOKEN_EXPIRED = 15 EVENT_ATTENDING = '0' EVENT_MAYBE_ATTENDING = '1' EVENT_NOT_ATTENDING = '2' PERIOD_OVERALL = 'overall' PERIOD_3MONTHS = '3month' PERIOD_6MONTHS = '6month' PERIOD_12MONTHS = '12month' DOMAIN_ENGLISH = 0 DOMAIN_GERMAN = 1 DOMAIN_SPANISH = 2 DOMAIN_FRENCH = 3 DOMAIN_ITALIAN = 4 DOMAIN_POLISH = 5 DOMAIN_PORTUGUESE = 6 DOMAIN_SWEDISH = 7 DOMAIN_TURKISH = 8 DOMAIN_RUSSIAN = 9 DOMAIN_JAPANESE = 10 DOMAIN_CHINESE = 11 COVER_SMALL = 0 COVER_MEDIUM = 1 COVER_LARGE = 2 COVER_EXTRA_LARGE = 3 COVER_MEGA = 4 IMAGES_ORDER_POPULARITY = "popularity" IMAGES_ORDER_DATE = "dateadded" USER_MALE = 'Male' USER_FEMALE = 'Female' SCROBBLE_SOURCE_USER = "P" SCROBBLE_SOURCE_NON_PERSONALIZED_BROADCAST = "R" SCROBBLE_SOURCE_PERSONALIZED_BROADCAST = "E" SCROBBLE_SOURCE_LASTFM = "L" SCROBBLE_SOURCE_UNKNOWN = "U" SCROBBLE_MODE_PLAYED = "" SCROBBLE_MODE_LOVED = "L" SCROBBLE_MODE_BANNED = "B" SCROBBLE_MODE_SKIPPED = "S" """ A list of the implemented webservices (from http://www.last.fm/api/intro) ===================================== # Album * album.addTags DONE * album.getInfo DONE * album.getTags DONE * album.removeTag DONE * album.search DONE # Artist * artist.addTags DONE * artist.getEvents DONE * artist.getImages DONE * artist.getInfo DONE * artist.getPodcast TODO * artist.getShouts DONE * artist.getSimilar DONE * artist.getTags DONE * artist.getTopAlbums DONE * artist.getTopFans DONE * artist.getTopTags DONE * artist.getTopTracks DONE * artist.removeTag DONE * artist.search DONE * artist.share DONE * artist.shout DONE # Auth * auth.getMobileSession DONE * auth.getSession DONE * auth.getToken DONE # Event * event.attend DONE * event.getAttendees DONE * event.getInfo DONE * event.getShouts DONE * event.share DONE * event.shout DONE # Geo * geo.getEvents * geo.getTopArtists * geo.getTopTracks # Group * group.getMembers DONE * group.getWeeklyAlbumChart DONE * group.getWeeklyArtistChart DONE * group.getWeeklyChartList DONE * group.getWeeklyTrackChart DONE # Library * library.addAlbum DONE * library.addArtist DONE * library.addTrack DONE * library.getAlbums DONE * library.getArtists DONE * library.getTracks DONE # Playlist * playlist.addTrack DONE * playlist.create DONE * playlist.fetch DONE # Radio * radio.getPlaylist * radio.tune # Tag * tag.getSimilar DONE * tag.getTopAlbums DONE * tag.getTopArtists DONE * tag.getTopTags DONE * tag.getTopTracks DONE * tag.getWeeklyArtistChart DONE * tag.getWeeklyChartList DONE * tag.search DONE # Tasteometer * tasteometer.compare DONE # Track * track.addTags DONE * track.ban DONE * track.getInfo DONE * track.getSimilar DONE * track.getTags DONE * track.getTopFans DONE * track.getTopTags DONE * track.love DONE * track.removeTag DONE * track.search DONE * track.share DONE # User * user.getEvents DONE * user.getFriends DONE * user.getInfo DONE * user.getLovedTracks DONE * user.getNeighbours DONE * user.getPastEvents DONE * user.getPlaylists DONE * user.getRecentStations TODO * user.getRecentTracks DONE * user.getRecommendedArtists DONE * user.getRecommendedEvents DONE * user.getShouts DONE * user.getTopAlbums DONE * user.getTopArtists DONE * user.getTopTags DONE * user.getTopTracks DONE * user.getWeeklyAlbumChart DONE * user.getWeeklyArtistChart DONE * user.getWeeklyChartList DONE * user.getWeeklyTrackChart DONE * user.shout DONE # Venue * venue.getEvents DONE * venue.getPastEvents DONE * venue.search DONE """ class Network(object): """ A music social network website that is Last.fm or one exposing a Last.fm compatible API """ def __init__(self, name, homepage, ws_server, api_key, api_secret, session_key, submission_server, username, password_hash, domain_names, urls): """ name: the name of the network homepage: the homepage url ws_server: the url of the webservices server api_key: a provided API_KEY api_secret: a provided API_SECRET session_key: a generated session_key or None submission_server: the url of the server to which tracks are submitted (scrobbled) username: a username of a valid user password_hash: the output of pylast.md5(password) where password is the user's password thingy domain_names: a dict mapping each DOMAIN_* value to a string domain name urls: a dict mapping types to urls if username and password_hash were provided and not session_key, session_key will be generated automatically when needed. Either a valid session_key or a combination of username and password_hash must be present for scrobbling. You should use a preconfigured network object through a get_*_network(...) method instead of creating an object of this class, unless you know what you're doing. """ self.ws_server = ws_server self.submission_server = submission_server self.name = name self.homepage = homepage self.api_key = api_key self.api_secret = api_secret self.session_key = session_key self.username = username self.password_hash = password_hash self.domain_names = domain_names self.urls = urls self.cache_backend = None self.proxy_enabled = False self.proxy = None self.last_call_time = 0 #generate a session_key if necessary if (self.api_key and self.api_secret) and not self.session_key and (self.username and self.password_hash): sk_gen = SessionKeyGenerator(self) self.session_key = sk_gen.get_session_key(self.username, self.password_hash) def get_artist(self, artist_name): """ Return an Artist object """ return Artist(artist_name, self) def get_track(self, artist, title): """ Return a Track object """ return Track(artist, title, self) def get_album(self, artist, title): """ Return an Album object """ return Album(artist, title, self) def get_authenticated_user(self): """ Returns the authenticated user """ return AuthenticatedUser(self) def get_country(self, country_name): """ Returns a country object """ return Country(country_name, self) def get_group(self, name): """ Returns a Group object """ return Group(name, self) def get_user(self, username): """ Returns a user object """ return User(username, self) def get_tag(self, name): """ Returns a tag object """ return Tag(name, self) def get_scrobbler(self, client_id, client_version): """ Returns a Scrobbler object used for submitting tracks to the server Quote from http://www.last.fm/api/submissions: ======== Client identifiers are used to provide a centrally managed database of the client versions, allowing clients to be banned if they are found to be behaving undesirably. The client ID is associated with a version number on the server, however these are only incremented if a client is banned and do not have to reflect the version of the actual client application. During development, clients which have not been allocated an identifier should use the identifier tst, with a version number of 1.0. Do not distribute code or client implementations which use this test identifier. Do not use the identifiers used by other clients. ========= To obtain a new client identifier please contact: * Last.fm: submissions@last.fm * # TODO: list others ...and provide us with the name of your client and its homepage address. """ return Scrobbler(self, client_id, client_version) def _get_language_domain(self, domain_language): """ Returns the mapped domain name of the network to a DOMAIN_* value """ if domain_language in self.domain_names: return self.domain_names[domain_language] def _get_url(self, domain, type): return "http://%s/%s" %(self._get_language_domain(domain), self.urls[type]) def _get_ws_auth(self): """ Returns a (API_KEY, API_SECRET, SESSION_KEY) tuple. """ return (self.api_key, self.api_secret, self.session_key) def _delay_call(self): """ Makes sure that web service calls are at least a second apart """ # delay time in seconds DELAY_TIME = 1.0 now = time.time() if (now - self.last_call_time) < DELAY_TIME: time.sleep(1) self.last_call_time = now def create_new_playlist(self, title, description): """ Creates a playlist for the authenticated user and returns it title: The title of the new playlist. description: The description of the new playlist. """ params = {} params['title'] = _unicode(title) params['description'] = _unicode(description) doc = _Request(self, 'playlist.create', params).execute(False) e_id = doc.getElementsByTagName("id")[0].firstChild.data user = doc.getElementsByTagName('playlists')[0].getAttribute('user') return Playlist(user, e_id, self) def get_top_tags(self, limit=None): """Returns a sequence of the most used tags as a sequence of TopItem objects.""" doc = _Request(self, "tag.getTopTags").execute(True) seq = [] for node in doc.getElementsByTagName("tag"): tag = Tag(_extract(node, "name"), self) weight = _number(_extract(node, "count")) if len(seq) < limit: seq.append(TopItem(tag, weight)) return seq def enable_proxy(self, host, port): """Enable a default web proxy""" self.proxy = [host, _number(port)] self.proxy_enabled = True def disable_proxy(self): """Disable using the web proxy""" self.proxy_enabled = False def is_proxy_enabled(self): """Returns True if a web proxy is enabled.""" return self.proxy_enabled def _get_proxy(self): """Returns proxy details.""" return self.proxy def enable_caching(self, file_path = None): """Enables caching request-wide for all cachable calls. In choosing the backend used for caching, it will try _SqliteCacheBackend first if the module sqlite3 is present. If not, it will fallback to _ShelfCacheBackend which uses shelve.Shelf objects. * file_path: A file path for the backend storage file. If None set, a temp file would probably be created, according the backend. """ if not file_path: file_path = tempfile.mktemp(prefix="pylast_tmp_") self.cache_backend = _ShelfCacheBackend(file_path) def disable_caching(self): """Disables all caching features.""" self.cache_backend = None def is_caching_enabled(self): """Returns True if caching is enabled.""" return not (self.cache_backend == None) def _get_cache_backend(self): return self.cache_backend def search_for_album(self, album_name): """Searches for an album by its name. Returns a AlbumSearch object. Use get_next_page() to retreive sequences of results.""" return AlbumSearch(album_name, self) def search_for_artist(self, artist_name): """Searches of an artist by its name. Returns a ArtistSearch object. Use get_next_page() to retreive sequences of results.""" return ArtistSearch(artist_name, self) def search_for_tag(self, tag_name): """Searches of a tag by its name. Returns a TagSearch object. Use get_next_page() to retreive sequences of results.""" return TagSearch(tag_name, self) def search_for_track(self, artist_name, track_name): """Searches of a track by its name and its artist. Set artist to an empty string if not available. Returns a TrackSearch object. Use get_next_page() to retreive sequences of results.""" return TrackSearch(artist_name, track_name, self) def search_for_venue(self, venue_name, country_name): """Searches of a venue by its name and its country. Set country_name to an empty string if not available. Returns a VenueSearch object. Use get_next_page() to retreive sequences of results.""" return VenueSearch(venue_name, country_name, self) def get_track_by_mbid(self, mbid): """Looks up a track by its MusicBrainz ID""" params = {"mbid": _unicode(mbid)} doc = _Request(self, "track.getInfo", params).execute(True) return Track(_extract(doc, "name", 1), _extract(doc, "name"), self) def get_artist_by_mbid(self, mbid): """Loooks up an artist by its MusicBrainz ID""" params = {"mbid": _unicode(mbid)} doc = _Request(self, "artist.getInfo", params).execute(True) return Artist(_extract(doc, "name"), self) def get_album_by_mbid(self, mbid): """Looks up an album by its MusicBrainz ID""" params = {"mbid": _unicode(mbid)} doc = _Request(self, "album.getInfo", params).execute(True) return Album(_extract(doc, "artist"), _extract(doc, "name"), self) def get_lastfm_network(api_key="", api_secret="", session_key = "", username = "", password_hash = ""): """ Returns a preconfigured Network object for Last.fm api_key: a provided API_KEY api_secret: a provided API_SECRET session_key: a generated session_key or None username: a username of a valid user password_hash: the output of pylast.md5(password) where password is the user's password if username and password_hash were provided and not session_key, session_key will be generated automatically when needed. Either a valid session_key or a combination of username and password_hash must be present for scrobbling. Most read-only webservices only require an api_key and an api_secret, see about obtaining them from: http://www.last.fm/api/account """ return Network ( name = "Last.fm", homepage = "http://last.fm", ws_server = ("ws.audioscrobbler.com", "/2.0/"), api_key = api_key, api_secret = api_secret, session_key = session_key, submission_server = "http://post.audioscrobbler.com:80/", username = username, password_hash = password_hash, domain_names = { DOMAIN_ENGLISH: 'www.last.fm', DOMAIN_GERMAN: 'www.lastfm.de', DOMAIN_SPANISH: 'www.lastfm.es', DOMAIN_FRENCH: 'www.lastfm.fr', DOMAIN_ITALIAN: 'www.lastfm.it', DOMAIN_POLISH: 'www.lastfm.pl', DOMAIN_PORTUGUESE: 'www.lastfm.com.br', DOMAIN_SWEDISH: 'www.lastfm.se', DOMAIN_TURKISH: 'www.lastfm.com.tr', DOMAIN_RUSSIAN: 'www.lastfm.ru', DOMAIN_JAPANESE: 'www.lastfm.jp', DOMAIN_CHINESE: 'cn.last.fm', }, urls = { "album": "music/%(artist)s/%(album)s", "artist": "music/%(artist)s", "event": "event/%(id)s", "country": "place/%(country_name)s", "playlist": "user/%(user)s/library/playlists/%(appendix)s", "tag": "tag/%(name)s", "track": "music/%(artist)s/_/%(title)s", "group": "group/%(name)s", "user": "user/%(name)s", } ) def get_librefm_network(api_key="", api_secret="", session_key = "", username = "", password_hash = ""): """ Returns a preconfigured Network object for Libre.fm api_key: a provided API_KEY api_secret: a provided API_SECRET session_key: a generated session_key or None username: a username of a valid user password_hash: the output of pylast.md5(password) where password is the user's password if username and password_hash were provided and not session_key, session_key will be generated automatically when needed. """ return Network ( name = "Libre.fm", homepage = "http://alpha.dev.libre.fm", ws_server = ("alpha.dev.libre.fm", "/2.0/"), api_key = api_key, api_secret = api_secret, session_key = session_key, submission_server = "http://turtle.libre.fm:80/", username = username, password_hash = password_hash, domain_names = { DOMAIN_ENGLISH: "alpha.dev.libre.fm", DOMAIN_GERMAN: "alpha.dev.libre.fm", DOMAIN_SPANISH: "alpha.dev.libre.fm", DOMAIN_FRENCH: "alpha.dev.libre.fm", DOMAIN_ITALIAN: "alpha.dev.libre.fm", DOMAIN_POLISH: "alpha.dev.libre.fm", DOMAIN_PORTUGUESE: "alpha.dev.libre.fm", DOMAIN_SWEDISH: "alpha.dev.libre.fm", DOMAIN_TURKISH: "alpha.dev.libre.fm", DOMAIN_RUSSIAN: "alpha.dev.libre.fm", DOMAIN_JAPANESE: "alpha.dev.libre.fm", DOMAIN_CHINESE: "alpha.dev.libre.fm", }, urls = { "album": "artist/%(artist)s/album/%(album)s", "artist": "artist/%(artist)s", "event": "event/%(id)s", "country": "place/%(country_name)s", "playlist": "user/%(user)s/library/playlists/%(appendix)s", "tag": "tag/%(name)s", "track": "music/%(artist)s/_/%(title)s", "group": "group/%(name)s", "user": "user/%(name)s", } ) class _ShelfCacheBackend(object): """Used as a backend for caching cacheable requests.""" def __init__(self, file_path = None): try: self.shelf = shelve.open(file_path) except ImportError: import bsddb3 # ArchLinux disabled bsddb in python2, so we have to use the external module _db = bsddb3.hashopen(file_path) self.shelf = shelve.Shelf(_db) def get_xml(self, key): return self.shelf[key] def set_xml(self, key, xml_string): self.shelf[key] = xml_string def has_key(self, key): return key in self.shelf.keys() class _ThreadedCall(threading.Thread): """Facilitates calling a function on another thread.""" def __init__(self, sender, funct, funct_args, callback, callback_args): threading.Thread.__init__(self) self.funct = funct self.funct_args = funct_args self.callback = callback self.callback_args = callback_args self.sender = sender def run(self): output = [] if self.funct: if self.funct_args: output = self.funct(*self.funct_args) else: output = self.funct() if self.callback: if self.callback_args: self.callback(self.sender, output, *self.callback_args) else: self.callback(self.sender, output) class _Request(object): """Representing an abstract web service operation.""" def __init__(self, network, method_name, params = {}): self.params = params self.network = network (self.api_key, self.api_secret, self.session_key) = network._get_ws_auth() self.params["api_key"] = self.api_key self.params["method"] = method_name if network.is_caching_enabled(): self.cache = network._get_cache_backend() if self.session_key: self.params["sk"] = self.session_key self.sign_it() def sign_it(self): """Sign this request.""" if not "api_sig" in self.params.keys(): self.params['api_sig'] = self._get_signature() def _get_signature(self): """Returns a 32-character hexadecimal md5 hash of the signature string.""" keys = self.params.keys()[:] keys.sort() string = "" for name in keys: string += name string += self.params[name] string += self.api_secret return md5(string) def _get_cache_key(self): """The cache key is a string of concatenated sorted names and values.""" keys = self.params.keys() keys.sort() cache_key = str() for key in keys: if key != "api_sig" and key != "api_key" and key != "sk": cache_key += key + _string(self.params[key]) return hashlib.sha1(cache_key).hexdigest() def _get_cached_response(self): """Returns a file object of the cached response.""" if not self._is_cached(): response = self._download_response() self.cache.set_xml(self._get_cache_key(), response) return self.cache.get_xml(self._get_cache_key()) def _is_cached(self): """Returns True if the request is already in cache.""" return self.cache.has_key(self._get_cache_key()) def _download_response(self): """Returns a response body string from the server.""" # Delay the call if necessary #self.network._delay_call() # enable it if you want. data = [] for name in self.params.keys(): data.append('='.join((name, urllib.quote_plus(_string(self.params[name]))))) data = '&'.join(data) headers = { "Content-type": "application/x-www-form-urlencoded", 'Accept-Charset': 'utf-8', 'User-Agent': "pylast" + '/' + __version__ } (HOST_NAME, HOST_SUBDIR) = self.network.ws_server if self.network.is_proxy_enabled(): conn = httplib.HTTPConnection(host = self._get_proxy()[0], port = self._get_proxy()[1]) conn.request(method='POST', url="http://" + HOST_NAME + HOST_SUBDIR, body=data, headers=headers) else: conn = httplib.HTTPConnection(host=HOST_NAME) conn.request(method='POST', url=HOST_SUBDIR, body=data, headers=headers) response = conn.getresponse() response_text = _unicode(response.read()) self._check_response_for_errors(response_text) return response_text def execute(self, cacheable = False): """Returns the XML DOM response of the POST Request from the server""" if self.network.is_caching_enabled() and cacheable: response = self._get_cached_response() else: response = self._download_response() return minidom.parseString(_string(response)) def _check_response_for_errors(self, response): """Checks the response for errors and raises one if any exists.""" doc = minidom.parseString(_string(response)) e = doc.getElementsByTagName('lfm')[0] if e.getAttribute('status') != "ok": e = doc.getElementsByTagName('error')[0] status = e.getAttribute('code') details = e.firstChild.data.strip() raise WSError(self.network, status, details) class SessionKeyGenerator(object): """Methods of generating a session key: 1) Web Authentication: a. network = get_*_network(API_KEY, API_SECRET) b. sg = SessionKeyGenerator(network) c. url = sg.get_web_auth_url() d. Ask the user to open the url and authorize you, and wait for it. e. session_key = sg.get_web_auth_session_key(url) 2) Username and Password Authentication: a. network = get_*_network(API_KEY, API_SECRET) b. username = raw_input("Please enter your username: ") c. password_hash = pylast.md5(raw_input("Please enter your password: ") d. session_key = SessionKeyGenerator(network).get_session_key(username, password_hash) A session key's lifetime is infinie, unless the user provokes the rights of the given API Key. If you create a Network object with just a API_KEY and API_SECRET and a username and a password_hash, a SESSION_KEY will be automatically generated for that network and stored in it so you don't have to do this manually, unless you want to. """ def __init__(self, network): self.network = network self.web_auth_tokens = {} def _get_web_auth_token(self): """Retrieves a token from the network for web authentication. The token then has to be authorized from getAuthURL before creating session. """ request = _Request(self.network, 'auth.getToken') # default action is that a request is signed only when # a session key is provided. request.sign_it() doc = request.execute() e = doc.getElementsByTagName('token')[0] return e.firstChild.data def get_web_auth_url(self): """The user must open this page, and you first, then call get_web_auth_session_key(url) after that.""" token = self._get_web_auth_token() url = '%(homepage)s/api/auth/?api_key=%(api)s&token=%(token)s' % \ {"homepage": self.network.homepage, "api": self.network.api_key, "token": token} self.web_auth_tokens[url] = token return url def get_web_auth_session_key(self, url): """Retrieves the session key of a web authorization process by its url.""" if url in self.web_auth_tokens.keys(): token = self.web_auth_tokens[url] else: token = "" #that's gonna raise a WSError of an unauthorized token when the request is executed. request = _Request(self.network, 'auth.getSession', {'token': token}) # default action is that a request is signed only when # a session key is provided. request.sign_it() doc = request.execute() return doc.getElementsByTagName('key')[0].firstChild.data def get_session_key(self, username, password_hash): """Retrieve a session key with a username and a md5 hash of the user's password.""" params = {"username": username, "authToken": md5(username + password_hash)} request = _Request(self.network, "auth.getMobileSession", params) # default action is that a request is signed only when # a session key is provided. request.sign_it() doc = request.execute() return _extract(doc, "key") def _namedtuple(name, children): """ collections.namedtuple is available in (python >= 2.6) """ v = sys.version_info if v[1] >= 6 and v[0] < 3: return collections.namedtuple(name, children) else: def fancydict(*args): d = {} i = 0 for child in children: d[child.strip()] = args[i] i += 1 return d return fancydict TopItem = _namedtuple("TopItem", ["item", "weight"]) SimilarItem = _namedtuple("SimilarItem", ["item", "match"]) LibraryItem = _namedtuple("LibraryItem", ["item", "playcount", "tagcount"]) PlayedTrack = _namedtuple("PlayedTrack", ["track", "playback_date", "timestamp"]) ImageSizes = _namedtuple("ImageSizes", ["original", "large", "largesquare", "medium", "small", "extralarge"]) Image = _namedtuple("Image", ["title", "url", "dateadded", "format", "owner", "sizes", "votes"]) Shout = _namedtuple("Shout", ["body", "author", "date"]) def _string_output(funct): def r(*args): return _string(funct(*args)) return r class _BaseObject(object): """An abstract webservices object.""" network = None def __init__(self, network): self.network = network def _request(self, method_name, cacheable = False, params = None): if not params: params = self._get_params() return _Request(self.network, method_name, params).execute(cacheable) def _get_params(self): """Returns the most common set of parameters between all objects.""" return {} def __hash__(self): return hash(self.network) + \ hash(str(type(self)) + "".join(self._get_params().keys() + self._get_params().values()).lower()) class _Taggable(object): """Common functions for classes with tags.""" def __init__(self, ws_prefix): self.ws_prefix = ws_prefix def add_tags(self, *tags): """Adds one or several tags. * *tags: Any number of tag names or Tag objects. """ for tag in tags: self._add_tag(tag) def _add_tag(self, tag): """Adds one or several tags. * tag: one tag name or a Tag object. """ if isinstance(tag, Tag): tag = tag.get_name() params = self._get_params() params['tags'] = _unicode(tag) self._request(self.ws_prefix + '.addTags', False, params) def _remove_tag(self, single_tag): """Remove a user's tag from this object.""" if isinstance(single_tag, Tag): single_tag = single_tag.get_name() params = self._get_params() params['tag'] = _unicode(single_tag) self._request(self.ws_prefix + '.removeTag', False, params) def get_tags(self): """Returns a list of the tags set by the user to this object.""" # Uncacheable because it can be dynamically changed by the user. params = self._get_params() doc = self._request(self.ws_prefix + '.getTags', False, params) tag_names = _extract_all(doc, 'name') tags = [] for tag in tag_names: tags.append(Tag(tag, self.network)) return tags def remove_tags(self, *tags): """Removes one or several tags from this object. * *tags: Any number of tag names or Tag objects. """ for tag in tags: self._remove_tag(tag) def clear_tags(self): """Clears all the user-set tags. """ self.remove_tags(*(self.get_tags())) def set_tags(self, *tags): """Sets this object's tags to only those tags. * *tags: any number of tag names. """ c_old_tags = [] old_tags = [] c_new_tags = [] new_tags = [] to_remove = [] to_add = [] tags_on_server = self.get_tags() for tag in tags_on_server: c_old_tags.append(tag.get_name().lower()) old_tags.append(tag.get_name()) for tag in tags: c_new_tags.append(tag.lower()) new_tags.append(tag) for i in range(0, len(old_tags)): if not c_old_tags[i] in c_new_tags: to_remove.append(old_tags[i]) for i in range(0, len(new_tags)): if not c_new_tags[i] in c_old_tags: to_add.append(new_tags[i]) self.remove_tags(*to_remove) self.add_tags(*to_add) def get_top_tags(self, limit = None): """Returns a list of the most frequently used Tags on this object.""" doc = self._request(self.ws_prefix + '.getTopTags', True) elements = doc.getElementsByTagName('tag') seq = [] for element in elements: if limit and len(seq) >= limit: break tag_name = _extract(element, 'name') tagcount = _extract(element, 'count') seq.append(TopItem(Tag(tag_name, self.network), tagcount)) return seq class WSError(Exception): """Exception related to the Network web service""" def __init__(self, network, status, details): self.status = status self.details = details self.network = network @_string_output def __str__(self): return self.details def get_id(self): """Returns the exception ID, from one of the following: STATUS_INVALID_SERVICE = 2 STATUS_INVALID_METHOD = 3 STATUS_AUTH_FAILED = 4 STATUS_INVALID_FORMAT = 5 STATUS_INVALID_PARAMS = 6 STATUS_INVALID_RESOURCE = 7 STATUS_TOKEN_ERROR = 8 STATUS_INVALID_SK = 9 STATUS_INVALID_API_KEY = 10 STATUS_OFFLINE = 11 STATUS_SUBSCRIBERS_ONLY = 12 STATUS_TOKEN_UNAUTHORIZED = 14 STATUS_TOKEN_EXPIRED = 15 """ return self.status class Album(_BaseObject, _Taggable): """An album.""" title = None artist = None def __init__(self, artist, title, network): """ Create an album instance. # Parameters: * artist: An artist name or an Artist object. * title: The album title. """ _BaseObject.__init__(self, network) _Taggable.__init__(self, 'album') if isinstance(artist, Artist): self.artist = artist else: self.artist = Artist(artist, self.network) self.title = title @_string_output def __repr__(self): return u"%s - %s" %(self.get_artist().get_name(), self.get_title()) def __eq__(self, other): return (self.get_title().lower() == other.get_title().lower()) and (self.get_artist().get_name().lower() == other.get_artist().get_name().lower()) def __ne__(self, other): return (self.get_title().lower() != other.get_title().lower()) or (self.get_artist().get_name().lower() != other.get_artist().get_name().lower()) def _get_params(self): return {'artist': self.get_artist().get_name(), 'album': self.get_title(), } def get_artist(self): """Returns the associated Artist object.""" return self.artist def get_title(self): """Returns the album title.""" return self.title def get_name(self): """Returns the album title (alias to Album.get_title).""" return self.get_title() def get_release_date(self): """Retruns the release date of the album.""" return _extract(self._request("album.getInfo", cacheable = True), "releasedate") def get_cover_image(self, size = COVER_EXTRA_LARGE): """ Returns a uri to the cover image size can be one of: COVER_MEGA COVER_EXTRA_LARGE COVER_LARGE COVER_MEDIUM COVER_SMALL """ return _extract_all(self._request("album.getInfo", cacheable = True), 'image')[size] def get_id(self): """Returns the ID""" return _extract(self._request("album.getInfo", cacheable = True), "id") def get_playcount(self): """Returns the number of plays on the network""" return _number(_extract(self._request("album.getInfo", cacheable = True), "playcount")) def get_listener_count(self): """Returns the number of liteners on the network""" return _number(_extract(self._request("album.getInfo", cacheable = True), "listeners")) def get_top_tags(self, limit=None): """Returns a list of the most-applied tags to this album.""" doc = self._request("album.getInfo", True) e = doc.getElementsByTagName("toptags")[0] seq = [] for name in _extract_all(e, "name"): if len(seq) < limit: seq.append(Tag(name, self.network)) return seq def get_tracks(self): """Returns the list of Tracks on this album.""" uri = 'lastfm://playlist/album/%s' %self.get_id() return XSPF(uri, self.network).get_tracks() def get_mbid(self): """Returns the MusicBrainz id of the album.""" return _extract(self._request("album.getInfo", cacheable = True), "mbid") def get_url(self, domain_name = DOMAIN_ENGLISH): """Returns the url of the album page on the network. # Parameters: * domain_name str: The network's language domain. Possible values: o DOMAIN_ENGLISH o DOMAIN_GERMAN o DOMAIN_SPANISH o DOMAIN_FRENCH o DOMAIN_ITALIAN o DOMAIN_POLISH o DOMAIN_PORTUGUESE o DOMAIN_SWEDISH o DOMAIN_TURKISH o DOMAIN_RUSSIAN o DOMAIN_JAPANESE o DOMAIN_CHINESE """ artist = _url_safe(self.get_artist().get_name()) album = _url_safe(self.get_title()) return self.network._get_url(domain_name, "album") %{'artist': artist, 'album': album} def get_wiki_published_date(self): """Returns the date of publishing this version of the wiki.""" doc = self._request("album.getInfo", True) if len(doc.getElementsByTagName("wiki")) == 0: return node = doc.getElementsByTagName("wiki")[0] return _extract(node, "published") def get_wiki_summary(self): """Returns the summary of the wiki.""" doc = self._request("album.getInfo", True) if len(doc.getElementsByTagName("wiki")) == 0: return node = doc.getElementsByTagName("wiki")[0] return _extract(node, "summary") def get_wiki_content(self): """Returns the content of the wiki.""" doc = self._request("album.getInfo", True) if len(doc.getElementsByTagName("wiki")) == 0: return node = doc.getElementsByTagName("wiki")[0] return _extract(node, "content") class Artist(_BaseObject, _Taggable): """An artist.""" name = None def __init__(self, name, network): """Create an artist object. # Parameters: * name str: The artist's name. """ _BaseObject.__init__(self, network) _Taggable.__init__(self, 'artist') self.name = name @_string_output def __repr__(self): return self.get_name() def __eq__(self, other): return self.get_name().lower() == other.get_name().lower() def __ne__(self, other): return self.get_name().lower() != other.get_name().lower() def _get_params(self): return {'artist': self.get_name()} def get_name(self): """Returns the name of the artist.""" return self.name def get_cover_image(self, size = COVER_LARGE): """ Returns a uri to the cover image size can be one of: COVER_MEGA COVER_EXTRA_LARGE COVER_LARGE COVER_MEDIUM COVER_SMALL """ return _extract_all(self._request("artist.getInfo", True), "image")[size] def get_playcount(self): """Returns the number of plays on the network.""" return _number(_extract(self._request("artist.getInfo", True), "playcount")) def get_mbid(self): """Returns the MusicBrainz ID of this artist.""" doc = self._request("artist.getInfo", True) return _extract(doc, "mbid") def get_listener_count(self): """Returns the number of liteners on the network.""" return _number(_extract(self._request("artist.getInfo", True), "listeners")) def is_streamable(self): """Returns True if the artist is streamable.""" return bool(_number(_extract(self._request("artist.getInfo", True), "streamable"))) def get_bio_published_date(self): """Returns the date on which the artist's biography was published.""" return _extract(self._request("artist.getInfo", True), "published") def get_bio_summary(self): """Returns the summary of the artist's biography.""" return _extract(self._request("artist.getInfo", True), "summary") def get_bio_content(self): """Returns the content of the artist's biography.""" return _extract(self._request("artist.getInfo", True), "content") def get_upcoming_events(self): """Returns a list of the upcoming Events for this artist.""" doc = self._request('artist.getEvents', True) ids = _extract_all(doc, 'id') events = [] for e_id in ids: events.append(Event(e_id, self.network)) return events def get_similar(self, limit = None): """Returns the similar artists on the network.""" params = self._get_params() if limit: params['limit'] = _unicode(limit) doc = self._request('artist.getSimilar', True, params) names = _extract_all(doc, "name") matches = _extract_all(doc, "match") artists = [] for i in range(0, len(names)): artists.append(SimilarItem(Artist(names[i], self.network), _number(matches[i]))) return artists def get_top_albums(self): """Retuns a list of the top albums.""" doc = self._request('artist.getTopAlbums', True) seq = [] for node in doc.getElementsByTagName("album"): name = _extract(node, "name") artist = _extract(node, "name", 1) playcount = _extract(node, "playcount") seq.append(TopItem(Album(artist, name, self.network), playcount)) return seq def get_top_tracks(self): """Returns a list of the most played Tracks by this artist.""" doc = self._request("artist.getTopTracks", True) seq = [] for track in doc.getElementsByTagName('track'): title = _extract(track, "name") artist = _extract(track, "name", 1) playcount = _number(_extract(track, "playcount")) seq.append( TopItem(Track(artist, title, self.network), playcount) ) return seq def get_top_fans(self, limit = None): """Returns a list of the Users who played this artist the most. # Parameters: * limit int: Max elements. """ doc = self._request('artist.getTopFans', True) seq = [] elements = doc.getElementsByTagName('user') for element in elements: if limit and len(seq) >= limit: break name = _extract(element, 'name') weight = _number(_extract(element, 'weight')) seq.append(TopItem(User(name, self.network), weight)) return seq def share(self, users, message = None): """Shares this artist (sends out recommendations). # Parameters: * users [User|str,]: A list that can contain usernames, emails, User objects, or all of them. * message str: A message to include in the recommendation message. """ #last.fm currently accepts a max of 10 recipient at a time while(len(users) > 10): section = users[0:9] users = users[9:] self.share(section, message) nusers = [] for user in users: if isinstance(user, User): nusers.append(user.get_name()) else: nusers.append(user) params = self._get_params() recipients = ','.join(nusers) params['recipient'] = recipients if message: params['message'] = _unicode(message) self._request('artist.share', False, params) def get_url(self, domain_name = DOMAIN_ENGLISH): """Returns the url of the artist page on the network. # Parameters: * domain_name: The network's language domain. Possible values: o DOMAIN_ENGLISH o DOMAIN_GERMAN o DOMAIN_SPANISH o DOMAIN_FRENCH o DOMAIN_ITALIAN o DOMAIN_POLISH o DOMAIN_PORTUGUESE o DOMAIN_SWEDISH o DOMAIN_TURKISH o DOMAIN_RUSSIAN o DOMAIN_JAPANESE o DOMAIN_CHINESE """ artist = _url_safe(self.get_name()) return self.network._get_url(domain_name, "artist") %{'artist': artist} def get_images(self, order=IMAGES_ORDER_POPULARITY, limit=None): """ Returns a sequence of Image objects if limit is None it will return all order can be IMAGES_ORDER_POPULARITY or IMAGES_ORDER_DATE """ images = [] params = self._get_params() params["order"] = order nodes = _collect_nodes(limit, self, "artist.getImages", True, params) for e in nodes: if _extract(e, "name"): user = User(_extract(e, "name"), self.network) else: user = None images.append(Image( _extract(e, "title"), _extract(e, "url"), _extract(e, "dateadded"), _extract(e, "format"), user, ImageSizes(*_extract_all(e, "size")), (_extract(e, "thumbsup"), _extract(e, "thumbsdown")) ) ) return images def get_shouts(self, limit=50): """ Returns a sequqence of Shout objects """ shouts = [] for node in _collect_nodes(limit, self, "artist.getShouts", False): shouts.append(Shout( _extract(node, "body"), User(_extract(node, "author"), self.network), _extract(node, "date") ) ) return shouts def shout(self, message): """ Post a shout """ params = self._get_params() params["message"] = message self._request("artist.Shout", False, params) class Event(_BaseObject): """An event.""" id = None def __init__(self, event_id, network): _BaseObject.__init__(self, network) self.id = _unicode(event_id) @_string_output def __repr__(self): return "Event #" + self.get_id() def __eq__(self, other): return self.get_id() == other.get_id() def __ne__(self, other): return self.get_id() != other.get_id() def _get_params(self): return {'event': self.get_id()} def attend(self, attending_status): """Sets the attending status. * attending_status: The attending status. Possible values: o EVENT_ATTENDING o EVENT_MAYBE_ATTENDING o EVENT_NOT_ATTENDING """ params = self._get_params() params['status'] = _unicode(attending_status) self._request('event.attend', False, params) def get_attendees(self): """ Get a list of attendees for an event """ doc = self._request("event.getAttendees", False) users = [] for name in _extract_all(doc, "name"): users.append(User(name, self.network)) return users def get_id(self): """Returns the id of the event on the network. """ return self.id def get_title(self): """Returns the title of the event. """ doc = self._request("event.getInfo", True) return _extract(doc, "title") def get_headliner(self): """Returns the headliner of the event. """ doc = self._request("event.getInfo", True) return Artist(_extract(doc, "headliner"), self.network) def get_artists(self): """Returns a list of the participating Artists. """ doc = self._request("event.getInfo", True) names = _extract_all(doc, "artist") artists = [] for name in names: artists.append(Artist(name, self.network)) return artists def get_venue(self): """Returns the venue where the event is held.""" doc = self._request("event.getInfo", True) v = doc.getElementsByTagName("venue")[0] venue_id = _number(_extract(v, "id")) return Venue(venue_id, self.network) def get_start_date(self): """Returns the date when the event starts.""" doc = self._request("event.getInfo", True) return _extract(doc, "startDate") def get_description(self): """Returns the description of the event. """ doc = self._request("event.getInfo", True) return _extract(doc, "description") def get_cover_image(self, size = COVER_LARGE): """ Returns a uri to the cover image size can be one of: COVER_MEGA COVER_EXTRA_LARGE COVER_LARGE COVER_MEDIUM COVER_SMALL """ doc = self._request("event.getInfo", True) return _extract_all(doc, "image")[size] def get_attendance_count(self): """Returns the number of attending people. """ doc = self._request("event.getInfo", True) return _number(_extract(doc, "attendance")) def get_review_count(self): """Returns the number of available reviews for this event. """ doc = self._request("event.getInfo", True) return _number(_extract(doc, "reviews")) def get_url(self, domain_name = DOMAIN_ENGLISH): """Returns the url of the event page on the network. * domain_name: The network's language domain. Possible values: o DOMAIN_ENGLISH o DOMAIN_GERMAN o DOMAIN_SPANISH o DOMAIN_FRENCH o DOMAIN_ITALIAN o DOMAIN_POLISH o DOMAIN_PORTUGUESE o DOMAIN_SWEDISH o DOMAIN_TURKISH o DOMAIN_RUSSIAN o DOMAIN_JAPANESE o DOMAIN_CHINESE """ return self.network._get_url(domain_name, "event") %{'id': self.get_id()} def share(self, users, message = None): """Shares this event (sends out recommendations). * users: A list that can contain usernames, emails, User objects, or all of them. * message: A message to include in the recommendation message. """ #last.fm currently accepts a max of 10 recipient at a time while(len(users) > 10): section = users[0:9] users = users[9:] self.share(section, message) nusers = [] for user in users: if isinstance(user, User): nusers.append(user.get_name()) else: nusers.append(user) params = self._get_params() recipients = ','.join(nusers) params['recipient'] = recipients if message: params['message'] = _unicode(message) self._request('event.share', False, params) def get_shouts(self, limit=50): """ Returns a sequqence of Shout objects """ shouts = [] for node in _collect_nodes(limit, self, "event.getShouts", False): shouts.append(Shout( _extract(node, "body"), User(_extract(node, "author"), self.network), _extract(node, "date") ) ) return shouts def shout(self, message): """ Post a shout """ params = self._get_params() params["message"] = message self._request("event.Shout", False, params) class Country(_BaseObject): """A country at Last.fm.""" name = None def __init__(self, name, network): _BaseObject.__init__(self, network) self.name = name @_string_output def __repr__(self): return self.get_name() def __eq__(self, other): return self.get_name().lower() == other.get_name().lower() def __ne__(self, other): return self.get_name() != other.get_name() def _get_params(self): return {'country': self.get_name()} def _get_name_from_code(self, alpha2code): # TODO: Have this function lookup the alpha-2 code and return the country name. return alpha2code def get_name(self): """Returns the country name. """ return self.name def get_top_artists(self): """Returns a sequence of the most played artists.""" doc = self._request('geo.getTopArtists', True) seq = [] for node in doc.getElementsByTagName("artist"): name = _extract(node, 'name') playcount = _extract(node, "playcount") seq.append(TopItem(Artist(name, self.network), playcount)) return seq def get_top_tracks(self): """Returns a sequence of the most played tracks""" doc = self._request("geo.getTopTracks", True) seq = [] for n in doc.getElementsByTagName('track'): title = _extract(n, 'name') artist = _extract(n, 'name', 1) playcount = _number(_extract(n, "playcount")) seq.append( TopItem(Track(artist, title, self.network), playcount)) return seq def get_url(self, domain_name = DOMAIN_ENGLISH): """Returns the url of the event page on the network. * domain_name: The network's language domain. Possible values: o DOMAIN_ENGLISH o DOMAIN_GERMAN o DOMAIN_SPANISH o DOMAIN_FRENCH o DOMAIN_ITALIAN o DOMAIN_POLISH o DOMAIN_PORTUGUESE o DOMAIN_SWEDISH o DOMAIN_TURKISH o DOMAIN_RUSSIAN o DOMAIN_JAPANESE o DOMAIN_CHINESE """ country_name = _url_safe(self.get_name()) return self.network._get_url(domain_name, "country") %{'country_name': country_name} class Library(_BaseObject): """A user's Last.fm library.""" user = None def __init__(self, user, network): _BaseObject.__init__(self, network) if isinstance(user, User): self.user = user else: self.user = User(user, self.network) self._albums_index = 0 self._artists_index = 0 self._tracks_index = 0 @_string_output def __repr__(self): return repr(self.get_user()) + "'s Library" def _get_params(self): return {'user': self.user.get_name()} def get_user(self): """Returns the user who owns this library.""" return self.user def add_album(self, album): """Add an album to this library.""" params = self._get_params() params["artist"] = album.get_artist.get_name() params["album"] = album.get_name() self._request("library.addAlbum", False, params) def add_artist(self, artist): """Add an artist to this library.""" params = self._get_params() params["artist"] = artist.get_name() self._request("library.addArtist", False, params) def add_track(self, track): """Add a track to this library.""" params = self._get_params() params["track"] = track.get_title() self._request("library.addTrack", False, params) def get_albums(self, limit=50): """ Returns a sequence of Album objects if limit==None it will return all (may take a while) """ seq = [] for node in _collect_nodes(limit, self, "library.getAlbums", True): name = _extract(node, "name") artist = _extract(node, "name", 1) playcount = _number(_extract(node, "playcount")) tagcount = _number(_extract(node, "tagcount")) seq.append(LibraryItem(Album(artist, name, self.network), playcount, tagcount)) return seq def get_artists(self, limit=50): """ Returns a sequence of Album objects if limit==None it will return all (may take a while) """ seq = [] for node in _collect_nodes(limit, self, "library.getArtists", True): name = _extract(node, "name") playcount = _number(_extract(node, "playcount")) tagcount = _number(_extract(node, "tagcount")) seq.append(LibraryItem(Artist(name, self.network), playcount, tagcount)) return seq def get_tracks(self, limit=50): """ Returns a sequence of Album objects if limit==None it will return all (may take a while) """ seq = [] for node in _collect_nodes(limit, self, "library.getTracks", True): name = _extract(node, "name") artist = _extract(node, "name", 1) playcount = _number(_extract(node, "playcount")) tagcount = _number(_extract(node, "tagcount")) seq.append(LibraryItem(Track(artist, name, self.network), playcount, tagcount)) return seq class Playlist(_BaseObject): """A Last.fm user playlist.""" id = None user = None def __init__(self, user, id, network): _BaseObject.__init__(self, network) if isinstance(user, User): self.user = user else: self.user = User(user, self.network) self.id = _unicode(id) @_string_output def __repr__(self): return repr(self.user) + "'s playlist # " + repr(self.id) def _get_info_node(self): """Returns the node from user.getPlaylists where this playlist's info is.""" doc = self._request("user.getPlaylists", True) for node in doc.getElementsByTagName("playlist"): if _extract(node, "id") == str(self.get_id()): return node def _get_params(self): return {'user': self.user.get_name(), 'playlistID': self.get_id()} def get_id(self): """Returns the playlist id.""" return self.id def get_user(self): """Returns the owner user of this playlist.""" return self.user def get_tracks(self): """Returns a list of the tracks on this user playlist.""" uri = u'lastfm://playlist/%s' %self.get_id() return XSPF(uri, self.network).get_tracks() def add_track(self, track): """Adds a Track to this Playlist.""" params = self._get_params() params['artist'] = track.get_artist().get_name() params['track'] = track.get_title() self._request('playlist.addTrack', False, params) def get_title(self): """Returns the title of this playlist.""" return _extract(self._get_info_node(), "title") def get_creation_date(self): """Returns the creation date of this playlist.""" return _extract(self._get_info_node(), "date") def get_size(self): """Returns the number of tracks in this playlist.""" return _number(_extract(self._get_info_node(), "size")) def get_description(self): """Returns the description of this playlist.""" return _extract(self._get_info_node(), "description") def get_duration(self): """Returns the duration of this playlist in milliseconds.""" return _number(_extract(self._get_info_node(), "duration")) def is_streamable(self): """Returns True if the playlist is streamable. For a playlist to be streamable, it needs at least 45 tracks by 15 different artists.""" if _extract(self._get_info_node(), "streamable") == '1': return True else: return False def has_track(self, track): """Checks to see if track is already in the playlist. * track: Any Track object. """ return track in self.get_tracks() def get_cover_image(self, size = COVER_LARGE): """ Returns a uri to the cover image size can be one of: COVER_MEGA COVER_EXTRA_LARGE COVER_LARGE COVER_MEDIUM COVER_SMALL """ return _extract(self._get_info_node(), "image")[size] def get_url(self, domain_name = DOMAIN_ENGLISH): """Returns the url of the playlist on the network. * domain_name: The network's language domain. Possible values: o DOMAIN_ENGLISH o DOMAIN_GERMAN o DOMAIN_SPANISH o DOMAIN_FRENCH o DOMAIN_ITALIAN o DOMAIN_POLISH o DOMAIN_PORTUGUESE o DOMAIN_SWEDISH o DOMAIN_TURKISH o DOMAIN_RUSSIAN o DOMAIN_JAPANESE o DOMAIN_CHINESE """ english_url = _extract(self._get_info_node(), "url") appendix = english_url[english_url.rfind("/") + 1:] return self.network._get_url(domain_name, "playlist") %{'appendix': appendix, "user": self.get_user().get_name()} class Tag(_BaseObject): """A Last.fm object tag.""" # TODO: getWeeklyArtistChart (too lazy, i'll wait for when someone requests it) name = None def __init__(self, name, network): _BaseObject.__init__(self, network) self.name = name def _get_params(self): return {'tag': self.get_name()} @_string_output def __repr__(self): return self.get_name() def __eq__(self, other): return self.get_name().lower() == other.get_name().lower() def __ne__(self, other): return self.get_name().lower() != other.get_name().lower() def get_name(self): """Returns the name of the tag. """ return self.name def get_similar(self): """Returns the tags similar to this one, ordered by similarity. """ doc = self._request('tag.getSimilar', True) seq = [] names = _extract_all(doc, 'name') for name in names: seq.append(Tag(name, self.network)) return seq def get_top_albums(self): """Retuns a list of the top albums.""" doc = self._request('tag.getTopAlbums', True) seq = [] for node in doc.getElementsByTagName("album"): name = _extract(node, "name") artist = _extract(node, "name", 1) playcount = _extract(node, "playcount") seq.append(TopItem(Album(artist, name, self.network), playcount)) return seq def get_top_tracks(self): """Returns a list of the most played Tracks by this artist.""" doc = self._request("tag.getTopTracks", True) seq = [] for track in doc.getElementsByTagName('track'): title = _extract(track, "name") artist = _extract(track, "name", 1) playcount = _number(_extract(track, "playcount")) seq.append( TopItem(Track(artist, title, self.network), playcount) ) return seq def get_top_artists(self): """Returns a sequence of the most played artists.""" doc = self._request('tag.getTopArtists', True) seq = [] for node in doc.getElementsByTagName("artist"): name = _extract(node, 'name') playcount = _extract(node, "playcount") seq.append(TopItem(Artist(name, self.network), playcount)) return seq def get_weekly_chart_dates(self): """Returns a list of From and To tuples for the available charts.""" doc = self._request("tag.getWeeklyChartList", True) seq = [] for node in doc.getElementsByTagName("chart"): seq.append( (node.getAttribute("from"), node.getAttribute("to")) ) return seq def get_weekly_artist_charts(self, from_date = None, to_date = None): """Returns the weekly artist charts for the week starting from the from_date value to the to_date value.""" params = self._get_params() if from_date and to_date: params["from"] = from_date params["to"] = to_date doc = self._request("tag.getWeeklyArtistChart", True, params) seq = [] for node in doc.getElementsByTagName("artist"): item = Artist(_extract(node, "name"), self.network) weight = _number(_extract(node, "weight")) seq.append(TopItem(item, weight)) return seq def get_url(self, domain_name = DOMAIN_ENGLISH): """Returns the url of the tag page on the network. * domain_name: The network's language domain. Possible values: o DOMAIN_ENGLISH o DOMAIN_GERMAN o DOMAIN_SPANISH o DOMAIN_FRENCH o DOMAIN_ITALIAN o DOMAIN_POLISH o DOMAIN_PORTUGUESE o DOMAIN_SWEDISH o DOMAIN_TURKISH o DOMAIN_RUSSIAN o DOMAIN_JAPANESE o DOMAIN_CHINESE """ name = _url_safe(self.get_name()) return self.network._get_url(domain_name, "tag") %{'name': name} class Track(_BaseObject, _Taggable): """A Last.fm track.""" artist = None title = None def __init__(self, artist, title, network): _BaseObject.__init__(self, network) _Taggable.__init__(self, 'track') if isinstance(artist, Artist): self.artist = artist else: self.artist = Artist(artist, self.network) self.title = title @_string_output def __repr__(self): return self.get_artist().get_name() + ' - ' + self.get_title() def __eq__(self, other): return (self.get_title().lower() == other.get_title().lower()) and (self.get_artist().get_name().lower() == other.get_artist().get_name().lower()) def __ne__(self, other): return (self.get_title().lower() != other.get_title().lower()) or (self.get_artist().get_name().lower() != other.get_artist().get_name().lower()) def _get_params(self): return {'artist': self.get_artist().get_name(), 'track': self.get_title()} def get_artist(self): """Returns the associated Artist object.""" return self.artist def get_title(self): """Returns the track title.""" return self.title def get_name(self): """Returns the track title (alias to Track.get_title).""" return self.get_title() def get_id(self): """Returns the track id on the network.""" doc = self._request("track.getInfo", True) return _extract(doc, "id") def get_duration(self): """Returns the track duration.""" doc = self._request("track.getInfo", True) return _number(_extract(doc, "duration")) def get_mbid(self): """Returns the MusicBrainz ID of this track.""" doc = self._request("track.getInfo", True) return _extract(doc, "mbid") def get_listener_count(self): """Returns the listener count.""" doc = self._request("track.getInfo", True) return _number(_extract(doc, "listeners")) def get_playcount(self): """Returns the play count.""" doc = self._request("track.getInfo", True) return _number(_extract(doc, "playcount")) def is_streamable(self): """Returns True if the track is available at Last.fm.""" doc = self._request("track.getInfo", True) return _extract(doc, "streamable") == "1" def is_fulltrack_available(self): """Returns True if the fulltrack is available for streaming.""" doc = self._request("track.getInfo", True) return doc.getElementsByTagName("streamable")[0].getAttribute("fulltrack") == "1" def get_album(self): """Returns the album object of this track.""" doc = self._request("track.getInfo", True) albums = doc.getElementsByTagName("album") if len(albums) == 0: return node = doc.getElementsByTagName("album")[0] return Album(_extract(node, "artist"), _extract(node, "title"), self.network) def get_wiki_published_date(self): """Returns the date of publishing this version of the wiki.""" doc = self._request("track.getInfo", True) if len(doc.getElementsByTagName("wiki")) == 0: return node = doc.getElementsByTagName("wiki")[0] return _extract(node, "published") def get_wiki_summary(self): """Returns the summary of the wiki.""" doc = self._request("track.getInfo", True) if len(doc.getElementsByTagName("wiki")) == 0: return node = doc.getElementsByTagName("wiki")[0] return _extract(node, "summary") def get_wiki_content(self): """Returns the content of the wiki.""" doc = self._request("track.getInfo", True) if len(doc.getElementsByTagName("wiki")) == 0: return node = doc.getElementsByTagName("wiki")[0] return _extract(node, "content") def love(self): """Adds the track to the user's loved tracks. """ self._request('track.love') def ban(self): """Ban this track from ever playing on the radio. """ self._request('track.ban') def get_similar(self): """Returns similar tracks for this track on the network, based on listening data. """ doc = self._request('track.getSimilar', True) seq = [] for node in doc.getElementsByTagName("track"): title = _extract(node, 'name') artist = _extract(node, 'name', 1) match = _number(_extract(node, "match")) seq.append(SimilarItem(Track(artist, title, self.network), match)) return seq def get_top_fans(self, limit = None): """Returns a list of the Users who played this track.""" doc = self._request('track.getTopFans', True) seq = [] elements = doc.getElementsByTagName('user') for element in elements: if limit and len(seq) >= limit: break name = _extract(element, 'name') weight = _number(_extract(element, 'weight')) seq.append(TopItem(User(name, self.network), weight)) return seq def share(self, users, message = None): """Shares this track (sends out recommendations). * users: A list that can contain usernames, emails, User objects, or all of them. * message: A message to include in the recommendation message. """ #last.fm currently accepts a max of 10 recipient at a time while(len(users) > 10): section = users[0:9] users = users[9:] self.share(section, message) nusers = [] for user in users: if isinstance(user, User): nusers.append(user.get_name()) else: nusers.append(user) params = self._get_params() recipients = ','.join(nusers) params['recipient'] = recipients if message: params['message'] = _unicode(message) self._request('track.share', False, params) def get_url(self, domain_name = DOMAIN_ENGLISH): """Returns the url of the track page on the network. * domain_name: The network's language domain. Possible values: o DOMAIN_ENGLISH o DOMAIN_GERMAN o DOMAIN_SPANISH o DOMAIN_FRENCH o DOMAIN_ITALIAN o DOMAIN_POLISH o DOMAIN_PORTUGUESE o DOMAIN_SWEDISH o DOMAIN_TURKISH o DOMAIN_RUSSIAN o DOMAIN_JAPANESE o DOMAIN_CHINESE """ artist = _url_safe(self.get_artist().get_name()) title = _url_safe(self.get_title()) return self.network._get_url(domain_name, "track") %{'domain': self.network._get_language_domain(domain_name), 'artist': artist, 'title': title} def get_shouts(self, limit=50): """ Returns a sequqence of Shout objects """ shouts = [] for node in _collect_nodes(limit, self, "track.getShouts", False): shouts.append(Shout( _extract(node, "body"), User(_extract(node, "author"), self.network), _extract(node, "date") ) ) return shouts def shout(self, message): """ Post a shout """ params = self._get_params() params["message"] = message self._request("track.Shout", False, params) class Group(_BaseObject): """A Last.fm group.""" name = None def __init__(self, group_name, network): _BaseObject.__init__(self, network) self.name = group_name @_string_output def __repr__(self): return self.get_name() def __eq__(self, other): return self.get_name().lower() == other.get_name().lower() def __ne__(self, other): return self.get_name() != other.get_name() def _get_params(self): return {'group': self.get_name()} def get_name(self): """Returns the group name. """ return self.name def get_weekly_chart_dates(self): """Returns a list of From and To tuples for the available charts.""" doc = self._request("group.getWeeklyChartList", True) seq = [] for node in doc.getElementsByTagName("chart"): seq.append( (node.getAttribute("from"), node.getAttribute("to")) ) return seq def get_weekly_artist_charts(self, from_date = None, to_date = None): """Returns the weekly artist charts for the week starting from the from_date value to the to_date value.""" params = self._get_params() if from_date and to_date: params["from"] = from_date params["to"] = to_date doc = self._request("group.getWeeklyArtistChart", True, params) seq = [] for node in doc.getElementsByTagName("artist"): item = Artist(_extract(node, "name"), self.network) weight = _number(_extract(node, "playcount")) seq.append(TopItem(item, weight)) return seq def get_weekly_album_charts(self, from_date = None, to_date = None): """Returns the weekly album charts for the week starting from the from_date value to the to_date value.""" params = self._get_params() if from_date and to_date: params["from"] = from_date params["to"] = to_date doc = self._request("group.getWeeklyAlbumChart", True, params) seq = [] for node in doc.getElementsByTagName("album"): item = Album(_extract(node, "artist"), _extract(node, "name"), self.network) weight = _number(_extract(node, "playcount")) seq.append(TopItem(item, weight)) return seq def get_weekly_track_charts(self, from_date = None, to_date = None): """Returns the weekly track charts for the week starting from the from_date value to the to_date value.""" params = self._get_params() if from_date and to_date: params["from"] = from_date params["to"] = to_date doc = self._request("group.getWeeklyTrackChart", True, params) seq = [] for node in doc.getElementsByTagName("track"): item = Track(_extract(node, "artist"), _extract(node, "name"), self.network) weight = _number(_extract(node, "playcount")) seq.append(TopItem(item, weight)) return seq def get_url(self, domain_name = DOMAIN_ENGLISH): """Returns the url of the group page on the network. * domain_name: The network's language domain. Possible values: o DOMAIN_ENGLISH o DOMAIN_GERMAN o DOMAIN_SPANISH o DOMAIN_FRENCH o DOMAIN_ITALIAN o DOMAIN_POLISH o DOMAIN_PORTUGUESE o DOMAIN_SWEDISH o DOMAIN_TURKISH o DOMAIN_RUSSIAN o DOMAIN_JAPANESE o DOMAIN_CHINESE """ name = _url_safe(self.get_name()) return self.network._get_url(domain_name, "group") %{'name': name} def get_members(self, limit=50): """ Returns a sequence of User objects if limit==None it will return all """ nodes = _collect_nodes(limit, self, "group.getMembers", False) users = [] for node in nodes: users.append(User(_extract(node, "name"), self.network)) return users class XSPF(_BaseObject): "A Last.fm XSPF playlist.""" uri = None def __init__(self, uri, network): _BaseObject.__init__(self, network) self.uri = uri def _get_params(self): return {'playlistURL': self.get_uri()} @_string_output def __repr__(self): return self.get_uri() def __eq__(self, other): return self.get_uri() == other.get_uri() def __ne__(self, other): return self.get_uri() != other.get_uri() def get_uri(self): """Returns the Last.fm playlist URI. """ return self.uri def get_tracks(self): """Returns the tracks on this playlist.""" doc = self._request('playlist.fetch', True) seq = [] for n in doc.getElementsByTagName('track'): title = _extract(n, 'title') artist = _extract(n, 'creator') seq.append(Track(artist, title, self.network)) return seq class User(_BaseObject): """A Last.fm user.""" name = None def __init__(self, user_name, network): _BaseObject.__init__(self, network) self.name = user_name self._past_events_index = 0 self._recommended_events_index = 0 self._recommended_artists_index = 0 @_string_output def __repr__(self): return self.get_name() def __eq__(self, another): return self.get_name() == another.get_name() def __ne__(self, another): return self.get_name() != another.get_name() def _get_params(self): return {"user": self.get_name()} def get_name(self): """Returns the nuser name.""" return self.name def get_upcoming_events(self): """Returns all the upcoming events for this user. """ doc = self._request('user.getEvents', True) ids = _extract_all(doc, 'id') events = [] for e_id in ids: events.append(Event(e_id, self.network)) return events def get_friends(self, limit = 50): """Returns a list of the user's friends. """ seq = [] for node in _collect_nodes(limit, self, "user.getFriends", False): seq.append(User(_extract(node, "name"), self.network)) return seq def get_loved_tracks(self, limit=50): """Returns the loved tracks by this user if limit is None, it will return all of them """ tracks = [] for track in _collect_nodes(limit, self, "user.getLovedTracks", False): title = _extract(track, 'name', 0) artist = _extract(track, 'name', 1) tracks.append(Track(artist, title, self.network)) return tracks def get_neighbours(self, limit = 50): """Returns a list of the user's friends.""" params = self._get_params() if limit: params['limit'] = _unicode(limit) doc = self._request('user.getNeighbours', True, params) seq = [] names = _extract_all(doc, 'name') for name in names: seq.append(User(name, self.network)) return seq def get_past_events(self, limit=50): """ Returns a sequence of Event objects if limit==None it will return all """ seq = [] for n in _collect_nodes(limit, self, "user.getPastEvents", False): seq.append(Event(_extract(n, "id"), self.network)) return seq def get_playlists(self): """Returns a list of Playlists that this user owns.""" doc = self._request("user.getPlaylists", True) playlists = [] for playlist_id in _extract_all(doc, "id"): playlists.append(Playlist(self.get_name(), playlist_id, self.network)) return playlists def get_now_playing(self): """Returns the currently playing track, or None if nothing is playing. """ params = self._get_params() params['limit'] = '1' doc = self._request('user.getRecentTracks', False, params) e = doc.getElementsByTagName('track')[0] if not e.hasAttribute('nowplaying'): return None artist = _extract(e, 'artist') title = _extract(e, 'name') return Track(artist, title, self.network) def get_recent_tracks(self, limit = None): """Returns this user's recent listened-to tracks as a sequence of PlayedTrack objects. Use extract_items() with the return of this function to get only a sequence of Track objects with no playback dates. """ params = self._get_params() if limit: params['limit'] = _unicode(limit) doc = self._request('user.getRecentTracks', False, params) seq = [] for track in doc.getElementsByTagName('track'): title = _extract(track, "name") artist = _extract(track, "artist") date = _extract(track, "date") timestamp = track.getElementsByTagName("date")[0].getAttribute("uts") if track.hasAttribute('nowplaying'): continue #to prevent the now playing track from sneaking in here seq.append(PlayedTrack(Track(artist, title, self.network), date, timestamp)) return seq def get_top_albums(self, period = PERIOD_OVERALL): """Returns the top albums played by a user. * period: The period of time. Possible values: o PERIOD_OVERALL o PERIOD_3MONTHS o PERIOD_6MONTHS o PERIOD_12MONTHS """ params = self._get_params() params['period'] = period doc = self._request('user.getTopAlbums', True, params) seq = [] for album in doc.getElementsByTagName('album'): name = _extract(album, 'name') artist = _extract(album, 'name', 1) playcount = _extract(album, "playcount") seq.append(TopItem(Album(artist, name, self.network), playcount)) return seq def get_top_artists(self, period = PERIOD_OVERALL): """Returns the top artists played by a user. * period: The period of time. Possible values: o PERIOD_OVERALL o PERIOD_3MONTHS o PERIOD_6MONTHS o PERIOD_12MONTHS """ params = self._get_params() params['period'] = period doc = self._request('user.getTopArtists', True, params) seq = [] for node in doc.getElementsByTagName('artist'): name = _extract(node, 'name') playcount = _extract(node, "playcount") seq.append(TopItem(Artist(name, self.network), playcount)) return seq def get_top_tags(self, limit = None): """Returns a sequence of the top tags used by this user with their counts as (Tag, tagcount). * limit: The limit of how many tags to return. """ doc = self._request("user.getTopTags", True) seq = [] for node in doc.getElementsByTagName("tag"): if len(seq) < limit: seq.append(TopItem(Tag(_extract(node, "name"), self.network), _extract(node, "count"))) return seq def get_top_tracks(self, period = PERIOD_OVERALL): """Returns the top tracks played by a user. * period: The period of time. Possible values: o PERIOD_OVERALL o PERIOD_3MONTHS o PERIOD_6MONTHS o PERIOD_12MONTHS """ params = self._get_params() params['period'] = period doc = self._request('user.getTopTracks', True, params) seq = [] for track in doc.getElementsByTagName('track'): name = _extract(track, 'name') artist = _extract(track, 'name', 1) playcount = _extract(track, "playcount") seq.append(TopItem(Track(artist, name, self.network), playcount)) return seq def get_weekly_chart_dates(self): """Returns a list of From and To tuples for the available charts.""" doc = self._request("user.getWeeklyChartList", True) seq = [] for node in doc.getElementsByTagName("chart"): seq.append( (node.getAttribute("from"), node.getAttribute("to")) ) return seq def get_weekly_artist_charts(self, from_date = None, to_date = None): """Returns the weekly artist charts for the week starting from the from_date value to the to_date value.""" params = self._get_params() if from_date and to_date: params["from"] = from_date params["to"] = to_date doc = self._request("user.getWeeklyArtistChart", True, params) seq = [] for node in doc.getElementsByTagName("artist"): item = Artist(_extract(node, "name"), self.network) weight = _number(_extract(node, "playcount")) seq.append(TopItem(item, weight)) return seq def get_weekly_album_charts(self, from_date = None, to_date = None): """Returns the weekly album charts for the week starting from the from_date value to the to_date value.""" params = self._get_params() if from_date and to_date: params["from"] = from_date params["to"] = to_date doc = self._request("user.getWeeklyAlbumChart", True, params) seq = [] for node in doc.getElementsByTagName("album"): item = Album(_extract(node, "artist"), _extract(node, "name"), self.network) weight = _number(_extract(node, "playcount")) seq.append(TopItem(item, weight)) return seq def get_weekly_track_charts(self, from_date = None, to_date = None): """Returns the weekly track charts for the week starting from the from_date value to the to_date value.""" params = self._get_params() if from_date and to_date: params["from"] = from_date params["to"] = to_date doc = self._request("user.getWeeklyTrackChart", True, params) seq = [] for node in doc.getElementsByTagName("track"): item = Track(_extract(node, "artist"), _extract(node, "name"), self.network) weight = _number(_extract(node, "playcount")) seq.append(TopItem(item, weight)) return seq def compare_with_user(self, user, shared_artists_limit = None): """Compare this user with another Last.fm user. Returns a sequence (tasteometer_score, (shared_artist1, shared_artist2, ...)) user: A User object or a username string/unicode object. """ if isinstance(user, User): user = user.get_name() params = self._get_params() if shared_artists_limit: params['limit'] = _unicode(shared_artists_limit) params['type1'] = 'user' params['type2'] = 'user' params['value1'] = self.get_name() params['value2'] = user doc = self._request('tasteometer.compare', False, params) score = _extract(doc, 'score') artists = doc.getElementsByTagName('artists')[0] shared_artists_names = _extract_all(artists, 'name') shared_artists_seq = [] for name in shared_artists_names: shared_artists_seq.append(Artist(name, self.network)) return (score, shared_artists_seq) def get_url(self, domain_name = DOMAIN_ENGLISH): """Returns the url of the user page on the network. * domain_name: The network's language domain. Possible values: o DOMAIN_ENGLISH o DOMAIN_GERMAN o DOMAIN_SPANISH o DOMAIN_FRENCH o DOMAIN_ITALIAN o DOMAIN_POLISH o DOMAIN_PORTUGUESE o DOMAIN_SWEDISH o DOMAIN_TURKISH o DOMAIN_RUSSIAN o DOMAIN_JAPANESE o DOMAIN_CHINESE """ name = _url_safe(self.get_name()) return self.network._get_url(domain_name, "user") %{'name': name} def get_library(self): """Returns the associated Library object. """ return Library(self, self.network) def get_shouts(self, limit=50): """ Returns a sequqence of Shout objects """ shouts = [] for node in _collect_nodes(limit, self, "user.getShouts", False): shouts.append(Shout( _extract(node, "body"), User(_extract(node, "author"), self.network), _extract(node, "date") ) ) return shouts def shout(self, message): """ Post a shout """ params = self._get_params() params["message"] = message self._request("user.Shout", False, params) class AuthenticatedUser(User): def __init__(self, network): User.__init__(self, "", network); def _get_params(self): return {"user": self.get_name()} def get_name(self): """Returns the name of the authenticated user.""" doc = self._request("user.getInfo", True, {"user": ""}) # hack self.name = _extract(doc, "name") return self.name def get_id(self): """Returns the user id.""" doc = self._request("user.getInfo", True) return _extract(doc, "id") def get_cover_image(self): """Returns the user's avatar.""" doc = self._request("user.getInfo", True) return _extract(doc, "image") def get_language(self): """Returns the language code of the language used by the user.""" doc = self._request("user.getInfo", True) return _extract(doc, "lang") def get_country(self): """Returns the name of the country of the user.""" doc = self._request("user.getInfo", True) return Country(_extract(doc, "country"), self.network) def get_age(self): """Returns the user's age.""" doc = self._request("user.getInfo", True) return _number(_extract(doc, "age")) def get_gender(self): """Returns the user's gender. Either USER_MALE or USER_FEMALE.""" doc = self._request("user.getInfo", True) value = _extract(doc, "gender") if value == 'm': return USER_MALE elif value == 'f': return USER_FEMALE return None def is_subscriber(self): """Returns whether the user is a subscriber or not. True or False.""" doc = self._request("user.getInfo", True) return _extract(doc, "subscriber") == "1" def get_playcount(self): """Returns the user's playcount so far.""" doc = self._request("user.getInfo", True) return _number(_extract(doc, "playcount")) def get_recommended_events(self, limit=50): """ Returns a sequence of Event objects if limit==None it will return all """ seq = [] for node in _collect_nodes(limit, self, "user.getRecommendedEvents", False): seq.append(Event(_extract(node, "id"), self.network)) return seq def get_recommended_artists(self, limit=50): """ Returns a sequence of Event objects if limit==None it will return all """ seq = [] for node in _collect_nodes(limit, self, "user.getRecommendedArtists", False): seq.append(Artist(_extract(node, "name"), self.network)) return seq class _Search(_BaseObject): """An abstract class. Use one of its derivatives.""" def __init__(self, ws_prefix, search_terms, network): _BaseObject.__init__(self, network) self._ws_prefix = ws_prefix self.search_terms = search_terms self._last_page_index = 0 def _get_params(self): params = {} for key in self.search_terms.keys(): params[key] = self.search_terms[key] return params def get_total_result_count(self): """Returns the total count of all the results.""" doc = self._request(self._ws_prefix + ".search", True) return _extract(doc, "opensearch:totalResults") def _retreive_page(self, page_index): """Returns the node of matches to be processed""" params = self._get_params() params["page"] = str(page_index) doc = self._request(self._ws_prefix + ".search", True, params) return doc.getElementsByTagName(self._ws_prefix + "matches")[0] def _retrieve_next_page(self): self._last_page_index += 1 return self._retreive_page(self._last_page_index) class AlbumSearch(_Search): """Search for an album by name.""" def __init__(self, album_name, network): _Search.__init__(self, "album", {"album": album_name}, network) def get_next_page(self): """Returns the next page of results as a sequence of Album objects.""" master_node = self._retrieve_next_page() seq = [] for node in master_node.getElementsByTagName("album"): seq.append(Album(_extract(node, "artist"), _extract(node, "name"), self.network)) return seq class ArtistSearch(_Search): """Search for an artist by artist name.""" def __init__(self, artist_name, network): _Search.__init__(self, "artist", {"artist": artist_name}, network) def get_next_page(self): """Returns the next page of results as a sequence of Artist objects.""" master_node = self._retrieve_next_page() seq = [] for node in master_node.getElementsByTagName("artist"): seq.append(Artist(_extract(node, "name"), self.network)) return seq class TagSearch(_Search): """Search for a tag by tag name.""" def __init__(self, tag_name, network): _Search.__init__(self, "tag", {"tag": tag_name}, network) def get_next_page(self): """Returns the next page of results as a sequence of Tag objects.""" master_node = self._retrieve_next_page() seq = [] for node in master_node.getElementsByTagName("tag"): seq.append(Tag(_extract(node, "name"), self.network)) return seq class TrackSearch(_Search): """Search for a track by track title. If you don't wanna narrow the results down by specifying the artist name, set it to empty string.""" def __init__(self, artist_name, track_title, network): _Search.__init__(self, "track", {"track": track_title, "artist": artist_name}, network) def get_next_page(self): """Returns the next page of results as a sequence of Track objects.""" master_node = self._retrieve_next_page() seq = [] for node in master_node.getElementsByTagName("track"): seq.append(Track(_extract(node, "artist"), _extract(node, "name"), self.network)) return seq class VenueSearch(_Search): """Search for a venue by its name. If you don't wanna narrow the results down by specifying a country, set it to empty string.""" def __init__(self, venue_name, country_name, network): _Search.__init__(self, "venue", {"venue": venue_name, "country": country_name}, network) def get_next_page(self): """Returns the next page of results as a sequence of Track objects.""" master_node = self._retrieve_next_page() seq = [] for node in master_node.getElementsByTagName("venue"): seq.append(Venue(_extract(node, "id"), self.network)) return seq class Venue(_BaseObject): """A venue where events are held.""" # TODO: waiting for a venue.getInfo web service to use. id = None def __init__(self, id, network): _BaseObject.__init__(self, network) self.id = _number(id) @_string_output def __repr__(self): return "Venue #" + str(self.id) def __eq__(self, other): return self.get_id() == other.get_id() def _get_params(self): return {"venue": self.get_id()} def get_id(self): """Returns the id of the venue.""" return self.id def get_upcoming_events(self): """Returns the upcoming events in this venue.""" doc = self._request("venue.getEvents", True) seq = [] for node in doc.getElementsByTagName("event"): seq.append(Event(_extract(node, "id"), self.network)) return seq def get_past_events(self): """Returns the past events held in this venue.""" doc = self._request("venue.getEvents", True) seq = [] for node in doc.getElementsByTagName("event"): seq.append(Event(_extract(node, "id"), self.network)) return seq def md5(text): """Returns the md5 hash of a string.""" h = hashlib.md5() h.update(_string(text)) return h.hexdigest() def async_call(sender, call, callback = None, call_args = None, callback_args = None): """This is the function for setting up an asynchronous operation. * call: The function to call asynchronously. * callback: The function to call after the operation is complete, Its prototype has to be like: callback(sender, output[, param1, param3, ... ]) * call_args: A sequence of args to be passed to call. * callback_args: A sequence of args to be passed to callback. """ thread = _ThreadedCall(sender, call, call_args, callback, callback_args) thread.start() def _unicode(text): if type(text) == unicode: return text if type(text) == int: return unicode(text) return unicode(text, "utf-8") def _string(text): if type(text) == str: return text if type(text) == int: return str(text) return text.encode("utf-8") def _collect_nodes(limit, sender, method_name, cacheable, params=None): """ Returns a sequqnce of dom.Node objects about as close to limit as possible """ if not limit: limit = sys.maxint if not params: params = sender._get_params() nodes = [] page = 1 end_of_pages = False while len(nodes) < limit and not end_of_pages: params["page"] = str(page) doc = sender._request(method_name, cacheable, params) main = doc.documentElement.childNodes[1] if main.hasAttribute("totalPages"): total_pages = _number(main.getAttribute("totalPages")) elif main.hasAttribute("totalpages"): total_pages = _number(main.getAttribute("totalpages")) else: raise Exception("No total pages attribute") for node in main.childNodes: if not node.nodeType == xml.dom.Node.TEXT_NODE and len(nodes) < limit: nodes.append(node) if page >= total_pages: end_of_pages = True page += 1 return nodes def _extract(node, name, index = 0): """Extracts a value from the xml string""" nodes = node.getElementsByTagName(name) if len(nodes): if nodes[index].firstChild: return _unescape_htmlentity(nodes[index].firstChild.data.strip()) else: return None def _extract_all(node, name, limit_count = None): """Extracts all the values from the xml string. returning a list.""" seq = [] for i in range(0, len(node.getElementsByTagName(name))): if len(seq) == limit_count: break seq.append(_extract(node, name, i)) return seq def _url_safe(text): """Does all kinds of tricks on a text to make it safe to use in a url.""" if type(text) == unicode: text = text.encode('utf-8') return urllib.quote_plus(urllib.quote_plus(text)).lower() def _number(string): """ Extracts an int from a string. Returns a 0 if None or an empty string was passed """ if not string: return 0 elif string == "": return 0 else: try: return int(string) except ValueError: return float(string) def _unescape_htmlentity(string): string = _unicode(string) mapping = htmlentitydefs.name2codepoint for key in mapping: string = string.replace("&%s;" %key, unichr(mapping[key])) return string def extract_items(topitems_or_libraryitems): """Extracts a sequence of items from a sequence of TopItem or LibraryItem objects.""" seq = [] for i in topitems_or_libraryitems: seq.append(i.get_item()) return seq class ScrobblingError(Exception): def __init__(self, message): Exception.__init__(self) self.message = message @_string_output def __str__(self): return self.message class BannedClientError(ScrobblingError): def __init__(self): ScrobblingError.__init__(self, "This version of the client has been banned") class BadAuthenticationError(ScrobblingError): def __init__(self): ScrobblingError.__init__(self, "Bad authentication token") class BadTimeError(ScrobblingError): def __init__(self): ScrobblingError.__init__(self, "Time provided is not close enough to current time") class BadSessionError(ScrobblingError): def __init__(self): ScrobblingError.__init__(self, "Bad session id, consider re-handshaking") class _ScrobblerRequest(object): def __init__(self, url, params, network, type="POST"): self.params = params self.type = type (self.hostname, self.subdir) = urllib.splithost(url[len("http:"):]) self.network = network def execute(self): """Returns a string response of this request.""" connection = httplib.HTTPConnection(self.hostname) data = [] for name in self.params.keys(): value = urllib.quote_plus(self.params[name]) data.append('='.join((name, value))) data = "&".join(data) headers = { "Content-type": "application/x-www-form-urlencoded", "Accept-Charset": "utf-8", "User-Agent": "pylast" + "/" + __version__, "HOST": self.hostname } if self.type == "GET": connection.request("GET", self.subdir + "?" + data, headers = headers) else: connection.request("POST", self.subdir, data, headers) response = connection.getresponse().read() self._check_response_for_errors(response) return response def _check_response_for_errors(self, response): """When passed a string response it checks for erros, raising any exceptions as necessary.""" lines = response.split("\n") status_line = lines[0] if status_line == "OK": return elif status_line == "BANNED": raise BannedClientError() elif status_line == "BADAUTH": raise BadAuthenticationError() elif status_line == "BadTimeError": raise BadTimeError() elif status_line == "BadSessionError": raise BadSessionError() elif status_line.startswith("FAILED "): reason = status_line[status_line.find("FAILED ")+len("FAILED "):] raise ScrobblingError(reason) class Scrobbler(object): """A class for scrobbling tracks to Last.fm""" session_id = None nowplaying_url = None submissions_url = None def __init__(self, network, client_id, client_version): self.client_id = client_id self.client_version = client_version self.username = network.username self.password = network.password_hash self.network = network def _do_handshake(self): """Handshakes with the server""" timestamp = str(int(time.time())) token = md5(self.password + timestamp) params = {"hs": "true", "p": "1.2.1", "c": self.client_id, "v": self.client_version, "u": self.username, "t": timestamp, "a": token} server = self.network.submission_server response = _ScrobblerRequest(server, params, self.network, "GET").execute().split("\n") self.session_id = response[1] self.nowplaying_url = response[2] self.submissions_url = response[3] def _get_session_id(self, new = False): """Returns a handshake. If new is true, then it will be requested from the server even if one was cached.""" if not self.session_id or new: self._do_handshake() return self.session_id def report_now_playing(self, artist, title, album = "", duration = "", track_number = "", mbid = ""): params = {"s": self._get_session_id(), "a": artist, "t": title, "b": album, "l": duration, "n": track_number, "m": mbid} try: _ScrobblerRequest(self.nowplaying_url, params, self.network).execute() except BadSessionError: self._do_handshake() self.report_now_playing(artist, title, album, duration, track_number, mbid) def scrobble(self, artist, title, time_started, source, mode, duration, album="", track_number="", mbid=""): """Scrobble a track. parameters: artist: Artist name. title: Track title. time_started: UTC timestamp of when the track started playing. source: The source of the track SCROBBLE_SOURCE_USER: Chosen by the user (the most common value, unless you have a reason for choosing otherwise, use this). SCROBBLE_SOURCE_NON_PERSONALIZED_BROADCAST: Non-personalised broadcast (e.g. Shoutcast, BBC Radio 1). SCROBBLE_SOURCE_PERSONALIZED_BROADCAST: Personalised recommendation except Last.fm (e.g. Pandora, Launchcast). SCROBBLE_SOURCE_LASTFM: ast.fm (any mode). In this case, the 5-digit recommendation_key value must be set. SCROBBLE_SOURCE_UNKNOWN: Source unknown. mode: The submission mode SCROBBLE_MODE_PLAYED: The track was played. SCROBBLE_MODE_LOVED: The user manually loved the track (implies a listen) SCROBBLE_MODE_SKIPPED: The track was skipped (Only if source was Last.fm) SCROBBLE_MODE_BANNED: The track was banned (Only if source was Last.fm) duration: Track duration in seconds. album: The album name. track_number: The track number on the album. mbid: MusicBrainz ID. """ params = {"s": self._get_session_id(), "a[0]": _string(artist), "t[0]": _string(title), "i[0]": str(time_started), "o[0]": source, "r[0]": mode, "l[0]": str(duration), "b[0]": _string(album), "n[0]": track_number, "m[0]": mbid} _ScrobblerRequest(self.submissions_url, params, self.network).execute() dist/copy/plugins/contextinfo/PaxHeaders.26361/contextprefs.py0000644000175000017500000000012412233027260023140 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.517046945 exaile-3.3.2/plugins/contextinfo/contextprefs.py0000644000000000000000000000213512233027260022101 0ustar00rootroot00000000000000# Copyright (C) 2010 Guillaume Lecomte # # 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 1, 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 from xlgui.preferences import widgets from xl import xdg from xl.nls import gettext as _ name = _('Contextinfo') basedir = os.path.dirname(os.path.realpath(__file__)) ui = os.path.join(basedir, "context_pane.ui") class UserPreference(widgets.Preference): name = 'plugin/lastfm/user' class PassPreference(widgets.HashedPreference): name = 'plugin/lastfm/password' dist/copy/plugins/contextinfo/PaxHeaders.26361/context.ui0000644000175000017500000000012412233027260022065 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.177046934 exaile-3.3.2/plugins/contextinfo/context.ui0000644000000000000000000001500612233027260021027 0ustar00rootroot00000000000000 Context True 3 2 32 True 32 32 True True False none False True gtk-go-back 2 False False 0 32 32 True True True none False True gtk-go-forward False False 1 32 32 True True True none False True gtk-home False False 2 32 32 True True True none False True gtk-refresh 2 False False 3 32 32 True True True none False True gtk-file 2 False False end 4 False False 0 True 0 1 dist/copy/plugins/contextinfo/PaxHeaders.26361/loader.gif0000644000175000017500000000012412233027260021777 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.265046937 exaile-3.3.2/plugins/contextinfo/loader.gif0000644000000000000000000000124112233027260020735 0ustar00rootroot00000000000000GIF89aBBBbbb! NETSCAPE2.0!Created with ajaxload.info! ,30Ikc:Nf E1º.`q-[9ݦ9 JkH! ,4N!  DqBQT`1 `LE[|ua C%$*! ,62#+AȐ̔V/cNIBap ̳ƨ+Y2d! ,3b%+2V_ ! 1DaFbR]=08,Ȥr9L! ,2r'+JdL &v`\bThYB)@<&,ȤR! ,3 9tڞ0!.BW1  sa50 m)J! ,2 ٜU]qp`a4AF0` @1Α! ,20IeBԜ) q10ʰPaVڥ ub[;dist/copy/plugins/PaxHeaders.26361/desktopcover0000644000175000017500000000013212233027261020135 xustar000000000000000030 mtime=1382821553.697046951 30 atime=1382821552.797046922 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/desktopcover/0000755000000000000000000000000012233027261017153 5ustar00rootroot00000000000000dist/copy/plugins/desktopcover/PaxHeaders.26361/desktopcover_preferences.ui0000644000175000017500000000012412233027260025642 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.189046935 exaile-3.3.2/plugins/desktopcover/desktopcover_preferences.ui0000644000000000000000000003003312233027260024601 0ustar00rootroot00000000000000 9999 1 10 True 5 7 3 6 6 True 0 Anchor: True GTK_FILL GTK_FILL True anchor_liststore 0 1 1 3 GTK_FILL GTK_FILL True 0 X offset: True 1 2 GTK_FILL GTK_FILL True True adjustment1 True True 1 2 1 2 GTK_FILL GTK_FILL True 0 pixels True 2 3 1 2 GTK_FILL GTK_FILL True 0 Y offset: True 2 3 GTK_FILL GTK_FILL True True adjustment2 True True 1 2 2 3 GTK_FILL GTK_FILL True 0 pixels True 2 3 2 3 GTK_FILL GTK_FILL Override cover size True True False True 3 3 4 GTK_FILL GTK_FILL True True adjustment3 True True 1 2 4 5 GTK_FILL GTK_FILL True 0 Size: True 4 5 GTK_FILL GTK_FILL True 0 pixels True 2 3 4 5 GTK_FILL GTK_FILL Use fading True True False True 3 5 6 GTK_FILL GTK_FILL True Fading duration: 6 7 GTK_FILL GTK_FILL True True adjustment4 True True 1 2 6 7 GTK_FILL GTK_FILL True 0 ms 2 3 6 7 GTK_FILL GTK_FILL topleft Top left topright Top right bottomleft Bottom left bottomright Bottom right 9999 1 10 9999 1 10 9999 1 10 dist/copy/plugins/desktopcover/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260022323 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821552.989046928 exaile-3.3.2/plugins/desktopcover/__init__.py0000644000000000000000000002612012233027260021264 0ustar00rootroot00000000000000# Copyright (C) 2006-2010 Johannes Sasongko # Copyright (C) 2010 Mathias Brodala # # 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, see . from __future__ import division import cairo import glib import gtk from xl import ( covers, event, player, settings ) from xl.nls import gettext as _ from xlgui import ( icons ) from xlgui.guiutil import get_workarea_dimensions import desktopcover_preferences DESKTOPCOVER = None def __migrate_anchor_setting(): """ Migrates gravity setting from the old integer values to the new string values """ gravity = settings.get_option('plugin/desktopcover/anchor', 'topleft') gravity_map = DesktopCover.gravity_map if gravity not in gravity_map: gravities = gravity_map.keys() try: gravity = gravities[gravity] except IndexError, TypeError: gravity = 'topleft' settings.set_option('plugin/desktopcover/anchor', gravity) def enable(exaile): """ Enables the desktop cover plugin """ __migrate_anchor_setting() global DESKTOPCOVER DESKTOPCOVER = DesktopCover() def disable(exaile): """ Disables the desktop cover plugin """ global DESKTOPCOVER DESKTOPCOVER.destroy() def get_preferences_pane(): return desktopcover_preferences class DesktopCover(gtk.Window): gravity_map = { 'topleft': gtk.gdk.GRAVITY_NORTH_WEST, 'topright': gtk.gdk.GRAVITY_NORTH_EAST, 'bottomleft': gtk.gdk.GRAVITY_SOUTH_WEST, 'bottomright': gtk.gdk.GRAVITY_SOUTH_EAST } def __init__(self): gtk.Window.__init__(self) self.image = gtk.Image() self.add(self.image) self.image.show() self.set_accept_focus(False) self.set_app_paintable(True) self.set_decorated(False) self.set_keep_below(True) self.set_resizable(False) self.set_role("desktopcover") self.set_skip_pager_hint(True) self.set_skip_taskbar_hint(True) self.set_title("Exaile desktop cover") self.stick() self._fade_in_id = None self._fade_out_id = None self._cross_fade_id = None self._cross_fade_step = 0 self._events = [ 'playback_track_start', 'playback_player_end', 'cover_set', 'cover_removed' ] screen = self.get_screen() colormap = screen.get_rgba_colormap() or screen.get_rgb_colormap() self.set_colormap(colormap) if player.PLAYER.current is not None: self.set_cover_from_track(player.PLAYER.current) glib.idle_add(self.update_position) for e in self._events: if 'playback' in e: event.add_callback(getattr(self, 'on_%s' % e), e, player.PLAYER) else: event.add_callback(getattr(self, 'on_%s' % e), e) event.add_callback(self.on_option_set, 'plugin_desktopcover_option_set') self.connect('expose-event', self.on_expose_event) self.connect('screen-changed', self.on_screen_changed) def destroy(self): """ Cleanups """ for e in self._events: if 'playback' in e: event.remove_callback(getattr(self, 'on_%s' % e), e, player.PLAYER) else: event.remove_callback(getattr(self, 'on_%s' % e), e) event.remove_callback(self.on_option_set, 'plugin_desktopcover_option_set') gtk.Window.destroy(self) def set_cover_from_track(self, track): """ Updates the cover image and triggers cross-fading """ cover_data = covers.MANAGER.get_cover(track, set_only=True) if cover_data is None: self.hide() return if not self.props.visible: self.show() size = settings.get_option('plugin/desktopcover/size', 200) upscale = settings.get_option('plugin/desktopcover/override_size', False) pixbuf = self.image.get_pixbuf() next_pixbuf = icons.MANAGER.pixbuf_from_data( cover_data, size=(size, size), upscale=upscale) fading = settings.get_option('plugin/desktopcover/fading', False) if fading and pixbuf is not None and self._cross_fade_id is None: # Prescale to allow for proper crossfading width, height = next_pixbuf.get_width(), next_pixbuf.get_height() pixbuf = pixbuf.scale_simple(width, height, gtk.gdk.INTERP_BILINEAR) glib.idle_add(self.image.set_from_pixbuf, pixbuf) duration = settings.get_option( 'plugin/desktopcover/fading_duration', 50) self._cross_fade_id = glib.timeout_add(int(duration), self.cross_fade, pixbuf, next_pixbuf, duration) else: glib.idle_add(self.image.set_from_pixbuf, next_pixbuf) def update_position(self): """ Updates the position based on gravity and offsets """ gravity = self.gravity_map[settings.get_option( 'plugin/desktopcover/anchor', 'topleft')] cover_offset_x = settings.get_option('plugin/desktopcover/x', 0) cover_offset_y = settings.get_option('plugin/desktopcover/y', 0) allocation = self.get_allocation() workarea = get_workarea_dimensions() x, y = workarea.offset_x, workarea.offset_y if gravity in (gtk.gdk.GRAVITY_NORTH_WEST, gtk.gdk.GRAVITY_SOUTH_WEST): x += cover_offset_x else: x += workarea.width - allocation.width - cover_offset_x if gravity in (gtk.gdk.GRAVITY_NORTH_WEST, gtk.gdk.GRAVITY_NORTH_EAST): y += cover_offset_y else: y += workarea.height - allocation.height - cover_offset_y self.set_gravity(gravity) self.move(int(x), int(y)) def show(self): """ Override for fade-in """ fading = settings.get_option('plugin/desktopcover/fading', False) if fading and self._fade_in_id is None: self.set_opacity(0) gtk.Window.show(self) if fading and self._fade_in_id is None: duration = settings.get_option( 'plugin/desktopcover/fading_duration', 50) self._fade_in_id = glib.timeout_add( int(duration), self.fade_in) def hide(self): """ Override for fade-out """ fading = settings.get_option('plugin/desktopcover/fading', False) if fading and self._fade_out_id is None: duration = settings.get_option( 'plugin/desktopcover/fading_duration', 50) self._fade_out_id = glib.timeout_add( int(duration), self.fade_out) else: gtk.Window.hide(self) self.image.set_from_pixbuf(None) def fade_in(self): """ Increases opacity until completely opaque """ opacity = self.get_opacity() if opacity == 1: self._fade_in_id = None return False self.set_opacity(opacity + 0.1) return True def fade_out(self): """ Decreases opacity until transparent """ opacity = self.get_opacity() if opacity == 0: gtk.Window.hide(self) self.image.set_from_pixbuf(None) self._fade_out_id = None return False self.set_opacity(opacity - 0.1) return True def cross_fade(self, pixbuf, next_pixbuf, duration): """ Fades between two cover images :param pixbuf: the current cover image pixbuf :type pixbuf: :class:`gtk.gdk.Pixbuf` :param next_pixbuf: the cover image pixbuf to fade to :type next_pixbuf: :class:`gtk.gdk.Pixbuf` :param duration: the overall time for the fading :type duration: int """ if self._cross_fade_step < duration: width, height = pixbuf.get_width(), pixbuf.get_height() alpha = (255 / duration) * self._cross_fade_step next_pixbuf.composite( dest=pixbuf, dest_x=0, dest_y=0, dest_width=width, dest_height=height, offset_x=0, offset_y=0, scale_x=1, scale_y=1, interp_type=gtk.gdk.INTERP_BILINEAR, overall_alpha=int(alpha) ) self.image.queue_draw() self._cross_fade_step += 1 return True self._cross_fade_id = None self._cross_fade_step = 0 return False def on_expose_event(self, widget, event): """ Takes care of drawing the window transparently, if possible """ context = widget.props.window.cairo_create() context.rectangle(event.area.x, event.area.y, event.area.width, event.area.height) context.clip() context.set_source_rgba(1, 1, 1, 0) context.set_operator(cairo.OPERATOR_SOURCE) context.paint() def on_screen_changed(self, widget, event): """ Updates the colormap """ screen = widget.get_screen() colormap = screen.get_rgba_colormap() or screen.get_rgb_colormap() self.window.set_colormap(rgbamap) def on_playback_track_start(self, type, player, track): """ Updates the cover image and shows the window """ self.set_cover_from_track(track) glib.idle_add(self.update_position) def on_playback_player_end(self, type, player, track): """ Hides the window at the end of playback """ self.hide() def on_cover_set(self, type, covers, track): """ Updates the cover image after cover selection """ self.set_cover_from_track(track) glib.idle_add(self.update_position) def on_cover_removed(self, type, covers, track): """ Hides the window after cover removal """ self.hide() def on_option_set(self, type, settings, option): """ Updates the appearance """ if option in ('plugin/desktopcover/anchor', 'plugin/desktopcover/x', 'plugin/desktopcover/y'): glib.idle_add(self.update_position) elif option in ('plugin/desktopcover/override_size', 'plugin/desktopcover/size'): self.set_cover_from_track(player.PLAYER.current) # vi: et sts=4 sw=4 tw=80 dist/copy/plugins/desktopcover/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260021607 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.697046951 exaile-3.3.2/plugins/desktopcover/PLUGININFO0000644000000000000000000000032312233027260020545 0ustar00rootroot00000000000000Version='1.2.2' Authors=['Johannes Sasongko ', 'Mathias Brodala '] Name=_('Desktop Cover') Description=_('Displays the current album cover on the desktop') Category=_('GUI') dist/copy/plugins/desktopcover/PaxHeaders.26361/desktopcover_preferences.py0000644000175000017500000000012412233027260025655 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821552.993046928 exaile-3.3.2/plugins/desktopcover/desktopcover_preferences.py0000644000000000000000000000437012233027260024621 0ustar00rootroot00000000000000# Copyright (C) 2006-2010 Johannes Sasongko # Copyright (C) 2010 Mathias Brodala # # 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, see . import os from xlgui.preferences import widgets from xl.nls import gettext as _ name = _('Desktop Cover') basedir = os.path.dirname(os.path.realpath(__file__)) ui = os.path.join(basedir, "desktopcover_preferences.ui") icon = 'desktop' class AnchorPreference(widgets.ComboPreference): default = 'topleft' name = 'plugin/desktopcover/anchor' class XPreference(widgets.SpinPreference): default = 0 name = 'plugin/desktopcover/x' class YPreference(widgets.SpinPreference): default = 0 name = 'plugin/desktopcover/y' class OverrideSizePreference(widgets.CheckPreference): default = False name = 'plugin/desktopcover/override_size' class SizePreference(widgets.SpinPreference, widgets.CheckConditional): default = 200 name = 'plugin/desktopcover/size' condition_preference_name = 'plugin/desktopcover/override_size' def __init__(self, preferences, widget): widgets.SpinPreference.__init__(self, preferences, widget) widgets.CheckConditional.__init__(self) class FadingPreference(widgets.CheckPreference): default = False name = 'plugin/desktopcover/fading' class FadingDurationPreference(widgets.SpinPreference, widgets.CheckConditional): default = 50 name = 'plugin/desktopcover/fading_duration' condition_preference_name = 'plugin/desktopcover/fading' def __init__(self, preferences, widget): widgets.SpinPreference.__init__(self, preferences, widget) widgets.CheckConditional.__init__(self) # vi: et sts=4 sw=4 tw=80 dist/copy/plugins/PaxHeaders.26361/screensaverpause0000644000175000017500000000013212233027261021003 xustar000000000000000030 mtime=1382821553.309046938 30 atime=1382821552.797046922 30 ctime=1382821553.309046938 exaile-3.3.2/plugins/screensaverpause/0000755000000000000000000000000012233027261020021 5ustar00rootroot00000000000000dist/copy/plugins/screensaverpause/PaxHeaders.26361/prefs.py0000644000175000017500000000012412233027260022551 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.309046938 exaile-3.3.2/plugins/screensaverpause/prefs.py0000644000000000000000000000045412233027260021514 0ustar00rootroot00000000000000import os from xl.nls import gettext as _ from xlgui.preferences import widgets name = _("Pause on Screensaver") basedir = os.path.dirname(os.path.realpath(__file__)) ui = os.path.join(basedir, 'prefs.ui') class Unpause(widgets.CheckPreference): default = False name = 'screensaverpause/unpause' dist/copy/plugins/screensaverpause/PaxHeaders.26361/__init__.py0000644000175000017500000000012412233027260023171 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.157046934 exaile-3.3.2/plugins/screensaverpause/__init__.py0000644000000000000000000000652212233027260022136 0ustar00rootroot00000000000000# screensaverpause - pauses Exaile playback on screensaver activation # Copyright (C) 2009-2011 Johannes Sasongko # # 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, see . # # # The developers of the Exaile media player hereby grant permission # for non-GPL compatible GStreamer and Exaile plugins to be used and # distributed together with GStreamer and Exaile. This permission is # above and beyond the permissions granted by the GPL license by which # Exaile is covered. If you modify this code, you may extend this # exception to your version of the code, but you are not obligated to # do so. If you do not wish to do so, delete this exception statement # from your version. import dbus, gtk from xl import event, player, settings SERVICES = [ dict( # GNOME bus_name='org.gnome.ScreenSaver', path='/org/gnome/ScreenSaver', dbus_interface='org.gnome.ScreenSaver', ), dict( # KDE bus_name='org.freedesktop.ScreenSaver', path='/', dbus_interface='org.freedesktop.ScreenSaver', ), ] import prefs def get_preferences_pane(): return prefs matches = set() bus = None was_playing = None def screensaver_active_changed(is_active): global was_playing if is_active: was_playing = player.PLAYER.is_playing() player.PLAYER.pause() elif was_playing and settings.get_option("screensaverpause/unpause", 0): player.PLAYER.unpause() def enable(exaile): if exaile.loading: event.add_callback(_enable, 'exaile_loaded') else: _enable() def _enable(*a): global bus bus = dbus.SessionBus() for service in SERVICES: matches.add(bus.add_signal_receiver(screensaver_active_changed, signal_name='ActiveChanged', **service)) def disable(exaile): if bus is None: return for match in frozenset(matches): match.remove() matches.remove(match) def test(): import glib, gobject gobject.threads_init() import dbus.mainloop.glib as dbgl dbgl.DBusGMainLoop(set_as_default=True) global bus bus = dbus.SessionBus() for service in SERVICES: try: proxy = bus.get_object(service['bus_name'], service['path'], follow_name_owner_changes=True) except dbus.DBusException: continue break else: return None assert proxy interface = dbus.Interface(proxy, service['dbus_interface']) mainloop = glib.MainLoop() def active_changed(new_value): if not new_value: mainloop.quit() interface.connect_to_signal('ActiveChanged', screensaver_active_changed) # For some reason Lock never returns. interface.Lock(ignore_reply=True) mainloop.run() if __name__ == '__main__': test() # vi: et sts=4 sw=4 tw=80 dist/copy/plugins/screensaverpause/PaxHeaders.26361/PLUGININFO0000644000175000017500000000012412233027260022455 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.097046932 exaile-3.3.2/plugins/screensaverpause/PLUGININFO0000644000000000000000000000045712233027260021423 0ustar00rootroot00000000000000Version='0.1.0' Authors=['Johannes Sasongko '] Name=_('Pause on Screensaver') Description=_('Pauses (and optionally resumes) playback based on screensaver status.\n\nRequires: GNOME Screensaver or KDE Screensaver (does not support XScreenSaver nor XLockMore)') Category=_('Utility') dist/copy/plugins/screensaverpause/PaxHeaders.26361/prefs.ui0000644000175000017500000000012412233027260022536 xustar000000000000000027 mtime=1382821552.763477 27 atime=1382821552.763477 30 ctime=1382821553.309046938 exaile-3.3.2/plugins/screensaverpause/prefs.ui0000644000000000000000000000150012233027260021472 0ustar00rootroot00000000000000 True 3 Unpause when screensaver ends True True False True False 0